From fc9c519852d2081a10d1d86a067316b65e48acb3 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Sat, 25 May 2019 12:48:58 -0400 Subject: 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 --- web/html/css/aurweb.css | 4 ++++ web/html/pkgflag.php | 9 +++++++++ web/lib/pkgbasefuncs.inc.php | 21 +++++++++++++++++++++ 3 files changed, 34 insertions(+) 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)): ?>
  • + +

    + This seems to be a VCS package. Please do not + 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. +

    +

    ', ''); ?> 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 @@ -367,6 +367,27 @@ function pkgbase_get_pkgnames($base_id) { return $result->fetchAll(PDO::FETCH_COLUMN, 0); } +/** + * 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 * -- cgit v1.2.3-24-g4f1b