summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@archlinux.org>2019-05-25 18:48:58 +0200
committerLukas Fleischer <lfleischer@archlinux.org>2019-05-26 01:01:33 +0200
commitfc9c519852d2081a10d1d86a067316b65e48acb3 (patch)
treee98e9af15f14ba8a836b78a8891e13c998b84463
parent5a66a381fba8455e9d9458689677d35c8ae24619 (diff)
downloadaur-fc9c519852d2081a10d1d86a067316b65e48acb3.tar.gz
aur-fc9c519852d2081a10d1d86a067316b65e48acb3.tar.xz
Display warning when flagging VCS packages
VCS packages should not be flagged out-of-date when the package version does not match the most recent commit. Implements FS#62733. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
-rw-r--r--web/html/css/aurweb.css4
-rw-r--r--web/html/pkgflag.php9
-rw-r--r--web/lib/pkgbasefuncs.inc.php21
3 files changed, 34 insertions, 0 deletions
diff --git a/web/html/css/aurweb.css b/web/html/css/aurweb.css
index ef37bf59..81bf9ab6 100644
--- a/web/html/css/aurweb.css
+++ b/web/html/css/aurweb.css
@@ -195,3 +195,7 @@ label.confirmation,
.comments .more {
font-weight: normal;
}
+
+.error {
+ color: red;
+}
diff --git a/web/html/pkgflag.php b/web/html/pkgflag.php
index 61346b90..9cc6d7a2 100644
--- a/web/html/pkgflag.php
+++ b/web/html/pkgflag.php
@@ -50,6 +50,15 @@ if (has_credential(CRED_PKGBASE_FLAG)): ?>
<li><?= htmlspecialchars($pkgname) ?></li>
<?php endforeach; ?>
</ul>
+ <?php if (pkgbase_is_vcs($base_id)): ?>
+ <p class="error">
+ This seems to be a VCS package. Please do <strong>not</strong>
+ flag it out-of-date if the package version in the AUR does not
+ match the most recent commit. Flagging this package should only
+ be done if the sources moved or changes in the PKGBUILD are
+ required because of recent upstream changes.
+ </p>
+ <?php endif; ?>
<p>
<?= __('Please do %snot%s use this form to report bugs. Use the package comments instead.',
'<strong>', '</strong>'); ?>
diff --git a/web/lib/pkgbasefuncs.inc.php b/web/lib/pkgbasefuncs.inc.php
index 1df21a2b..a4925891 100644
--- a/web/lib/pkgbasefuncs.inc.php
+++ b/web/lib/pkgbasefuncs.inc.php
@@ -368,6 +368,27 @@ function pkgbase_get_pkgnames($base_id) {
}
/**
+ * Determine whether a package base is (or contains a) VCS package
+ *
+ * @param int $base_id The ID of the package base
+ *
+ * @return bool True if the package base is/contains a VCS package
+ */
+function pkgbase_is_vcs($base_id) {
+ $suffixes = array("-cvs", "-svn", "-git", "-hg", "-bzr", "-darcs");
+ $haystack = pkgbase_get_pkgnames($base_id);
+ array_push($haystack, pkgbase_name_from_id($base_id));
+ foreach ($haystack as $pkgname) {
+ foreach ($suffixes as $suffix) {
+ if (substr_compare($pkgname, $suffix, -strlen($suffix)) === 0) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+/**
* Delete all packages belonging to a package base
*
* @param int $base_id The ID of the package base