Learn more about these different git repos.
Other Git URLs
Try: 1. tito build --test --srpm 2. mock --verbose -r epel-7-x86_64 --rebuild /tmp/tito/python-copr-1.97-1.git.8.1f590f7.fc31.src.rpm
tito build --test --srpm
mock --verbose -r epel-7-x86_64 --rebuild /tmp/tito/python-copr-1.97-1.git.8.1f590f7.fc31.src.rpm
DEBUG: DEBUG: Unsharing. Flags: 134217728 DEBUG: error: Missing rpmlib features for python-copr-1.97-1.git.8.1f590f7.fc31.noarch: DEBUG: error: rpmlib(DynamicBuildRequires) <= 4.15.0-1 DEBUG: error: /builddir/build/originals/python-copr-1.97-1.git.8.1f590f7.fc31.src.rpm cannot be installed DEBUG: Child return code was: 1 Finish: build setup for python-copr-1.97-1.git.8.1f590f7.fc31.src.rpm Finish: build phase for python-copr-1.97-1.git.8.1f590f7.fc31.src.rpm ERROR: Exception(/tmp/tito/python-copr-1.97-1.git.8.1f590f7.fc31.src.rpm) Config(epel-7-x86_64) 0 minutes 40 seconds
@msuchy ideas?
@pmatilai is it necessary to bake rpmlib(DynamicBuildRequires) into the SRPM, or could we avoid that?
rpmlib(DynamicBuildRequires)
We use conditionals so the %dynamic_buildrequires section isn't used on Fedora <= 30: https://pagure.io/copr/copr/blob/1f590f7ed735ad3e948d39224c7ac2645ae9d68e/f/python/python-copr.spec#_138-146
I'm not sure what you're asking about - if you conditionalize it out, then there wont be such a dependency.
Traditionally build-side incompatibilities haven't been tracked with rpmlib() dependencies so you just get a parse error, dunno why this is different. I'm the wrong guy to talk to about dynamic buildrequires, you want @ffesti instead.
if you conditionalize it out, then there wont be such a dependency.
There will be, if you create the src.rpm on new-enough system.
Traditionally build-side incompatibilities haven't been tracked with rpmlib() dependencies so you just get a parse error, dunno why this is different.
Maybe it is not a different thing; can you mention something like that before so I can compare? When I generated srpm on F31, the only similar thing seems to be the following (and it is really old thing):
rpmlib(CompressedFileNames) <= 3.0.4-1
This is about allowing us to build the src.rpm generated on Fedora 31 in mock on system which doesn't have that particular SRPM feature.
CompressedFilenames is nothing like this, it's an internal storage format change that is not up to packagers to choose, and older version cannot handle at all. Hence the rpmlib() dependency, it was a very necessary thing at the time.
As a general rule spec-side additions have not been guarded by rpmlib dependencies: new tags like weak dependencies, or other additions in 4.15 such as %patchlist. I can kind of see the point of the rpmlib() dependency as a way to prevent incorrect results of --rebuild, BUT ... now I get it: the dependency prevents doing 'rpm -i foo.src.rpm', and that is wrong.
https://github.com/rpm-software-management/rpm/pull/878
Thank you for the quick turn-around. I'm closing this copr issue then.
Metadata Update from @praiskup: - Issue close_status updated to: External - Issue status updated to: Closed (was: Open)
Login to comment on this ticket.