On Sat, Dec 20, 2008 at 03:43:05PM +0000, Penguin Lover Stroller squawked:
>> libdvdnav-4.1.3 is keyworded ~x86, while mplayer-1.0_rc2_p28058-r1 is
>> keyworded x86. The USE cannot be satisfied.
>
> I'm really sorry, I don't understand.

The dvdnav mask was added when the libdvdnav was hardmasked. But in
this case, a similar reasoning applies. Basically: a package in stable
should not depend on a package/package-version that is only available
in testing; and that a package in stable/testing should not depend on
a package that is only available if you manually keyword it. In other
words, if you run a pure x86 system, you should never run into the
problem where you try to emerge something and portage gives you an
error that one of its dependencies cannot be installed because all
packages satisfying that dependency is either hardmasked or keyworded
~x86. 

To use your case as an example: if I run a purely x86 system. If the
dvdnav flag is allowed, then if I try to emerge mplayer, it will try
to install libdvdnav-4.1.3, and it will find that it is ~x86, which is
not allowed on my system unless I manually keyword it. The portage
tree is designed so that there should not be this kind of internal
inconsistencies. 

In other words, if I decided to run a purely x86 system, a USE flag
should not mandate that I keyword some particular packages in testing
in order to install a package that is in stable. 

In general, the error message "The dependency blah/blah cannot be
satisfied" should only appear if you have (1) keyworded a package but
not all its dependencies or (2) a security bug caused an installed
package to be hardmasked (think realcodec). 

> I manually keyworded libdvdnav-4.1.3 /etc/portage/package.use to make it 
> installable.
>
> It _is already_ installed. Doesn't that mean the USE is already satisfied?

No. You are confusing how portage works. The problem is the USE cannot
be satisfied for a pure x86 system. It can only be satisfied for a
mixed or a ~x86 system. On this logic the USE is masked until it can
be satisfied on a pure x86 system. So if libdvdnav goes stable, feel
free to file a bug to remove the dvdnav USE-mask from the x86 profile. 

> I'm finding this a little confusing, having never dabbled this deep in 
> masking before.

Don't blame you. AFAIK this is something not covered in the Gentoo
Handbook. 

> I can the line you refer to in /usr/portage/profiles/base/package.use.mask, 
> it says:
> media-video/mplayer cpudetection custom-cpuopts bindist dvdnav
>
> I assume this means "cpudetection custom-cpuopts bindist dvdnav" are "not 
> allowed" and that adding "-dvdnav" to my own mask would override that, 
> saying "-dvdnav" is not allowed, or "force dvdnav"?

Yeah. I think of it as "removing dvdnav from the mask". Of course,
notice that someone else pointed out my mistake: the file should be
/etc/portage/profile/package.use.mask

HTH, 

W

-- 
A bunch of functions were sitting in a bar. 

Someone ran in and yelled, "the DIFFERENTIAL is coming!" And the
entire bar scattered, except for one.

The differential came in, looked him up and looked him down. The
function replied with contempt: "I am e to the x!"

The differential grinned: "I am d/dy."
Sortir en Pantoufles: up 743 days, 16:38

Reply via email to