--- Oportage-2.0.49-r2/pym/portage.py 2003-08-30 01:08:33.000000000 -0500 +++ portage.py 2003-08-31 16:54:36.000000000 -0500 @@ -1,9 +1,9 @@ # portage.py -- core Portage functionality # Copyright 1998-2003 Daniel Robbins, Gentoo Technologies, Inc. # Distributed under the GNU Public License v2 -# $Header: /home/cvsroot/gentoo-src/portage/pym/portage.py,v 1.337 2003/08/22 17:09:37 carpaski Exp $ +# $Header: /mnt/alpha/cvsroot/kvh/portage-df/portage.py,v 1.29 2003/08/31 21:54:36 kvh Exp $ -VERSION="2.0.49-r2" +VERSION="2.0.49-r2-k1" from stat import * from commands import * @@ -1092,6 +1092,38 @@ else: return 16 # interrupted by signal + +#KVH +def returnFileSizeInDir(mydir,myfile): + "If myfile found in mydir, return size of myfile; otherwise 0" + + st_size=0 + try: + mystat=os.stat(mydir+"/"+myfile) + st_size=mystat[ST_SIZE] + except (OSError,IOError),e: + st_size=0 + return st_size + +#KVH +def findFileInDistDirs(myfile): + "Check all directories in DISTDIRS for myfile" + + mydir="" + + if settings["DISTDIRS"]=="": + return mydir + +# Traverse through all directories + for d in settings["DISTDIRS"].split(":"): +# print "^^^ Checking for "+myfile+" in "+d + st_size=returnFileSizeInDir(d,myfile) + if st_size: + mydir=d + break + + return mydir + def fetch(myuris, listonly=0, fetchonly=0): "fetch files. Will use digest file if available." if ("mirror" in features) and ("nomirror" in settings["RESTRICT"].split()): @@ -1180,12 +1212,37 @@ if listonly: sys.stderr.write(loc+" ") continue - try: - mystat=os.stat(settings["DISTDIR"]+"/"+myfile) - if mydigests!=None and mydigests.has_key(myfile): - #if we have the digest file, we know the final size and can resume the download. - if mystat[ST_SIZE] "+dest + try: + os.symlink(target,dest) + except Exception, e: +# Should not happen since we clear out the directory above. +# May already exists...should likely ignore errors here... + print "^^^ Error : "+dest+ " already exists! (ignore)" + return 1 @@ -1294,8 +1368,11 @@ """generates digest file if missing. Assumes all files are available. If overwrite=0, the digest will only be created if it doesn't already exist.""" +# KVH - Change basedir to SRC_LINKS +# basedir=settings["DISTDIR"]+"/" + basedir=settings["SRC_LINKS"]+"/" + # archive files - basedir=settings["DISTDIR"]+"/" digestfn=settings["FILESDIR"]+"/digest-"+settings["PF"] # portage files -- p(ortagefiles)basedir @@ -1521,11 +1598,27 @@ retval=spawnebuild(actionmap[mydo]["dep"],actionmap,debug,alwaysdep) if retval: return retval - # spawn ebuild.sh + +#KVH + settings["ODISTDIR"]=settings["DISTDIR"] + settings["DISTDIR"]=settings["SRC_LINKS"] + +# print "^^^ Current [DISTDIR] "+settings["DISTDIR"] + # spawn ebuild.sh mycommand="/usr/sbin/ebuild.sh " - return spawn(mycommand + mydo,debug, - actionmap[mydo]["args"][0], - actionmap[mydo]["args"][1]) + ret=spawn(mycommand + mydo,debug, + actionmap[mydo]["args"][0], + actionmap[mydo]["args"][1]) + + settings["DISTDIR"]=settings["ODISTDIR"] + + return ret + + # spawn ebuild.sh +# mycommand="/usr/sbin/ebuild.sh " +# return spawn(mycommand + mydo,debug, +# actionmap[mydo]["args"][0], +# actionmap[mydo]["args"][1]) def doebuild(myebuild,mydo,myroot,debug=0,listonly=0,fetchonly=0): global settings