diff options
author | Lukas Fleischer <archlinux@cryptocrack.de> | 2014-04-26 14:40:07 +0200 |
---|---|---|
committer | Lukas Fleischer <archlinux@cryptocrack.de> | 2014-04-26 14:48:19 +0200 |
commit | 9553790cfc9a3bcb5c4bf2266565862082c26613 (patch) | |
tree | e3511cc1a1c23269867cabbdfeecc6b5db765a9c /web/html/pkgsubmit.php | |
parent | 38eb8d2a3ab0b7f35618d151613211d45f6ec4d8 (diff) | |
download | aurweb-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/pkgsubmit.php')
-rw-r--r-- | web/html/pkgsubmit.php | 20 |
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); |