Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 109922 - eselect-opengl points GL headers at emul libraries on amd64.
Summary: eselect-opengl points GL headers at emul libraries on amd64.
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Jeremy Huddleston (RETIRED)
URL:
Whiteboard:
Keywords:
: 114450 115029 123834 124703 127390 129030 129963 (view as bug list)
Depends on:
Blocks: 112004 138766
  Show dependency tree
 
Reported: 2005-10-20 07:16 UTC by Ben Skeggs
Modified: 2006-08-29 02:43 UTC (History)
16 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Fixes multilib issue (eselect.opengl.patch,520 bytes, patch)
2005-11-22 23:54 UTC, Roy Marples (RETIRED)
Details | Diff
change lib32 -> lib (fix-eselect.patch,430 bytes, patch)
2006-02-09 22:41 UTC, Jeff Smith
Details | Diff
Detailed analysis of the problem with a patch that tells you if it a problem for you. (eselect.opengl,1.82 KB, text/plain)
2006-03-02 21:57 UTC, Tres 'RiverRat' Melton
Details
opengl.eselect includefix (opengl.eselect-includefix.diff,5.80 KB, patch)
2006-03-03 03:15 UTC, Herbie Hopkins (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ben Skeggs 2005-10-20 07:16:43 UTC
I ran into issues merging xorg-server-0.99.2 and discovered that the updated
glxproto.h that was required existed in /usr/lib64/opengl/xorg-x11/include, but
the /usr/include/GL/glxproto.h was pointing at
/usr/lib32/opengl/xorg-x11/include/glxproto.h.

After hacking-up eselect-opengl to not change the include symlinks when
${libdir} is lib32, everything was linked as expected.

Since x11-proto/glproto installs glx headers into lib64 on amd64, eselect should
link these files from there and not from the emul opengl headers.
Comment 1 konsti 2005-10-30 06:36:31 UTC
Indeed. Temporarily unmerging emul-linux-x86-xlibs before emerge xorg-server
helps also ;)
Comment 2 Roy Marples (RETIRED) gentoo-dev 2005-11-22 23:54:44 UTC
Created attachment 73418 [details, diff]
Fixes multilib issue

Not sure if this is the correct fix, but it works for me
Comment 3 Jakub Moc (RETIRED) gentoo-dev 2005-12-04 08:13:36 UTC
*** Bug 114450 has been marked as a duplicate of this bug. ***
Comment 4 Herbie Hopkins (RETIRED) gentoo-dev 2005-12-04 09:23:33 UTC
This is at least partially complicated by the fact that eselects list_libdirs()
no longer lists 'lib' for amd64, see bug #114274.
Comment 5 Gabriel Devenyi 2005-12-17 14:09:16 UTC
Is this going to be fixed? I have to keep switching /etc/env.d/03opengl between 32 and 64bit to get mplayer and mplayer-bin to work
Comment 6 Herbie Hopkins (RETIRED) gentoo-dev 2005-12-28 08:25:56 UTC
*** Bug 115029 has been marked as a duplicate of this bug. ***
Comment 7 Herbie Hopkins (RETIRED) gentoo-dev 2006-02-09 17:54:06 UTC
This should be fixed with eselect-1.0, please test.
Comment 8 Ben Skeggs 2006-02-09 19:15:54 UTC
Doesn't appear to be fixed here.  The symlinks in /usr/include/GL are pointing at /usr/lib32/opengl/, which is a symlink to /emul/linux/x86/usr/lib/opengl...

