Re: [Rpm-ecosystem] Required version of rpm?
On 06/26/2018 04:46 PM, Miroslav Suchý wrote: Dne 26.6.2018 v 14:57 Panu Matilainen napsal(a): On 06/26/2018 02:15 PM, Miroslav Suchý wrote: Dne 26.6.2018 v 12:17 Neal Gompa napsal(a): rpmlib() dependencies are virtual, they aren't provided by anything, but are processed during the transaction and verified. 1) So the number in rpmlib(RichDependencies) means what version of rpm I should have. Right? Roughly yes, but beware there are cases where this is not true at all due to backports and sideports messing it all up. OK - corner cases and backports aside. But... I am still puzzled. $ rpm -qR redhat-rpm-config |grep Rich rpmlib(RichDependencies) <= 4.12.0-1 So any rpm with verision *lower* than 4.12.0 will work? Should be there ">=" ? Nope. From my previous email: "the version in rpmlib() dependencies is sorta backwards to what people generally expect." - but it's the range, not the version that appears backwards. This is the way all rpmlib() dependencies have always been, here's the best explanation I've found: https://www.redhat.com/archives/rpm-list/2001-April/msg00283.html And in fact the rich dependency tracking version is a fine example of how the version is not trustworthy: rich dependencies got added in 4.13.0, not 4.12.0 as the rpmlib() dependency would have you think. Not that you'd want to go telling to upgrade their rpm beyond what their distro provides, that's a recipe for disaster. No, I do not want to do that. I just want to provide that user-friendly error. Ack, good. - Panu - Miroslav ___ Rpm-ecosystem mailing list Rpm-ecosystem@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-ecosystem ___ Rpm-ecosystem mailing list Rpm-ecosystem@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-ecosystem
Re: [Rpm-ecosystem] Required version of rpm?
Dne 26.6.2018 v 14:57 Panu Matilainen napsal(a): > On 06/26/2018 02:15 PM, Miroslav Suchý wrote: >> Dne 26.6.2018 v 12:17 Neal Gompa napsal(a): >>> rpmlib() dependencies are virtual, they aren't provided by anything, >>> but are processed during the transaction and verified. >> >> 1) So the number in rpmlib(RichDependencies) means what version of rpm I >> should have. Right? > > Roughly yes, but beware there are cases where this is not true at all due to > backports and sideports messing it all up. OK - corner cases and backports aside. But... I am still puzzled. $ rpm -qR redhat-rpm-config |grep Rich rpmlib(RichDependencies) <= 4.12.0-1 So any rpm with verision *lower* than 4.12.0 will work? Should be there ">=" ? > Not that you'd want to go telling to upgrade their rpm beyond what their > distro provides, that's a recipe for disaster. No, I do not want to do that. I just want to provide that user-friendly error. Miroslav ___ Rpm-ecosystem mailing list Rpm-ecosystem@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-ecosystem
Re: [Rpm-ecosystem] Required version of rpm?
On 06/26/2018 02:15 PM, Miroslav Suchý wrote: Dne 26.6.2018 v 12:17 Neal Gompa napsal(a): rpmlib() dependencies are virtual, they aren't provided by anything, but are processed during the transaction and verified. 1) So the number in rpmlib(RichDependencies) means what version of rpm I should have. Right? Roughly yes, but beware there are cases where this is not true at all due to backports and sideports messing it all up. What you really need is to have an rpm version that provides the virtual capability in question (discoverable via --showrc and API), the version in rpmlib() dependencies is sorta backwards to what people generally expect. 2) The version of rpm I need to parse this RPM is in dependency list, which I cannot parse on EL7 because there is too old rpm. So I have chicken and egg problem. Any idea how to solve this? Yeah rich dependencies complicated the scene quite a bit. What was previously a dumb string no longer is, and could fail to be parsed by rpmds. What you always can get though, is the "raw" strings from the header, in RPMTAG_REQUIRENAME, RPMTAG_REQUIREFLAGS and RPMTAG_REQUIREVERSION arrays and look for rpmlib( in start of the name (it's supposed to be also flagged in RPMTAG_REQUIREFLAG but older rpm versions didn't always add it). Not that you'd want to go telling to upgrade their rpm beyond what their distro provides, that's a recipe for disaster. But sure, being able to detect such issues and provide a nicer explanation never hurt anybody. - Panu - ___ Rpm-ecosystem mailing list Rpm-ecosystem@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-ecosystem
Re: [Rpm-ecosystem] Required version of rpm?
Dne 26.6.2018 v 12:17 Neal Gompa napsal(a): > rpmlib() dependencies are virtual, they aren't provided by anything, > but are processed during the transaction and verified. 1) So the number in rpmlib(RichDependencies) means what version of rpm I should have. Right? 2) The version of rpm I need to parse this RPM is in dependency list, which I cannot parse on EL7 because there is too old rpm. So I have chicken and egg problem. Any idea how to solve this? Miroslav ___ Rpm-ecosystem mailing list Rpm-ecosystem@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-ecosystem
Re: [Rpm-ecosystem] Required version of rpm?
On Tue, Jun 26, 2018 at 4:57 AM Miroslav Suchý wrote: > > Dne 25.6.2018 v 13:04 Igor Gnatenko napsal(a): > > rpmlib(RichDependencies) <= 4.12.0-1 > > But on my F28: > > $ LC_ALL=C rpm -q --whatprovides 'rpmlib(RichDependencies)' > no package provides rpmlib(RichDependencies) > rpmlib() dependencies are virtual, they aren't provided by anything, but are processed during the transaction and verified. -- 真実はいつも一つ!/ Always, there's only one truth! ___ Rpm-ecosystem mailing list Rpm-ecosystem@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-ecosystem