os.environ["FEATURES"] = os.environ.get("FEATURES", "") + " -noauto"
os.environ["PORTAGE_CALLER"]="ebuild"
-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
+from os import environ as ose
+from os import path as osp
+if ose.__contains__("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, ose["PORTAGE_PYTHONPATH"])
+else:
+ sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp. realpath(__file__))), "pym"))
+import portage
from portage import os
+ from portage import _encodings
+ from portage import _shell_quote
+ from portage import _unicode_decode
+ from portage import _unicode_encode
if not opts.ignore_default_opts:
default_opts = portage.settings.get("EBUILD_DEFAULT_OPTS", "").split()
eval $(portageq envvar -v FEATURES FETCHCOMMAND GENTOO_MIRRORS \
PORTAGE_BIN_PATH PORTAGE_GPG_DIR \
PORTAGE_NICENESS PORTAGE_RSYNC_EXTRA_OPTS PORTAGE_TMPDIR PORTDIR \
- http_proxy ftp_proxy EPREFIX PORTAGE_USER PORTAGE_GROUP)
- SYNC http_proxy ftp_proxy)
++ SYNC http_proxy ftp_proxy \
++ EPREFIX PORTAGE_USER PORTAGE_GROUP)
DISTDIR="${PORTAGE_TMPDIR}/emerge-webrsync"
export http_proxy ftp_proxy
#Discover the uid and gid of the portage user/group
try:
- portage_uid = pwd.getpwnam(PORTAGE_USERNAME)[2]
- portage_gid = grp.getgrnam(PORTAGE_GROUPNAME)[2]
- portage_uid=pwd.getpwnam("portage")[2]
- portage_gid=grp.getgrnam("portage")[2]
++ portage_uid=pwd.getpwnam(PORTAGE_USERNAME)[2]
++ portage_gid=grp.getgrnam(PORTAGE_GROUPNAME)[2]
if secpass < 1 and portage_gid in os.getgroups():
secpass=1
except KeyError:
eapi_is_supported, merge, os, selinux, StringIO, \
unmerge, _encodings, _parse_eapi_ebuild_head, _os_merge, \
_shell_quote, _split_ebuild_name_glep55, _unicode_decode, _unicode_encode
- from portage.const import EBUILD_SH_ENV_FILE, EBUILD_SH_BINARY, \
- INVALID_ENV_FILE, MISC_SH_BINARY, EPREFIX, EPREFIX_LSTRIP
+ from portage.const import EBUILD_SH_ENV_FILE, EBUILD_SH_ENV_DIR, \
- EBUILD_SH_BINARY, INVALID_ENV_FILE, MISC_SH_BINARY
++ EBUILD_SH_BINARY, INVALID_ENV_FILE, MISC_SH_BINARY, \
++ EPREFIX, EPREFIX_LSTRIP
from portage.data import portage_gid, portage_uid, secpass, \
uid, userpriv_groups
from portage.dbapi.virtual import fakedbapi