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

Bug 150529

Summary: eselecting nvidia driver breaks portage
Product: Gentoo Linux Reporter: Jon <holy.smoking.floorboards.batman>
Component: [OLD] UnspecifiedAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: VERIFIED WORKSFORME    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge --info
/etc/profile.env

Description Jon 2006-10-08 18:36:44 UTC
Bottom line, I rebuild my kernel and, consequently, re-emerged my nvidia-drivers package only to find that I kept getting the following error:

!!! Invalid token (not "=") Unable
Traceback (most recent call last):
  File "/usr/bin/emerge", line 4049, in ?
    emerge_main()
  File "/usr/bin/emerge", line 3768, in emerge_main
    settings, trees, mtimedb = load_emerge_config()
  File "/usr/bin/emerge", line 3679, in load_emerge_config
    trees = portage.create_trees(trees=trees, **kwargs)
  File "/usr/lib/portage/pym/portage.py", line 6780, in create_trees
    config_incrementals=portage_const.INCREMENTALS)
  File "/usr/lib/portage/pym/portage.py", line 1045, in __init__
    env_d = getconfig(
  File "/usr/lib/portage/pym/portage_util.py", line 283, in getconfig
    raise portage_exception.ParseError(str(e)+" in "+mycfg)
portage_exception.ParseError: "ParseError: Invalid token (not '='): /etc/profile.env: line 39 in /etc/profile.env"

After getting this error, if I try to emerge ANYTHING I get the error again (Immediately). A search through the forums revealed that running env-update.sh (NOT env-update) would fix the problem and I can emerge things again. After tinkering around with emerging nvidia-drivers (which continually result with this error problem) and re-emerging eselect, I realized that the problem can be recreated by either:

a) Emerging nvidia-drivers (the error comes up right after the 'Switching to xorg-x11 OpenGL interface' line (meaning right after the eselect command)
or
b) Running eselect opengl set nvidia

This is on my amd64 system with:

x11-drivers/nvidia-drivers-1.0.8774  USE="dlloader"
app-admin/eselect-1.0.2  USE="bash-completion doc"

Downgrading to nvidia-drivers-1.0.8762-r1 results with the same problem. As a side note, the reason I have to run env-update.sh INSTEAD OF env-update is that env-update will results with the error above while env-update.sh will not. I will post my emerge --info as an attachment (as to not make this post any longer) Also, I am using gentoo-sources-2.6.16-r8 but will try upgrading (doing it now) to 2.6.17-gentoo-r8 and will post if any change is discovered.
Comment 1 Jon 2006-10-08 18:37:53 UTC
Created attachment 99171 [details]
emerge --info
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2006-10-08 23:38:18 UTC
Post the contents of /etc/env.d/03opengl and eselect-opengl version.
Comment 3 Jon 2006-10-09 05:53:11 UTC
/etc/env.d/03opengl

# Configuration file for eselect
# This file has been automatically generated.
LDPATH="//usr/lib32/opengl/nvidia/lib://usr/lib64/opengl/nvidia/lib"
OPENGL_PROFILE="nvidia"

eselect

app-admin/eselect-1.0.2  USE="bash-completion doc"
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2006-10-09 11:05:06 UTC
You still didn't post eselect-opengl version.

emerge -pv eselect-opengl

And I don't see anything wrong with the above file. What's in /etc/profile.env line 39?
Comment 5 Jon 2006-10-09 11:12:01 UTC
My apologies, I didn't realize that there was a separate ebuild for opengl. Here's that info:

app-admin/eselect-opengl-1.0.3

