corretto{11,17,21}: apply nixfmt
This commit is contained in:
@@ -1,16 +1,23 @@
|
||||
{ fetchFromGitHub
|
||||
, gradle_7
|
||||
, jdk11
|
||||
, lib
|
||||
, stdenv
|
||||
, rsync
|
||||
, runCommand
|
||||
, testers
|
||||
{
|
||||
fetchFromGitHub,
|
||||
gradle_7,
|
||||
jdk11,
|
||||
lib,
|
||||
stdenv,
|
||||
rsync,
|
||||
runCommand,
|
||||
testers,
|
||||
}:
|
||||
|
||||
let
|
||||
corretto = import ./mk-corretto.nix rec {
|
||||
inherit lib stdenv rsync runCommand testers;
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
rsync
|
||||
runCommand
|
||||
testers
|
||||
;
|
||||
jdk = jdk11;
|
||||
gradle = gradle_7;
|
||||
extraConfig = [
|
||||
|
||||
@@ -1,17 +1,24 @@
|
||||
{ fetchFromGitHub
|
||||
, fetchurl
|
||||
, gradle_7
|
||||
, jdk17
|
||||
, lib
|
||||
, stdenv
|
||||
, rsync
|
||||
, runCommand
|
||||
, testers
|
||||
{
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
gradle_7,
|
||||
jdk17,
|
||||
lib,
|
||||
stdenv,
|
||||
rsync,
|
||||
runCommand,
|
||||
testers,
|
||||
}:
|
||||
|
||||
let
|
||||
corretto = import ./mk-corretto.nix rec {
|
||||
inherit lib stdenv rsync runCommand testers;
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
rsync
|
||||
runCommand
|
||||
testers
|
||||
;
|
||||
jdk = jdk17;
|
||||
gradle = gradle_7;
|
||||
version = "17.0.12.7.1";
|
||||
@@ -23,14 +30,14 @@ let
|
||||
};
|
||||
};
|
||||
in
|
||||
corretto.overrideAttrs (final: prev: {
|
||||
# Corretto17 has incorporated this patch already so it fails to apply.
|
||||
# We thus skip it here.
|
||||
# See https://github.com/corretto/corretto-17/pull/158
|
||||
patches = lib.remove
|
||||
(fetchurl {
|
||||
corretto.overrideAttrs (
|
||||
final: prev: {
|
||||
# Corretto17 has incorporated this patch already so it fails to apply.
|
||||
# We thus skip it here.
|
||||
# See https://github.com/corretto/corretto-17/pull/158
|
||||
patches = lib.remove (fetchurl {
|
||||
url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=41e78a067953e0b13d062d632bae6c4f8028d91c";
|
||||
sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo=";
|
||||
})
|
||||
(prev.patches or [ ]);
|
||||
})
|
||||
}) (prev.patches or [ ]);
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,17 +1,24 @@
|
||||
{ corretto21
|
||||
, fetchFromGitHub
|
||||
, gradle_7
|
||||
, jdk21
|
||||
, lib
|
||||
, stdenv
|
||||
, rsync
|
||||
, runCommand
|
||||
, testers
|
||||
{
|
||||
corretto21,
|
||||
fetchFromGitHub,
|
||||
gradle_7,
|
||||
jdk21,
|
||||
lib,
|
||||
stdenv,
|
||||
rsync,
|
||||
runCommand,
|
||||
testers,
|
||||
}:
|
||||
|
||||
let
|
||||
corretto = import ./mk-corretto.nix rec {
|
||||
inherit lib stdenv rsync runCommand testers;
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
rsync
|
||||
runCommand
|
||||
testers
|
||||
;
|
||||
jdk = jdk21;
|
||||
gradle = gradle_7;
|
||||
version = "21.0.4.7.1";
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
{ jdk
|
||||
, version
|
||||
, src
|
||||
, lib
|
||||
, stdenv
|
||||
, gradle
|
||||
, extraConfig ? [ ]
|
||||
, rsync
|
||||
, runCommand
|
||||
, testers
|
||||
{
|
||||
jdk,
|
||||
version,
|
||||
src,
|
||||
lib,
|
||||
stdenv,
|
||||
gradle,
|
||||
extraConfig ? [ ],
|
||||
rsync,
|
||||
runCommand,
|
||||
testers,
|
||||
}:
|
||||
|
||||
# Each Corretto version is based on a corresponding OpenJDK version. So
|
||||
@@ -19,97 +20,111 @@
|
||||
|
||||
let
|
||||
pname = "corretto";
|
||||
# The version scheme is different between OpenJDK & Corretto.
|
||||
# See https://github.com/corretto/corretto-17/blob/release-17.0.8.8.1/build.gradle#L40
|
||||
# "major.minor.security.build.revision"
|
||||
in
|
||||
jdk.overrideAttrs (finalAttrs: oldAttrs: {
|
||||
inherit pname version src;
|
||||
name = "${pname}-${version}";
|
||||
# The version scheme is different between OpenJDK & Corretto.
|
||||
# See https://github.com/corretto/corretto-17/blob/release-17.0.8.8.1/build.gradle#L40
|
||||
# "major.minor.security.build.revision"
|
||||
jdk.overrideAttrs (
|
||||
finalAttrs: oldAttrs: {
|
||||
inherit pname version src;
|
||||
name = "${pname}-${version}";
|
||||
|
||||
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ jdk gradle rsync ];
|
||||
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [
|
||||
jdk
|
||||
gradle
|
||||
rsync
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
dontConfigure = true;
|
||||
|
||||
postPatch = let
|
||||
extra_config = builtins.concatStringsSep " " extraConfig;
|
||||
in ''
|
||||
# The rpm/deb task definitions require a Gradle plugin which we don't
|
||||
# have and so the build fails. We'll simply remove them here because
|
||||
# they are not needed anyways.
|
||||
rm -rf installers/linux/universal/{rpm,deb}
|
||||
postPatch =
|
||||
let
|
||||
extra_config = builtins.concatStringsSep " " extraConfig;
|
||||
in
|
||||
''
|
||||
# The rpm/deb task definitions require a Gradle plugin which we don't
|
||||
# have and so the build fails. We'll simply remove them here because
|
||||
# they are not needed anyways.
|
||||
rm -rf installers/linux/universal/{rpm,deb}
|
||||
|
||||
# `/usr/bin/rsync` is invoked to copy the source tree. We don't have that.
|
||||
for file in $(find installers -name "build.gradle"); do
|
||||
substituteInPlace $file --replace-warn "workingDir '/usr/bin'" "workingDir '.'"
|
||||
done
|
||||
# `/usr/bin/rsync` is invoked to copy the source tree. We don't have that.
|
||||
for file in $(find installers -name "build.gradle"); do
|
||||
substituteInPlace $file --replace-warn "workingDir '/usr/bin'" "workingDir '.'"
|
||||
done
|
||||
|
||||
gradleFlagsArray+=(-Pcorretto.extra_config="${extra_config}")
|
||||
'';
|
||||
gradleFlagsArray+=(-Pcorretto.extra_config="${extra_config}")
|
||||
'';
|
||||
|
||||
# since we dontConfigure, we must run this manually
|
||||
preBuild = "gradleConfigureHook";
|
||||
# since we dontConfigure, we must run this manually
|
||||
preBuild = "gradleConfigureHook";
|
||||
|
||||
# The Linux installer is placed at linux/universal/tar whereas the MacOS
|
||||
# one is at mac/tar.
|
||||
gradleBuildTask =
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
":installers:mac:tar:build"
|
||||
else ":installers:linux:universal:tar:packageBuildResults";
|
||||
# The Linux installer is placed at linux/universal/tar whereas the MacOS
|
||||
# one is at mac/tar.
|
||||
gradleBuildTask =
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
":installers:mac:tar:build"
|
||||
else
|
||||
":installers:linux:universal:tar:packageBuildResults";
|
||||
|
||||
postBuild = ''
|
||||
# Prepare for the installPhase so that it looks like if a normal
|
||||
# OpenJDK had been built.
|
||||
dir=build/jdkImageName/images
|
||||
mkdir -p $dir
|
||||
file=$(find ./installers -name 'amazon-corretto-${version}*.tar.gz')
|
||||
tar -xzf $file -C $dir
|
||||
mv $dir/amazon-corretto-* $dir/jdk
|
||||
'' + oldAttrs.postBuild or "";
|
||||
postBuild =
|
||||
''
|
||||
# Prepare for the installPhase so that it looks like if a normal
|
||||
# OpenJDK had been built.
|
||||
dir=build/jdkImageName/images
|
||||
mkdir -p $dir
|
||||
file=$(find ./installers -name 'amazon-corretto-${version}*.tar.gz')
|
||||
tar -xzf $file -C $dir
|
||||
mv $dir/amazon-corretto-* $dir/jdk
|
||||
''
|
||||
+ oldAttrs.postBuild or "";
|
||||
|
||||
installPhase = oldAttrs.installPhase + ''
|
||||
# The installPhase will place everything in $out/lib/openjdk and
|
||||
# reference through symlinks. We don't rewrite the installPhase but at
|
||||
# least move the folder to convey that this is not OpenJDK anymore.
|
||||
mv $out/lib/openjdk $out/lib/corretto
|
||||
ln -s $out/lib/corretto $out/lib/openjdk
|
||||
'';
|
||||
installPhase =
|
||||
oldAttrs.installPhase
|
||||
+ ''
|
||||
# The installPhase will place everything in $out/lib/openjdk and
|
||||
# reference through symlinks. We don't rewrite the installPhase but at
|
||||
# least move the folder to convey that this is not OpenJDK anymore.
|
||||
mv $out/lib/openjdk $out/lib/corretto
|
||||
ln -s $out/lib/corretto $out/lib/openjdk
|
||||
'';
|
||||
|
||||
passthru =
|
||||
let
|
||||
pkg = finalAttrs.finalPackage;
|
||||
in
|
||||
oldAttrs.passthru // {
|
||||
tests = {
|
||||
version = testers.testVersion {
|
||||
package = pkg;
|
||||
passthru =
|
||||
let
|
||||
pkg = finalAttrs.finalPackage;
|
||||
in
|
||||
oldAttrs.passthru
|
||||
// {
|
||||
tests = {
|
||||
version = testers.testVersion { package = pkg; };
|
||||
vendor = runCommand "${pname}-vendor" { nativeBuildInputs = [ pkg ]; } ''
|
||||
output=$(${pkg.meta.mainProgram} -XshowSettings:properties -version 2>&1 | grep vendor)
|
||||
grep -Fq "java.vendor = Amazon.com Inc." - <<< "$output" && touch $out
|
||||
'';
|
||||
compiler = runCommand "${pname}-compiler" { nativeBuildInputs = [ pkg ]; } ''
|
||||
cat << EOF > Main.java
|
||||
class Main {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Hello, World!");
|
||||
}
|
||||
}
|
||||
EOF
|
||||
${pkg}/bin/javac Main.java
|
||||
${pkg}/bin/java Main | grep -q "Hello, World!" && touch $out
|
||||
'';
|
||||
};
|
||||
vendor = runCommand "${pname}-vendor" { nativeBuildInputs = [ pkg ]; } ''
|
||||
output=$(${pkg.meta.mainProgram} -XshowSettings:properties -version 2>&1 | grep vendor)
|
||||
grep -Fq "java.vendor = Amazon.com Inc." - <<< "$output" && touch $out
|
||||
'';
|
||||
compiler = runCommand "${pname}-compiler" { nativeBuildInputs = [ pkg ]; } ''
|
||||
cat << EOF > Main.java
|
||||
class Main {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Hello, World!");
|
||||
}
|
||||
}
|
||||
EOF
|
||||
${pkg}/bin/javac Main.java
|
||||
${pkg}/bin/java Main | grep -q "Hello, World!" && touch $out
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# Some of the OpenJDK derivation set their `pos` by hand. We need to
|
||||
# overwrite this in order to point to Corretto, not OpenJDK.
|
||||
pos = __curPos;
|
||||
meta = with lib; oldAttrs.meta // {
|
||||
homepage = "https://aws.amazon.com/corretto";
|
||||
license = licenses.gpl2Only;
|
||||
description = "Amazon's distribution of OpenJDK";
|
||||
maintainers = with maintainers; [ rollf ];
|
||||
};
|
||||
})
|
||||
# Some of the OpenJDK derivation set their `pos` by hand. We need to
|
||||
# overwrite this in order to point to Corretto, not OpenJDK.
|
||||
pos = __curPos;
|
||||
meta =
|
||||
with lib;
|
||||
oldAttrs.meta
|
||||
// {
|
||||
homepage = "https://aws.amazon.com/corretto";
|
||||
license = licenses.gpl2Only;
|
||||
description = "Amazon's distribution of OpenJDK";
|
||||
maintainers = with maintainers; [ rollf ];
|
||||
};
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user