My thoughts on repotag

Tom 'spot' Callaway tcallawa at redhat.com
Mon Mar 19 03:05:27 UTC 2007


It seems like everyone keeps asking me in private to speak on the topic
of using a repotag for EPEL, probably since I'm the one who decided to
not use one for Fedora Extras (the decision predates the Fedora
Packaging Committee).

The first problem I have with overloading Release with a repotag is that
we start to play games between repositories:

foo-1.0.0-1.el5.epel < foo-1.0.0-1.el5.notepel

Is it really? Nah. This is just RPM trying to make sense of what we've
shoved in there.

Is this better than having two repositories with the same n-v-r? I don't
think so. We're not really solving this problem by using the repotag.
We're now in the realm of "my repotag is considered larger than yours by
RPM". We might as well be playing games with epoch. Is this the intent?
Almost certainly not, but it is the side-effect.

Fedora Extras succeeded in this by having very good packages. If the
primary repository has good packages, there is less need for other
repositories to conflict. So, is EPEL intended as the primary repository
for Enterprise Linux addon packages?

Now, I absolutely don't mean this to imply that other EL addon
repositories are lesser, bad, whatever. I'm simply noting how Fedora
Extras managed to get by without having a repotag.

I'd very much like to see EPEL as a place where packagers can put their
FLOSS bits that aren't legally encumbered in the US. If we succeed in
that, then rpm package conflicts are less likely.

The second problem is determining where a package came from. This seems
like a legitimate problem, but I'm not convinced that using a repotag is
the best solution. To me, this seems like a better use for the Vendor
tag. Now, if we use the Vendor tag, the problem becomes that users don't
see the Vendor tag when they query the package to file a bug.

The %{_query_all_fmt} tag controls the output that users see when they
query installed package(s). Perhaps EPEL users (with epel-release
package installed) get a%{_query_all_fmt} redefined to
%{name}-%{version}-%{release}.%{vendor} (or something like that). Then,
the origination repository is clear on an rpm query, so we solve this
problem, without overloading Release.

I always prefer to discuss problems and possible ways to solve them (and
then try to find the least intrusive way). :)

~spot




More information about the epel-devel-list mailing list