Merge remote branch 'overlays-gentoo-org/master' into prefix
authorFabian Groffen <grobian@gentoo.org>
Mon, 12 Apr 2010 18:07:18 +0000 (20:07 +0200)
committerFabian Groffen <grobian@gentoo.org>
Mon, 12 Apr 2010 18:07:18 +0000 (20:07 +0200)
Conflicts:
bin/repoman
pym/portage/const.py
pym/portage/data.py

Keep PORTAGE_USERNAME and PORTAGE_GROUPNAME in, since in Prefix these
have been variable for a long time.

12 files changed:
1  2 
bin/isolated-functions.sh
bin/repoman
pym/_emerge/EbuildFetcher.py
pym/portage/__init__.py
pym/portage/const.py
pym/portage/data.py
pym/portage/dbapi/bintree.py
pym/portage/dbapi/vartree.py
pym/portage/package/ebuild/config.py
pym/portage/package/ebuild/doebuild.py
pym/portage/util/__init__.py
pym/portage/versions.py

Simple merge
diff --cc bin/repoman
index dad60c6967e0a92a27b284c64c2cd7d53bdf5aca,23fcd4da81c996b8826f2c7ca0a4e0c0edd515ca..80d85c20c3138ecefe3bcd13dec76d122d9ec614
@@@ -37,18 -35,15 +35,19 @@@ from stat import S_ISDI
  if not hasattr(__builtins__, "set"):
        from sets import Set as set
  
 -try:
 -      import portage
 -except ImportError:
 -      from os import path as osp
 -      sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
 -      import portage
 +
 +# for an explanation on this logic, see pym/_emerge/__init__.py
 +import os
 +import sys
 +if os.environ.__contains__("PORTAGE_PYTHONPATH"):
 +      sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
 +else:
 +      sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), "pym"))
 +import portage
 +
  portage._disable_legacy_globals()
  from portage import os
+ from portage import subprocess_getstatusoutput
  from portage import _encodings
  from portage import _unicode_encode
  from portage import StringIO
Simple merge
Simple merge
index 005da7179ac18b6780c5e6a153e65460f51ba3f9,2c5e233f18aaf8c485bed55770b683e88f93a668..da101a458ad53731316be9538d8e310d45b65da7
@@@ -53,11 -40,11 +53,11 @@@ PROFILE_PATH             = "etc/make.pr
  MAKE_DEFAULTS_FILE       = PROFILE_PATH + "/make.defaults"  # FIXME: not used
  DEPRECATED_PROFILE_FILE  = PROFILE_PATH + "/deprecated"
  
- # variables used with target_root (these need to be absolute, but not
+ # variables used with targetroot (these need to be absolute, but not
  # have a leading '/' since they are used directly with os.path.join)
 -VDB_PATH                 = "var/db/pkg"
 -CACHE_PATH               = "var/cache/edb"
 -PRIVATE_PATH             = "var/lib/portage"
 +VDB_PATH                 = EPREFIX_LSTRIP + "/" + "var/db/pkg"
 +CACHE_PATH               = EPREFIX_LSTRIP + "/" + "var/cache/edb"
 +PRIVATE_PATH             = EPREFIX_LSTRIP + "/" + "var/lib/portage"
  WORLD_FILE               = PRIVATE_PATH + "/world"
  WORLD_SETS_FILE          = PRIVATE_PATH + "/world_sets"
  CONFIG_MEMORY_FILE       = PRIVATE_PATH + "/config"
