buildGradlePackage: always set GRADLE_USER_HOME

This commit is contained in:
Tad Fisher
2024-05-30 11:04:56 -07:00
parent 0851f93613
commit 44f193c8f9

View File

@@ -128,7 +128,6 @@ let
inherit (lib) inherit (lib)
mapAttrsToList mapAttrsToList
optionalString
readFile readFile
versionAtLeast versionAtLeast
versionOlder versionOlder
@@ -167,9 +166,6 @@ let
https = fetchurl; https = fetchurl;
} // fetchers; } // fetchers;
# Fetch urls using the scheme for the first entry only; there isn't a
# straightforward way to tell Nix to try multiple fetchers in turn
# and short-circuit on the first successful fetch.
fetch = fetch =
name: name:
{ url, hash }: { url, hash }:
@@ -304,41 +300,45 @@ let
dontStrip = true; dontStrip = true;
nativeBuildInputs = [ nativeBuildInputs = [ finalAttrs.gradle ];
finalAttrs.gradle
] ++ lib.optional (finalAttrs.buildJdk != null) finalAttrs.buildJdk;
buildPhase = '' buildPhase =
runHook preBuild let
finalGradleFlags =
[
"--console=plain"
"--no-build-cache"
"--no-configuration-cache"
"--no-daemon"
"--no-watch-fs"
"--offline"
]
++ lib.optional (finalAttrs.buildJdk != null) "-Dorg.gradle.java.home=${finalAttrs.buildJdk.home}"
++ lib.optional finalAttrs.enableDebug "-Dorg.gradle.debug=true"
++ lib.optional finalAttrs.enableParallelBuilding "--parallel"
++ lib.optional (versionAtLeast finalAttrs.gradle.version "8.0") "--init-script=${initScript}"
++ finalAttrs.gradleFlags;
in
''
runHook preBuild
( (
set -eux set -eux
export NIX_OFFLINE_REPO='${offlineRepo}' export NIX_OFFLINE_REPO='${offlineRepo}'
export GRADLE_USER_HOME="$(mktemp -d)"
${optionalString (versionOlder finalAttrs.gradle.version "8.0") '' ${lib.optionalString (versionOlder finalAttrs.gradle.version "8.0") ''
# Work around https://github.com/gradle/gradle/issues/1055 # Work around https://github.com/gradle/gradle/issues/1055
TMPHOME="$(mktemp -d)" mkdir -p "$GRADLE_USER_HOME/init.d"
mkdir -p "$TMPHOME/init.d" ln -s ${initScript} "$GRADLE_USER_HOME/init.d/nix-init.gradle"
export GRADLE_USER_HOME="$TMPHOME" ''}
cp ${initScript} $TMPHOME/
''}
gradle --offline --no-daemon --no-build-cache --no-watch-fs \ gradle ${builtins.toString finalGradleFlags}
--info --full-stacktrace --warning-mode=all \ )
--no-configuration-cache --console=plain \
-Dmaven.repo.local=${offlineRepo} \
${optionalString finalAttrs.enableParallelBuilding "--parallel"} \
${optionalString finalAttrs.enableDebug "-Dorg.gradle.debug=true"} \
${
optionalString (finalAttrs.buildJdk != null) "-Dorg.gradle.java.home=${finalAttrs.buildJdk.home}"
} \
--init-script ${initScript} \
${concatStringsSep " " finalAttrs.gradleFlags}
)
runHook postBuild runHook postBuild
''; '';
passthru = { passthru = {
inherit offlineRepo; inherit offlineRepo;