On Tuesday, 13. September 2011 01:11:39 Nikos Chantziaras wrote: > On 09/13/2011 12:18 AM, Michael Schreckenbauer wrote: > > 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. > > So is package.provided :-)
Of course :) Point is, you provide a package from the outside world, you tell that portage via package.provided. In the outside world, there is no slot. So you cannot provide 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? > > Yes. It should do exactly that. Because of lack of information, it > should assume that I know what I'm doing. > > Fortunately, it does exactly that :-) The original point of my post is > why it works with "emerge foo-version" but not with "emerge foo:slot". Yes, it does that. In my opinion, that behaviour is not correct. I think, you are "abusing" package.provided for something, that should be handled by a local overlay with patched freetype-ebuilds. Best, Michael