treewide: standardize JDKs on darwin (#375212)
This commit is contained in:
@@ -19,7 +19,7 @@ let
|
||||
providedCpuTypes = builtins.filter (arch: builtins.elem arch validCpuTypes) (
|
||||
builtins.attrNames sourcePerArch
|
||||
);
|
||||
result = stdenv.mkDerivation {
|
||||
result = stdenv.mkDerivation (finalAttrs: {
|
||||
pname =
|
||||
if sourcePerArch.packageType == "jdk" then
|
||||
"${name-prefix}-bin"
|
||||
@@ -40,16 +40,19 @@ let
|
||||
installPhase = ''
|
||||
cd ..
|
||||
|
||||
mv $sourceRoot $out
|
||||
mkdir -p $out/Library/Java/JavaVirtualMachines
|
||||
|
||||
bundle=$out/Library/Java/JavaVirtualMachines/${name-prefix}-${lib.versions.major finalAttrs.version}.jdk
|
||||
mv $sourceRoot $bundle
|
||||
|
||||
# jni.h expects jni_md.h to be in the header search path.
|
||||
ln -s $out/Contents/Home/include/darwin/*_md.h $out/Contents/Home/include/
|
||||
ln -s $bundle/Contents/Home/include/darwin/*_md.h $bundle/Contents/Home/include/
|
||||
|
||||
# Remove some broken manpages.
|
||||
# Only for 11 and earlier.
|
||||
[ -e "$out/Contents/Home/man/ja" ] && rm -r $out/Contents/Home/man/ja
|
||||
[ -e "$bundle/Contents/Home/man/ja" ] && rm -r $bundle/Contents/Home/man/ja
|
||||
|
||||
ln -s $out/Contents/Home/* $out/
|
||||
ln -s $bundle/Contents/Home/* $out/
|
||||
|
||||
# Propagate the setJavaClassPath setup hook from the JDK so that
|
||||
# any package that depends on the JDK has $CLASSPATH set up
|
||||
@@ -65,8 +68,9 @@ let
|
||||
|
||||
# FIXME: use multiple outputs or return actual JRE package
|
||||
passthru = {
|
||||
jre = result;
|
||||
home = result;
|
||||
jre = finalAttrs.finalPackage;
|
||||
home = finalAttrs.finalPackage;
|
||||
bundle = "${finalAttrs.finalPackage}/Library/Java/JavaVirtualMachines/${name-prefix}-${lib.versions.major finalAttrs.version}.jdk";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
@@ -81,6 +85,6 @@ let
|
||||
inherit knownVulnerabilities;
|
||||
mainProgram = "java";
|
||||
};
|
||||
};
|
||||
});
|
||||
in
|
||||
result
|
||||
|
||||
@@ -116,21 +116,30 @@ let
|
||||
else
|
||||
null;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
mv * $out
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out
|
||||
mv * $out
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir -p $out/Library/Java/JavaVirtualMachines
|
||||
bundle=$out/Library/Java/JavaVirtualMachines/zulu-${lib.versions.major version}.jdk
|
||||
mv $out/zulu-${lib.versions.major version}.jdk $bundle
|
||||
ln -sf $bundle/Contents/Home/* $out/
|
||||
''
|
||||
+ ''
|
||||
|
||||
unzip ${jce-policies}
|
||||
mv -f ZuluJCEPolicies/*.jar $out/${lib.optionalString isJdk8 "jre/"}lib/security/
|
||||
unzip ${jce-policies}
|
||||
mv -f ZuluJCEPolicies/*.jar $out/${lib.optionalString isJdk8 "jre/"}lib/security/
|
||||
|
||||
# jni.h expects jni_md.h to be in the header search path.
|
||||
ln -s $out/include/${stdenv.hostPlatform.parsed.kernel.name}/*_md.h $out/include/
|
||||
# jni.h expects jni_md.h to be in the header search path.
|
||||
ln -s $out/include/${stdenv.hostPlatform.parsed.kernel.name}/*_md.h $out/include/
|
||||
|
||||
if [ -f $out/LICENSE ]; then
|
||||
install -D $out/LICENSE $out/share/zulu/LICENSE
|
||||
rm $out/LICENSE
|
||||
fi
|
||||
'';
|
||||
if [ -f $out/LICENSE ]; then
|
||||
install -D $out/LICENSE $out/share/zulu/LICENSE
|
||||
rm $out/LICENSE
|
||||
fi
|
||||
'';
|
||||
|
||||
preFixup =
|
||||
''
|
||||
@@ -174,6 +183,9 @@ let
|
||||
})
|
||||
// {
|
||||
home = jdk;
|
||||
}
|
||||
// lib.optionalAttrs stdenv.hostPlatform.isDarwin {
|
||||
bundle = "${jdk}/Library/Java/JavaVirtualMachines/zulu-${lib.versions.major version}.jdk";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
Reference in New Issue
Block a user