Quicky description of the bug is that A was being defined to '' in the 
ebuild env; due to the fact ebuild.sh automatically stomps the current 
passed in env with the previous env (it's bad, we know it already :), 
this resulted in A getting auto set to a bad value, and the value 
lingering.

Attached is a patch that fixes this particular issue.  Old bug from 
the looks of it also, since that declare's been there for quite some 
time.

Already in svn also, posting for those interested, and those affected.
~harring
Index: bin/ebuild.sh
===================================================================
--- bin/ebuild.sh       (revision 2082)
+++ bin/ebuild.sh       (working copy)
@@ -1733,8 +1733,10 @@
 
 unset E_IUSE E_DEPEND E_RDEPEND E_CDEPEND E_PDEPEND
 
-declare -r T P PN PV PVR PR A D EBUILD EMERGE_FROM O PPID FILESDIR
-declare -r PORTAGE_TMPDIR
+for x in T P PN PV PVR PR A D EBUILD EMERGE_FROM O PPID FILESDIR 
PORTAGE_TMPDIR; do
+       [[ ${!x-UNSET_VAR} != UNSET_VAR ]] && declare -r ${!x}
+done
+unset x
 
 # Turn of extended glob matching so that g++ doesn't get incorrectly matched.
 shopt -u extglob

Attachment: pgpLkmFz6MzPi.pgp
Description: PGP signature

Reply via email to