repotag in EPEL (was: Re: Plan for tomorrows (20070426) FESCO meeting)

Tom "spot" Callaway tcallawa at redhat.com
Sun Apr 29 12:58:28 UTC 2007


On Sat, 2007-04-28 at 11:58 +0200, Axel Thimm wrote:
> On Fri, Apr 27, 2007 at 09:18:53AM -0700, Fernando Lopez-Lezcano wrote:
> > Would it be possible to use the already existing %{?dist} distag and
> > just change the way it is expanded in EPEL alone? That would
> > actually avoid changing the spec file at all. I don't know if this
> > might be a technical no-no for some reason in Fedora's build system.
> 
> That was the suggestion I had made as well, and is the best technical
> solution indeed:
> 
> http://fedoraproject.org/wiki/EPEL/SteeringCommittee/Voting#head-efb18a3ff4ed343c4a8aa17dc0a8466bab8c9024
> 
>  "A possible implementation is to extend %{?dist} to include the
>   repotag. Since EPEL is targeting building software out of the former
>   Fedora Extras pool of software which at this point in time uses
>   %{?dist} in 2989 of 3049 (98%) it does indeed already have a disttag
>   everywhere but the epel-release package. So that seems the least
>   intrusive and fastest way to achieve this."

The only "flaw" in that implementation is that it would not be
implemented universally. 98% is not 100%.

If (and this is still a big if) we want to implement repotags for EPEL,
I think the best way is to take the packager out of the loop entirely,
and append .epel to the release at the buildsystem layer.

So, if you've got %{?dist}, you get:

foo-1.0.0-1.el5.epel

If you don't use %{?dist}, you get

foo-1.0.0-1.epel

The disttag is for marking the distribution for which that package is
built for, not the repo from whence it came. The repotag shouldn't be
used for version comparison, thus it should be the last significant
"digit". Packages shouldn't use it for macro purposes (if I'm built in
this repo, do foo, otherwise, do bar). Unlike the disttag, for it to be
effective, it needs to be mandatory for the repo (EPEL, in this specific
case, not Fedora), and the easiest way to do this (without having people
scream at each other) is to have the buildsystem append the repotag to
the Release field (in a local copy inside mock) before building the
spec.

Thus, it is no additional work for packagers to have to add it to an
existing FC spec (EPEL packages just get it when they're built
automagically). Its not easily overridden by anyone who decides to be
"independent" on this issue. %{?dist} is still optional.

The only catch is that versioned requires/depends with the release
integrated need to be careful. 1 < 1.epel, but the same concerns are
present with %{?dist} and have mostly been a non-issue.

Thoughts?

~spot




More information about the fedora-devel-list mailing list