From: Fabian Groffen Date: Mon, 12 Apr 2010 18:07:18 +0000 (+0200) Subject: Merge remote branch 'overlays-gentoo-org/master' into prefix X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=173875dcfe628018572c96cc1a0b14fcc444248c;p=portage.git Merge remote branch 'overlays-gentoo-org/master' into prefix 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. --- 173875dcfe628018572c96cc1a0b14fcc444248c diff --cc bin/repoman index dad60c696,23fcd4da8..80d85c20c --- a/bin/repoman +++ b/bin/repoman @@@ -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 diff --cc pym/portage/const.py index 005da7179,2c5e233f1..da101a458 --- a/pym/portage/const.py +++ b/pym/portage/const.py @@@ -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 diff --cc pym/portage/data.py index c0278626b,00fbec427..ebe8e3991 --- a/pym/portage/data.py +++ b/pym/portage/data.py @@@ -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()