[Piuparts-commits] [SCM] piuparts git repository branch, piatti, updated. 0.45-75-g5fca52d

Andreas Beckmann debian at abeckmann.de
Thu Jul 26 12:13:21 UTC 2012


The following commit has been merged in the piatti branch:
commit 5e83952edf5b3d097c558c1ff2a6d456b5a05331
Author: Andreas Beckmann <debian at abeckmann.de>
Date:   Thu Jul 5 14:56:00 2012 +0200

    lib/parser: correctly parse ':any' qualified packages
    
    package names may now have a ":any" qualification, that needs to be
    parsed and discarded
    
    Signed-off-by: Andreas Beckmann <debian at abeckmann.de>

diff --git a/debian/changelog b/debian/changelog
index 494bc73..1b67177 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,9 @@ piuparts (0.46) UNRELEASED; urgency=low
   * piuparts.py:
     - Add to ignored_files:
       + /var/lib/cdebconf/{questions,templates}.dat-old
+  * piupartslib/dependencyparser.py:
+    - Package names may now have a ":any" qualification in some cases.  Extend
+      the parser to recognize and discard this suffix.
   * piupartslib/packagesdb.py:
   * piuparts-master.py:
     - Accept and discard duplicate log submissions, preventing the slave from
diff --git a/piupartslib/dependencyparser.py b/piupartslib/dependencyparser.py
index f559ca8..786ae1d 100644
--- a/piupartslib/dependencyparser.py
+++ b/piupartslib/dependencyparser.py
@@ -152,7 +152,7 @@ class DependencyParser:
         version-number ::= epoch? upstream-version debian-revision?
         arch-restriction ::= "[" arch-name arch-name* "]" |
                               "[" "!" arch-name ("!" arch-name)* "]"
-        package-name ::= alphanumeric name-char name-char*
+        package-name ::= alphanumeric name-char name-char* ":any"?
         epoch ::= integer ":"
         upstream-version ::= alphanumeric version-char*
             -- policy says "should start with digit", but not all packages do
@@ -237,6 +237,7 @@ class DependencyParser:
         return SimpleDependency(name, op, version, arch)
 
     _name_pat = re.compile(r"[a-zA-Z0-9][a-zA-Z0-9+._-]+")
+    _any_suffix_pat = re.compile(r":any")
 
     def _parse_package_name(self):
         self._cursor.skip_whitespace()
@@ -246,6 +247,8 @@ class DependencyParser:
         if not m:
             raise DependencySyntaxError("Expected a package name",
                                         self._cursor)
+        if self._cursor.match(self._any_suffix_pat):
+            pass
         return m.group()
 
     _op_pat = re.compile(r"(<<|<=|=|>=|>>|<(?![<=])|>(?![>=]))")

-- 
piuparts git repository



More information about the Piuparts-commits mailing list