diff options
author | Daniel Robbins <drobbins@gentoo.org> | 2001-08-07 06:21:21 +0000 |
---|---|---|
committer | Daniel Robbins <drobbins@gentoo.org> | 2001-08-07 06:21:21 +0000 |
commit | 5f03e3885bec14cdaf76053d8128fe8d08d8f60c (patch) | |
tree | 9b5612aa9434b467089ad179074f6e641c7c2d26 /sys-apps | |
parent | fix for handling flaky ebuilds during doebuild() "depend" phase (diff) | |
download | gentoo-2-5f03e3885bec14cdaf76053d8128fe8d08d8f60c.tar.gz gentoo-2-5f03e3885bec14cdaf76053d8128fe8d08d8f60c.tar.bz2 gentoo-2-5f03e3885bec14cdaf76053d8128fe8d08d8f60c.zip |
Portage fix: should now gracefully handle syntax errors in ebuilds, printing
out bash error messages.
Diffstat (limited to 'sys-apps')
-rwxr-xr-x | sys-apps/portage/files/1.5/bin/ebuild.sh | 16 | ||||
-rwxr-xr-x | sys-apps/portage/files/1.5/bin/emerge | 8 | ||||
-rwxr-xr-x | sys-apps/portage/files/1.5/pym/portage.py | 10 |
3 files changed, 25 insertions, 9 deletions
diff --git a/sys-apps/portage/files/1.5/bin/ebuild.sh b/sys-apps/portage/files/1.5/bin/ebuild.sh index 142b5f009688..a634a9d69541 100755 --- a/sys-apps/portage/files/1.5/bin/ebuild.sh +++ b/sys-apps/portage/files/1.5/bin/ebuild.sh @@ -1,7 +1,11 @@ #!/bin/bash -source /etc/profile +source /etc/profile > /dev/null 2>&1 export PATH="/usr/lib/portage/bin:${PATH}" -source /etc/rc.d/config/functions +if [ -e /etc/rc.d/config/functions ] +then + source /etc/rc.d/config/functions > /dev/null 2>&1 +fi + #if no perms are specified, dirs/files will have decent defaults #(not secretive, but not stupid) umask 022 @@ -615,8 +619,12 @@ dyn_help() { #then # source ${PEBUILD} #fi -source ${EBUILD} - +source ${EBUILD} +if [ $? -ne 0 ] +then + #abort if there was a parse problem + exit 1 +fi #this is a little trick to define ${A} if it hasn't been defined yet if [ "${A}" = "" ] then diff --git a/sys-apps/portage/files/1.5/bin/emerge b/sys-apps/portage/files/1.5/bin/emerge index 3872d820038f..04074c63d9db 100755 --- a/sys-apps/portage/files/1.5/bin/emerge +++ b/sys-apps/portage/files/1.5/bin/emerge @@ -53,6 +53,9 @@ class depgraph: mydep={} myebuild=self.db[myroot]["porttree"].getname(mykey) edepend=portage.doebuild(myebuild,"depend",1,edebug) + if edepend==1: + print "!!! emerge aborting." + sys.exit(1) mydep={} if portage.root=="/": mydep["/"]=edepend[0]+" "+edepend[1] @@ -189,8 +192,11 @@ class depgraph: sys.exit(1) def post_emerge(retval=0): - root=portage.root + global myopts print + if "--pretend" in myopts: + sys.exit(retval) + root=portage.root if not os.path.isdir(root+"usr/share/info"): print " "+root+"usr/share/info doesn't exist, skipping info regeneration." elif not os.path.exists("/usr/bin/install-info"): diff --git a/sys-apps/portage/files/1.5/pym/portage.py b/sys-apps/portage/files/1.5/pym/portage.py index 8db5745e28b4..964f1f704320 100755 --- a/sys-apps/portage/files/1.5/pym/portage.py +++ b/sys-apps/portage/files/1.5/pym/portage.py @@ -484,13 +484,15 @@ def doebuild(myebuild,mydo,checkdeps=1,debug=0): if checkdeps: myso=getstatusoutput("/usr/sbin/ebuild.sh depend") if myso[0]!=0: - print "!!! Portage had a problem grabbing dependencies from:" - print "!!!",settings["EBUILD"] - print "!!! bash output was:" print + print + print "!!! Portage had a problem processing this file:" + print "!!!",settings["EBUILD"] + print print myso[1] print - print "!!! doebuild() aborting." + print "!!! aborting." + print return 1 mydeps=string.split(myso[1],"\n") if mydo=="depend": |