jre_minimal: strip libraries
runCommand doesn't invoke the automatic stripping from stdenv, expanding the derivation like this does. Fixes #115486
This commit is contained in:
parent
102eb68cee
commit
d3e9040686
1 changed files with 24 additions and 9 deletions
|
@ -1,19 +1,34 @@
|
|||
{ jdk
|
||||
, runCommand
|
||||
, patchelf
|
||||
{ stdenv
|
||||
, jdk
|
||||
, lib
|
||||
, modules ? [ "java.base" ]
|
||||
}:
|
||||
|
||||
let
|
||||
jre = runCommand "${jdk.name}-jre" {
|
||||
nativeBuildInputs = [ patchelf ];
|
||||
jre = stdenv.mkDerivation {
|
||||
name = "${jdk.name}-minimal-jre";
|
||||
version = jdk.version;
|
||||
|
||||
buildInputs = [ jdk ];
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
# Strip more heavily than the default '-S', since if you're
|
||||
# using this derivation you probably care about this.
|
||||
stripDebugFlags = [ "--strip-unneeded" ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
jlink --module-path ${jdk}/lib/openjdk/jmods --add-modules ${lib.concatStringsSep "," modules} --output $out
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
dontInstall = true;
|
||||
|
||||
passthru = {
|
||||
home = "${jre}";
|
||||
};
|
||||
} ''
|
||||
jlink --module-path ${jdk}/lib/openjdk/jmods --add-modules ${lib.concatStringsSep "," modules} --output $out
|
||||
patchelf --shrink-rpath $out/bin/* $out/lib/jexec $out/lib/jspawnhelper $out/lib/*.so $out/lib/*/*.so
|
||||
'';
|
||||
};
|
||||
in jre
|
||||
|
|
Loading…
Reference in a new issue