git-update: Fix parsing of versioned optdepends

Fixes FS#43649.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
Lukas Fleischer 2015-06-14 11:51:50 +02:00
parent fb42ec696c
commit 3bc4496328

View file

@ -36,6 +36,16 @@ def extract_arch_fields(pkginfo, field):
return values 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): def save_srcinfo(srcinfo, db, cur, user):
# Obtain package base ID and previous maintainer. # Obtain package base ID and previous maintainer.
pkgbase = srcinfo._pkgbase['pkgname'] pkgbase = srcinfo._pkgbase['pkgname']
@ -89,8 +99,7 @@ def save_srcinfo(srcinfo, db, cur, user):
[deptype]) [deptype])
deptypeid = cur.fetchone()[0] deptypeid = cur.fetchone()[0]
for dep_info in extract_arch_fields(pkginfo, deptype): for dep_info in extract_arch_fields(pkginfo, deptype):
depname = re.sub(r'(<|=|>).*', '', dep_info['value']) depname, depcond = parse_dep(dep_info['value'])
depcond = dep_info['value'][len(depname):]
deparch = dep_info['arch'] deparch = dep_info['arch']
cur.execute("INSERT INTO PackageDepends (PackageID, " + cur.execute("INSERT INTO PackageDepends (PackageID, " +
"DepTypeID, DepName, DepCondition, DepArch) " + "DepTypeID, DepName, DepCondition, DepArch) " +
@ -103,8 +112,7 @@ def save_srcinfo(srcinfo, db, cur, user):
[reltype]) [reltype])
reltypeid = cur.fetchone()[0] reltypeid = cur.fetchone()[0]
for rel_info in extract_arch_fields(pkginfo, reltype): for rel_info in extract_arch_fields(pkginfo, reltype):
relname = re.sub(r'(<|=|>).*', '', rel_info['value']) relname, relcond = parse_dep(rel_info['value'])
relcond = rel_info['value'][len(relname):]
relarch = rel_info['arch'] relarch = rel_info['arch']
cur.execute("INSERT INTO PackageRelations (PackageID, " + cur.execute("INSERT INTO PackageRelations (PackageID, " +
"RelTypeID, RelName, RelCondition, RelArch) " + "RelTypeID, RelName, RelCondition, RelArch) " +