Interestingly, there IS no line 39. It stops at 37. Maybe I have a corrupt profile.env then? I'll attach a copy of it to this bug.
Comment 6 Jon 2006-10-09 11:14:18 UTC
Created attachment 99218 [details]
/etc/profile.env
Comment 7 Jakub Moc (RETIRED) gentoo-dev 2006-10-09 11:28:11 UTC
Eh, I don't see anything obviously wrong there. You still have the problem with the above profile.env?
Comment 8 Jon 2006-10-09 11:36:39 UTC
Still do. Whats more is that something with my portage isn't being updated because whenever I emerge anything, emerge reads that I have an old version of nvidia-drivers which need to be unmerged, which it tries to do until it gets to selecting the new driver and I'm then thrown into this catch 22 again. Now, I had gotten this problem after doing two things. First: rebuilding my kernel (is there anything there that could be causing a conflict?) Secondly, after updating my system. (I don't think that eselect, eselect-opengl or nvidia-drivers were updated here, but where could I check this?)
Comment 9 Jon 2006-10-09 20:02:51 UTC
Ok. I don't know if this will set any alarms off or not, but about a month ago I gave XGL a try and wasn't very pleased with the effort I had to go through to get games to run properly so I haven't used it since (I don't use it now, but it is installed) With that said, I restarted my computer a while ago and got this error:

export: 'cgwd:=': not a valid identifier
/etc/profile.env: line 39: syntax error near unexpected token 'Unable='''

cgwd being the window manager I was using for XGL. Might this be connected even it I'm not currently using it?
Comment 10 Jakub Moc (RETIRED) gentoo-dev 2006-10-10 01:33:37 UTC
Indeed, looks like you've found it. XGL has left some cruft behind itself. Find the files and delete them.
Comment 11 Jon 2006-10-10 10:00:31 UTC
I have proceeded to remove all of xgl and cgwd from my computer (compiz remains, but I haven't seen any errors that indicate that compiz may be a problem). I have rebooted and restarted X several times with no luck. I have searched through the forums and through the web. I was able to fix the problem, although I don't know if I fixed it directly or as a consequence of. I first removed eselect-opengl from my system and then removed nvidia-drivers. With that done (in that order) I re-emerged both builds and it works fine. By preventing eselect-opengl to run during the unmerge process, I allowed nvidia-drivers to finish cleaning themselves before allowing them to re-install. I don't know how 'sound' this process actually is (compared to what it could be) and I'm still not sure what broke on me specifically, but my computer does seem to be running as it should.
Comment 12 Jon 2006-10-10 10:08:47 UTC
Great, 5 minutes later and I've already reopened the bug. Apparently my above post will only solve the problem temporarily, but unmerging the nvidia-drivers later on will still break the environment. I've also some new lines of error to pass along. If I try to run glxinfo, I get:

Error: API mismatch: the NVIDIA kernel module has the version 1.0-8774, but
this client has the version 1.0-9625.  Please make sure that the kernel
module and all NVIDIA driver components have the same version.
NVIDIA: Direct rendering failed; attempting indirect rendering.

(followed by the usual info glxinfo spits out)
Comment 13 Jakub Moc (RETIRED) gentoo-dev 2006-10-10 10:24:28 UTC
(In reply to comment #12)
> Error: API mismatch: the NVIDIA kernel module has the version 1.0-8774, but
> this client has the version 1.0-9625.  Please make sure that the kernel
> module and all NVIDIA driver components have the same version.
> NVIDIA: Direct rendering failed; attempting indirect rendering.

Completely unrelated, please don't recycle this bug. Plus make sure you've unmerged nvidia-kernel/nvidia-glx, rmmod nvidia, delete the module from /lib/modules/<kernel-version> and emerge nvidia-drivers.

Can't reproduce the problem and you didn't post any broken file above, the only borkage is related to XGL that we don't distribute at all.

Comment 14 Jon 2006-10-10 21:07:51 UTC
My apologies for taking up space here. When I first came across this problem I thought it was bug-related, but after a lot of digging it turned out to be something else alltogether. If you're interested in seeing where it went, here's the post:

http://forums.gentoo.org/viewtopic-t-506147-highlight-.html


Thanks for your help regardless!
Comment 15 Jakub Moc (RETIRED) gentoo-dev 2006-10-11 01:39:27 UTC
OK, seems all solved now, so closing the bug. Thanks. :)