Undefined %epoch problem (Re: rawhide report: 20150730 changes)

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Thu Aug 6 18:00:23 UTC 2015


On Thu, Aug 06, 2015 at 06:37:29PM +0200, Michael Schwendt wrote:
> On Thu, 06 Aug 2015 13:15:02 +0000, Igor Gnatenko wrote:
> 
> > We discussed with Jan Silhan yesterday. It looks like something broken in
> > createrepo/createrepo_c in F22. So it's not dnf/yum/hawkey/libsolv issue.
> > 
> > LOG: https://ignatenkobrain.fedorapeople.org/epoch_bug.log
> > 
> > Also CCing Jan.
> 
> Wow. createrepo is also affected.
> 
> createrepo_c uses strtol() to accept only numbers as Epoch.  Anything
> else strol() cannot parse is ignored and defaults to "epoch=0" in the
> repo metadata. This means it can break for typos as well as, not just
> an undefined macro used as Epoch in a versioned dep.
> 
> It couldn't find a comment in the source that would tell whether this
> is by design.
Does this really matter? If it's by design, then the design is wrong.
If not, than the implementation is wrong.

(Nevertheless, I think it's not by design, but because strtol() is
so hard to use correctly. I think it's fair to say to it is designed
to be used incorrectly. Systemd has a bunch of wrappers for strto*()
that try to answer the question "was the conversion successful?" [1],
and it's sad that they are needed and that they are so complex.)

[1] https://github.com/systemd/systemd/blob/73974f6768e#L406


More information about the devel mailing list