6d7713572f
This breaks it with "ssh_dispatch_run_fatal: Connection to 2a01:4f8:242:5b21:0:feed:edef:beef port 29418: incorrect signature" Change-Id: I9bafc5fb6d4743ce4f097158ec14fecc791366ca Reviewed-on: https://cl.tvl.fyi/c/depot/+/11965 Tested-by: BuildkiteCI Autosubmit: lukegb <lukegb@tvl.fyi> Reviewed-by: flokli <flokli@flokli.de> Reviewed-by: lukegb <lukegb@tvl.fyi>
105 lines
2.8 KiB
Nix
105 lines
2.8 KiB
Nix
{ depot, pkgs, ... }:
|
|
|
|
let
|
|
inherit (depot.nix) buildBazelPackageNG;
|
|
inherit (buildBazelPackageNG) bazelRulesJavaHook bazelRulesNodeJS5Hook;
|
|
in
|
|
pkgs.lib.makeOverridable depot.nix.buildBazelPackageNG rec {
|
|
pname = "gerrit";
|
|
version = "3.10.0";
|
|
|
|
bazel = pkgs.bazel_7;
|
|
|
|
src = (pkgs.fetchgit {
|
|
url = "https://gerrit.googlesource.com/gerrit";
|
|
rev = "v${version}";
|
|
fetchSubmodules = true;
|
|
deepClone = true;
|
|
hash = "sha256-FpKuzityHuHNYBIOL8YUjCLlkuVBfxjvHECb26NsZNE=";
|
|
}).overrideAttrs (_: {
|
|
env.NIX_PREFETCH_GIT_CHECKOUT_HOOK = ''
|
|
pushd "$dir" >/dev/null
|
|
${pkgs.python3}/bin/python tools/workspace_status_release.py | sort > .version
|
|
popd >/dev/null
|
|
|
|
# delete all the .git; we can't do this using fetchgit if deepClone is on,
|
|
# but our mischief has already been achieved by the python command above :)
|
|
find "$dir" -name .git -print0 | xargs -0 rm -rf
|
|
'';
|
|
});
|
|
depsHash = "sha256-OS2kLXjtuWf+XRyQO2qGvEaAOvxqu20+gXR+fsCvpMc=";
|
|
|
|
patches = [
|
|
./0001-Syntax-highlight-nix.patch
|
|
./0002-Syntax-highlight-rules.pl.patch
|
|
./0003-Add-titles-to-CLs-over-HTTP.patch
|
|
];
|
|
|
|
nativeBuildInputs = with pkgs; [
|
|
bazelRulesJavaHook
|
|
bazelRulesNodeJS5Hook
|
|
|
|
curl
|
|
jdk
|
|
python3
|
|
unzip
|
|
];
|
|
|
|
prePatch = ''
|
|
rm .bazelversion
|
|
|
|
ln -sf ${./bazelrc} user.bazelrc
|
|
|
|
ln -sf ${./workspace_overrides.bzl} workspace_overrides.bzl
|
|
substituteInPlace WORKSPACE \
|
|
--replace-fail 'load("@io_bazel_rules_webtesting//web:repositories.bzl"' 'load("//:workspace_overrides.bzl"' \
|
|
--replace-fail 'load("@io_bazel_rules_webtesting//web/versioned:browsers-0.3.3.bzl"' 'load("//:workspace_overrides.bzl"'
|
|
|
|
patchShebangs Documentation/replace_macros.py
|
|
'';
|
|
|
|
postPatch = ''
|
|
sed -Ei 's,^(STABLE_BUILD_GERRIT_LABEL.*)$,\1-dirty-nix,' .version
|
|
'';
|
|
|
|
preBuild = ''
|
|
export GERRIT_CACHE_HOME=$HOME/gerrit-cache
|
|
'';
|
|
|
|
extraCacheInstall = ''
|
|
cp -R $GERRIT_CACHE_HOME $out/gerrit-cache
|
|
'';
|
|
|
|
extraBuildSetup = ''
|
|
ln -sf $cache/gerrit-cache $GERRIT_CACHE_HOME
|
|
'';
|
|
extraBuildInstall = ''
|
|
mkdir -p "$out"/share/api/
|
|
unzip bazel-bin/api-skip-javadoc.zip -d "$out"/share/api
|
|
'';
|
|
|
|
bazelTargets = {
|
|
"//:release" = "$out/webapps/gerrit-${version}.war";
|
|
"//:api-skip-javadoc" = null;
|
|
};
|
|
|
|
passthru = {
|
|
# A list of plugins that are part of the gerrit.war file.
|
|
# Use `java -jar gerrit.war ls | grep -Po '(?<=plugins/)[^.]+' | sed -e 's,^,",' -e 's,$,",' | sort` to generate that list.
|
|
plugins = [
|
|
"codemirror-editor"
|
|
"commit-message-length-validator"
|
|
"delete-project"
|
|
"download-commands"
|
|
"gitiles"
|
|
"hooks"
|
|
"plugin-manager"
|
|
"replication"
|
|
"reviewnotes"
|
|
"singleusergroup"
|
|
"webhooks"
|
|
];
|
|
};
|
|
|
|
meta.ci.targets = [ "cache" ];
|
|
}
|