araqiel ~ # eselect opengl set xorg-x11
Switching to xorg-x11 OpenGL interface... done
araqiel ~ # ls -l /usr/include/GL/gl*.h
-rw-r--r-- 1 root root  10381 2005-12-29 05:16 /usr/include/GL/gle.h
-rw-r--r-- 1 root root 469821 2005-12-28 15:48 /usr/include/GL/glew.h
lrwxrwxrwx 1 root root     40 2006-02-10 14:15 /usr/include/GL/glext.h -> /usr/lib32/opengl/global/include/glext.h
-rw-r--r-- 1 root root   4308 2006-02-09 05:35 /usr/include/GL/glfbdev.h
lrwxrwxrwx 1 root root     39 2006-02-10 14:15 /usr/include/GL/gl.h -> /usr/lib32/opengl/xorg-x11/include/gl.h
-rw-r--r-- 1 root root  77761 2006-02-09 05:35 /usr/include/GL/gl_mangle.h
-rw-r--r-- 1 root root  16668 2006-02-09 05:35 /usr/include/GL/glu.h
-rw-r--r-- 1 root root   3315 2006-02-09 05:35 /usr/include/GL/glu_mangle.h
-rw-r--r-- 1 root root   4109 2006-02-09 16:20 /usr/include/GL/glutf90.h
-rw-r--r-- 1 root root  30192 2006-02-09 16:20 /usr/include/GL/glut.h
-rw-r--r-- 1 root root  41495 2005-12-28 15:48 /usr/include/GL/glxew.h
lrwxrwxrwx 1 root root     41 2006-02-10 14:15 /usr/include/GL/glxext.h -> /usr/lib32/opengl/global/include/glxext.h
lrwxrwxrwx 1 root root     40 2006-02-10 14:15 /usr/include/GL/glx.h -> /usr/lib32/opengl/xorg-x11/include/glx.h
-rw-r--r-- 1 root root   4257 2006-02-09 05:28 /usr/include/GL/glxint.h
-rw-r--r-- 1 root root   2031 2006-02-09 05:35 /usr/include/GL/glx_mangle.h
lrwxrwxrwx 1 root root     42 2006-02-10 14:15 /usr/include/GL/glxmd.h -> /usr/lib32/opengl/xorg-x11/include/glxmd.h
lrwxrwxrwx 1 root root     45 2006-02-10 14:15 /usr/include/GL/glxproto.h -> /usr/lib32/opengl/xorg-x11/include/glxproto.h
lrwxrwxrwx 1 root root     46 2006-02-10 14:15 /usr/include/GL/glxtokens.h -> /usr/lib32/opengl/xorg-x11/include/glxtokens.h
araqiel ~ # ls -l /usr/lib32/opengl
total 12
drwxr-xr-x 3 root root 4096 2005-11-28 00:18 ati
drwxr-xr-x 3 root root 4096 2005-02-15 02:41 global
drwxr-xr-x 6 root root 4096 2006-02-09 16:40 nvidia
lrwxrwxrwx 1 root root   39 2005-12-28 17:40 xorg-x11 -> /emul/linux/x86/usr/lib/opengl/xorg-x11
araqiel ~ # emerge -pv eselect eselect-opengl

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] app-admin/eselect-1.0  USE="bash-completion -doc" 0 kB
[ebuild   R   ] app-admin/eselect-opengl-1.0.3  0 kB

Total size of downloads: 0 kB

