Merge remote branch 'overlays-gentoo-org/master' into prefix
authorFabian Groffen <grobian@gentoo.org>
Mon, 26 Jul 2010 15:22:24 +0000 (17:22 +0200)
committerFabian Groffen <grobian@gentoo.org>
Mon, 26 Jul 2010 15:22:24 +0000 (17:22 +0200)
Conflicts:
bin/dispatch-conf

1  2 
bin/dispatch-conf
cnf/make.globals
pym/_emerge/actions.py
pym/_emerge/depgraph.py
pym/_emerge/main.py
pym/portage/const.py
pym/portage/dbapi/vartree.py
pym/portage/dispatch_conf.py
pym/portage/package/ebuild/config.py
pym/portage/package/ebuild/doebuild.py
pym/portage/util/__init__.py

index 63c898b87162a666c51c5f5db5d37ba55a0f9578,fc9cdd513a127025f30587e75768d15e0452352f..54134c1c1c23a3e8337537ed61654adf3a63b8d1
@@@ -36,8 -30,8 +36,9 @@@ import portag
  from portage import os
  from portage import dispatch_conf
  from portage import _unicode_decode
+ from portage.dispatch_conf import diffstatusoutput_len
  from portage.process import find_binary
 +from portage.const import EPREFIX
  
  FIND_EXTANT_CONFIGS  = "find '%s' %s -name '._cfg????_%s' ! -name '.*~' ! -iname '.*.bak' -print"
  DIFF_CONTENTS        = "diff -Nu '%s' '%s'"
@@@ -49,7 -43,7 +50,7 @@@ oldmask = os.umask(0o077
  SCRATCH_DIR = None
  while SCRATCH_DIR is None:
      try:
-         mydir = EPREFIX+"/var/tmp/dispatch-conf."
 -        mydir = "/tmp/dispatch-conf."
++        mydir = EPREFIX+"/tmp/dispatch-conf."
          for x in range(0,8):
              if int(random() * 3) == 0:
                  mydir += chr(int(65+random()*26.0))
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 207eccc46878427d987c92959c598025a08f355a,b4cded266fe683299669add6447a3785236b8ffc..b511807a20d299072c1dd9c07445d9ef521dfa14
@@@ -10,11 -10,11 +10,11 @@@ from __future__ import print_functio
  
  import os, sys, shutil
  try:
-       from subprocess import getoutput as subprocess_getoutput
+     from subprocess import getstatusoutput as subprocess_getstatusoutput
  except ImportError:
-       from commands import getoutput as subprocess_getoutput
+     from commands import getstatusoutput as subprocess_getstatusoutput
  
 -import portage
 +import portage, portage.const
  from portage.localization import _
  
  RCS_BRANCH = '1.1.1'
@@@ -25,12 -25,27 +25,27 @@@ RCS_MERGE = "rcsmerge -p -r" + RCS_BRAN
  
  DIFF3_MERGE = "diff3 -mE '%s' '%s' '%s' > '%s'"
  
+ def diffstatusoutput_len(cmd):
+     """
+     Execute the string cmd in a shell with getstatusoutput() and return a
+     2-tuple (status, output_length). If getstatusoutput() raises
+     UnicodeDecodeError (known to happen with python3.1), return a
+     2-tuple (1, 1). This provides a simple way to check for non-zero
+     output length of diff commands, while providing simple handling of
+     UnicodeDecodeError when necessary.
+     """
+     try:
+         status, output = subprocess_getstatusoutput(cmd)
+         return (status, len(output))
+     except UnicodeDecodeError:
+         return (1, 1)
+ 
  def read_config(mandatory_opts):
      loader = portage.env.loaders.KeyValuePairFileLoader(
 -        '/etc/dispatch-conf.conf', None)
 +        portage.const.EPREFIX+'/etc/dispatch-conf.conf', None)
      opts, errors = loader.load()
      if not opts:
 -        print(_('dispatch-conf: Error reading /etc/dispatch-conf.conf; fatal'), file=sys.stderr)
 +        print(_('dispatch-conf: Error reading %s/etc/dispatch-conf.conf; fatal') % (portage.const.EPREFIX,), file=sys.stderr)
          sys.exit(1)
  
        # Handle quote removal here, since KeyValuePairFileLoader doesn't do that.
index d0b37906b8601ba83b5514c0ad0dce9012b04c08,a58cd0c3b5ed4a3300fce3190d69dfde22fddb9f..a2183f287b18837ee9392a3669ba999f8881297c
@@@ -772,17 -764,18 +772,17 @@@ class config(object)
                        self.backup_changes("PORTAGE_CONFIGROOT")
                        self["ROOT"] = target_root
                        self.backup_changes("ROOT")
 +                      self["EPREFIX"] = EPREFIX
  
 -                      # Prefix forward compatability, set EPREFIX to the empty string
 -                      self["EPREFIX"] = ''
                        self.backup_changes("EPREFIX")
 -                      self["EROOT"] = target_root
 +                      self["EROOT"] = target_root + EPREFIX_LSTRIP + os.path.sep
                        self.backup_changes("EROOT")
  
-                       self.pusedict = {}
-                       self.pkeywordsdict = {}
-                       self._plicensedict = {}
-                       self._ppropertiesdict = {}
-                       self.punmaskdict = {}
+                       self.pusedict = portage.dep.ExtendedAtomDict(dict)
+                       self.pkeywordsdict = portage.dep.ExtendedAtomDict(dict)
+                       self._plicensedict = portage.dep.ExtendedAtomDict(dict)
+                       self._ppropertiesdict = portage.dep.ExtendedAtomDict(dict)
+                       self.punmaskdict = portage.dep.ExtendedAtomDict(list)
                        abs_user_config = os.path.join(config_root, USER_CONFIG_PATH)
  
                        # locations for "categories" and "arch.list" files
Simple merge