#
import os, sys
-try:
- import portage
-except ImportError:
- from os import path as osp
+
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
import dispatch_conf
# the right files).
import os.path, os, sys
-try:
- import portage
-except ImportError:
- from os import path as osp
+
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
def CONTENTScheck(path):
try:
# $Id$
import os,sys,errno
-try:
- import portage.locks
-except ImportError:
- from os import path as osp
+
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage.locks
+import portage.locks
from portage.const import EPREFIX
from stat import *
from random import *
import atexit, commands, os, re, shutil, stat, sys
-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 path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
+ sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
+import portage
from portage import dispatch_conf, const
from portage.process import find_binary
os.environ["FEATURES"] = os.environ.get("FEATURES", "") + " -noauto"
os.environ["PORTAGE_CALLER"]="ebuild"
-try:
- import portage
-except ImportError:
- from os import path as osp
+
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
import portage.util, portage.const
import portage.dep
from optparse import OptionParser, OptionValueError
import re
-try:
- import portage
-except ImportError:
- from os import path as osp
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
import portage.const, portage.exception, portage.output
class WorldHandler(object):
# Portage Emerge bits
# $Id$
-try:
- import _emerge
-except ImportError:
- from os import path as osp
- import sys
+
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import _emerge
+import _emerge
if __name__ == "__main__":
import sys
print "!!! Invalid command line options!\n"
usage(1)
-try:
- import portage
-except ImportError:
- from os import path as osp
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
+
try:
portage.env_update(makelinks)
except IOError, e:
-#!/usr/bin/env python
+#!@PYTHON@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
import os,sys,re
-try:
- import portage
-except ImportError:
- from os import path as osp
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
from stat import *
from portage.output import *
import os,sys
os.environ["PORTAGE_CALLER"]="fixpackages"
-try:
- import portage
-except ImportError:
- from os import path as osp
+
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
mysettings = portage.settings
mytrees = portage.db
import os
import sys
-try:
- import portage
-except ImportError:
- from os import path as osp
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
from portage.output import *
import os,sys
os.environ["FEATURES"]="mirror cvs"
-try:
- import portage
-except ImportError:
- from os import path as osp
+
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
+
import portage.util
def cstrip(mystr,mychars):
# $Id$
import sys, os
-try:
- import portage
-except ImportError:
- from os import path as osp
+
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
a=portage.pkgsplit(sys.argv[1])
if a:
# handling, like if portage.exception.PermissionDenied is raised when
# constructing the legacy global config instance.
os.environ["PORTAGE_LEGACY_GLOBALS"] = "false"
+
+ # for an explanation on this logic, see pym/_emerge/__init__.py
+ from os import path as osp
+ if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+ else:
+ sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
import portage
+
del os.environ["PORTAGE_LEGACY_GLOBALS"]
try:
- try:
- reload(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
+ reload(portage)
if uses_root:
sys.argv[2] = portage.root
retval = function(sys.argv[2:])
import errno, signal, sys, os
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
+ sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
+
def quickpkg_main(options, args, eout):
from portage import catsplit, dep_expand, flatten, isvalidatom, xpak
from portage.dep import use_reduce, paren_reduce
# $Id$
import sys, os
-try:
- import portage
-except ImportError:
- from os import path as osp
+
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
+
import re, portage.const
__candidatematcher__ = re.compile("^[0-9]+: \\*\\*\\* emerge ")
from sets import Set as set
os.environ["PORTAGE_LEGACY_GLOBALS"] = "false"
-try:
- import portage
-except ImportError:
- from os import path as osp
+
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
+
del os.environ["PORTAGE_LEGACY_GLOBALS"]
-try:
- from repoman.checks import run_checks
-except ImportError:
- from os import path as osp
- sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), 'pym'))
- from repoman.checks import run_checks
+from repoman.checks import run_checks
import portage.checksum
import portage.const
print "xpak: expecting three arguments."
sys.exit(1)
-try:
- import portage.xpak
-except ImportError:
- from os import path as osp
+# for an explanation on this logic, see pym/_emerge/__init__.py
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage.xpak
+import portage.xpak
portage.xpak.xpak(sys.argv[1],sys.argv[2])
import os, stat
os.environ["PORTAGE_LEGACY_GLOBALS"] = "false"
-try:
- import portage
-except ImportError:
- from os import path as osp
+
+# Portage module path logic (Prefix way)
+# In principle we don't want to be dependant on the environment
+# (PYTHONPATH) and/or python hardcoded default search path.
+# (PYTHONPATH). Since Gentoo patches Python to include Portage's python
+# modules in the default search path, any Gentoo python interpreter is
+# an enemy for Portage once it is not installed in the path hardcoded
+# during Python compilation. This is the case when bootstrapping
+# Prefix Portage on a Gentoo Linux system, or when bootstrapping Prefix
+# Portage using another Prefix instance on the same system. For this
+# reason we ignore the entire search path, and allow a backdoor for
+# developers via the PORTAGE_PYTHONPATH variable.
+from os import path as osp
+if os.environ.contains("PORTAGE_PYTHONPATH"):
+ sys.path.insert(0, os.environ["PORTAGE_PYTHONPATH"])
+else:
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
+import portage
+
del os.environ["PORTAGE_LEGACY_GLOBALS"]
from portage import digraph, portdbapi
from portage.const import NEWS_LIB_PATH, CACHE_PATH, PRIVATE_PATH, USER_CONFIG_PATH, GLOBAL_CONFIG_PATH