The url and pkgdesc PKGBUILD variables are optional, so they should be in the AUR as well. Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> --- git-interface/git-update.py | 8 ++++++-- schema/aur-schema.sql | 4 ++-- upgrading/4.0.0.txt | 9 ++++++++- web/template/pkg_details.php | 8 ++++++++ 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/git-interface/git-update.py b/git-interface/git-update.py index 6610019..41a3474 100755 --- a/git-interface/git-update.py +++ b/git-interface/git-update.py @@ -77,6 +77,10 @@ def save_srcinfo(srcinfo, db, cur, user): else: ver = '%s-%s' % (pkginfo['pkgver'], pkginfo['pkgrel']) + for field in ('pkgdesc', 'url'): + if not field in pkginfo: + pkginfo[field] = None + # Create a new package. cur.execute("INSERT INTO Packages (PackageBaseID, Name, " + "Version, Description, URL) " + @@ -247,7 +251,7 @@ for commit in walker: for pkgname in srcinfo.GetPackageNames(): pkginfo = srcinfo.GetMergedPackage(pkgname) - for field in ('pkgver', 'pkgrel', 'pkgname', 'pkgdesc', 'url'): + for field in ('pkgver', 'pkgrel', 'pkgname'): if not field in pkginfo: die_commit('missing mandatory field: %s' % (field), commit.id) @@ -259,7 +263,7 @@ for commit in walker: commit.id) for field in ('pkgname', 'pkgdesc', 'url'): - if len(pkginfo[field]) > 255: + if field in pkginfo and len(pkginfo[field]) > 255: die_commit('%s field too long: %s' % (field, pkginfo[field]), commit.id) diff --git a/schema/aur-schema.sql b/schema/aur-schema.sql index 5a702b2..5a2e5c5 100644 --- a/schema/aur-schema.sql +++ b/schema/aur-schema.sql @@ -107,8 +107,8 @@ CREATE TABLE Packages ( PackageBaseID INTEGER UNSIGNED NOT NULL, Name VARCHAR(255) NOT NULL, Version VARCHAR(255) NOT NULL DEFAULT '', - Description VARCHAR(255) NOT NULL DEFAULT "An Arch Package", - URL VARCHAR(255) NOT NULL DEFAULT "https://www.archlinux.org", + Description VARCHAR(255) NULL DEFAULT NULL, + URL VARCHAR(255) NULL DEFAULT NULL, PRIMARY KEY (ID), UNIQUE (Name), FOREIGN KEY (PackageBaseID) REFERENCES PackageBases(ID) ON DELETE CASCADE diff --git a/upgrading/4.0.0.txt b/upgrading/4.0.0.txt index 954dfcc..dda6c8e 100644 --- a/upgrading/4.0.0.txt +++ b/upgrading/4.0.0.txt @@ -58,4 +58,11 @@ CREATE TABLE PackageKeywords ( ) ENGINE = InnoDB; ---- -8. (optional) Setup cgit to browse the Git repositories via HTTP. +8. Let Description and URL store nulls + +---- +ALTER TABLE Packages MODIFY Description VARCHAR(255) NULL DEFAULT "An Arch Package", + MODIFY URL VARCHAR(255) NULL DEFAULT "https://www.archlinux.org"; +---- + +9. (optional) Setup cgit to browse the Git repositories via HTTP. diff --git a/web/template/pkg_details.php b/web/template/pkg_details.php index 2f121e7..33d999b 100644 --- a/web/template/pkg_details.php +++ b/web/template/pkg_details.php @@ -183,11 +183,19 @@ $sources = pkg_sources($row["ID"]); </tr> <tr> <th><?= __('Description') . ': ' ?></th> +<?php if (!empty($row['Description'])): ?> <td class="wrap"><?= htmlspecialchars($row['Description']); ?></td> +<?php else: ?> + <td class="wrap"><?= __('None') ?></td> +<?php endif; ?> </tr> <tr> <th><?= __('Upstream URL') . ': ' ?></th> +<?php if (!empty($row['URL'])): ?> <td><a href="<?= htmlspecialchars($row['URL'], ENT_QUOTES) ?>" title="<?= __('Visit the website for') . ' ' . htmlspecialchars( $row['Name'])?>"><?= htmlspecialchars($row['URL'], ENT_QUOTES) ?></a></td> +<?php else: ?> + <td class="wrap"><?= __('None') ?></td> +<?php endif; ?> </tr> <?php if (has_credential(CRED_PKGBASE_SET_KEYWORDS, array($row["MaintainerUID"])) || count($keywords) > 0): -- 2.4.4