Merge remote-tracking branch 'overlays-gentoo-org/master' into prefix
authorFabian Groffen <grobian@gentoo.org>
Sat, 14 May 2011 13:22:16 +0000 (15:22 +0200)
committerFabian Groffen <grobian@gentoo.org>
Sat, 14 May 2011 13:22:16 +0000 (15:22 +0200)
Conflicts:
pym/portage/util/_dyn_libs/LinkageMapELF.py

13 files changed:
1  2 
bin/ebuild-helpers/doins
bin/ebuild.sh
bin/repoman
cnf/make.globals
man/emerge.1
pym/_emerge/actions.py
pym/_emerge/depgraph.py
pym/_emerge/main.py
pym/portage/const.py
pym/portage/dbapi/vartree.py
pym/portage/package/ebuild/config.py
pym/portage/package/ebuild/doebuild.py
pym/portage/util/_dyn_libs/LinkageMapELF.py

Simple merge
diff --cc bin/ebuild.sh
Simple merge
diff --cc bin/repoman
Simple merge
Simple merge
diff --cc man/emerge.1
Simple merge
index 1672d4753d1f9a5082fea2cb6ad06d29cb9fb1e6,215203a2fe89e1748a08cb3ad7dea7ed261ace12..80d872d2c329627888ba3e07fff1606357cf1c50
@@@ -28,10 -28,11 +28,11 @@@ from portage import o
  from portage import digraph
  from portage import _unicode_decode
  from portage.cache.cache_errors import CacheError
 -from portage.const import GLOBAL_CONFIG_PATH, NEWS_LIB_PATH
 +from portage.const import GLOBAL_CONFIG_PATH, NEWS_LIB_PATH, EPREFIX
  from portage.const import _ENABLE_DYN_LINK_MAP, _ENABLE_SET_CONFIG
  from portage.dbapi.dep_expand import dep_expand
- from portage.dep import Atom, extended_cp_match, _get_useflag_re
+ from portage.dbapi._expand_new_virt import expand_new_virt
+ from portage.dep import Atom, extended_cp_match
  from portage.exception import InvalidAtom
  from portage.output import blue, bold, colorize, create_color_func, darkgreen, \
        red, yellow
Simple merge
Simple merge
index 7df2ecbd957dc67d5cd437d6745dbccd2908b3eb,98f3dac6df977caade89553a00c1fb8555e679bd..60575200031cb3d4943536e69a05e0744b78309c
@@@ -132,13 -88,13 +132,14 @@@ EBUILD_PHASES            = ("pretend", 
  SUPPORTED_FEATURES       = frozenset([
                             "assume-digests", "binpkg-logs", "buildpkg", "buildsyspkg", "candy",
                             "ccache", "chflags", "collision-protect", "compress-build-logs",
-                            "digest", "distcc", "distlocks", "fakeroot",
+                            "digest", "distcc", "distlocks", "ebuild-locks", "fakeroot",
                             "fail-clean", "fixpackages", "force-mirror", "getbinpkg",
                             "installsources", "keeptemp", "keepwork", "fixlafiles", "lmirror",
 +                            "macossandbox", "macosprefixsandbox", "macosusersandbox",
                             "metadata-transfer", "mirror", "multilib-strict", "news",
-                            "noauto", "noclean", "nodoc", "noinfo", "noman", "nostrip",
-                            "notitles", "parallel-fetch", "parse-eapi-ebuild-head",
+                            "noauto", "noclean", "nodoc", "noinfo", "noman",
+                            "nostrip", "notitles", "parallel-fetch", "parallel-install",
+                            "parse-eapi-ebuild-head",
                             "prelink-checksums", "preserve-libs",
                             "protect-owned", "python-trace", "sandbox",
                             "selinux", "sesandbox", "severe", "sfperms",
index b88fbe5bb8f24683552eeb42cdde938a78957cc1,cdae3407758e867c31ba41de340e9e6ead1ed82d..581300fc5fc7be01bfc9f9bf2897fbb5cd144260
@@@ -162,19 -163,11 +167,21 @@@ class vardbapi(dbapi)
  
                self._linkmap = None
                if _ENABLE_DYN_LINK_MAP:
 -                      self._linkmap = LinkageMap(self)
 +                      chost = self.settings.get('CHOST')
 +                      if not chost:
 +                              chost = 'lunix?' # this happens when profiles are not available
 +                      if chost.find('darwin') >= 0:
 +                              self._linkmap = LinkageMapMachO(self)
 +                      elif chost.find('interix') >= 0 or chost.find('winnt') >= 0:
 +                              self._linkmap = LinkageMapPeCoff(self)
 +                      elif chost.find('aix') >= 0:
 +                              self._linkmap = LinkageMapXCoff(self)
 +                      else:
 +                              self._linkmap = LinkageMap(self)
                self._owners = self._owners_db(self)
  
+               self._cached_counter = None
        def getpath(self, mykey, filename=None):
                # This is an optimized hotspot, so don't use unicode-wrapped
                # os module and don't use os.path.join().
Simple merge
index b9c022ff18caa1a8ca52e15f875e2329d8af3dce,fe86a7a896821c8f1738069b61985a8ac4b5ea09..73b77528857a939a639fa575f2591307852eea88
@@@ -179,12 -199,24 +200,24 @@@ class LinkageMapELF(object)
                # have to call scanelf for preserved libs here as they aren't 
                # registered in NEEDED.ELF.2 files
                plibs = set()
-               if self._dbapi._plib_registry and self._dbapi._plib_registry.getPreservedLibs():
-                       args = [EPREFIX + "/usr/bin/scanelf", "-qF", "%a;%F;%S;%r;%n"]
-                       for items in self._dbapi._plib_registry.getPreservedLibs().values():
+               if preserve_paths is not None:
+                       plibs.update(preserve_paths)
+               if self._dbapi._plib_registry and \
+                       self._dbapi._plib_registry.hasEntries():
+                       for cpv, items in \
+                               self._dbapi._plib_registry.getPreservedLibs().items():
+                               if exclude_pkgs is not None and cpv in exclude_pkgs:
+                                       # These preserved libs will either be unmerged,
+                                       # rendering them irrelevant, or they will be
+                                       # preserved in the replacement package and are
+                                       # already represented via the preserve_paths
+                                       # parameter.
+                                       continue
                                plibs.update(items)
-                               args.extend(os.path.join(root, x.lstrip("." + os.sep)) \
-                                       for x in items)
+               if plibs:
 -                      args = ["/usr/bin/scanelf", "-qF", "%a;%F;%S;%r;%n"]
++                      args = [EPREFIX + "/usr/bin/scanelf", "-qF", "%a;%F;%S;%r;%n"]
+                       args.extend(os.path.join(root, x.lstrip("." + os.sep)) \
+                               for x in plibs)
                        try:
                                proc = subprocess.Popen(args, stdout=subprocess.PIPE)
                        except EnvironmentError as e: