From b639a50d1573d7b49ed7e66582e072d3ca982d25 Mon Sep 17 00:00:00 2001 From: Ryan Hendrickson Date: Mon, 24 Jun 2024 18:24:25 -0400 Subject: [PATCH 1/5] common-updater-scripts: add allowedVersions parameter By providing a regex in allowedVersions, users of genericUpdater, gitUpdater, directoryListingUpdater, or httpTwoLevelsUpdater can exclude versions that don't match the regex. This can be simpler to express than constructing the complement regex in ignoredVersions. --- .../directory-listing-updater.nix | 3 ++- pkgs/common-updater/generic-updater.nix | 17 +++++++++++------ pkgs/common-updater/git-updater.nix | 3 ++- pkgs/common-updater/http-two-levels-updater.nix | 3 ++- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/pkgs/common-updater/directory-listing-updater.nix b/pkgs/common-updater/directory-listing-updater.nix index bd0b5b1df30d..b717213fc3a7 100644 --- a/pkgs/common-updater/directory-listing-updater.nix +++ b/pkgs/common-updater/directory-listing-updater.nix @@ -6,6 +6,7 @@ { pname ? null , version ? null , attrPath ? null +, allowedVersions ? "" , ignoredVersions ? "" , rev-prefix ? "" , odd-unstable ? false @@ -15,6 +16,6 @@ }: genericUpdater { - inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable; + inherit pname version attrPath allowedVersions ignoredVersions rev-prefix odd-unstable patchlevel-unstable; versionLister = "${common-updater-scripts}/bin/list-directory-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"} ${lib.optionalString (extraRegex != null) "--extra-regex=${lib.escapeShellArg extraRegex}"}"; } diff --git a/pkgs/common-updater/generic-updater.nix b/pkgs/common-updater/generic-updater.nix index 2f8da2f308e6..2ebfb0fa6fc2 100644 --- a/pkgs/common-updater/generic-updater.nix +++ b/pkgs/common-updater/generic-updater.nix @@ -13,6 +13,7 @@ , version ? null , attrPath ? null , versionLister +, allowedVersions ? "" , ignoredVersions ? "" , rev-prefix ? "" , odd-unstable ? false @@ -37,10 +38,11 @@ let version="$3" attr_path="$4" version_lister="$5" - ignored_versions="$6" - rev_prefix="$7" - odd_unstable="$8" - patchlevel_unstable="$9" + allowed_versions="$6" + ignored_versions="$7" + rev_prefix="$8" + odd_unstable="$9" + patchlevel_unstable="$${10}" [[ -n "$name" ]] || name="$UPDATE_NIX_NAME" [[ -n "$pname" ]] || pname="$UPDATE_NIX_PNAME" @@ -52,7 +54,7 @@ let function version_is_ignored() { local tag="$1" - [ -n "$ignored_versions" ] && ${grep} -E "$ignored_versions" <<< "$tag" + [ -n "$ignored_versions" ] && ${grep} -E -e "$ignored_versions" <<< "$tag" } function version_is_unstable() { @@ -86,6 +88,9 @@ let tags=$(echo "$tags" | ${sed} -e "s,^$rev_prefix,,") fi tags=$(echo "$tags" | ${grep} "^[0-9]") + if [ -n "$allowed_versions" ]; then + tags=$(echo "$tags" | ${grep} -E -e "$allowed_versions") + fi # sort the tags in decreasing order tags=$(echo "$tags" | ${coreutils}/bin/sort --reverse --version-sort) @@ -127,7 +132,7 @@ let in { name = "generic-update-script"; - command = [ updateScript name pname version attrPath versionLister ignoredVersions rev-prefix odd-unstable patchlevel-unstable ]; + command = [ updateScript name pname version attrPath versionLister allowedVersions ignoredVersions rev-prefix odd-unstable patchlevel-unstable ]; supportedFeatures = [ # Stdout must contain output according to the updateScript commit protocol when the update script finishes with a non-zero exit code. "commit" diff --git a/pkgs/common-updater/git-updater.nix b/pkgs/common-updater/git-updater.nix index 86bf88ada8c4..314799c23f28 100644 --- a/pkgs/common-updater/git-updater.nix +++ b/pkgs/common-updater/git-updater.nix @@ -6,6 +6,7 @@ { pname ? null , version ? null , attrPath ? null +, allowedVersions ? "" , ignoredVersions ? "" , rev-prefix ? "" , odd-unstable ? false @@ -16,6 +17,6 @@ }: genericUpdater { - inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable; + inherit pname version attrPath allowedVersions ignoredVersions rev-prefix odd-unstable patchlevel-unstable; versionLister = "${common-updater-scripts}/bin/list-git-tags ${lib.optionalString (url != null) "--url=${url}"}"; } diff --git a/pkgs/common-updater/http-two-levels-updater.nix b/pkgs/common-updater/http-two-levels-updater.nix index 4656163c18a3..77594fc8a112 100644 --- a/pkgs/common-updater/http-two-levels-updater.nix +++ b/pkgs/common-updater/http-two-levels-updater.nix @@ -6,6 +6,7 @@ { pname ? null , version ? null , attrPath ? null +, allowedVersions ? "" , ignoredVersions ? "" , rev-prefix ? "" , odd-unstable ? false @@ -14,6 +15,6 @@ }: genericUpdater { - inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable; + inherit pname version attrPath allowedVersions ignoredVersions rev-prefix odd-unstable patchlevel-unstable; versionLister = "${common-updater-scripts}/bin/list-archive-two-levels-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"}"; } From e129ba0a5777d947895ac6e02b3f21d568bb1e07 Mon Sep 17 00:00:00 2001 From: Ryan Hendrickson Date: Mon, 24 Jun 2024 18:26:46 -0400 Subject: [PATCH 2/5] pwsafe: use allowedVersions in updateScript --- pkgs/applications/misc/pwsafe/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/misc/pwsafe/default.nix b/pkgs/applications/misc/pwsafe/default.nix index 4dd5a5e2d280..f752052da2c8 100644 --- a/pkgs/applications/misc/pwsafe/default.nix +++ b/pkgs/applications/misc/pwsafe/default.nix @@ -97,7 +97,7 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=${placeholder "out"}" ]; passthru.updateScript = gitUpdater { - ignoredVersions = "^([^1]|1[^.])"; # ignore anything other than 1.x + allowedVersions = "^1\\."; url = src.gitRepoUrl; }; From b583c887a1fb61d7459779309857170140bed01a Mon Sep 17 00:00:00 2001 From: Ryan Hendrickson Date: Mon, 24 Jun 2024 18:27:14 -0400 Subject: [PATCH 3/5] babeltrace: use allowedVersions in updateScript --- pkgs/by-name/ba/babeltrace/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ba/babeltrace/package.nix b/pkgs/by-name/ba/babeltrace/package.nix index 2d995df59c91..a9a9928d77aa 100644 --- a/pkgs/by-name/ba/babeltrace/package.nix +++ b/pkgs/by-name/ba/babeltrace/package.nix @@ -64,7 +64,7 @@ stdenv.mkDerivation (finalAttrs: { url = "https://git.efficios.com/babeltrace.git"; rev-prefix = "v"; # Versions 2.x are packaged independently as babeltrace2 - ignoredVersions = "^[^1]"; + allowedVersions = "^1\\."; }; meta = { From 624fdb2662c753fa44951b27485e0aa51d6897db Mon Sep 17 00:00:00 2001 From: Ryan Hendrickson Date: Mon, 24 Jun 2024 18:27:33 -0400 Subject: [PATCH 4/5] minetest: use allowedVersions in updateScript --- pkgs/games/minetest/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix index ff6a59e08ad7..070cf908fa55 100644 --- a/pkgs/games/minetest/default.nix +++ b/pkgs/games/minetest/default.nix @@ -130,7 +130,8 @@ stdenv.mkDerivation (finalAttrs: { ''; passthru.updateScript = gitUpdater { - ignoredVersions = "^[^.]+$|.*-android$"; + allowedVersions = "\\."; + ignoredVersions = "-android$"; }; meta = with lib; { From 77a9e911a6d3c0980f11454efcb39899d6ad2478 Mon Sep 17 00:00:00 2001 From: Ryan Hendrickson Date: Mon, 24 Jun 2024 18:28:03 -0400 Subject: [PATCH 5/5] alock: use allowedVersions in updateScript --- pkgs/misc/screensavers/alock/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/misc/screensavers/alock/default.nix b/pkgs/misc/screensavers/alock/default.nix index 4fcee6fa9b10..a8bf0eabbe44 100644 --- a/pkgs/misc/screensavers/alock/default.nix +++ b/pkgs/misc/screensavers/alock/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { passthru.updateScript = gitUpdater { rev-prefix = "v"; - ignoredVersions = "^[^.]+$"; # ignore versions without a dot + allowedVersions = "\\."; }; meta = with lib; {