Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 339777 - sys-devel/autogen-5.11.1 has invalid shebang for /usr/bin/autoopts-config
Summary: sys-devel/autogen-5.11.1 has invalid shebang for /usr/bin/autoopts-config
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-05 02:45 UTC by Dan Wallis
Modified: 2010-12-08 02:30 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 Dan Wallis 2010-10-05 02:45:32 UTC
>>> Completed installing autogen-5.11.1 into /home/dan/.gentoo/var/tmp/portage/sys-devel/autogen-5.11.1/image/home/dan/.gentoo/

strip: i686-pc-linux-gnu-strip --strip-unneeded -R .comment
   usr/lib/libopts.so.25.8.2
   usr/bin/autogen
   usr/bin/xml2ag
   usr/bin/columns
   usr/bin/getdefs
   usr/lib/libopts.a
ecompressdir: bzip2 -9 /home/dan/.gentoo/usr/share/man
removing executable bit: home/dan/.gentoo/usr/lib/libopts.la
 * QA Notice: the following files use invalid (possible non-prefixed) shebangs:
 *   home/dan/.gentoo/usr/bin/autoopts-config:/old-home/ROOT/usr/local/bin/bash (in PATH but target not found)
 * ERROR: sys-devel/autogen-5.11.1 failed:
 *   Aborting due to QA concerns: invalid shebangs found
 * 
 * Call stack:
 *   misc-functions.sh, line 1563:  Called install_qa_check
 *   misc-functions.sh, line   96:  Called install_qa_check_prefix
 *   misc-functions.sh, line  731:  Called die
 * The specific snippet of code:
 *   		die "Aborting due to QA concerns: invalid shebangs found"
 * 
 * If you need support, post the output of 'emerge --info =sys-devel/autogen-5.11.1',
 * the complete build log and the output of 'emerge -pqv =sys-devel/autogen-5.11.1'.
 * The complete build log is located at '/home/dan/.gentoo/var/tmp/portage/sys-devel/autogen-5.11.1/temp/build.log'.
 * The ebuild environment file is located at '/home/dan/.gentoo/var/tmp/portage/sys-devel/autogen-5.11.1/temp/environment'.
 * S: '/home/dan/.gentoo/var/tmp/portage/sys-devel/autogen-5.11.1/work/autogen-5.11.1'



$ head -n 1 $EPREFIX/usr/bin/autoopts-config
#!/home/dan/.gentoo/bin/bash

$ head -n 1 $EPREFIX/var/tmp/portage/sys-devel/autogen-5.11.1/image/$EPREFIX/usr/bin/autoopts-config 
#! /old-home/ROOT/usr/local/bin/bash
Comment 1 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-10-05 03:36:28 UTC
This is by design. Portage will automatically convert shebangs but you have old-home/ROOT/usr/local/bin/bash in your PATH before $EPREFIX/bin so it chooses that bash to use and then fails because it isn't in $EPREFIX

Do you REALLY need /old-home/ROOT/usr/local/bin/bash in your PATH ahead of $EPREFIX/bin/bash?
Comment 2 Fabian Groffen gentoo-dev 2010-10-05 07:33:47 UTC
If I recall correctly, the message actually means that the file being checked is in PATH (hence should have a valid interpreter), but the referenced interpreter isn't found.

darkside can be right here, though
Comment 3 Dan Wallis 2010-10-05 20:55:27 UTC
/old-home/ROOT/usr/local/bin isn't in my PATH, and /old-home doesn't exist on my system.

$ grep -P \\bPATH= $EPREFIX/var/tmp/portage/sys-devel/autogen-5.11.1/temp/environment 
declare -x PATH="/home/dan/.gentoo/usr/lib/ccache/bin:/home/dan/.gentoo/usr/lib/portage/bin/ebuild-helpers:/home/dan/.gentoo/usr/sbin:/home/dan/.gentoo/usr/bin:/home/dan/.gentoo/sbin:/home/dan/.gentoo/bin:/home/dan/.gentoo/opt/bin:/home/dan/.gentoo/usr/i686-pc-linux-gnu/gcc-bin/4.2.4:/usr/bin:/bin"

$ echo $PATH
/home/dan/bin:/home/dan/.gentoo/usr/bin:/home/dan/.gentoo/bin:/home/dan/.gentoo/opt/bin:/home/dan/.gentoo/usr/sbin:/home/dan/.gentoo/sbin:/home/dan/.gentoo/usr/i686-pc-linux-gnu/gcc-bin/4.2.4:/home/dan/.gentoo/usr/games/bin:/usr/bin:/bin


It looks like it comes with a broken shebang out-of-the-box, and new in version 5.11.1.

