summaryrefslogtreecommitdiffstats
path: root/web/html
diff options
context:
space:
mode:
authorLukas Fleischer <archlinux@cryptocrack.de>2014-04-26 14:40:07 +0200
committerLukas Fleischer <archlinux@cryptocrack.de>2014-04-26 14:48:19 +0200
commit9553790cfc9a3bcb5c4bf2266565862082c26613 (patch)
treee3511cc1a1c23269867cabbdfeecc6b5db765a9c /web/html
parent38eb8d2a3ab0b7f35618d151613211d45f6ec4d8 (diff)
downloadaurweb-9553790cfc9a3bcb5c4bf2266565862082c26613.tar.xz
Support multiple licenses per package
Split out package licenses into two separate tables in order to support multiple licenses per package. The code on the package details page is adjusted accordingly. UPGRADING contains instructions on how to convert existing licenses in the database to the new layout. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Diffstat (limited to 'web/html')
-rw-r--r--web/html/pkgsubmit.php20
1 files changed, 14 insertions, 6 deletions
diff --git a/web/html/pkgsubmit.php b/web/html/pkgsubmit.php
index 107441f..1075620 100644
--- a/web/html/pkgsubmit.php
+++ b/web/html/pkgsubmit.php
@@ -151,6 +151,7 @@ if ($uid):
}
}
$section_info = array(
+ 'license' => array(),
'groups' => array(),
'depends' => array(),
'makedepends' => array(),
@@ -167,9 +168,9 @@ if ($uid):
case 'pkgver':
case 'pkgrel':
case 'url':
- case 'license':
$section_info[$key] = $value;
break;
+ case 'license':
case 'groups':
case 'source':
case 'depends':
@@ -198,7 +199,7 @@ if ($uid):
if (!isset($pkgbase_info['pkgbase'])) {
$pkgbase_info['pkgbase'] = $pkgbase_info['pkgname'];
}
- foreach (array('groups', 'source', 'depends', 'makedepends', 'checkdepends', 'optdepends', 'conflicts', 'provides', 'replaces') as $array_opt) {
+ foreach (array('license', 'groups', 'source', 'depends', 'makedepends', 'checkdepends', 'optdepends', 'conflicts', 'provides', 'replaces') as $array_opt) {
if (empty($pkgbase_info[$array_opt])) {
$pkgbase_info[$array_opt] = array();
} else {
@@ -263,9 +264,11 @@ if ($uid):
$error = __("Error - Package description cannot be greater than %d characters", 255);
break;
}
- if (strlen($pi['license']) > 40) {
- $error = __("Error - Package license cannot be greater than %d characters", 40);
- break;
+ foreach ($pi['license'] as $lic) {
+ if (strlen($lic > 64)) {
+ $error = __("Error - Package license cannot be greater than %d characters", 64);
+ break;
+ }
}
if (strlen($pkginfo[$key]['full-version']) > 32) {
$error = __("Error - Package version cannot be greater than %d characters", 32);
@@ -357,7 +360,12 @@ if ($uid):
}
foreach ($pkginfo as $pi) {
- $pkgid = pkg_create($base_id, $pi['pkgname'], $pi['license'], $pi['full-version'], $pi['pkgdesc'], $pi['url']);
+ $pkgid = pkg_create($base_id, $pi['pkgname'], $pi['full-version'], $pi['pkgdesc'], $pi['url']);
+
+ foreach ($pi['license'] as $lic) {
+ $licid = pkg_create_license($lic);
+ pkg_add_lic($pkgid, $licid);
+ }
foreach ($pi['groups'] as $grp) {
$grpid = pkg_create_group($grp);