Skip to content

Commit 0057e68

Browse files
committed
corretto17: 17.0.14.7.1 -> 17.0.17.10.1
Gradle7 is phased out in nixpkgs but corretto <= 21 does not support Gradle8. See corretto/corretto-21#114 (comment). Hence, ./corretto17-gradle8.patch is added. This patch is loosely based on corretto/corretto-jdk#135.
1 parent 3d9220e commit 0057e68

File tree

2 files changed

+300
-8
lines changed

2 files changed

+300
-8
lines changed

pkgs/development/compilers/corretto/17.nix

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
fetchFromGitHub,
33
fetchurl,
4-
gradle_7,
4+
gradle_8,
55
jdk17,
66
lib,
77
stdenv,
@@ -20,13 +20,13 @@ let
2020
testers
2121
;
2222
jdk = jdk17;
23-
gradle = gradle_7;
24-
version = "17.0.14.7.1";
23+
gradle = gradle_8;
24+
version = "17.0.17.10.1";
2525
src = fetchFromGitHub {
2626
owner = "corretto";
2727
repo = "corretto-17";
2828
rev = version;
29-
hash = "sha256-ohQrguEJ8QvTaNjyQxKFujGhXNxCQTGkLILurzD7cy0=";
29+
hash = "sha256-Z8+g5jXjcWNTYU9Xvze7scu348okMauGMhSZwX1sS9w=";
3030
};
3131
};
3232
in
@@ -35,9 +35,11 @@ corretto.overrideAttrs (
3535
# Corretto17 has incorporated this patch already so it fails to apply.
3636
# We thus skip it here.
3737
# See https://github.com/corretto/corretto-17/pull/158
38-
patches = lib.remove (fetchurl {
39-
url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=41e78a067953e0b13d062d632bae6c4f8028d91c";
40-
sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo=";
41-
}) (prev.patches or [ ]);
38+
patches =
39+
lib.remove (fetchurl {
40+
url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=41e78a067953e0b13d062d632bae6c4f8028d91c";
41+
sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo=";
42+
}) (prev.patches or [ ])
43+
++ [ ./corretto17-gradle8.patch ];
4244
}
4345
)
Lines changed: 290 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,290 @@
1+
diff --git a/build.gradle b/build.gradle
2+
index f678379aa..62df526d4 100644
3+
--- a/build.gradle
4+
+++ b/build.gradle
5+
@@ -231,7 +231,7 @@ project(':prebuild') {
6+
def generateToolMain = "build.tools.generatecacerts.GenerateCacerts"
7+
8+
task copyToolSrc(type: Copy) {
9+
- description 'Copy utility tool source to the project root'
10+
+ description = 'Copy utility tool source to the project root'
11+
from fileTree("$rootDir/make/jdk/src/classes") {
12+
include 'build/tools/generatecacerts/*'
13+
}
14+
@@ -241,7 +241,7 @@ project(':prebuild') {
15+
task buildTool(type: JavaCompile) {
16+
dependsOn copyToolSrc
17+
source = fileTree(dir: preBuildSrc, include: '**/*.java')
18+
- destinationDir = file(classPath)
19+
+ destinationDirectory = file(classPath)
20+
classpath = files(classPath)
21+
}
22+
23+
@@ -282,9 +282,9 @@ project(':openjdksrc') {
24+
* Compresses a snapshot of the source code used to perform the build.
25+
*/
26+
task sourceDistributionTarball(type: Tar) {
27+
- description 'Assemble source files required for building and distributing Corretto.'
28+
- compression Compression.GZIP
29+
- archiveName sourceTar
30+
+ description = 'Assemble source files required for building and distributing Corretto.'
31+
+ compression = Compression.GZIP
32+
+ archiveFileName = sourceTar
33+
from fileTree(rootDir) {
34+
include 'LICENSE',
35+
'ADDITIONAL_LICENSE_INFO',
36+
diff --git a/installers/linux/al2/spec/build.gradle b/installers/linux/al2/spec/build.gradle
37+
index a5a1b9a7c..201283213 100644
38+
--- a/installers/linux/al2/spec/build.gradle
39+
+++ b/installers/linux/al2/spec/build.gradle
40+
@@ -62,8 +62,8 @@ task inflateRpmSpec {
41+
42+
task copySourceTar(type: Tar) {
43+
dependsOn project.configurations.compile, inflateRpmSpec
44+
- compression Compression.GZIP
45+
- archiveName project.configurations.compile.singleFile.name
46+
+ compression = Compression.GZIP
47+
+ archiveFileName = project.configurations.compile.singleFile.name
48+
from("$buildDir") {
49+
include "java-${project.version.major}-amazon-corretto.spec"
50+
into 'rpm'
51+
diff --git a/installers/linux/alpine/tar/build.gradle b/installers/linux/alpine/tar/build.gradle
52+
index d0f95bd42..60bc9d40a 100644
53+
--- a/installers/linux/alpine/tar/build.gradle
54+
+++ b/installers/linux/alpine/tar/build.gradle
55+
@@ -132,9 +132,9 @@ task bundleThirdPartyBinaries {
56+
57+
task packageTestImage(type: Tar) {
58+
dependsOn createTestImage
59+
- description 'Package test results'
60+
- archiveName "amazon-corretto-testimage-${project.version.full}-alpine-linux-${arch_alias}.tar.gz"
61+
- compression Compression.GZIP
62+
+ description = 'Package test results'
63+
+ archiveFileName = "amazon-corretto-testimage-${project.version.full}-alpine-linux-${arch_alias}.tar.gz"
64+
+ compression = Compression.GZIP
65+
from(testResultingImage) {
66+
include '**'
67+
}
68+
@@ -143,9 +143,9 @@ task packageTestImage(type: Tar) {
69+
70+
task packageDebugSymbols(type: Tar) {
71+
dependsOn packageTestImage
72+
- description 'Package debug symbols'
73+
- archiveName "amazon-corretto-debugsymbols-${project.version.full}-alpine-linux-${arch_alias}.tar.gz"
74+
- compression Compression.GZIP
75+
+ description = 'Package debug symbols'
76+
+ archiveFileName = "amazon-corretto-debugsymbols-${project.version.full}-alpine-linux-${arch_alias}.tar.gz"
77+
+ compression = Compression.GZIP
78+
from(jdkResultingImage) {
79+
include 'bin/*.diz'
80+
include 'lib/*.diz'
81+
@@ -155,12 +155,12 @@ task packageDebugSymbols(type: Tar) {
82+
}
83+
84+
task packageBuildResults(type: Tar) {
85+
- description 'Compresses the JDK image and puts the results in build/distributions.'
86+
+ description = 'Compresses the JDK image and puts the results in build/distributions.'
87+
dependsOn packageDebugSymbols
88+
dependsOn executeBuild
89+
dependsOn bundleThirdPartyBinaries
90+
- archiveName "amazon-corretto-${project.version.full}-alpine-linux-${arch_alias}.tar.gz"
91+
- compression Compression.GZIP
92+
+ archiveFileName = "amazon-corretto-${project.version.full}-alpine-linux-${arch_alias}.tar.gz"
93+
+ compression = Compression.GZIP
94+
from(buildRoot) {
95+
include 'ADDITIONAL_LICENSE_INFO'
96+
include 'ASSEMBLY_EXCEPTION'
97+
diff --git a/installers/linux/universal/deb/build.gradle b/installers/linux/universal/deb/build.gradle
98+
index 118ad0b74..54f7e0c50 100644
99+
--- a/installers/linux/universal/deb/build.gradle
100+
+++ b/installers/linux/universal/deb/build.gradle
101+
@@ -20,7 +20,7 @@
102+
*/
103+
104+
plugins {
105+
- id 'nebula.ospackage' version 'latest.release'
106+
+ id 'com.netflix.nebula.ospackage' version 'latest.release'
107+
}
108+
109+
dependencies {
110+
@@ -54,22 +54,22 @@ def jinfoName = ".${jdkInstallationDirName}.jinfo"
111+
ospackage {
112+
// Valid version must start with a digit and only contain [A-Za-z0-9.+:~-]
113+
// See http://manpages.ubuntu.com/manpages/artful/en/man5/deb-version.5.html
114+
- version project.version.upstream
115+
- release project.version.revision
116+
-
117+
- url "${packageInfo.url}"
118+
- vendor "${packageInfo.vendor}"
119+
- packager "${packageInfo.packager}"
120+
- license "${packageInfo.license}"
121+
- buildHost "${packageInfo.buildHost}"
122+
- maintainer "${packageInfo.maintainer}"
123+
- packageGroup 'java'
124+
- priority 'optional'
125+
- user 'root'
126+
- permissionGroup 'root'
127+
- epoch 1
128+
- arch arch_deb
129+
- multiArch SAME
130+
+ version = project.version.upstream
131+
+ release = project.version.revision
132+
+
133+
+ url = "${packageInfo.url}"
134+
+ vendor = "${packageInfo.vendor}"
135+
+ packager = "${packageInfo.packager}"
136+
+ license = "${packageInfo.license}"
137+
+ buildHost = "${packageInfo.buildHost}"
138+
+ maintainer = "${packageInfo.maintainer}"
139+
+ packageGroup = 'java'
140+
+ priority = 'optional'
141+
+ user = 'root'
142+
+ permissionGroup = 'root'
143+
+ epoch = 1
144+
+ arch = arch_deb
145+
+ multiArch = SAME
146+
}
147+
148+
/**
149+
@@ -124,13 +124,13 @@ task inflateJinfoTemplate(type: Copy) {
150+
* distributions folder.
151+
*/
152+
task generateJdkDeb(type: Deb) {
153+
- description 'Create the DEB package for Corretto JDK'
154+
+ description = 'Create the DEB package for Corretto JDK'
155+
dependsOn inflateDebScriptTemplate
156+
dependsOn inflateJinfoTemplate
157+
158+
- packageName jdkPackageName
159+
- packageDescription "Amazon Corretto\'s packaging of the OpenJDK ${project.version.major} code."
160+
- summary "Amazon Corretto ${project.version.major} development environment"
161+
+ packageName = jdkPackageName
162+
+ packageDescription = "Amazon Corretto\'s packaging of the OpenJDK ${project.version.major} code."
163+
+ summary = "Amazon Corretto ${project.version.major} development environment"
164+
165+
postInstall file("$buildRoot/scripts/postin_jdk.sh")
166+
preUninstall file("$buildRoot/scripts/preun_jdk.sh")
167+
diff --git a/installers/linux/universal/rpm/build.gradle b/installers/linux/universal/rpm/build.gradle
168+
index 2883b16ac..ed914b679 100644
169+
--- a/installers/linux/universal/rpm/build.gradle
170+
+++ b/installers/linux/universal/rpm/build.gradle
171+
@@ -20,7 +20,7 @@
172+
*/
173+
174+
plugins {
175+
- id 'nebula.ospackage' version 'latest.release'
176+
+ id 'com.netflix.nebula.ospackage' version 'latest.release'
177+
}
178+
179+
dependencies {
180+
@@ -48,20 +48,20 @@ def jdkBinaryDir = "${buildRoot}/${project.correttoJdkArchiveName}"
181+
def jdkPackageName = "java-${project.version.major}-amazon-corretto-devel"
182+
183+
ospackage {
184+
- version project.version.upstream
185+
- release project.version.revision
186+
-
187+
- url "${packageInfo.url}"
188+
- vendor "${packageInfo.vendor}"
189+
- packager "${packageInfo.packager}"
190+
- license "${packageInfo.license}"
191+
- buildHost "${packageInfo.buildHost}"
192+
- user 'root'
193+
- permissionGroup 'root'
194+
- epoch 1
195+
- arch arch_redline
196+
- os LINUX
197+
- type BINARY
198+
+ version = project.version.upstream
199+
+ release = project.version.revision
200+
+
201+
+ url = "${packageInfo.url}"
202+
+ vendor = "${packageInfo.vendor}"
203+
+ packager = "${packageInfo.packager}"
204+
+ license = "${packageInfo.license}"
205+
+ buildHost = "${packageInfo.buildHost}"
206+
+ user = 'root'
207+
+ permissionGroup = 'root'
208+
+ epoch = 1
209+
+ arch = arch_redline
210+
+ os = LINUX
211+
+ type = BINARY
212+
}
213+
214+
/**
215+
@@ -97,14 +97,14 @@ task inflateRpmScriptTemplate(type: Copy) {
216+
* distributions folder.
217+
*/
218+
task generateJdkRpm(type: Rpm) {
219+
- description 'Create the RPM package for Corretto JDK'
220+
+ description = 'Create the RPM package for Corretto JDK'
221+
dependsOn inflateRpmScriptTemplate
222+
- packageName jdkPackageName
223+
- packageDescription packageInfo.description
224+
- summary "Amazon Corretto ${project.version.major} development environment"
225+
- packageGroup 'Development/Tools'
226+
+ packageName = jdkPackageName
227+
+ packageDescription = packageInfo.description
228+
+ summary = "Amazon Corretto ${project.version.major} development environment"
229+
+ packageGroup = 'Development/Tools'
230+
// Remove after https://github.com/nebula-plugins/gradle-ospackage-plugin/issues/401 is merged and released
231+
- sourcePackage "${jdkPackageName}-${project.version.major}.${project.version.minor}.${project.version.security}.${project.version.build}-${project.version.revision}.src.rpm"
232+
+ sourcePackage = "${jdkPackageName}-${project.version.major}.${project.version.minor}.${project.version.security}.${project.version.build}-${project.version.revision}.src.rpm"
233+
234+
prefix(jdkHome)
235+
postInstall file("$buildRoot/scripts/postin_java.sh")
236+
diff --git a/installers/linux/universal/tar/build.gradle b/installers/linux/universal/tar/build.gradle
237+
index 17491d830..9ec3280e6 100644
238+
--- a/installers/linux/universal/tar/build.gradle
239+
+++ b/installers/linux/universal/tar/build.gradle
240+
@@ -122,9 +122,9 @@ task bundleThirdPartyBinaries {
241+
242+
task packageTestImage(type: Tar) {
243+
dependsOn createTestImage
244+
- description 'Package test results'
245+
- archiveName "${project.correttoTestImageArchiveName}.tar.gz"
246+
- compression Compression.GZIP
247+
+ description = 'Package test results'
248+
+ archiveFileName = "${project.correttoTestImageArchiveName}.tar.gz"
249+
+ compression = Compression.GZIP
250+
from(testResultingImage) {
251+
include '**'
252+
}
253+
@@ -132,10 +132,10 @@ task packageTestImage(type: Tar) {
254+
}
255+
256+
task packageDebugSymbols(type: Tar) {
257+
- description 'Package debug results'
258+
+ description = 'Package debug results'
259+
dependsOn packageTestImage
260+
- archiveName "${project.correttoDebugSymbolsArchiveName}.tar.gz"
261+
- compression Compression.GZIP
262+
+ archiveFileName = "${project.correttoDebugSymbolsArchiveName}.tar.gz"
263+
+ compression = Compression.GZIP
264+
from(jdkResultingImage) {
265+
include 'bin/*.diz'
266+
include 'lib/*.diz'
267+
@@ -145,11 +145,11 @@ task packageDebugSymbols(type: Tar) {
268+
}
269+
270+
task packageBuildResults(type: Tar) {
271+
- description 'Compresses the JDK image and puts the results in build/distributions.'
272+
+ description = 'Compresses the JDK image and puts the results in build/distributions.'
273+
dependsOn packageDebugSymbols
274+
dependsOn bundleThirdPartyBinaries
275+
- archiveName "${project.correttoJdkArchiveName}.tar.gz"
276+
- compression Compression.GZIP
277+
+ archiveFileName = "${project.correttoJdkArchiveName}.tar.gz"
278+
+ compression = Compression.GZIP
279+
from(buildRoot) {
280+
include 'ADDITIONAL_LICENSE_INFO'
281+
include 'ASSEMBLY_EXCEPTION'
282+
@@ -175,7 +175,7 @@ task packageBuildResults(type: Tar) {
283+
// See https://github.com/corretto/corretto-11/issues/129
284+
from("${jdkResultingImage}/legal") {
285+
include '**'
286+
- fileMode 0444
287+
+ fileMode = 0444
288+
into "${project.correttoJdkArchiveName}/legal"
289+
}
290+
}

0 commit comments

Comments
 (0)