Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 269722 - Eselect bugs: doc fails and eselect boost set ... fails
Summary: Eselect bugs: doc fails and eselect boost set ... fails
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-13 16:17 UTC by Robert Bradbury
Modified: 2009-05-23 20:41 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Bradbury 2009-05-13 16:17:38 UTC
eselect with doc USE option fails.
eselect boost set xyzzy fails.

Reproducible: Always

Steps to Reproduce:
1. emerge eselect (with doc option set); or
2. eselect boost set 1.3.0 | eselect boost set 0.3 fail


Actual Results:  
emerge eselect with (doc), fails with:
/usr/bin/rst2html.py < README > README.html
Traceback (most recent call last):
  File "/usr/bin/rst2html.py", line 19, in <module>
    from docutils.core import publish_cmdline, default_description
ImportError: No module named docutils.core
make: *** [README.html] Error 1

eselect boost set xyzzy fails with:
Removing symlinks from old version
!!! Error: ${link}" exists and isn't a symlink
Killed



Expected Results:  
Emerge eselect with doc option should be tested so it works.
Eselect with set option should give a more informative error message, in particular it should not say "${link}" which provides little information as to the problem file.
Comment 1 Sebastian Luther (few) 2009-05-13 17:34:16 UTC
Does python-updater fix your compilation problem? I left a comment on bug 269517 for your second problem.
Comment 2 Robert Bradbury 2009-05-14 07:28:30 UTC
Running python-updater (which I have done -- it takes 3 hours and produces a 6.6 MB output file) does not fix the problem.

I have determined what part of the problem is.  The developer(s)/testers must be using a different shell.  Because the eselect script contains instances of functions of the form "ec_....-xyzzy".  The dash "-" is not a valid character in symbols in bash.  Changing it to an underscore "_" allows one to get past that problem.  There is still another problem that I haven't found yet.  I suspect the "${link}" error message is also due to the use of a different shell.

Please have the developer(s) use and test shell scripts in "bash-3.2_p39" rather than whatever they are using.
Comment 3 Sebastian Luther (few) 2009-05-14 07:36:35 UTC
I am using app-shells/bash-3.2_p39 and it works for me. Have you checked the suggestions on bug 269517?
Comment 4 Robert Bradbury 2009-05-14 07:46:52 UTC
Ok, I found out that the "${link}" error is coming from /usr/share/eselect/modules/boost.eselect.

I modified the file enough to find out that "$link" is /usr/include/boost.  I suspect that this is yet another bug involving which shell is being used.

It turns out that that was a directory.  If I rename it and do a "eselect set boost 1" it works!  (yea!).

However the use of an non-standard shell to do development is highly undesirable.  I note that /usr/bin/eselect starts with "#!/bin/bash".  I also note that there is an attempt to set "shopt -s extglob" and "shopt -s expand_aliases".  I am not sure what they do.  I suspect they do not work in the version of bash I am using or else they may be improper options to get the behavior that the scripts seem to be written for.

I would suggest that this bug not be labeled as resolved until eselect modules are released that correct these problems.
Comment 5 Łukasz Michalik 2009-05-14 08:15:39 UTC
https://bugs.gentoo.org/show_bug.cgi?id=269517#c14 strongly applies here.  Upgrade path was broken for whoever was blindly using $some-overlay, and didn't know what he was doing.  If you have any of those version installed you have to uninstall them, clean up /usr/lib{,64} and /usr/include and install boost from ::gentoo.
Comment 6 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2009-05-18 20:01:52 UTC
bash-3.2_p39 has some nasty drawbacks. Did you try bash-3.2_p48, Robert?
Comment 7 Ulrich Müller gentoo-dev 2009-05-23 20:41:36 UTC
Could you please provide us with the following information (and then reopen this bug):

- output of "emerge --info"
- installed versions of:
    app-admin/eselect
    app-admin/eselect-boost
    dev-python/docutils


(In reply to comment #2)
> Because the eselect script contains instances of functions of the form
> "ec_....-xyzzy".  The dash "-" is not a valid character in symbols in bash.

Hyphens are (and have always been) valid characters in bash function names. They are forbidden in variable names and in POSIX mode only.

(In reply to comment #4)
> However the use of an non-standard shell to do development is highly
> undesirable.

Sorry, but what are you talking about here?

> I also note that there is an attempt to set "shopt -s extglob" and "shopt -s
> expand_aliases".  I am not sure what they do.  I suspect they do not work in
> the version of bash I am using or else they may be improper options to get
> the behavior that the scripts seem to be written for.

Again, these options exist since a long time (bash-2.05b has both of them).