Koji 1.33.0 Release notes

All changes can be found in the roadmap. Most important changes are listed here.

Migrating from Koji 1.31/1.31.1

For details on migrating see Migrating to Koji 1.33

Security Fixes


Client Changes

Let “–principal=” works for users using multiple TGT’s

CLI now allows specifying --principal even if keytab is not used for authentication.

Add repoID in listBuildroots and create repoinfo command

New repoinfo command is available which will display information previously available only via combination of API calls.

Add component/built archives in list-buildroot

Only RPMs were dislayed before while web UI listed also additional types. This is now on par.

list-tagged: Only check for build dir when –sigs is given

With --paths and without --sigs it should be possible to list paths even without real access to koji storage.

download-build: Preserve build artefacts last modification time

When files are downloaded mtime is set to corresponding mtime on koji storage.

Cancel error msg

More informative messages when cancel is used. E.g. when it is called against non-existent build it will raise an error instead of just returning False.

API Changes

tagNotification: user_id is int when get_user is used

tagNotification now uses “nicer” variant when it passes only user_id instead of full userinfo dictionary.

Remove Host.getTask method

Final removal of deprecated and unused builder-only method.

System Changes

Only pad header lengths for signature headers

In some cases incorrect signature header lengths were reported. There is no impact on koji functions but anyone using the library could have seen these distorted values.

Avoid noisy chained tracebacks when converting Faults

Python 3 added chained tracebacks which can be really noisy. We’re now displaying just relevant part.

createTag raises error when perm ID isn’t exists

Postgres error replaced with more standard koji exception.

Add renewal session timeout

It is a followup of behaviour added in previous release. Sessions could expire if they exist too long. Anyway, first patch implemented the behaviour itself, now we’re adding also hub option SessionRenewalTimeout. After this timeout session holder needs to reauthenticate (0 could be set for disabling this).

Unify behavior when result is empty in get_maven/image/win/build

Error is raised in all cases now.

RawHeader improvements

For users of koji library there are some more improvements to RawHeader which can now e.g. display signature headers better.

Build image from uploaded kickstart

Previously, only scratch builds were allowed to be built from local kickstarts. Anyway, as this file is stored in the build, it is safe to do it also for non-scratch content. As a side-effect build_rpm policy is now consulted for image builds.

Add more logging to rmtree

Additional logging was added to library function to better debug garbage collector issues.

New scheduler work

During next release or two we’re bringing first phase of new scheduler (moving scheduling logic from builders to hub). Some support functions can be already merged.

  • db/auth.py was moved to kojihub module as it is hub only code.

  • We’re now tracking builder update time in host table

  • db_lock() “silent” nowait locking to not flood hub logs


Prioritize awaited repos

Any tag which has corresponding waitrepo task is given slightly higher priority. It is useful mainly for MBS, but also chainbuilds should be a bit faster.


Kiwi: Import koji archive types

For new users it was confusing to manually add required archive types, so they are now prepopulated.

Sidetag: Editing extra and allowed list for rpm macros

New extra options sidetag_debuginfo_allowed and sidetag_rpm_macros_allowed could be set up in parent tags. Sidetags derived from such tags can alter these extra settings.


vm: Retry libvirt connection

In case libvirt dies or is restarted, kojivmd will pick the new connection without restart needed.

Content Generators

Allow reimports into failed/cancelled builds

Similarly to regular builds, CGs now can reuse failed or cancelled builds.

Save task_id correctly also in CGInitBuild

Last release introduced CG’s ability to store relevant task_id in buildinfo. Nevertheless, there was not consistent behaviour with and without using build reservations. This is now fixed.


koji-gc: fail on additional arguments

Simple update to fail if some unrecognized options are supplied.


kiwi: Remove tech-preview warning

Kiwi is production-ready now and interface shouldn’t change in near future.

Emphasize new build_from_scm hub policy

Fix doc links

Devtools and tests


Use fakehub as a user

--user option for fakehub

fakehub –pdb option

Drop into debugger on error.