[aur-dev] [PATCH 2/2] Make url and pkgdesc fields optional

Johannes Löthberg johannes at kyriasis.com
Sat Jun 20 10:47:23 UTC 2015


The url and pkgdesc PKGBUILD variables are optional, so they should be
in the AUR as well.

Signed-off-by: Johannes Löthberg <johannes at 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


More information about the aur-dev mailing list