Koji 1.14 Release Notes¶
Migrating from Koji 1.13¶
For details on migrating see Migrating to Koji 1.14
Fail fast option for builds¶
When builders are configured with
build_arch_can_fail = True then the
failure of a single buildArch task does not immediately cause the build
to fail. Instead, the remaining buildArch tasks are allowed to complete,
at which point the build will still fail.
Sometimes developers would rather a build fail immediately, so we have added
--fail-fast option to the build command, which overrides this setting.
The option only has an effect if the builders are configured to fail slow.
Custom Lorax templates¶
Koji now supports custom Lorax templates for the
The command accepts two new options:
--lorax_url=URL The URL to the SCM containing any custom lorax templates that are to be used to override the default templates. --lorax_dir=DIR The relative path to the lorax templates directory within the checkout of "lorax_url".
The Lorax templates must come from an SCM, and the
When these options are used, the templates will be fetched and an appropriate
--lorax-templates option will be passed to the underlying livemedia-creator
Allow profiles to request a specific python version¶
On platforms with python3 available, the Koji client is built to execute with the python3 binary. However, there are a few client features that do not work under python3, notably old-style (non-gssapi) Kerberos authentication.
If this issue is affecting you, you can set
pyver=2 in your Koji
configuration. This can be done per profile. When Koji sees this setting
at startup, it will re-execute itself under the requested python binary.
New list-builds command¶
The command line now has a
list-builds command that has similar
functionality to the builds tab of the web interface.
Usage: koji list-builds [options] (Specify the --help global option for a list of other help options) Options: -h, --help show this help message and exit --package=PACKAGE List builds for this package --buildid=BUILDID List specific build from ID or nvr --before=BEFORE List builds built before this time --after=AFTER List builds built after this time --state=STATE List builds in this state --type=TYPE List builds of this type. --prefix=PREFIX Only list packages starting with this prefix --owner=OWNER List builds built by this owner --volume=VOLUME List builds by volume ID -k FIELD, --sort-key=FIELD Sort the list by the named field -r, --reverse Print the list in reverse order --quiet Do not print the header information
New block-group command¶
block-group command allows admins to block package group entries
without having to resort to the
Usage: koji block-group <tag> <group> (Specify the --help global option for a list of other help options) Options: -h, --help show this help message and exit
Exit codes for some commands¶
Several more commands will now return a non-zero exit code when an error occurs:
the various image building commands
save-failed-treecommand (provided by a plugin)
Easier for scripts to use activate_session¶
In Koji 1.13.0, it became possible for scripts to
import koji_cli.lib and
gain access to the
activate_session function that the command line tool
uses to authenticate.
In this release, this function has been made easier for scripts to use:
the options argument can now be a dictionary
less options need to be specified
Normalize paths for scms¶
For many years, kojid has supported the
(see: Source Control Configuration) for controlling which scms can be used for building.
In 1.13.0, Koji added the ability to explicitly block a host:path pattern.
Unfortunately, 1.13.0 did not normalize the path before checking the pattern, making it possible for users to use equivalent paths to route around the block patterns.
Now, Koji will normalize these paths before the
For a long time kojid has handled the USR1 signal by initiating a graceful restart. This change exposes that in the systemd service config (and the init script on older platforms).
service kojid reload will trigger the same sort of restart that the
restart-hosts command accomplishes, but only for the build host you run it
on. When this happens, kojid will:
stop taking new tasks
wait for current tasks to finish
restart itself once all its tasks are completed
Friendlier runroot configuration¶
Two changes make it easier to write a configuration for the runroot plugin.
path_subs option is now more forgiving about whitespace:
leading and trailing whitespace is ignored for each line
blank lines are ignored
[pathNN] sections are no longer required to have sequential numbers.
Previously, the plugin expected a sequence like
[path2], etc, and would stop looking for entries if the next number
was missing. Now, any set of distinct numbers is valid and all
sections will be processed.
The following features are deprecated and will be removed in a future release:
use_old_sslclient configuration option (and the underlying
buildFromCVS hub call has been removed. It was replaced
buildSRPMFromCVS call many years ago and has been deprecated since
add_db_logger function has been removed from the koji library, along
log_messages table in the db. This extraneous call has never been
used in Koji.
Dropped mod_python support¶
Koji no longer supports mod_python. This option has been deprecated since mod_wsgi support was added in version 1.7.0.
See also: Migrating to Koji 1.7
Large integer support¶
Koji uses xmlrpc for communications with the hub, and unfortunately the baseline xmlrpc standard only supports 32-bit signed integers. This results in errors when larger integers are encountered, typically when a file is larger than 2 GiB.
Starting with version 1.14.0, Koji will emit
i8 tags when encoding
large integers for xmlrpc. Integers below the limit are still encoded
with the standard
int tag. The only time this makes a difference
is when Koji would previously have raised an
i8 tag comes from the
spec. Python’s xmlrpc decoder has
for many years accepted and understood this tag, even though its encoder
would not emit it.
Previous versions of Koji worked around such size issues by converting large integers to strings in a few targeted places. Those targeted workarounds have been left in place on the hub for the sake of backward compatibility.
Test mode for protonmsg plugin¶
protonmsg plugin now accepts a boolean
option. When this option is enabled, the plugin will not actually
send messages, but will instead log them (at the DEBUG level).
This option allows testing environments to run with the plugin enabled, but without requiring a message bus to be set up for that environment.
Handling of debugsource rpms¶
Koji will now treat rpms ending in
-debugsource the same way that it does
other debuginfo rpms. Such rpms are:
omitted from Koji’s normal yum repos
listed separately when displaying builds
not downloaded by default in the
Added kojifile component type for content generators¶
Content generator imports now accept entries with type equal to
in the component lists for buildroots and images/archives. This type provides
a more reliable way to reference archive that come from Koji.
See: Example metadata.