Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 198294

Summary: multilib useflag ignored by portage for x11-drivers/ati-drivers and x11-drivers/nvidia-drivers
Product: Gentoo Linux Reporter: Michael Wharmby <mtwharmby>
Component: New packagesAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: RESOLVED DUPLICATE    
Severity: major    
Priority: High    
Version: 2007.0   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge --info

Description Michael Wharmby 2007-11-06 20:47:44 UTC
Both x11-drivers/ati-drivers and x11-drivers/nvidia-drivers have multilib useflag which calls in dependency of emul-linux-x86-compat.
However multilib useflag is masked in profile linux-default/amd64/2007.0 and thus cannot call in dependency even when set in make.conf or at command line

Reproducible: Always

Steps to Reproduce:
From clean system build with xorg-server emerged (VIDEO_CARDS=fglrx)
1.Run "USE=amd64 multilib" emerge -pv ati-drivers

Actual Results:  
The mulitlib useflag is ignored entirely by portage and the emul-linux-x86-compat dependency implied by the multilib useflag (see below) is not pulled in.

Expected Results:  
The ebuild for ati-drivers contains:
RDEPEND="x11-base/xorg-server
        !x11-apps/ati-drivers-extra
        >=app-admin/eselect-1.0.9
        app-admin/eselect-opengl
        =virtual/libstdc++-3.3*
        amd64? ( multilib? ( app-emulation/emul-linux-x86-compat ) )
        acpi? (
                x11-apps/xauth
                sys-power/acpid
        )
        >=sys-apps/portage-2.1.1-r1"
Hence expect that on ARCH amd64 with USE=multilib, ebuild should pull in emul-linux-x86-compat as a dependency.
Likewise for nvidia drivers:
COMMON="x11-base/xorg-server
	multilib? ( app-emulation/emul-linux-x86-xlibs )
	kernel_FreeBSD? ( !media-video/nvidia-freebsd )
	!app-emulation/emul-linux-x86-nvidia
	!x11-drivers/nvidia-legacy-drivers"
Thus on ARCH * with USE=multilib, emul-linux-x86-compat should be pulled in as a dependency.

Since multilib has been deprecated as a useflag (see comment by Genone on http://forums.gentoo.org/viewtopic.php?p=4466561), would it be sensible to remove it entirely from portage and where it is still being used as a useflag (for instance the ati-drivers and nvidia-drivers), an alternative solution be used?  It is not honoured by portage as a useflag, as the attached emerge --info shows (multilib is set in my make.conf, but is ignored by portage).

One option suggested by i92guboj (see forums post above) is to append the following to multilib using ebuilds.  The example works in the ati-drivers-8.39.4 ebuild when appended after RDEPEND:

if [ ! "${MULTILIB_ABIS/amd64/}" == "${MULTILIB_ABIS}" ]
then
    RDEPEND="${RDEPEND}
        app-emulation/emul-linux-x86-compat"
fi

I've not been able to test this on a non-multilib profile, but have done on a default-linux/amd64/2007.0 profile.
Also I have been unable to test this for the nvidia-drivers ebuilds.
Comment 1 Michael Wharmby 2007-11-06 20:50:00 UTC
Created attachment 135368 [details]
emerge --info

emerge --info.  Note multilib flag does not appear in useflags, even though it is set in make.conf
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2007-11-06 22:01:16 UTC

*** This bug has been marked as a duplicate of bug 187683 ***