$ ebuild $EPREFIX/usr/portage/sys-devel/autogen/autogen-5.11.1.ebuild clean unpack
[...]
$ cd $EPREFIX/var/tmp/portage/sys-devel/autogen-5.11.1/work/autogen-5.11.1
$ grep -rF old-home *
agen5/opts.h:/* extracted from /old-home/bkorb/ag/ag/autoopts/opthead.tpl near line 408 */
agen5/opts.c:/* extracted from /old-home/bkorb/ag/ag/autoopts/optcode.tpl near line 493 */
agen5/opts.c:/* extracted from /old-home/bkorb/ag/ag/autoopts/optmain.tpl near line 890 */
agen5/opts.c:/* extracted from /old-home/bkorb/ag/ag/autoopts/optcode.tpl near line 625 */
autoopts/test/defs.in:vgopts='--suppressions=/old-home/bkorb/ag/valgrind.conf --leak-check=yes'
autoopts/autoopts-config.in:#! /old-home/ROOT/usr/local/bin/bash
autoopts/mk-autoopts-pc.in:#! /old-home/ROOT/usr/local/bin/bash
columns/opts.h:/* extracted from /old-home/bkorb/ag/ag/autoopts/opthead.tpl near line 408 */
columns/opts.c:/* extracted from /old-home/bkorb/ag/ag/autoopts/optcode.tpl near line 493 */
columns/opts.c:/* extracted from /old-home/bkorb/ag/ag/autoopts/optcode.tpl near line 625 */
config/bootstrap.shlib:    # vgopts='--suppressions=/old-home/bkorb/ag/valgrind.conf --leak-check=yes'
doc/autogen.info-2:     - reading file /old-home/bkorb/ag/ag/doc/.default_testrc
doc/autogen.info-2:    #  DO NOT EDIT THIS SECTION OF /old-home/bkorb/ag/ag/doc/ag-texi-2047.d/.ag-Pl1V46/genshellopt.sh
doc/autogen.info-2: - reading file /old-home/bkorb/ag/ag/columns/.columnsrc
doc/autogen.info-1: - reading file /old-home/bkorb/ag/ag/agen5/.autogenrc


$ ebuild $EPREFIX/usr/portage/sys-devel/autogen/autogen-5.10.2.ebuild clean unpack
[...]
$ cd $EPREFIX/var/tmp/portage/sys-devel/autogen-5.10.2/work/autogen-5.10.2/autoopts
$ head -n 1 autoopts-config.in mk-autoopts-pc.in 
==> autoopts-config.in <==
#! /bin/bash

==> mk-autoopts-pc.in <==
#! /bin/bash


Perhaps this is something for upstream to fix? It's surprising this didn't hold up the stabilisation of =sys-devel/autogen-5.11.1 (see bug 335703).
Comment 4 Bruce Korb 2010-10-05 21:39:25 UTC
That "shebang" is supposed to be configured to be CONFIG_SHELL.
In my case, that is from /usr/local/bin which gets symlinked
off to /old-home/ROOT/... where re-installs won't bother things.  :)

Based on the description:
> $ head -n 1 $EPREFIX/usr/bin/autoopts-config
> #!/home/dan/.gentoo/bin/bash

it looks like the config shell is in someone's home directory.
/home/dan/.gentoo/bin should probably not be in a PATH used
to make an official build.
Comment 5 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-10-05 22:00:51 UTC
Dan, Sorry for questioning you. It is a wierd error that only pops up if people have invalid PATHs.

(In reply to comment #4)
> That "shebang" is supposed to be configured to be CONFIG_SHELL.
> In my case, that is from /usr/local/bin which gets symlinked
> off to /old-home/ROOT/... where re-installs won't bother things.  :)

Thanks for the enlightenment. I just found the info in the INSTALL file too :)

> it looks like the config shell is in someone's home directory.
> /home/dan/.gentoo/bin should probably not be in a PATH used
> to make an official build.
> 

It actually could be anywhere for Gentoo Prefix.

---

@toolchain: This is a problem for Gentoo Linux too:

%% pwd
/var/tmp/portage/sys-devel/autogen-5.11.1/image/usr/bin
%% head -n1 *
==> autogen <==
ELF>0r@@??@8

==> autoopts-config <==
#! /old-home/ROOT/usr/local/bin/bash

==> columns <==
ELF>?@@K@8

==> getdefs <==
ELF> @@?}@8

==> xml2ag <==
ELF>@@@?^@8

Please fix sys-devel/autogen for Gentoo Linux & Gentoo Prefix by exporting CONFIG_SHELL, which will work for ~arch portage (bug 308835). This version of autogen can't go stable until portage 2.1.9 goes stable though after that fix is made.
Comment 6 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-10-05 22:07:15 UTC
(In reply to comment #5)

> Please fix sys-devel/autogen for Gentoo Linux & Gentoo Prefix by exporting
> CONFIG_SHELL, which will work for ~arch portage (bug 308835). This version of

I should add, this is in theory. I did not test it.
Comment 7 SpanKY gentoo-dev 2010-10-06 02:03:45 UTC
your PATH and CONFIG_SHELL have no meaning.  read the source file as it appears in the tarball:
$ head -n1 autoopts/autoopts-config.in 
#! /old-home/ROOT/usr/local/bin/bash
Comment 8 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-10-06 13:54:22 UTC
(In reply to comment #7)
> your PATH and CONFIG_SHELL have no meaning.  read the source file as it appears
> in the tarball:
> $ head -n1 autoopts/autoopts-config.in 
> #! /old-home/ROOT/usr/local/bin/bash
> 

I did. I also assumed that comment #4 was correct because he is listed as the upstream maintainer ;)

(In reply to comment #4)
> That "shebang" is supposed to be configured to be CONFIG_SHELL.
Comment 9 SpanKY gentoo-dev 2010-10-06 16:19:18 UTC
considering autoopts-config.in is included in the dist tarball and not regenerated during `./configure && make`, this would indicate a bug in autogen itself -- either in the `autogen` step or the dist steps.

if the shebang is supposed to be CONFIG_SHELL, then the .in file should read:
#! @CONFIG_SHELL@
that way config.status can do its job and replace it
Comment 10 Bruce Korb 2010-10-06 16:33:42 UTC
(In reply to comment #9)
> if the shebang is supposed to be CONFIG_SHELL, then the .in file should read:

Clearly, I was off in the weeds somewhere.  I'll get to it as soon
as I can.  A GSOC student just added a number of template files to
dramatically improve the quality of generated documents; so I will
go learn how to make a GIT branch from an old tag.  The sources are
a tad unstable right now.  I separated template from other sources.
Comment 11 SpanKY gentoo-dev 2010-12-08 02:30:01 UTC
fixed with upstream's 5.11.3