Highlights from 2023-08-16 release

Updated client packages are shipped in Fedora 37, Fedora 38, EPEL 7, EPEL 8, and EPEL 9 Bodhi updates.

Possibility to specify a priority for a repository

DNF repositories may have the priority=N value set in .repo files. If some package exists in multiple repositories, DNF installs the one with the latest greatest NEVRA, unless repo priority is different. Then, no matter the NEVRA, the package from the most prioritized repo is installed by DNF. See man dnf.conf for more info. With this release, you can newly copr create --repo-priority N to configure the repo priority=N value. The result of using values >= 99 typically is that both at buildtime and runtime, packages from the corresponding Copr project repository are always preferred by DNF.

Skip chroots based on ExcludeArch and ExclusiveArch

Packages can define ExcludeArch and ExclusiveArch in their spec file to indicate which architectures are (not) supported and for which the package should not be built. These specfile tags are now respected by Copr, and builds in the “excluded” chroots are silently skipped without causing overall build failure (previously the build was started, leading to an expected rpmbuild chroot build failure, and overall build failure).

Documentation

Notable changes

  • @pkking contributed many patches to support running Copr servers on openEuler

  • #2791 - The default PyPI spec generator is now pyp2spec

  • #2627 - Each Copr build is done in two phases. First, a SRPM package is built from outside sources, and then RPM packages are built for each chroot. However, each RPM build silently rebuilt the SRPM package for the second time. We now skip this intermediate step to make the builds faster.

  • #2779 - New script to measure the time between failed and succeeded builds

  • Temporary projects are not listed on the main page anymore

  • Option to download only log files using copr-cli download-build

  • Speedup of custom builds that use a bootstrap image by not installing dnf-command(builddep)

  • Projects that opted-in for running fedora-review now provide review.json file next to the standard review.txt (see FedoraReview#310)

  • Copr started using the python-specfile library for getting metadata about the package being built, instead of (a) generating an SRPM and (b) reading metadata from that SRPM. This allows us to get distro-agnostic metadata (e.g. Release without %dist tag by overriding it to an empty string), and e.g. send valid messages, see #1701.

Bugfixes

  • RHBZ 2046034 - We started releasing copr-rpmbuild for EPEL9 as well

  • #2410 - Probably the most frequently reported bug as of late. The cgit web interface for Copr DistGit was temporarily disabled because it could easily DOS the server.

  • #2739 - DNF5 is always updated to the latest version on builders

  • #2772 - Some webhooks triggers were missed and didn’t trigger appropriate Copr packages

  • #2563 - Fixed links to LDAP groups

  • #2825 - It is possible to create only one Copr group per FAS group

  • #2847 - Package imports were failing because of rpkg pre-push hooks

  • fedora-review-service#28, FedoraReview#486 - If the fedora-review command failed, it produced results to an incorrect directory, making all URLs return 404

  • #2854 - It is now possible to specify fully-qualified bootstrap images, e.g. registry.fedoraproject.org/fedora:rawhide