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" ];
 | 
						|
}
 |