Merged from trunk -r13133:13139
authorFabian Groffen <grobian@gentoo.org>
Thu, 26 Mar 2009 20:35:11 +0000 (20:35 -0000)
committerFabian Groffen <grobian@gentoo.org>
Thu, 26 Mar 2009 20:35:11 +0000 (20:35 -0000)
   | 13134   | Make config.features a set instead of a list.                |
   | zmedico |                                                              |

   | 13135   | Add docstrings for the fd_pipes and returnpid parameters of  |
   | zmedico | doebuild().                                                  |

   | 13136   | Make sure mysettings.setcpv() always gets called when        |
   | zmedico | necessary inside doebuild_environment().                     |

   | 13137   | Fix try/except indentation so that 2to3 will recognize it.   |
   | zmedico |                                                              |

   | 13138   | Fix try/except indentation so that 2to3 will recognize it.   |
   | zmedico |                                                              |

   | 13139   | Normalize try/except indentation for compatibility with      |
   | zmedico | 2to3.                                                        |

svn path=/main/branches/prefix/; revision=13190

bin/ebuild
pym/_emerge/__init__.py
pym/portage/__init__.py
pym/portage/cache/flat_list.py
pym/portage/cache/sql_template.py
pym/portage/cache/util.py
pym/portage/versions.py

index ca639e47500f9107fab96d78e10c54efa62b58ca..2b47de7fff573f754a1df6529994ffaf0de35fdf 100755 (executable)
@@ -189,9 +189,8 @@ if "test" in pargs:
        tmpsettings["EBUILD_FORCE_TEST"] = "1"
        tmpsettings.backup_changes("EBUILD_FORCE_TEST")
        if "test" not in tmpsettings.features:
-               tmpsettings.features.append("test")
-               tmpsettings.features.sort()
-               tmpsettings["FEATURES"] = " ".join(tmpsettings.features)
+               tmpsettings.features.add("test")
+               tmpsettings["FEATURES"] = " ".join(sorted(tmpsettings.features))
                tmpsettings.backup_changes("FEATURES")
 
 if opts.skip_manifest:
index 314cec8c718c221cdce7bb6956fd6361f2280202..04da574427f5994e3affaf73ec64051af01be191 100644 (file)
@@ -13305,8 +13305,10 @@ def action_metadata(settings, portdb, myopts):
                        self.call_update_mine = 0
 
                def update(self, *arg):
-                       try:                            self.pstr = int(self.pstr) + 1
-                       except ValueError:      self.pstr = 1
+                       try:
+                               self.pstr = int(self.pstr) + 1
+                       except ValueError:
+                               self.pstr = 1
                        sys.stdout.write("%s%i%%" % \
                                ("\b" * (len(str(self.pstr))+1), self.pstr))
                        sys.stdout.flush()
index bee5d3554ef99aa998a109c326682b10ce9d9e3e..a4f0c39dd56ab647a8ed3e34cf7e11e81b4e02cf 100644 (file)
@@ -1799,8 +1799,7 @@ class config(object):
                                if "usersandbox" in self.features:
                                        self.features.remove("usersandbox")
 
-                       self.features.sort()
-                       self["FEATURES"] = " ".join(self.features)
+                       self["FEATURES"] = " ".join(sorted(self.features))
                        self.backup_changes("FEATURES")
 
                        # inject EPREFIX as it's in no single config file (I hope),
@@ -2822,8 +2821,8 @@ class config(object):
                                        myflags.add(var_lower + "_" + x)
 
                if not hasattr(self, "features"):
-                       self.features = sorted(set(
-                               self.configlist[-1].get("FEATURES","").split()))
+                       self.features = set(
+                               self.configlist[-1].get("FEATURES","").split())
                self["FEATURES"] = " ".join(self.features)
 
                myflags.update(self.useforce)
