[Rpm-ecosystem] Required version of rpm?

Neal Gompa ngompa13 at gmail.com
Mon Jun 25 11:06:25 UTC 2018


On Mon, Jun 25, 2018 at 7:04 AM Igor Gnatenko
<ignatenkobrain at fedoraproject.org> wrote:
>
> On Mon, Jun 25, 2018 at 12:59 PM Miroslav Suchý <msuchy at redhat.com> wrote:
>>
>> Recently packagers stared using rich deps in Fedora and I (as Mock maintainer) am hitting more issues like this:
>>   https://github.com/rpm-software-management/mock/issues/202
>> I.e. F28 package redhat-rpm-config has:
>>   Requires: (annobin if gcc)
>> And when you try to install this by rpm from EL7 you get cryptic error:
>>
>>   ---> Package redhat-rpm-config.noarch 0:108-1.fc28 will be installed
>>   Error: Invalid version flag: if
>>
>> For mock this can be workarounded by --bootstrapchroot (as long as noone use this for any package in minimal buildroot).
>>
>> I am think how to make the life of developers easier and turn this ugly message to something more friendly - Is there
>> some way to query package what minimal version of RPM it need. Something like:
>>
>>    # rpm -qp --whatversion foo.rpm
>>    4.13.1
>>
>> With the meaning that I need this version of rpm or higher.
>
>
> Technically, there is special rpmlib() style dependency which indicates min version of RPM. However, I think in this case it might be parsing `(` first before getting to rpmlib() ones (just my wild guess).
>
> ⋊> ~ rpm -qR rust-gio-devel
> (crate(bitflags) >= 1.0.0 with crate(bitflags) < 2.0.0)
> (crate(gio-sys) >= 0.6.0 with crate(gio-sys) < 0.7.0)
> (crate(glib) >= 0.5.0 with crate(glib) < 0.6.0)
> (crate(glib-sys) >= 0.6.0 with crate(glib-sys) < 0.7.0)
> (crate(gobject-sys) >= 0.6.0 with crate(gobject-sys) < 0.7.0)
> (crate(gtk-rs-lgpl-docs) >= 0.1.3 with crate(gtk-rs-lgpl-docs) < 0.2.0)
> (crate(lazy_static) >= 1.0.0 with crate(lazy_static) < 2.0.0)
> (crate(libc) >= 0.2.0 with crate(libc) < 0.3.0)
> cargo
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(FileDigests) <= 4.6.0-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(PayloadIsXz) <= 5.2-1
> rpmlib(RichDependencies) <= 4.12.0-1

There was a mistake made in the rpmlib() dep for rich deps. You need
at least rpm 4.13 for the base rich deps, and rpm 4.13.1 for the rest.



--
真実はいつも一つ!/ Always, there's only one truth!


More information about the Rpm-ecosystem mailing list