package, package2, package3 naming-with-version exploit

James Antill james at fedoraproject.org
Mon Apr 1 18:50:44 UTC 2013


On Fri, 2013-03-29 at 14:42 +0100, Jan Zelený wrote:
> On 29. 3. 2013 at 13:22:40, Petr Pisar wrote:
> > On 2013-03-29, Jan Zelený <jzeleny at redhat.com> wrote:
> > > In this case we proposed another solution which was turned down (I'm not
> > > sure exactly why):
> > > 
> > > Each package requiring multiversion support would have all these
> > > versions almost the same as they are right now. The only difference
> > > would be that there is a metapackage pointing at all time to the
> > > latest version.
> > 
> > Because metapackages are considered evil in Fedora (I'm not sure exactly
> > why).

 That's not true, there are a few metapackages in Fedora (like "git").
However people tend to use them as a hammer to solve problems that are
best solved in a different way (and arguably "git" could be too).

> To be perfectly honest I don't know either. But I already have half a dozen 
> use cases on my table where metapackages can help. Perhaps it's time to re-
> consider this policy?

 The python usecase is a good example, yes install/upgrade probably work
fine but what about remove? As with most metapackage solutions it
requires "yum autoremove" type functionality to do the right thing.
 It also has the very unsettling UI problem that if python+python2
+python3 is installed and you remove whichever one is connected to the
metapackage yum will tell you it's removing "python" as a dep.

 If we had no other options, then resorting to the metapackage hammer
would be a solution, but there are at least two other solutions that
don't have that problem:

1. Use:

python-2.7.3
python3-3.2.3

...or:

compat-python2-2.7.3
python-3.2.3

..."yum install python", "yum upgrade python" and "yum remove python"
all work. It also tends to be obvious what the current situation is for
the user (in the first case python3 is newer, but not the default for
whatever reason and in the second compat-python2 is around for
compatibility).

2. Use:

python2-2.7.3
Provides: python = 2.7.3
python3-3.2.3
Provides: python = 0.3.2.3

..."yum install python", "yum upgrade python" and "yum remove python"
all work. It's less obvious that python2 is the default here, and "yum
list python" shows nothing (but obviously "yum provides python" does).



More information about the devel mailing list