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.