Comment 9 Jose Marino 2006-02-09 19:26:07 UTC
I have the same symlinks as previous comment (#8).
However eselect-1.0 seems to have fixed all my previous issues.

Now I can run both x86 and amd64 3D applications. And I'm also able to compile 'x11-misc/3ddesktop-0.2.9'.
Comment 10 Jeff Smith 2006-02-09 22:41:51 UTC
Created attachment 79409 [details, diff]
change lib32 -> lib

Currently using eselect-1.0_rc2, but this bug has been bothering me for awhile.
Several files in /usr/include/GL/*.h are pointing to the (outdated) /usr/lib32/[stuff] versions, which breaks xorg compilation (among other things).

This patch fixes things for me, by changing "lib32" to just "lib".
Comment 11 Robert Ögren 2006-02-11 05:51:52 UTC
I also still observe the header symlink issue. I think this might be due to the fact that my system was installed with the 2004.3 profile and later upgraded to 2005.0 and 2005.1, so /usr/lib64 is a symlink to /usr/lib, not the other way around.

Isn't this something that needs to be changed in eselect-opengl in the location pointed out by Roy Marples' patch? I've successfully used a modified version of it for a while.

On the other hand, if it is incorrect to have lib64 as a symlink, then maybe eselect or its ebuild could check for this and refuse to continue with a clear error message?
Comment 12 Tres 'RiverRat' Melton 2006-03-02 15:30:40 UTC
*** Bug 124703 has been marked as a duplicate of this bug. ***
Comment 13 Tres 'RiverRat' Melton 2006-03-02 21:57:37 UTC
Created attachment 81175 [details]
Detailed analysis of the problem with a patch that tells you if it a problem for you.
Comment 14 Herbie Hopkins (RETIRED) gentoo-dev 2006-03-03 03:15:25 UTC
Created attachment 81190 [details, diff]
opengl.eselect includefix

> I don't know the proper solution because I can't readily see
> how the script picks which of the 3 libdirs returned by 
> $(list_libdirs) to use.

The chunk of code the sets up the includes is actually executed once for each libdir and the latter run overwrites the first. Therefore whichever libdir is passed last is the one that's used. If you have lib64 as a symlink then only lib, lib32 are passed in that order and so the includes end up pointing to lib32.

This patch may look scary but all I've actually done is move the chuck of code that sets up the includes outside of the for loop so that it only gets executed once, for the default libdir. Please test.
Comment 15 Herbie Hopkins (RETIRED) gentoo-dev 2006-03-03 08:08:43 UTC
*** Bug 123834 has been marked as a duplicate of this bug. ***
Comment 16 Tres 'RiverRat' Melton 2006-03-03 13:15:38 UTC
Thanks Herbs.  Works here with either lib -> lib64 or lib64 -> lib.
Comment 17 Tres 'RiverRat' Melton 2006-03-04 00:20:22 UTC
Bug #111877 is a duplicate of this bug but I didn't close it cause I'm just an AT and didn't think I should.  Plus there are a lot more details there than here.
Comment 18 Jeremy Huddleston (RETIRED) gentoo-dev 2006-03-15 13:15:13 UTC
We don't want to depend on DEFAULT_ABI or LIBDIR_<ABI> or anything like that in userland.

emul-linux-x86-xlibs should not install header files.  Does anyone know why those are in there?  If I don't hear a good reason, I'm just going to remove them.
Comment 19 Herbie Hopkins (RETIRED) gentoo-dev 2006-03-17 08:29:48 UTC
Just committed emul-linux-x86-xlibs-7.0 which does not install any opengl headers. Note that both nvidia-glx and eselect-opengl also installs header files in lib32, although probably just the same ones that go in lib64.
Comment 20 Jeremy Huddleston (RETIRED) gentoo-dev 2006-03-19 03:34:32 UTC
Ok, closing... thanks herbs.
Comment 21 Donnie Berkholz (RETIRED) gentoo-dev 2006-03-24 22:31:45 UTC
*** Bug 127390 has been marked as a duplicate of this bug. ***
Comment 22 Jakub Moc (RETIRED) gentoo-dev 2006-04-06 07:26:05 UTC
*** Bug 129030 has been marked as a duplicate of this bug. ***
Comment 23 C Sincock 2006-04-06 07:51:21 UTC
ok so this bug was resolved and fixed weeks ago but people are still being
affected by it because the fix is in the emul-linux-x86-xlibs-7.0 package,
and at least with the xorg-x11 ebuild that I tried merging last night 
there is no dependency which causes that package to want to get updated.
perhaps a !<emul-linux-x86-xlibs-7.0 
dependency should be added to the modular x ebuilds or the eselect-opengl ebuild.
(i forget if that is the right syntax)
Comment 24 Jakub Moc (RETIRED) gentoo-dev 2006-04-14 10:34:19 UTC
*** Bug 129963 has been marked as a duplicate of this bug. ***