5daaaa2f0b
* //3p/overlays/tvl: build nixos-option with latest Nix version (2.24) as is required now. It would be nice to avoid this somehow to prevent NixOS machines in depot having to carry around two versions of Nix. Maybe we can at least use a statically linked nixos-option? * //3p/{gerrit,gerrit_plugins}: update deps hash * //tvix/eval: adjust our nixVersion “user agent” so that it'll pass the new 2.3.17 minimum version nixpkgs prescribes (to check for zstd support when substituting from the binary cache). Change-Id: I4eb715afdc3dbb857340839f08ce86612aa7f117 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12805 Reviewed-by: flokli <flokli@flokli.de> Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
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:114k8ck7056c415qncqmykwqrgprmxnaw3pdv50758mrgw7zdkpm";
|
|
|
|
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" ];
|
|
}
|