On Mon, 12 Sep 2011 19:49:28 +0300
Nikos Chantziaras <rea...@arcor.de> wrote:

> On 09/12/2011 07:31 PM, Pandu Poluan wrote:
> >
> > On Sep 12, 2011 11:11 PM, "Nikos Chantziaras" <rea...@arcor.de
> > <mailto:rea...@arcor.de>> wrote:
> >  >
> >  > In my /etc/portage/profile/package.provided, I have this:
> >  >
> >  >  media-libs/freetype-1.4_pre20080316-r2
> >  >
> >  > When I try to emerge freetype however, instead of emerging the
> >  > newer
> > version, I get:
> >  >
> >  >  $ emerge freetype
> >  >
> >  >  WARNING: A requested package will not be merged because it is
> >  > listed in package.provided:
> >  >
> >  >    freetype pulled in by 'args'
> >  >
> >  >  Nothing to merge; would you like to auto-clean packages?
> >  > [Yes/No]
> >  >
> >  > Trying "emerge freetype:2" also won't work.  The only only to
> >  > emerge
> > it seems is by using the whole version ("emerge =freetype-2.4.6").
> > Is this a bug?
> >
> > Why did you have that line in package.provided, in the first place?
> > Did you install freetype on your own, without using portage?
> 
> Portage installs both freetype-1 as well as freetype-2.  texlive has 
> freetype-1 as a dep, and I don't want it installed because I'm not
> using ttf2tfm.
> 
> 
> > The way I see it, Portage worked perfectly: it saw that you have
> > installed a certain version of freetype on your own, and it didn't
> > want to mess up your installed package.
> >
> > Just delete the line and emerge freetype.
> 
>  From my point of view, it doesn't work perfectly, because it behaves 
> differently when freetype-1 is really installed, and when it's not
> but listed in package.provided.  If I install freetype-1 and type:
> 
>    emerge freetype
> 
> it will emerge freetype:2.  So the behavior is vastly different
> between having freetype really installed, and when not but listed in 
> package.provided.


That's because a package being installed and being provided are not the
same thing and are treated very differently.

If you install xyz-1.2.3 then portage knows what it did to achieve
that and can deal with it as normal.

If you provide xyz-1.2.3 then portage does not know what *you* did to
achieve that and makes no attempt to deal with it at all. You are
expected to completely 100% deal with all of xyz, including all slots.
"man 5 portage" mentions that the version number is there in
package.provided so that portage can alert you if some other package
has a dep on a version of xyz you did not provide.

Seen in that light, the behaviour is indeed sensible, just not
consistent if you haven't read the docs yet. I don't think it's wise to
try and change portage's behaviour with this, as Michael said in
another sub-thread portage has no idea what you did so it can't even
try to take control of different slots for fear it might clobber all
your manual hard work



-- 
Alan McKinnnon
alan.mckin...@gmail.com

Reply via email to