The rpkg-util v2 vs v3 differences¶
The major difference is that the auto_pack =
configuration option was
dropped in the rpkg
utility, and namely that even the default behavior
(auto_pack = True
) was changed entirely (after a long period of feature
deprecation).
So, while for quite some time you’ve probably seen builds succeeding, and output
similar to the following one (in source RPM builder-live.log
files):
...
Running: rpkg srpm --outdir /var/lib/copr-rpmbuild/results --spec /var/lib/copr-rpmbuild/workspace/workdir-p7s1qop1/copr-hello
...
stdout: Wrote: /var/lib/copr-rpmbuild/results/example.spec
Wrote: /var/lib/copr-rpmbuild/results/example-1.0.13.tar.gz
setting SOURCE_DATE_EPOCH=1518912000
Wrote: /var/lib/copr-rpmbuild/results/example-1.0.13-1.fc34.src.rpm
stderr: auto-packing: This function is deprecated and will be removed in a future release.
Note the deprecation error output! But newly you see build failures, and output like:
...
Running: rpkg srpm --outdir /var/lib/copr-rpmbuild/results --spec /var/lib/copr-rpmbuild/workspace/workdir-49_sbnvg/copr-hello
...
rc: 0
stdout: Wrote: /var/lib/copr-rpmbuild/results/example.spec
stderr: error: Bad source: /var/lib/copr-rpmbuild/results/example-1.0.13.tar.gz: No such file or directory
Failed to execute command.
Output: ['example.spec']
Or even something like:
Running: rpkg srpm --outdir /var/lib/copr-rpmbuild/results --spec /var/lib/copr-rpmbuild/workspace/workdir-ffz7kky4/copr-hello
...
rc: 1
stdout: Wrote: /var/lib/copr-rpmbuild/results/example.spec
stderr: error: Bad source: /var/lib/copr-rpmbuild/results/example-1.0.13.tar.gz: No such file or directory
Copr build error: error: Bad source: /var/lib/copr-rpmbuild/results/example-1.0.13.tar.gz: No such file or directory
The utility in v3
version also stopped automatically loading the
rpkg.macros
file stored in git repository. Newly, one must tell the
utility where the rpkg.macros file resides. That’s done using the git-root
rpkg.conf
file:
[rpkg]
user_macros = "${git_props:root}/rpkg.macros"
How am I supposed to fix the auto_pack
issue¶
First, if you build your package from a DistGit instance (e.g. from
src.fedoraproject.org
, git.centos.org
, etc.), you are encouraged to use
the Copr DistGit build method.
If you build from a git forge (GitHub, GitLab, …) and you see build failures
like those above, the problem is most likely that your spec file is not using
the {{{ ... }}}
templates, and you rely on the already removed auto_pack =
True
feature.
Please take a look at the rpkg-util documentation, and perhaps get an inspiration from the example commit which makes the package compatible with both rpkg-util v2 and v3.
If for any reason you can not use the new rpkg-util syntax, take a look at the other source methods Copr supports.