gerrit: Make package definition generic and add other supported releases (#475734)

This commit is contained in:
Florian Klink
2026-07-31 16:28:01 +00:00
committed by GitHub
6 changed files with 97 additions and 61 deletions

View File

@@ -0,0 +1,6 @@
{ callPackage }:
callPackage ./generic.nix {
version = "3.12.9";
hash = "sha256-iSMxBrJ+M3/I+X3dxBOUHmcEQ0VqLjq38mUJuII3hUY=";
}

View File

@@ -0,0 +1,6 @@
{ callPackage }:
callPackage ./generic.nix {
version = "3.13.8";
hash = "sha256-7/S+SuXItnBabW0e5h/n9tezhW5sV/Ix8CmEOdx9EYA=";
}

View File

@@ -0,0 +1,6 @@
{ callPackage }:
callPackage ./generic.nix {
version = "3.14.2";
hash = "sha256-OuM96W9++2QKD2O2IwkzDjmBaC9Ej/6ReHY/Rwujuno=";
}

View File

@@ -0,0 +1,71 @@
{
fetchurl,
nix-update-script,
hash,
lib,
nixosTests,
stdenvNoCC,
version,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "gerrit";
inherit version;
strictDeps = true;
__structuredAttrs = true;
src = fetchurl {
url = "https://gerrit-releases.storage.googleapis.com/gerrit-${finalAttrs.version}.war";
inherit hash;
};
buildCommand = ''
mkdir -p "$out"/webapps/
ln -s ${finalAttrs.src} "$out"/webapps/gerrit-${finalAttrs.version}.war
'';
passthru = {
updateScript = nix-update-script {
extraArgs = [
"--url=https://github.com/GerritCodeReview/gerrit"
"--version-regex=v(${lib.versions.majorMinor finalAttrs.version}\\.[0-9]+)"
"--override-filename=pkgs/by-name/ge/gerrit/${lib.versions.major finalAttrs.version}_${lib.versions.minor finalAttrs.version}.nix"
];
};
# A list of plugins that are part of the gerrit.war file.
# Use `java -jar gerrit.war ls | grep plugins/` to generate that list.
plugins = [
"codemirror-editor"
"commit-message-length-validator"
"delete-project"
"download-commands"
"gitiles"
"hooks"
"plugin-manager"
"replication"
"reviewnotes"
"singleusergroup"
"webhooks"
];
tests.gerrit = nixosTests.gerrit.extendNixOS {
module = {
services.gerrit.package = finalAttrs.finalPackage;
};
};
};
meta = {
homepage = "https://www.gerritcodereview.com/index.md";
license = lib.licenses.asl20;
description = "Web based code review and repository management for the git version control system";
changelog = "https://www.gerritcodereview.com/${lib.versions.majorMinor finalAttrs.version}.html";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
maintainers = with lib.maintainers; [
flokli
zimbatm
felixsinger
];
platforms = lib.platforms.unix;
};
})

View File

@@ -1,62 +1,3 @@
{
lib,
stdenvNoCC,
fetchurl,
gitUpdater,
nixosTests,
}:
{ callPackage }:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "gerrit";
version = "3.14.2";
src = fetchurl {
url = "https://gerrit-releases.storage.googleapis.com/gerrit-${finalAttrs.version}.war";
hash = "sha256-OuM96W9++2QKD2O2IwkzDjmBaC9Ej/6ReHY/Rwujuno=";
};
buildCommand = ''
mkdir -p "$out"/webapps/
ln -s ${finalAttrs.src} "$out"/webapps/gerrit-${finalAttrs.version}.war
'';
passthru = {
updateScript = gitUpdater {
url = "https://gerrit.googlesource.com/gerrit";
rev-prefix = "v";
allowedVersions = "^[0-9\\.]+$";
};
# A list of plugins that are part of the gerrit.war file.
# Use `java -jar gerrit.war ls | grep plugins/` to generate that list.
plugins = [
"codemirror-editor"
"commit-message-length-validator"
"delete-project"
"download-commands"
"gitiles"
"hooks"
"plugin-manager"
"replication"
"reviewnotes"
"singleusergroup"
"webhooks"
];
tests = {
inherit (nixosTests) gerrit;
};
};
meta = {
homepage = "https://www.gerritcodereview.com/index.md";
license = lib.licenses.asl20;
description = "Web based code review and repository management for the git version control system";
changelog = "https://www.gerritcodereview.com/${lib.versions.majorMinor finalAttrs.version}.html";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
maintainers = with lib.maintainers; [
flokli
zimbatm
felixsinger
];
platforms = lib.platforms.unix;
};
})
callPackage ./3_14.nix { }

View File

@@ -1080,6 +1080,12 @@ with pkgs;
forgejo-lts = callPackage ../by-name/fo/forgejo/lts.nix { };
gerrit_3_12 = callPackage ../by-name/ge/gerrit/3_12.nix { };
gerrit_3_13 = callPackage ../by-name/ge/gerrit/3_13.nix { };
gerrit_3_14 = callPackage ../by-name/ge/gerrit/3_14.nix { };
github-cli = gh;
git-credential-aol = callPackage ../by-name/gi/git-credential-email/git-credential-aol { };