<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Jun 25, 2018 at 12:59 PM Miroslav Suchý <<a href="mailto:msuchy@redhat.com">msuchy@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Recently packagers stared using rich deps in Fedora and I (as Mock maintainer) am hitting more issues like this:<br>
  <a href="https://github.com/rpm-software-management/mock/issues/202" rel="noreferrer" target="_blank">https://github.com/rpm-software-management/mock/issues/202</a><br>
I.e. F28 package redhat-rpm-config has:<br>
  Requires: (annobin if gcc)<br>
And when you try to install this by rpm from EL7 you get cryptic error:<br>
<br>
  ---> Package redhat-rpm-config.noarch 0:108-1.fc28 will be installed<br>
  Error: Invalid version flag: if<br>
<br>
For mock this can be workarounded by --bootstrapchroot (as long as noone use this for any package in minimal buildroot).<br>
<br>
I am think how to make the life of developers easier and turn this ugly message to something more friendly - Is there<br>
some way to query package what minimal version of RPM it need. Something like:<br>
<br>
   # rpm -qp --whatversion foo.rpm<br>
   4.13.1<br>
<br>
With the meaning that I need this version of rpm or higher.<br></blockquote><div><br></div><div>Technically, there is special <span style="font-family:monospace">rpmlib()</span> 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).<br></div><div><br></div><div><span style="font-family:monospace">⋊> ~ rpm -qR rust-gio-devel<br>(crate(bitflags) >= 1.0.0 with crate(bitflags) < 2.0.0)<br>(crate(gio-sys) >= 0.6.0 with crate(gio-sys) < 0.7.0)<br>(crate(glib) >= 0.5.0 with crate(glib) < 0.6.0)<br>(crate(glib-sys) >= 0.6.0 with crate(glib-sys) < 0.7.0)<br>(crate(gobject-sys) >= 0.6.0 with crate(gobject-sys) < 0.7.0)<br>(crate(gtk-rs-lgpl-docs) >= 0.1.3 with crate(gtk-rs-lgpl-docs) < 0.2.0)<br>(crate(lazy_static) >= 1.0.0 with crate(lazy_static) < 2.0.0)<br>(crate(libc) >= 0.2.0 with crate(libc) < 0.3.0)<br>cargo<br>rpmlib(CompressedFileNames) <= 3.0.4-1<br>rpmlib(FileDigests) <= 4.6.0-1<br>rpmlib(PayloadFilesHavePrefix) <= 4.0-1<br>rpmlib(PayloadIsXz) <= 5.2-1<br>rpmlib(RichDependencies) <= 4.12.0-1</span></div></div></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><p dir="ltr">-Igor Gnatenko</p>
</div></div>