diff options
-rw-r--r-- | pym/portage/dbapi/vartree.py | 11 | ||||
-rw-r--r-- | pym/portage/util.py | 14 |
2 files changed, 24 insertions, 1 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 3ce61424a..3b11823b6 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -1594,11 +1594,16 @@ class dblink(object): # get the real paths for the libs preserve_paths = [x for x in old_contents if os.path.basename(x) in preserve_libs] del old_contents, old_libs, mylibs, preserve_libs - + # inject files that should be preserved into our image dir import shutil + missing_paths = [] for x in preserve_paths: print "injecting %s into %s" % (x, srcroot) + if not os.path.exists(os.path.join(destroot, x.lstrip(os.sep))): + print "%s does not exist so can't be preserved" + missing_paths.append(x) + continue mydir = os.path.join(srcroot, os.path.dirname(x).lstrip(os.sep)) if not os.path.exists(mydir): os.makedirs(mydir) @@ -1616,6 +1621,10 @@ class dblink(object): shutil.copy2(os.path.join(destroot, x.lstrip(os.sep)), os.path.join(srcroot, x.lstrip(os.sep))) + preserve_paths = [x for x in preserve_paths if x not in missing_paths] + + del missing_paths + # keep track of the libs we preserved self.vartree.dbapi.plib_registry.register(self.mycpv, self.settings["SLOT"], counter, preserve_paths) diff --git a/pym/portage/util.py b/pym/portage/util.py index 39abcd81e..deda2e2c3 100644 --- a/pym/portage/util.py +++ b/pym/portage/util.py @@ -1058,3 +1058,17 @@ def new_protect_filename(mydest, newmd5=None): os.path.join(real_dirname, last_pfile)) == newmd5: return old_pfile return new_pfile + +def getlibpaths(): + """ Return a list of paths that are used for library lookups """ + + # the following is based on the information from ld.so(8) + rval = os.environ.get("LD_LIBRARY_PATH", "").split(":") + rval.extend(grabfile("/etc/ld.so.conf")) + rval.append("/usr/lib") + rval.append("/lib") + + rval = [normalize_path(x) for x in rval if x != ""] + + return rval + |