[aur-dev] [PATCH] git-update: Fix parsing of versioned optdepends

Lukas Fleischer lfleischer at archlinux.org
Sun Jun 14 09:53:28 UTC 2015


Fixes FS#43649.

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
 git-interface/git-update.py | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/git-interface/git-update.py b/git-interface/git-update.py
index d87fac7..ebed491 100755
--- a/git-interface/git-update.py
+++ b/git-interface/git-update.py
@@ -36,6 +36,16 @@ def extract_arch_fields(pkginfo, field):
 
     return values
 
+def parse_dep(depstring):
+    dep, _, desc = depstring.partition(': ')
+    depname = re.sub(r'(<|=|>).*', '', dep)
+    depcond = dep[len(depname):]
+
+    if (desc):
+        return (depname + ': ' + desc, depcond)
+    else:
+        return (depname, depcond)
+
 def save_srcinfo(srcinfo, db, cur, user):
     # Obtain package base ID and previous maintainer.
     pkgbase = srcinfo._pkgbase['pkgname']
@@ -89,8 +99,7 @@ def save_srcinfo(srcinfo, db, cur, user):
                         [deptype])
             deptypeid = cur.fetchone()[0]
             for dep_info in extract_arch_fields(pkginfo, deptype):
-                depname = re.sub(r'(<|=|>).*', '', dep_info['value'])
-                depcond = dep_info['value'][len(depname):]
+                depname, depcond = parse_dep(dep_info['value'])
                 deparch = dep_info['arch']
                 cur.execute("INSERT INTO PackageDepends (PackageID, " +
                             "DepTypeID, DepName, DepCondition, DepArch) " +
@@ -103,8 +112,7 @@ def save_srcinfo(srcinfo, db, cur, user):
                         [reltype])
             reltypeid = cur.fetchone()[0]
             for rel_info in extract_arch_fields(pkginfo, reltype):
-                relname = re.sub(r'(<|=|>).*', '', rel_info['value'])
-                relcond = rel_info['value'][len(relname):]
+                relname, relcond = parse_dep(rel_info['value'])
                 relarch = rel_info['arch']
                 cur.execute("INSERT INTO PackageRelations (PackageID, " +
                             "RelTypeID, RelName, RelCondition, RelArch) " +
-- 
2.4.3


More information about the aur-dev mailing list