On Monday, 12. September 2011 23:42:30 Nikos Chantziaras wrote: > On 09/12/2011 10:02 PM, Michael Schreckenbauer wrote: > > On Monday, 12. September 2011 21:31:59 Nikos Chantziaras wrote: > >> On 09/12/2011 08:17 PM, Michael Schreckenbauer wrote: > >>> On Monday, 12. September 2011 20:04:47 Nikos Chantziaras wrote: > >>>> On 09/12/2011 07:42 PM, Michael Schreckenbauer wrote: > >>>>> On Monday, 12. September 2011 18:41:37 Nikos Chantziaras 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? > >>>>> > >>>>> At least it's inconsistent. I would expect that the emerge with > >>>>> complete version also fails. > >>>> > >>>> It's slotted, so it shouldn't fail. Freetype 1 and 2 can be > >>>> installed > >>>> at the same time. > >>> > >>> Yes, that's true for the packages provided by portage. portage does > >>> not > >>> know anything about the freetype you provide, so it shouldn't > >>> install > >>> any freetype from any slot by any command. > >> > >> I don't see how it doesn't know anything about it, given that it > >> requires me to list a full package atom in package.provided. So it > >> always knows which version should be considered as being provided. > > > > Yes. freetype version 1. So if a package depends on freetype version 1, > > portage assumes, the dep is already installed. > > It does not know, where it is installed, or what files it installed. So > > it has to assume, that an emerge of freetype-2 actually could overwrite > > some of your freetype-1 files. Therefore it should not install > > freetype-2 with any command, if you have any version of freetype in > > package.provided. > > I disagree. A slotted package is practically two different packages > that simply share the same name. If one slot is assumed as being > provided, then that slot should have no effect on the other ones.
You cannot provide a slot - you provide a package - freetype in this case. A slot is a gentoo specific thing. If you provide a package, you lose the advantages of portage. One of them being slots. > With your argument, portage should not install *any* packages at all if > there's even a single entry in package.provided, because it doesn't know > what that package installs and therefore *any other* package could > results in conflicts. Say, you had freetype-2.x in your package provided and for some reason you configured it to install to /usr/include/freetype, /usr/lib/freetype and so on. What should emerge do, if you now emerge freetype:1? Install it and overwrite your provided package? I only flipped versions here, because configuring freetype:1 to install to */freetype-2 sounds a bit strange :) If you tell portage "I care for freetype myself", then you have to deal with it. If you really need freetype:2 together with freetype:1, you have to provide freetype:2 also. Only you know, how to configure it, so it does not conflict with your freetype:1 Best, Michael