tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
zulu: add darwin support
Weijia Wang
2 years ago
2e692b3d
8d8796f3
+82
-276
13 changed files
expand all
collapse all
unified
split
pkgs
development
compilers
openjdk
darwin
8.nix
zulu
11.nix
16.nix
17.nix
18.nix
19.nix
20.nix
21.nix
8.nix
common.nix
default.nix
top-level
all-packages.nix
java-packages.nix
+16
pkgs/development/compilers/openjdk/darwin/11.nix
pkgs/development/compilers/zulu/11.nix
···
7
7
# Details from https://www.azul.com/downloads/?version=java-11-lts&package=jdk
8
8
# Note that the latest build may differ by platform
9
9
dists = {
10
10
+
x86_64-linux = {
11
11
+
zuluVersion = "11.66.15";
12
12
+
jdkVersion = "11.0.20";
13
13
+
hash =
14
14
+
if enableJavaFX then "sha256-CjWtqnirEDrpF61WXm/Yi372IzhpTpi+/AfEqirlZnc="
15
15
+
else "sha256-o0tAT4egimEUizjhQW2DcYnh33oEDZSedDYz2vRpWjw=";
16
16
+
};
17
17
+
18
18
+
aarch64-linux = {
19
19
+
zuluVersion = "11.66.15";
20
20
+
jdkVersion = "11.0.20";
21
21
+
hash =
22
22
+
if enableJavaFX then throw "JavaFX is not available for aarch64-linux"
23
23
+
else "sha256-VBdEOfKz/d0R8QSMOX/nu0XUydZtRS1oibAT0E0hxN4=";
24
24
+
};
25
25
+
10
26
x86_64-darwin = {
11
27
zuluVersion = "11.66.15";
12
28
jdkVersion = "11.0.20";
pkgs/development/compilers/openjdk/darwin/16.nix
pkgs/development/compilers/zulu/16.nix
pkgs/development/compilers/openjdk/darwin/17.nix
pkgs/development/compilers/zulu/17.nix
pkgs/development/compilers/openjdk/darwin/18.nix
pkgs/development/compilers/zulu/18.nix
pkgs/development/compilers/openjdk/darwin/19.nix
pkgs/development/compilers/zulu/19.nix
pkgs/development/compilers/openjdk/darwin/20.nix
pkgs/development/compilers/zulu/20.nix
-26
pkgs/development/compilers/openjdk/darwin/8.nix
···
1
1
-
{ callPackage
2
2
-
, enableJavaFX ? false
3
3
-
, ...
4
4
-
}@args:
5
5
-
6
6
-
callPackage ./common.nix ({
7
7
-
# Details from https://www.azul.com/downloads/?version=java-8-lts&package=jdk
8
8
-
# Note that the latest build may differ by platform
9
9
-
dists = {
10
10
-
x86_64-darwin = {
11
11
-
zuluVersion = "8.72.0.17";
12
12
-
jdkVersion = "8.0.382";
13
13
-
hash =
14
14
-
if enableJavaFX then "sha256-/x8FqygivzddXsOwIV8aj/u+LPXMmokgu97vLAVEv80="
15
15
-
else "sha256-3dTPIPGUeT6nb3gncNvEa4VTRyQIBJpp8oZadrT2ToE=";
16
16
-
};
17
17
-
18
18
-
aarch64-darwin = {
19
19
-
zuluVersion = "8.72.0.17";
20
20
-
jdkVersion = "8.0.382";
21
21
-
hash =
22
22
-
if enableJavaFX then "sha256-FkQ+0MzSZWUzc/HmiDVZEHGOrdKAVCdK5pm9wXXzzaU="
23
23
-
else "sha256-rN5AI4xAWppE4kJlzMod0JmGyHdHjTXYtx8/wOW6CFk=";
24
24
-
};
25
25
-
};
26
26
-
} // builtins.removeAttrs args [ "callPackage" ])
+1
-1
pkgs/development/compilers/openjdk/darwin/common.nix
pkgs/development/compilers/zulu/common.nix
···
142
142
home = jdk;
143
143
};
144
144
145
145
-
meta = (import ../../openjdk/meta.nix lib version) // {
145
145
+
meta = (import ../openjdk/meta.nix lib version) // {
146
146
description = "Certified builds of OpenJDK";
147
147
longDescription = ''
148
148
Certified builds of OpenJDK that can be deployed across multiple
+26
pkgs/development/compilers/zulu/21.nix
···
1
1
+
{ callPackage
2
2
+
, enableJavaFX ? false
3
3
+
, ...
4
4
+
}@args:
5
5
+
6
6
+
callPackage ./common.nix ({
7
7
+
# Details from https://www.azul.com/downloads/?version=java-21-lts&package=jdk
8
8
+
# Note that the latest build may differ by platform
9
9
+
dists = {
10
10
+
x86_64-darwin = {
11
11
+
zuluVersion = "21.28.85";
12
12
+
jdkVersion = "21.0.0";
13
13
+
hash =
14
14
+
if enableJavaFX then "sha256-QrgEpLaNGc2aNFF38z2ckUTCpweKnuALYLOWATZFJPA="
15
15
+
else "sha256-ljm4fbWG0MifepiSrkf0IeRCxkuXuuvf8xeI++IyZb0=";
16
16
+
};
17
17
+
18
18
+
aarch64-darwin = {
19
19
+
zuluVersion = "21.28.85";
20
20
+
jdkVersion = "21.0.0";
21
21
+
hash =
22
22
+
if enableJavaFX then "sha256-PUVB/R1K1dLTi1FsOYIvcI76M6EYYeMG1Bm+oMno//Y="
23
23
+
else "sha256-KnqZo+omPb2NMqZ9Hm42O6iyXGRcgm9eFnoCu6+v8fo=";
24
24
+
};
25
25
+
};
26
26
+
} // builtins.removeAttrs args [ "callPackage" ])
+30
-116
pkgs/development/compilers/zulu/8.nix
···
1
1
-
{ stdenv
2
2
-
, lib
3
3
-
, fetchurl
4
4
-
, autoPatchelfHook
5
5
-
, unzip
6
6
-
, makeWrapper
7
7
-
, setJavaClassPath
8
8
-
, zulu
9
9
-
# minimum dependencies
10
10
-
, alsa-lib
11
11
-
, fontconfig
12
12
-
, freetype
13
13
-
, xorg
14
14
-
# runtime dependencies
15
15
-
, cups
16
16
-
# runtime dependencies for GTK+ Look and Feel
17
17
-
, gtkSupport ? stdenv.isLinux
18
18
-
, cairo
19
19
-
, glib
20
20
-
, gtk3
21
21
-
}:
22
22
-
23
23
-
let
24
24
-
version = "8.68.0.19";
25
25
-
openjdk = "8.0.362";
26
26
-
27
27
-
sha256_linux = "sha256-jNty0iJoXG+sp7v2fGCrwZWCSZfQ4tkYe8ERixQMKL0=";
28
28
-
sha256_darwin = "sha256-3/P3puM6a7tCHP5eZM6IzbdPrqnhY1dTa7QWss9M08M=";
29
29
-
30
30
-
platform = if stdenv.isDarwin then "macosx" else "linux";
31
31
-
hash = if stdenv.isDarwin then sha256_darwin else sha256_linux;
32
32
-
extension = if stdenv.isDarwin then "zip" else "tar.gz";
33
33
-
34
34
-
runtimeDependencies = [
35
35
-
cups
36
36
-
] ++ lib.optionals gtkSupport [
37
37
-
cairo glib gtk3
38
38
-
];
39
39
-
runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
40
40
-
41
41
-
in stdenv.mkDerivation {
42
42
-
inherit version openjdk platform hash extension;
43
43
-
44
44
-
pname = "zulu";
45
45
-
46
46
-
src = fetchurl {
47
47
-
url = "https://cdn.azul.com/zulu/bin/zulu${version}-ca-jdk${openjdk}-${platform}_x64.${extension}";
48
48
-
sha256 = hash;
49
49
-
};
50
50
-
51
51
-
buildInputs = lib.optionals stdenv.isLinux [
52
52
-
alsa-lib # libasound.so wanted by lib/libjsound.so
53
53
-
fontconfig
54
54
-
freetype
55
55
-
stdenv.cc.cc # libstdc++.so.6
56
56
-
xorg.libX11
57
57
-
xorg.libXext
58
58
-
xorg.libXi
59
59
-
xorg.libXrender
60
60
-
xorg.libXtst
61
61
-
];
62
62
-
63
63
-
nativeBuildInputs = [
64
64
-
makeWrapper
65
65
-
] ++ lib.optionals stdenv.isLinux [
66
66
-
autoPatchelfHook
67
67
-
] ++ lib.optionals stdenv.isDarwin [
68
68
-
unzip
69
69
-
];
70
70
-
71
71
-
installPhase = ''
72
72
-
runHook preInstall
73
73
-
74
74
-
mkdir -p $out
75
75
-
cp -r ./* "$out/"
76
76
-
'' + lib.optionalString stdenv.isLinux ''
77
77
-
# jni.h expects jni_md.h to be in the header search path.
78
78
-
ln -s $out/include/linux/*_md.h $out/include/
79
79
-
'' + ''
80
80
-
mkdir -p $out/nix-support
81
81
-
printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
1
1
+
{ callPackage
2
2
+
, enableJavaFX ? false
3
3
+
, ...
4
4
+
}@args:
82
5
83
83
-
# Set JAVA_HOME automatically.
84
84
-
cat <<EOF >> $out/nix-support/setup-hook
85
85
-
if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
86
86
-
EOF
87
87
-
'' + lib.optionalString stdenv.isLinux ''
88
88
-
# We cannot use -exec since wrapProgram is a function but not a command.
89
89
-
for bin in $( find "$out" -executable -type f ); do
90
90
-
if patchelf --print-interpreter "$bin" &> /dev/null; then
91
91
-
wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
92
92
-
fi
93
93
-
done
94
94
-
'' + ''
95
95
-
runHook postInstall
96
96
-
'';
6
6
+
callPackage ./common.nix ({
7
7
+
# Details from https://www.azul.com/downloads/?version=java-8-lts&package=jdk
8
8
+
# Note that the latest build may differ by platform
9
9
+
dists = {
10
10
+
x86_64-linux = {
11
11
+
zuluVersion = "8.72.0.17";
12
12
+
jdkVersion = "8.0.382";
13
13
+
hash =
14
14
+
if enableJavaFX then "sha256-mIPCFESU7hy2naYur2jvFBtVn/LZQRcFiyiG61buCYs="
15
15
+
else "sha256-exWlbyrgBb7aD4daJps9qtFP+hKWkwbMdFR4OFslupY=";
16
16
+
};
97
17
98
98
-
preFixup = ''
99
99
-
find "$out" -name libfontmanager.so -exec \
100
100
-
patchelf --add-needed libfontconfig.so {} \;
101
101
-
'';
102
102
-
103
103
-
passthru = {
104
104
-
home = zulu;
105
105
-
};
18
18
+
x86_64-darwin = {
19
19
+
zuluVersion = "8.72.0.17";
20
20
+
jdkVersion = "8.0.382";
21
21
+
hash =
22
22
+
if enableJavaFX then "sha256-/x8FqygivzddXsOwIV8aj/u+LPXMmokgu97vLAVEv80="
23
23
+
else "sha256-3dTPIPGUeT6nb3gncNvEa4VTRyQIBJpp8oZadrT2ToE=";
24
24
+
};
106
25
107
107
-
meta = with lib; {
108
108
-
homepage = "https://www.azul.com/products/zulu/";
109
109
-
sourceProvenance = with sourceTypes; [ binaryBytecode binaryNativeCode ];
110
110
-
license = licenses.gpl2;
111
111
-
description = "Certified builds of OpenJDK";
112
112
-
longDescription = ''
113
113
-
Certified builds of OpenJDK that can be deployed across multiple
114
114
-
operating systems, containers, hypervisors and Cloud platforms.
115
115
-
'';
116
116
-
maintainers = with maintainers; [ ];
117
117
-
platforms = [ "x86_64-linux" "x86_64-darwin" ];
118
118
-
mainProgram = "java";
26
26
+
aarch64-darwin = {
27
27
+
zuluVersion = "8.72.0.17";
28
28
+
jdkVersion = "8.0.382";
29
29
+
hash =
30
30
+
if enableJavaFX then "sha256-FkQ+0MzSZWUzc/HmiDVZEHGOrdKAVCdK5pm9wXXzzaU="
31
31
+
else "sha256-rN5AI4xAWppE4kJlzMod0JmGyHdHjTXYtx8/wOW6CFk=";
32
32
+
};
119
33
};
120
120
-
}
34
34
+
} // builtins.removeAttrs args [ "callPackage" ])
-125
pkgs/development/compilers/zulu/default.nix
···
1
1
-
{ stdenv
2
2
-
, lib
3
3
-
, fetchurl
4
4
-
, autoPatchelfHook
5
5
-
, unzip
6
6
-
, makeWrapper
7
7
-
, setJavaClassPath
8
8
-
, zulu
9
9
-
# minimum dependencies
10
10
-
, alsa-lib
11
11
-
, fontconfig
12
12
-
, freetype
13
13
-
, zlib
14
14
-
, xorg
15
15
-
# runtime dependencies
16
16
-
, cups
17
17
-
# runtime dependencies for GTK+ Look and Feel
18
18
-
, gtkSupport ? stdenv.isLinux
19
19
-
, cairo
20
20
-
, glib
21
21
-
, gtk3
22
22
-
}:
23
23
-
24
24
-
let
25
25
-
version = "11.62.17";
26
26
-
openjdk = "11.0.18";
27
27
-
28
28
-
sha256_x64_linux = "sha256-b65oEbDzrrsUw+WaX94USBz/QS74yiMiGZPxqzMmmqs=";
29
29
-
sha256_x64_darwin = "sha256-nRRWTWiog8bRblmmPIPE5YibA34St3ZrJpZN91qEDUg=";
30
30
-
sha256_aarch64_darwin = "sha256-TBTrBxOfGo6MV+Md49P3sDfqVG1e+NraqfVbw9WTppk=";
31
31
-
32
32
-
platform = if stdenv.isDarwin then "macosx" else "linux";
33
33
-
hash = if stdenv.isAarch64 && stdenv.isDarwin then sha256_aarch64_darwin else if stdenv.isDarwin then sha256_x64_darwin else sha256_x64_linux;
34
34
-
extension = if stdenv.isDarwin then "zip" else "tar.gz";
35
35
-
architecture = if stdenv.isAarch64 then "aarch64" else "x64";
36
36
-
37
37
-
runtimeDependencies = [
38
38
-
cups
39
39
-
] ++ lib.optionals gtkSupport [
40
40
-
cairo glib gtk3
41
41
-
];
42
42
-
runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
43
43
-
44
44
-
in stdenv.mkDerivation {
45
45
-
inherit version openjdk platform hash extension;
46
46
-
47
47
-
pname = "zulu";
48
48
-
49
49
-
src = fetchurl {
50
50
-
url = "https://cdn.azul.com/zulu/bin/zulu${version}-ca-jdk${openjdk}-${platform}_${architecture}.${extension}";
51
51
-
sha256 = hash;
52
52
-
};
53
53
-
54
54
-
buildInputs = lib.optionals stdenv.isLinux [
55
55
-
alsa-lib # libasound.so wanted by lib/libjsound.so
56
56
-
fontconfig
57
57
-
freetype
58
58
-
stdenv.cc.cc # libstdc++.so.6
59
59
-
xorg.libX11
60
60
-
xorg.libXext
61
61
-
xorg.libXi
62
62
-
xorg.libXrender
63
63
-
xorg.libXtst
64
64
-
zlib
65
65
-
];
66
66
-
67
67
-
nativeBuildInputs = [
68
68
-
makeWrapper
69
69
-
] ++ lib.optionals stdenv.isLinux [
70
70
-
autoPatchelfHook
71
71
-
] ++ lib.optionals stdenv.isDarwin [
72
72
-
unzip
73
73
-
];
74
74
-
75
75
-
installPhase = ''
76
76
-
runHook preInstall
77
77
-
78
78
-
mkdir -p $out
79
79
-
cp -r ./* "$out/"
80
80
-
'' + lib.optionalString stdenv.isLinux ''
81
81
-
# jni.h expects jni_md.h to be in the header search path.
82
82
-
ln -s $out/include/linux/*_md.h $out/include/
83
83
-
'' + ''
84
84
-
mkdir -p $out/nix-support
85
85
-
printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
86
86
-
87
87
-
# Set JAVA_HOME automatically.
88
88
-
cat <<EOF >> $out/nix-support/setup-hook
89
89
-
if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
90
90
-
EOF
91
91
-
'' + lib.optionalString stdenv.isLinux ''
92
92
-
# We cannot use -exec since wrapProgram is a function but not a command.
93
93
-
#
94
94
-
# jspawnhelper is executed from JVM, so it doesn't need to wrap it, and it
95
95
-
# breaks building OpenJDK (#114495).
96
96
-
for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do
97
97
-
wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
98
98
-
done
99
99
-
'' + ''
100
100
-
runHook postInstall
101
101
-
'';
102
102
-
103
103
-
preFixup = ''
104
104
-
find "$out" -name libfontmanager.so -exec \
105
105
-
patchelf --add-needed libfontconfig.so {} \;
106
106
-
'';
107
107
-
108
108
-
passthru = {
109
109
-
home = zulu;
110
110
-
};
111
111
-
112
112
-
meta = with lib; {
113
113
-
homepage = "https://www.azul.com/products/zulu/";
114
114
-
sourceProvenance = with sourceTypes; [ binaryBytecode binaryNativeCode ];
115
115
-
license = licenses.gpl2;
116
116
-
description = "Certified builds of OpenJDK";
117
117
-
longDescription = ''
118
118
-
Certified builds of OpenJDK that can be deployed across multiple
119
119
-
operating systems, containers, hypervisors and Cloud platforms.
120
120
-
'';
121
121
-
maintainers = with maintainers; [ ];
122
122
-
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
123
123
-
mainProgram = "java";
124
124
-
};
125
125
-
}
+2
-1
pkgs/top-level/all-packages.nix
···
17688
17688
zulip-term = callPackage ../applications/networking/instant-messengers/zulip-term { };
17689
17689
17690
17690
zulu8 = callPackage ../development/compilers/zulu/8.nix { };
17691
17691
-
zulu = callPackage ../development/compilers/zulu { };
17691
17691
+
zulu11 = callPackage ../development/compilers/zulu/11.nix { };
17692
17692
+
zulu = zulu11;
17692
17693
17693
17694
### DEVELOPMENT / INTERPRETERS
17694
17695
+7
-7
pkgs/top-level/java-packages.nix
···
141
141
142
142
openjdk8 = mkOpenjdk
143
143
../development/compilers/openjdk/8.nix
144
144
-
../development/compilers/openjdk/darwin/8.nix
144
144
+
../development/compilers/zulu/8.nix
145
145
{ };
146
146
147
147
openjdk11 = mkOpenjdk
148
148
../development/compilers/openjdk/11.nix
149
149
-
../development/compilers/openjdk/darwin/11.nix
149
149
+
../development/compilers/zulu/11.nix
150
150
{ openjfx = openjfx11; };
151
151
152
152
openjdk12 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/12.nix {
···
172
172
173
173
openjdk16 = mkOpenjdk
174
174
../development/compilers/openjdk/16.nix
175
175
-
../development/compilers/openjdk/darwin/16.nix
175
175
+
../development/compilers/zulu/16.nix
176
176
{
177
177
inherit openjdk16-bootstrap;
178
178
openjfx = openjfx15;
···
180
180
181
181
openjdk17 = mkOpenjdk
182
182
../development/compilers/openjdk/17.nix
183
183
-
../development/compilers/openjdk/darwin/17.nix
183
183
+
../development/compilers/zulu/17.nix
184
184
{
185
185
inherit openjdk17-bootstrap;
186
186
openjfx = openjfx17;
···
188
188
189
189
openjdk18 = mkOpenjdk
190
190
../development/compilers/openjdk/18.nix
191
191
-
../development/compilers/openjdk/darwin/18.nix
191
191
+
../development/compilers/zulu/18.nix
192
192
{
193
193
inherit openjdk18-bootstrap;
194
194
openjfx = openjfx17;
···
196
196
197
197
openjdk19 = mkOpenjdk
198
198
../development/compilers/openjdk/19.nix
199
199
-
../development/compilers/openjdk/darwin/19.nix
199
199
+
../development/compilers/zulu/19.nix
200
200
{
201
201
openjdk19-bootstrap = temurin-bin.jdk-19;
202
202
openjfx = openjfx19;
···
204
204
205
205
openjdk20 = mkOpenjdk
206
206
../development/compilers/openjdk/20.nix
207
207
-
../development/compilers/openjdk/darwin/20.nix
207
207
+
../development/compilers/zulu/20.nix
208
208
{
209
209
openjdk20-bootstrap = temurin-bin.jdk-20;
210
210
openjfx = openjfx20;