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 :-)
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".