Highlights from 2022-07-27 release
Updated client packages are shipped in Fedora 35, Fedora 36, EPEL 7, EPEL 8, and EPEL 9 Bodhi updates.
Undefine %dist for SRPM builds
The Dist Tag (e.g. .fc35) for built SRPM packages,
was a frequent point of confusion for Copr users as it was
reported on multiple occasions.
For more info about the Copr build workflow see https://docs.pagure.org/copr.copr/_images/srpm-build.jpeg
Basically, the build dist tag was inherited from the
initial source RPM. Either uploaded by user, or built from remote sources on
Copr builder in an isolated environment (e.g. Fedora 35 producing .fc35). But the initial source
RPM dist tag had no informational value (a build may be submitted for many chroots, not just F35), and it eventually gets replaced by the target chroot dist-tag (e.g. el8 for EPEL 8 builds).
We decided to set %dist to %nil for the source builds to avoid this
confusion. The reported NVR in UI and API will look like foo-1.1-2 instead of foo-1.1-2.fc35,
while the final RPMs in chroot builds will still have appropriate dist tags.
Building from PyPI with pyp2spec generator
For a long time, it was possible to submit builds directly from
PyPI. In such a case, pyp2rpm was used to generate a spec file
from the python package definition. It is now possible to use
pyp2spec instead (see #2203).
For example:
$ copr-cli buildpypi myproject \
--packagename argparse-manpage \
--spec-generator pyp2spec
Or you can create a package:
$ copr-cli add-package-pypi myproject \
--name python-argparse-manpage \
--packagename argparse-manpage \
--spec-generator pyp2spec
$ copr-cli build-package myproject --name python-argparse-manpage -r $CHROOT
Submitting multiple builds at once via copr-cli
Previously, when multiple packages were passed to copr-cli, it
submitted the first build and waited, then submitted the second build
and waited, and so on. Now it submits all the builds right from the
start to maximally parallelize them. Then we wait for all of them.
During this change, also the progress-bar logic in copr-cli was
simplified.
Notable changes
The
copr-dist-gitdoesn’t hold the downloaded files in the memory anymore to prevent SWAP issues when multiple large SRPMs are being imported concurrently.When creating a project via
copr-cli, its URL is printed
Bugfixes
#2243 - It is now possible to set runtime dependencies when using
copr-cli createandcopr-cli modify#2228 - We don’t try to submit builds for Pagure pull requests into deleted projects
#1431 - Copr searches for the
coms.xmlin the chroot directory (instead of the repodata directory)#2246 - The
copr-cliworks properly with Kerberos ticket and no~/.config/copr#2235 - Correct “Login invalid/expired” messages are now displayed when all attempts to send a request from
copr-clifail#2253 - The GSSAPI dependency for Copr client packages is now optional, which simplifies their installation from PyPI
RHBZ 2108401 - It is now possible to build DistGit packages that do not use the
sourcesfileCopr-specific macros such as
%copr_usernameand%copr_projectnameare defined also for custom builds and SCM builds using themake_srpmmethodRuntime dependencies (extenal repositories) may be specified as a white-space separated set of URLs (including newlines, previously only a space separator worked)