summaryrefslogtreecommitdiffstats
path: root/web/html
diff options
context:
space:
mode:
authorLukas Fleischer <archlinux@cryptocrack.de>2014-08-10 12:27:56 +0200
committerLukas Fleischer <archlinux@cryptocrack.de>2014-08-10 12:32:46 +0200
commit4d7da95906f66a10368f8689b6686199753268b9 (patch)
tree6fcadd676a5c4ac1538cc870025d493855ef6de2 /web/html
parent2b29fa4bb0329db2b85c436b82586869c0d763c2 (diff)
downloadaurweb-4d7da95906f66a10368f8689b6686199753268b9.tar.xz
Add support for architecture-specific fields
This adds support for architecture-specific dependencies and relations. Support for this has recently been added to makepkg, see commit 2b556d8 (PKGBUILD: handle arch specific attributes, 2014-07-25) in the pacman repository for details. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Diffstat (limited to 'web/html')
-rw-r--r--web/html/pkgsubmit.php31
1 files changed, 22 insertions, 9 deletions
diff --git a/web/html/pkgsubmit.php b/web/html/pkgsubmit.php
index 7d89425..eac95a3 100644
--- a/web/html/pkgsubmit.php
+++ b/web/html/pkgsubmit.php
@@ -137,6 +137,13 @@ if ($uid):
continue;
}
list($key, $value) = explode(' = ', $line, 2);
+ $tokens = explode('_', $key, 2);
+ $key = $tokens[0];
+ if (count($tokens) > 1) {
+ $arch = $tokens[1];
+ } else {
+ $arch = NULL;
+ }
switch ($key) {
case 'pkgbase':
case 'pkgname':
@@ -170,6 +177,8 @@ if ($uid):
case 'license':
case 'groups':
case 'source':
+ $section_info[$key][] = $value;
+ break;
case 'depends':
case 'makedepends':
case 'checkdepends':
@@ -177,7 +186,7 @@ if ($uid):
case 'conflicts':
case 'provides':
case 'replaces':
- $section_info[$key][] = $value;
+ $section_info[$key][$arch][] = $value;
break;
}
}
@@ -354,18 +363,22 @@ if ($uid):
}
foreach (array('depends', 'makedepends', 'checkdepends', 'optdepends') as $deptype) {
- foreach ($pi[$deptype] as $dep) {
- $deppkgname = preg_replace("/(<|=|>).*/", "", $dep);
- $depcondition = str_replace($deppkgname, "", $dep);
- pkg_add_dep($pkgid, $deptype, $deppkgname, $depcondition);
+ foreach ($pi[$deptype] as $deparch => $depgrp) {
+ foreach ($depgrp as $dep) {
+ $deppkgname = preg_replace("/(<|=|>).*/", "", $dep);
+ $depcondition = str_replace($deppkgname, "", $dep);
+ pkg_add_dep($pkgid, $deptype, $deppkgname, $depcondition, $deparch);
+ }
}
}
foreach (array('conflicts', 'provides', 'replaces') as $reltype) {
- foreach ($pi[$reltype] as $rel) {
- $relpkgname = preg_replace("/(<|=|>).*/", "", $rel);
- $relcondition = str_replace($relpkgname, "", $rel);
- pkg_add_rel($pkgid, $reltype, $relpkgname, $relcondition);
+ foreach ($pi[$reltype] as $relarch => $relgrp) {
+ foreach ($relgrp as $rel) {
+ $relpkgname = preg_replace("/(<|=|>).*/", "", $rel);
+ $relcondition = str_replace($relpkgname, "", $rel);
+ pkg_add_rel($pkgid, $reltype, $relpkgname, $relcondition, $relarch);
+ }
}
}