Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 297887 - Circular dependency with app-admin/eselect-opengl: media-libs/mesa, x11-proto/glproto
Summary: Circular dependency with app-admin/eselect-opengl: media-libs/mesa, x11-proto...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo X packagers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-12-22 10:26 UTC by Duncan
Modified: 2009-12-23 04:37 UTC (History)
0 users

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


Attachments
emerge --info (emerge.info,4.87 KB, text/plain)
2009-12-22 10:29 UTC, Duncan
Details
mesa-7.7_rc3 build log (media-libs:mesa-7.7_rc3:20091223-031739.log,111.45 KB, text/plain)
2009-12-23 03:22 UTC, Duncan
Details
glproto log (x11-proto:glproto-1.4.10:20091223-033539.log,4.16 KB, text/plain)
2009-12-23 03:45 UTC, Duncan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Duncan 2009-12-22 10:26:18 UTC
I'm building a new ~x86 image for my netbook (atom 270 so 32-bit), on my ~amd64 machine, using the gentoo/amd64 chroot guide and starting from an i686 stage-3.  Thus, all non-stage3 packages are new -- there's no previous X in the image to update from.  I should mention I'm also running the x11 overlay (for the live xf86..ati driver to get opengl on my hd4650 on my main machine, same portage tree and overlays on both, tho different portage config, of course).

Everything went fine with the configuration and @system update and rebuild, plus a few misc command-line @world additions such as gentoolkit, ccache, mc, etc.

Then I try emerging xorg-server.  All goes fine until I reach mesa.  Mesa fails with a bunch of warnings and errors all indicating the same thing, that it can't find GL/glxproto.  Here's a sample (this one's the first warning, later ones are errors, same missing glxproto, however):

/usr/bin/makedepend: warning:  clientattrib.c (reading glxclient.h, line 54): cannot find include file "GL/glxproto.h"                                                                                                                  
        not in GL/glxproto.h                                                                                        
        not in GL/glxproto.h                                                                                        
        not in /usr/lib/gcc/i686-pc-linux-gnu/4.4.2/include/GL/glxproto.h                                           
        not in /usr/lib/gcc/i686-pc-linux-gnu/4.4.2/include-fixed/GL/glxproto.h                                     
        not in ./GL/glxproto.h                                                                                      
        not in ../../../include/GL/glxproto.h                                                                       
        not in ../../../include/GL/internal/GL/glxproto.h                                                           
        not in ../../../src/mesa/GL/glxproto.h                                                                      
        not in ../../../src/mesa/glapi/GL/glxproto.h                                                                
        not in /usr/include/drm/GL/glxproto.h                                                                       
        not in /usr/include/GL/glxproto.h                                                                           

But:  equery b glxproto.h
 * Searching for glxproto.h ...
x11-proto/glproto-1.4.10 (/usr/lib/opengl/xorg-x11/include/glxproto.h)

So I rebuild it, and I see this at the end of the (nominally successful) glproto merge:

>>> Original instance of package unmerged safely.

!!! Error: Unrecognized option: xorg-x11
exiting
 * post_pkg_postinst: portage-patches ...                                                                     [ ok ]
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.


That looked like an eselect opengl issue to me, so I tried running it, but naturally, I don't have enough of X (including the mesa that had failed building)  built yet to have a valid profile.

Following the source in the eselect opengl module (chased down using equery f eselect-opengl), I can see it's supposed to setup the missing GL/glxproto.h file, among several others, AND see that is indeed where the "Unrecognized option" error came from, with it dieing just as I suspected, without doing the necessary symlinking

Obviously, the glproto ebuild is calling eselect opengl to update the profile and install the /usr/include/GL/glxproto.h -> ../../lib/opengl/xorg-x11/include/glixproto.h symlink where it can be found by the mesa package, but since mesa isn't yet installed, there's no valid xorg-x11 profile to update, and it exits without creating the symlink.  Then because the symlink isn't there, mesa can't find glxproto.h and fails, so no valid profile is created, and rebuilding glproto again doesn't help, nor does attempting to run eselect opengl manually, because it always bales out without creating the needed symlink.

Solution:  Either eselect-opengl should install the symlinks it can when it's called as it is in glproto, with or without a valid opengl profile, or glproto (and perhaps other packages that now call eselect-opengl) needs to install those symlinks manually, if its call to eselect opengl set --use-old ${OPENGL_DIR} fails.

equery list glproto eselect eselect-opengl mesa
 * Searching for glproto ...
[IP-] [  ] x11-proto/glproto-1.4.10 (0)

 * Searching for eselect ...
[IP-] [ ~] app-admin/eselect-1.2.8 (0)

 * Searching for eselect-opengl ...
[IP-] [ ~] app-admin/eselect-opengl-1.1.1-r2 (0)

 * Searching for mesa ...

emerge --pretend xorg-server

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] media-libs/mesa-7.7_rc3  USE="nptl pic xcb -debug -gallium -motif" VIDEO_CARDS="intel -mach64 -mga -none -r128 -radeon -radeonhd -savage -sis (-sunffb) -tdfx -via"
[ebuild  N    ] x11-base/xorg-server-1.7.3.901-r1  USE="hal nptl xorg -debug -dmx -ipv6 -kdrive -minimal -sdl -tslib"

emerge --info to be attached.  Let me know if you need the versions of any other xorg modules or whatever.
Comment 1 Duncan 2009-12-22 10:29:06 UTC
Created attachment 213734 [details]
emerge --info
Comment 2 Duncan 2009-12-22 11:10:25 UTC
Just a note that after manually creating the symlink, it fails again, now needing glxmd.h, same package, same fix.  After creating it...

mesa builds and merges! =:^)  But the same eselect opengl error triggers... =:^(

Then it's xorg-server's turn... > 25k lines of mostly errors... GL/gl.h (mesa), symlink that, need GL/glext.h (mesa, eselect-opengl), symlink the mesa one, need GL/glxtokens.h (glproto again), symlink it...

xorg-server builds and merges! =:^)  But now the automated
post-xorg-server-merge eselect opengl fails with "Unrecognized option: (none)"!  Duh!  Eselect opengl list still says "(none found)". =:^(  I guess I must have created the symlinks wrong.  Time to go back and check how eselect would have created them, if it wasn't scripted to die first, I guess...

Comment 3 Rémi Cardona (RETIRED) gentoo-dev 2009-12-22 17:49:11 UTC
Please provide build.log for whatever packages fail.

Thanks
Comment 4 Duncan 2009-12-23 03:22:45 UTC
Created attachment 213884 [details]
mesa-7.7_rc3 build log
Comment 5 Duncan 2009-12-23 03:27:12 UTC
mesa log added.  Same problem with 7.6.1_rc4.
Comment 6 Duncan 2009-12-23 03:45:16 UTC
Created attachment 213894 [details]
glproto log

Here's the glproto log.  Note that (just as I described) it merges, but because there's no opengl profile, the call to eselect opengl aborts without creating the symlinks the mesa build is looking for.
Comment 7 Duncan 2009-12-23 04:37:00 UTC
I found the problem!

Note to self:  LDPATH for 32-bit doesn't work when it points to non-existent lib64 dirs!  (I copies one too many /etc/env.d/* config files over from the main 64-bit installation, without editing.)

Fixed that and it seems to be working, so I'm resolving this INVALID.