@@ -5090,14 +5089,16 @@ def doebuild_environment(myebuild, mydo, myroot, mysettings, debug, use_cache, m
        # so that the caller can override it.
        tmpdir = mysettings["PORTAGE_TMPDIR"]
 
-       if mydo != "depend" and mycpv != mysettings.mycpv:
-               """For performance reasons, setcpv only triggers reset when it
-               detects a package-specific change in config.  For the ebuild
-               environment, a reset call is forced in order to ensure that the
-               latest env.d variables are used."""
+       if mycpv != mysettings.mycpv:
+               # Reload env.d variables and reset any previous settings.
                mysettings.reload()
-               mysettings.reset(use_cache=use_cache)
-               mysettings.setcpv(mycpv, use_cache=use_cache, mydb=mydbapi)
+               mysettings.reset()
+               if mydo == 'depend':
+                       # Don't pass in mydbapi here since the resulting aux_get
+                       # call would lead to infinite 'depend' phase recursion.
+                       mysettings.setcpv(mycpv)
+               else:
+                       mysettings.setcpv(mycpv, mydb=mydbapi)
 
        # config.reset() might have reverted a change made by the caller,
        # so restore it to it's original value.
@@ -5570,6 +5571,13 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
        @type vartree: vartree instance
        @param prev_mtimes: A dict of { filename:mtime } keys used by merge() to do config_protection
        @type prev_mtimes: dictionary
+       @param fd_pipes: A dict of mapping for pipes, { '0': stdin, '1': stdout }
+               for example.
+       @type fd_pipes: Dictionary
+       @param returnpid: Return a list of process IDs for a successful spawn, or
+               in integer value if spawn is unsuccessful. NOTE: This requires the
+               caller clean up all returned PIDs.
+       @type returnpid: Boolean
        @rtype: Boolean
        @returns:
        1. 0 for success
@@ -6212,7 +6220,7 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
                                return 1
                        # qmerge is a special phase that implies noclean.
                        if "noclean" not in mysettings.features:
-                               mysettings.features.append("noclean")
+                               mysettings.features.add("noclean")
                        #qmerge is specifically not supposed to do a runtime dep check
                        retval = merge(
                                mysettings["CATEGORY"], mysettings["PF"], mysettings["D"],
index 413d4d33d164ad4193f50214be871173af470e5f..8734e79b05fc93111aeb118ebde324e1c37d809f 100644 (file)
@@ -47,7 +47,8 @@ class database(fs_template.FsBased):
        def _setitem(self, cpv, values):
                s = cpv.rfind("/")
                fp=os.path.join(self._base,cpv[:s],".update.%i.%s" % (os.getpid(), cpv[s+1:]))
-               try:    myf=open(fp, "w")
+               try:
+                       myf = open(fp, "w")
                except (OSError, IOError), e:
                        if errno.ENOENT == e.errno:
                                try:
@@ -66,7 +67,8 @@ class database(fs_template.FsBased):
                self._ensure_access(fp, mtime=values["_mtime_"])
                #update written.  now we move it.
                new_fp = os.path.join(self._base,cpv)
-               try:    os.rename(fp, new_fp)
+               try:
+                       os.rename(fp, new_fp)
                except (OSError, IOError), e:
                        os.remove(fp)
                        raise cache_errors.CacheCorruption(cpv, e)
index 47bef9124957dec236756fbe3d28fa62af200259..a002d6c06ecf75f5dbb0fe124ee31dcc852e0693 100644 (file)
@@ -72,7 +72,8 @@ class SQLDatabase(template.database):
                        if self.readonly:
                                raise cache_errors.ReadOnlyRestriction("table %s doesn't exist" % \
                                        self.SCHEMA_PACKAGE_NAME)
-                       try:    self.con.execute(self.SCHEMA_PACKAGE_CREATE)
+                       try:
+                               self.con.execute(self.SCHEMA_PACKAGE_CREATE)
                        except  self._BaseError, e:
                                raise cache_errors.InitializationError(self.__class__, e)
 
@@ -80,7 +81,8 @@ class SQLDatabase(template.database):
                        if self.readonly:
                                raise cache_errors.ReadOnlyRestriction("table %s doesn't exist" % \
                                        self.SCHEMA_VALUES_NAME)
-                       try:    self.con.execute(self.SCHEMA_VALUES_CREATE)
+                       try:
+                               self.con.execute(self.SCHEMA_VALUES_CREATE)
                        except  self._BaseError, e:
                                raise cache_errors.InitializationError(self.__class__, e)
 
@@ -97,7 +99,8 @@ class SQLDatabase(template.database):
 
 
        def _getitem(self, cpv):
-               try:    self.con.execute("SELECT key, value FROM %s NATURAL JOIN %s "
+               try:
+                       self.con.execute("SELECT key, value FROM %s NATURAL JOIN %s "
                        "WHERE label=%s AND cpv=%s" % (self.SCHEMA_PACKAGE_NAME, self.SCHEMA_VALUES_NAME,
                        self.label, self._sfilter(cpv)))
                except self._BaseError, e:
@@ -143,7 +146,8 @@ class SQLDatabase(template.database):
 
                try:
                        # insert.
-                       try:    pkgid = self._insert_cpv(cpv)
+                       try:
+                               pkgid = self._insert_cpv(cpv)
                        except self._BaseError, e:
                                raise cache_errors.CacheCorruption(cpv, e)
 
@@ -155,7 +159,8 @@ class SQLDatabase(template.database):
                                        db_values.append({"key":key, "value":values[key]})
 
                        if len(db_values) > 0:
-                               try:    self.con.executemany("INSERT INTO %s (pkgid, key, value) VALUES(\"%s\", %%(key)s, %%(value)s)" % \
+                               try:
+                                       self.con.executemany("INSERT INTO %s (pkgid, key, value) VALUES(\"%s\", %%(key)s, %%(value)s)" % \
                                        (self.SCHEMA_VALUES_NAME, str(pkgid)), db_values)
                                except self._BaseError, e:
                                        raise cache_errors.CacheCorruption(cpv, e)
@@ -164,8 +169,10 @@ class SQLDatabase(template.database):
 
                except Exception:
                        if not self.autocommits:
-                               try:    self.db.rollback()
-                               except self._BaseError: pass
+                               try:
+                                       self.db.rollback()
+                               except self._BaseError:
+                                       pass
                        raise
 
 
@@ -180,8 +187,10 @@ class SQLDatabase(template.database):
                        query_str = self.SCHEMA_INSERT_CPV_INTO_PACKAGE.replace("INSERT","REPLACE",1)
                else:
                        # just delete it.
-                       try:    del self[cpv]
-                       except  (cache_errors.CacheCorruption, KeyError):       pass
+                       try:
+                               del self[cpv]
+                       except (cache_errors.CacheCorruption, KeyError):
+                               pass
                        query_str = self.SCHEMA_INSERT_CPV_INTO_PACKAGE
                try:
                        self.con.execute(query_str % (self.label, cpv))
@@ -199,11 +208,13 @@ class SQLDatabase(template.database):
 
        def __contains__(self, cpv):
                if not self.autocommits:
-                       try:    self.commit()
+                       try:
+                               self.commit()
                        except self._BaseError, e:
                                raise cache_errors.GeneralCacheCorruption(e)
 
-               try:    self.con.execute("SELECT cpv FROM %s WHERE label=%s AND cpv=%s" % \
+               try:
+                       self.con.execute("SELECT cpv FROM %s WHERE label=%s AND cpv=%s" % \
                                (self.SCHEMA_PACKAGE_NAME, self.label, self._sfilter(cpv)))
                except self._BaseError, e:
                        raise cache_errors.GeneralCacheCorruption(e)
@@ -212,11 +223,13 @@ class SQLDatabase(template.database):
 
        def __iter__(self):
                if not self.autocommits:
-                       try:    self.commit()
+                       try:
+                               self.commit()
                        except self._BaseError, e:
                                raise cache_errors.GeneralCacheCorruption(e)
 
-               try:    self.con.execute("SELECT cpv FROM %s WHERE label=%s" % 
+               try:
+                       self.con.execute("SELECT cpv FROM %s WHERE label=%s" % 
                                (self.SCHEMA_PACKAGE_NAME, self.label))
                except self._BaseError, e:
                        raise cache_errors.GeneralCacheCorruption(e)
@@ -225,7 +238,8 @@ class SQLDatabase(template.database):
                        yield x[0]
 
        def iteritems(self):
-               try:    self.con.execute("SELECT cpv, key, value FROM %s NATURAL JOIN %s "
+               try:
+                       self.con.execute("SELECT cpv, key, value FROM %s NATURAL JOIN %s "
                        "WHERE label=%s" % (self.SCHEMA_PACKAGE_NAME, self.SCHEMA_VALUES_NAME,
                        self.label))
                except self._BaseError, e:
@@ -271,7 +285,8 @@ class SQLDatabase(template.database):
                        query = ''
 
                print "query = SELECT cpv from package_cache natural join values_cache WHERE label=%s %s" % (self.label, query)
-               try:    self.con.execute("SELECT cpv from package_cache natural join values_cache WHERE label=%s %s" % \
+               try:
+                       self.con.execute("SELECT cpv from package_cache natural join values_cache WHERE label=%s %s" % \
                                (self.label, query))
                except self._BaseError, e:
                        raise cache_errors.GeneralCacheCorruption(e)
index e152f50814e334c07644652722ee93eb85ae145c..9fcd4b49b1a7df8379438905c2fe4947a613e4e8 100644 (file)
@@ -29,7 +29,8 @@ def mirror_cache(valid_nodes_iterable, src_cache, trg_cache, eclass_cache=None,
 #              print "processing x=",x
                count+=1
                dead_nodes.discard(x)
-               try:    entry = src_cache[x]
+               try:
+                       entry = src_cache[x]
                except KeyError, e:
                        noise.missing_entry(x)
                        del e
@@ -111,7 +112,8 @@ def mirror_cache(valid_nodes_iterable, src_cache, trg_cache, eclass_cache=None,
 
                        # by this time, if it reaches here, the eclass has been validated, and the entry has 
                        # been updated/translated (if needs be, for metadata/cache mainly)
-                       try:    trg_cache[x] = entry
+                       try:
+                               trg_cache[x] = entry
                        except cache_errors.CacheError, ce:
                                noise.exception(x, ce)
                                del ce
index 4b27a213aa3be27d32b2b6240e73840d4066a881..a26e550d3f30dfd703b11bd1dca5ea9de865a9f5 100644 (file)
@@ -147,10 +147,14 @@ def vercmp(ver1, ver2, silent=1):
                if s1[1] != s2[1]:
                        # it's possible that the s(1|2)[1] == ''
                        # in such a case, fudge it.
-                       try:                    r1 = int(s1[1])
-                       except ValueError:      r1 = 0
-                       try:                    r2 = int(s2[1])
-                       except ValueError:      r2 = 0
+                       try:
+                               r1 = int(s1[1])
+                       except ValueError:
+                               r1 = 0
+                       try:
+                               r2 = int(s2[1])
+                       except ValueError:
+                               r2 = 0
                        if r1 - r2:
                                return r1 - r2