env_update: always respect makelinks=False
authorZac Medico <zmedico@gentoo.org>
Mon, 29 Aug 2011 16:22:17 +0000 (09:22 -0700)
committerZac Medico <zmedico@gentoo.org>
Mon, 29 Aug 2011 16:22:17 +0000 (09:22 -0700)
This ensures that the env-update --no-ldconfig option is always
respected. Also, in order to preserve behavior during downgrades for
an env_update call in vartree.py, remove the makelinks=False for
downgrades since it wasn't respected anyway when lib path mtimes had
changed, and we don't want it to behave differently in this case now
that makelinks=False is always respected. Note that the unconditional
use of the ldconfig -X option (from bug #373341) since commit
e1347f9c0dd5ef5ff1a50d6b136b0648efb8a6ca may also come into play for
downgrades.

pym/portage/dbapi/vartree.py
pym/portage/util/env_update.py

index 6281f7ee590595eda66fb6d0d3594131bb9de96a..afcbceb55ee007492a6c2b76e79c10a54f4161e6 100644 (file)
@@ -3815,7 +3815,7 @@ class dblink(object):
                self.vartree.dbapi._fs_lock()
                try:
                        #update environment settings, library paths. DO NOT change symlinks.
-                       env_update(makelinks=(not downgrade),
+                       env_update(
                                target_root=self.settings['ROOT'], prev_mtimes=prev_mtimes,
                                contents=contents, env=self.settings,
                                writemsg_level=self._display_merge)
index c670ded94626ef7e9e79b3db1217f7818e7ec17d..17316635134c861766e674511fe2e20af5f8b62a 100644 (file)
@@ -147,7 +147,7 @@ def env_update(makelinks=1, target_root=None, prev_mtimes=None, contents=None,
                        raise
                oldld = None
 
-       ld_cache_update=False
+       ldsoconf_update = False
 
        newld = specials["LDPATH"]
        if (oldld != newld):
@@ -158,7 +158,7 @@ def env_update(makelinks=1, target_root=None, prev_mtimes=None, contents=None,
                for x in specials["LDPATH"]:
                        myfd.write(x + "\n")
                myfd.close()
-               ld_cache_update=True
+               ldsoconf_update = True
 
        # Update prelink.conf if we are prelink-enabled
        if prelink_capable:
@@ -229,11 +229,8 @@ def env_update(makelinks=1, target_root=None, prev_mtimes=None, contents=None,
                        prev_mtimes[x] = newldpathtime
                        mtime_changed = True
 
-       if mtime_changed:
-               ld_cache_update = True
-
        if makelinks and \
-               not ld_cache_update and \
+               not mtime_changed and \
                contents is not None:
                libdir_contents_changed = False
                for mypath, mydata in contents.items():
@@ -252,7 +249,7 @@ def env_update(makelinks=1, target_root=None, prev_mtimes=None, contents=None,
                ldconfig = find_binary("%s-ldconfig" % settings["CHOST"])
 
        # Only run ldconfig as needed
-       if (ld_cache_update or makelinks) and ldconfig and not eprefix:
+       if makelinks and ldconfig and not eprefix:
                # ldconfig has very different behaviour between FreeBSD and Linux
                if ostype == "Linux" or ostype.lower().endswith("gnu"):
                        # We can't update links if we haven't cleaned other versions first, as