Merge branch 'master' into staging-next

This commit is contained in:
Martin Weinelt
2021-04-16 01:32:09 +02:00
committed by GitHub
42 changed files with 753 additions and 203 deletions

View File

@@ -22,9 +22,9 @@ let
sha256 = "1h8n5figc9q0k9p8b0qggyhvqagvxanfih1lj5j492c74cd1mx1l";
};
nativeBuildInputs = [ pkg-config autoconf unzip ];
nativeBuildInputs = [ pkg-config autoconf ];
buildInputs = [
cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk15-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [

View File

@@ -0,0 +1,164 @@
{ stdenv, lib, fetchurl, fetchFromGitHub, bash, pkg-config, autoconf, cpio
, file, which, unzip, zip, perl, cups, freetype, alsaLib, libjpeg, giflib
, libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst
, libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk16-bootstrap
, setJavaClassPath
, headless ? false
, enableJavaFX ? openjfx.meta.available, openjfx
, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf
}:
let
version = {
feature = "16";
interim = "0";
build = "36";
};
openjdk = stdenv.mkDerivation {
pname = "openjdk" + lib.optionalString headless "-headless";
version = "${version.feature}+${version.build}";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jdk${version.feature}u";
rev = "jdk-${version.feature}+${version.build}";
sha256 = "165nr15dqfcxzsl5z95g4iklln4rlfkgdigdma576mx8813ldi44";
};
nativeBuildInputs = [ pkg-config autoconf unzip ];
buildInputs = [
cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr fontconfig openjdk16-bootstrap
] ++ lib.optionals (!headless && enableGnome2) [
gtk3 gnome_vfs GConf glib
];
patches = [
./fix-java-home-jdk10.patch
./read-truststore-from-env-jdk10.patch
./currency-date-range-jdk10.patch
./increase-javadoc-heap-jdk13.patch
# -Wformat etc. are stricter in newer gccs, per
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677
# so grab the work-around from
# https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24
(fetchurl {
url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch";
sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r";
})
] ++ lib.optionals (!headless && enableGnome2) [
./swing-use-gtk-jdk13.patch
];
prePatch = ''
chmod +x configure
patchShebangs --build configure
'';
configureFlags = [
"--with-boot-jdk=${openjdk16-bootstrap.home}"
"--with-version-build=${version.build}"
"--with-version-opt=nixos"
"--with-version-pre="
"--enable-unlimited-crypto"
"--with-native-debug-symbols=internal"
"--with-libjpeg=system"
"--with-giflib=system"
"--with-libpng=system"
"--with-zlib=system"
"--with-lcms=system"
"--with-stdc++lib=dynamic"
] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc"
++ lib.optional headless "--enable-headless-only"
++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}";
separateDebugInfo = true;
NIX_CFLAGS_COMPILE = "-Wno-error";
NIX_LDFLAGS = toString (lib.optionals (!headless) [
"-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic"
] ++ lib.optionals (!headless && enableGnome2) [
"-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
]);
buildFlags = [ "all" ];
installPhase = ''
mkdir -p $out/lib
mv build/*/images/jdk $out/lib/openjdk
# Remove some broken manpages.
rm -rf $out/lib/openjdk/man/ja*
# Mirror some stuff in top-level.
mkdir -p $out/share
ln -s $out/lib/openjdk/include $out/include
ln -s $out/lib/openjdk/man $out/share/man
ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip
# jni.h expects jni_md.h to be in the header search path.
ln -s $out/include/linux/*_md.h $out/include/
# Remove crap from the installation.
rm -rf $out/lib/openjdk/demo
${lib.optionalString headless ''
rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so
''}
ln -s $out/lib/openjdk/bin $out/bin
'';
preFixup = ''
# Propagate the setJavaClassPath setup hook so that any package
# that depends on the JDK has $CLASSPATH set up properly.
mkdir -p $out/nix-support
#TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040
echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs
# Set JAVA_HOME automatically.
mkdir -p $out/nix-support
cat <<EOF > $out/nix-support/setup-hook
if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi
EOF
'';
postFixup = ''
# Build the set of output library directories to rpath against
LIBDIRS=""
for output in $outputs; do
if [ "$output" = debug ]; then continue; fi
LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
done
# Add the local library paths to remove dependencies on the bootstrap
for output in $outputs; do
if [ "$output" = debug ]; then continue; fi
OUTPUTDIR=$(eval echo \$$output)
BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
echo "$BINLIBS" | while read i; do
patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
patchelf --shrink-rpath "$i" || true
done
done
'';
disallowedReferences = [ openjdk16-bootstrap ];
meta = with lib; {
homepage = "https://openjdk.java.net/";
license = licenses.gpl2;
description = "The open-source Java Development Kit";
maintainers = with maintainers; [ edwtjo ];
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
};
passthru = {
architecture = "";
home = "${openjdk}/lib/openjdk";
inherit gtk3;
};
};
in openjdk

View File

@@ -7,12 +7,12 @@ let
};
jdk = stdenv.mkDerivation rec {
pname = "zulu15.28.51-ca-jdk";
version = "15.0.1";
pname = "zulu16.28.11-ca-jdk";
version = "16.0.0";
src = fetchurl {
url = "https://cdn.azul.com/zulu/bin/${pname}${version}-macosx_x64.tar.gz";
sha256 = "0h738pbnwcn7pjp0qyryzazqj5nw5sy2f8l0ycl39crm9ia6akvh";
sha256 = "6d47ef22dc56ce1f5a102ed39e21d9a97320f0bb786818e2c686393109d79bc5";
curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
};

View File

@@ -9,7 +9,10 @@ stdenv.mkDerivation rec {
version = "0.1.4";
src = fetchurl {
url = "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz";
urls = [
"https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz"
"https://www.floodgap.com/retrotech/xa/dists/unsupported/${pname}-${version}.tar.gz"
];
hash = "sha256-C0rgwK51Ij9EZCm9GeiVnWIkEkse0d60ok8G9hm2a5U=";
};

View File

@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchurl
, perl
}:
stdenv.mkDerivation rec {
@@ -8,22 +9,39 @@ stdenv.mkDerivation rec {
version = "2.3.11";
src = fetchurl {
url = "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz";
urls = [
"https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz"
"https://www.floodgap.com/retrotech/xa/dists/unsupported/${pname}-${version}.tar.gz"
];
hash = "sha256-MvIWTJnjBSGOmSlwhW3Y4jCbXLasR1jXsq/jv+vJAS0=";
};
checkInputs = [ perl ];
dontConfigure = true;
postPatch = ''
substituteInPlace Makefile \
--replace "DESTDIR" "PREFIX" \
--replace "CC = gcc" "CC = ${stdenv.cc.targetPrefix}cc" \
--replace "LDD = gcc" "LDD = ${stdenv.cc.targetPrefix}cc" \
--replace "LD = gcc" "LD = ${stdenv.cc.targetPrefix}cc" \
--replace "CFLAGS = -O2" "CFLAGS ?=" \
--replace "LDFLAGS = -lc" "LDFLAGS ?= -lc"
'';
makeFlags = [ "PREFIX=${placeholder "out"}" ];
makeFlags = [
"DESTDIR:=${placeholder "out"}"
];
enableParallelBuilding = true;
doCheck = true;
# Running tests in parallel does not work
enableParallelChecking = false;
preCheck = ''
patchShebangs tests
'';
meta = with lib; {
homepage = "https://www.floodgap.com/retrotech/xa/";