Highlights from 2022-04-05 release

Updated client packages are shipped in Fedora 34, Fedora 35, Fedora 36, EPEL 7, EPEL 8, and EPEL 9 Bodhi updates.

Kerberos/GSSAPI authentication for API and copr-cli

Newly, when working with the Fedora Copr instance, users don’t have to install the ~/.config/copr token. It is enough to take a Fedora Kerberos ticket, and copr-cli starts working:

$ fkinit # optionally with "-u username"
Enter your password and OTP concatenated. (Ignore that the prompt is for only the token)
Enter OTP Token Value: <your password>
$ copr whoami

If you have Kerberos ticket, you can also use this authentication method in WebUI by clicking on the gssapi-login link (negotiate needs to be allowed for the .fedorainfracloud.org domain in the browser).

For other Copr instances, a simplified configuration referring the Copr frontpage is still needed. For more info see man copr-cli, the AUTHENTICATION section.

Copr-cli re-tries connections with Copr Frontend

When there’s some temporary Copr Frontend server (Web-UI & API) issue, and thus copr-cli fails to communicate over API - it newly doesn’t give up immediately but re-tries (3x with several seconds delay between the attempts). The number of attempts can be specified using the python3-copr API, too (by default set to one attempt).

Large queue improvements

Lately, there have been multiple concurrent mass rebuilds pushing Copr to its limits. When reaching tens of thousands builds in the queue, several problems started to appear. Newly we significantly optimized the backend part of the build system so it should handle large queues promptly and thus successfully delegate the tasks to the builders. Also the Backend <=> Frontend protocol was optimized for large queues.

Smaller fixes

  • On several places in the web-UI we differentiated the background tasks from the normal tasks. Background jobs have lower priority and if they are being processed, it means there’s enough resources to handle normal jobs and still take some background jobs.

  • We fixed a bug in our DistGit cleanup script that garbage-collected some of the temporarily imported sources too early, this caused build failures before, PR#2078.