correct null epoch value behavior for Conflicts: expressions ?

Panu Matilainen pmatilai at laiskiainen.org
Wed Sep 17 07:16:51 UTC 2014


On 09/16/2014 05:52 PM, Jason Vas Dias wrote:
> Good day RPM list -
>
> I'd be most grateful if someone could please explain correct interpretation
> of NULL %{EPOCH} values in the context of Conflicts / Obsoletes specifications.
>
> In RHEL 6 ,  for instance,  the udev.spec contains:
>
>      Conflicts: kernel < 0:2.6
>
> Yet the RHEL 6 kernel spec (from  2.6.32-431.20.5 ) does NOT specify any epoch ,
>   so will have %{EPOCH} == '(none)'  ,   and the result of udev's Conflicts
>   expression should be TRUE ; ie. udev would replace kernel .
>   Isn't a NULL value meant to compare less than a numeric value,
>   even if the numeric value is 0 ?
> What prevents udev from replacing the kernel / preventing it being installed,
> then ?
> Does an epoch value of '0' always equate to a value of '(none)' ?
> Yet I do think RPM / YUM will consider an RPM will Epoch '0' to be greater than
> one with  Epoch '(none)'.
>   Can someone please explain why this evidently doesn't apply to this
>   RHEL 6 udev Conflicts:  kernel < 0:2.6 with kernel (none):2.6.x being
> installed  ?

Non-existing epoch is equivalent to epoch of 0, anything else leads to 
madness as witnessed in the ancient versions (rpm < 4.2 + some related 
bugs in up to 4.4.x) where its not.

Unless you're a distro archeologist, you only need to remember:

     Non-existing epoch is equivalent to epoch of 0.

	- Panu -



More information about the Rpm-list mailing list