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-git
doesn’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 create
andcopr-cli modify
#2228 - We don’t try to submit builds for Pagure pull requests into deleted projects
#1431 - Copr searches for the
coms.xml
in the chroot directory (instead of the repodata directory)#2246 - The
copr-cli
works 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-cli
fail#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
sources
fileCopr-specific macros such as
%copr_username
and%copr_projectname
are defined also for custom builds and SCM builds using themake_srpm
methodRuntime dependencies (extenal repositories) may be specified as a white-space separated set of URLs (including newlines, previously only a space separator worked)