@@@ -72,15 -59,12 +72,15 @@@ PORTAGE_PYM_PATH         = PORTAGE_BASE
  LOCALE_DATA_PATH         = PORTAGE_BASE_PATH + "/locale"  # FIXME: not used
  EBUILD_SH_BINARY         = PORTAGE_BIN_PATH + "/ebuild.sh"
  MISC_SH_BINARY           = PORTAGE_BIN_PATH + "/misc-functions.sh"
 -SANDBOX_BINARY           = "/usr/bin/sandbox"
 -FAKEROOT_BINARY          = "/usr/bin/fakeroot"
 -BASH_BINARY              = "/bin/bash"
 -MOVE_BINARY              = "/bin/mv"
 +SANDBOX_BINARY           = BPREFIX + "/usr/bin/sandbox"
 +FAKEROOT_BINARY          = BPREFIX + "/usr/bin/fakeroot"
 +BASH_BINARY              = PORTAGE_BASH
 +MOVE_BINARY              = PORTAGE_MV
- PRELINK_BINARY           = EPREFIX + "/usr/sbin/prelink"
+ PRELINK_BINARY           = "/usr/sbin/prelink"
  
- PORTAGE_GROUPNAME        = os.environ.get("PORTAGE_GROUPNAME", portagegroup)
- PORTAGE_USERNAME         = os.environ.get("PORTAGE_USERNAME", portageuser)
++PORTAGE_GROUPNAME        = portagegroup
++PORTAGE_USERNAME         = portageuser
 +
  INVALID_ENV_FILE         = "/etc/spork/is/not/valid/profile.env"
  REPO_NAME_FILE           = "repo_name"
  REPO_NAME_LOC            = "profiles" + "/" + REPO_NAME_FILE
index c0278626b632113f0c1bbb638a012fa55df2b3a6,00fbec42710175dcb54a3280f8a1c9056f027320..ebe8e39911ca68bf2d15ad0607121bdc8bdc8257
@@@ -3,7 -3,6 +3,7 @@@
  # Distributed under the terms of the GNU General Public License v2
  
  import os, sys, pwd, grp, platform
- from portage.const import PORTAGE_GROUPNAME, PORTAGE_USERNAME ,rootuid, EPREFIX
++from portage.const import PORTAGE_GROUPNAME, PORTAGE_USERNAME, rootuid, EPREFIX
  
  import portage
  portage.proxy.lazyimport.lazyimport(globals(),
@@@ -110,20 -98,25 +110,25 @@@ except KeyError
  else:
        userpriv_groups = [portage_gid]
        if secpass >= 2:
-               # Get a list of group IDs for the portage user. Do not use
-               # grp.getgrall() since it is known to trigger spurious
-               # SIGPIPE problems with nss_ldap.
-               try:
-                       from subprocess import getstatusoutput
-               except ImportError:
-                       from commands import getstatusoutput
-               mystatus, myoutput = getstatusoutput("id -G %s" % PORTAGE_USERNAME)
-               if mystatus == os.EX_OK:
-                       for x in myoutput.split():
-                               try:
-                                       userpriv_groups.append(int(x))
-                               except ValueError:
-                                       pass
-                               del x
-                       userpriv_groups = list(set(userpriv_groups))
-               del getstatusoutput, mystatus, myoutput
+               class _LazyUserprivGroups(portage.proxy.objectproxy.ObjectProxy):
+                       def _get_target(self):
+                               global userpriv_groups
+                               if userpriv_groups is not self:
+                                       return userpriv_groups
+                               userpriv_groups = _userpriv_groups
+                               # Get a list of group IDs for the portage user. Do not use
+                               # grp.getgrall() since it is known to trigger spurious
+                               # SIGPIPE problems with nss_ldap.
+                               mystatus, myoutput = \
 -                                      portage.subprocess_getstatusoutput("id -G %s" % 'portage')
++                                      portage.subprocess_getstatusoutput("id -G %s" % PORTAGE_USERNAME)
+                               if mystatus == os.EX_OK:
+                                       for x in myoutput.split():
+                                               try:
+                                                       userpriv_groups.append(int(x))
+                                               except ValueError:
+                                                       pass
+                                       userpriv_groups[:] = sorted(set(userpriv_groups))
+                               return userpriv_groups
+ 
+               _userpriv_groups = userpriv_groups
+               userpriv_groups = _LazyUserprivGroups()
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge