Merge pull request #232391 from chvp/bump-bluej

This commit is contained in:
Sandro 2023-05-25 12:56:00 +02:00 committed by GitHub
commit 45e2d86970
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 26 deletions

View file

@ -1,21 +1,22 @@
{ lib, stdenv, fetchurl, jdk, glib, wrapGAppsHook }:
{ lib, stdenv, fetchurl, openjdk, glib, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "bluej";
version = "5.0.3";
version = "5.1.0";
src = fetchurl {
# We use the deb here. First instinct might be to go for the "generic" JAR
# download, but that is actually a graphical installer that is much harder
# to unpack than the deb.
url = "https://www.bluej.org/download/files/BlueJ-linux-${builtins.replaceStrings ["."] [""] version}.deb";
sha256 = "sha256-OarqmptxZc7xEEYeoCVqHXkAvfzfSYx5nUp/iWPyoqw=";
sha256 = "sha256-tOb15wU9OjUt0D8l/JkaGYj84L7HV4FUnQQB5cRAxG0=";
};
nativeBuildInputs = [ wrapGAppsHook ];
buildInputs = [ glib ];
sourceRoot = ".";
preUnpack = ''
unpackCmdHooks+=(_tryDebData)
_tryDebData() {
@ -26,39 +27,29 @@ stdenv.mkDerivation rec {
}
'';
dontWrapGApps = true;
installPhase = ''
runHook preInstall
if [ -n "$prefix" ]; then
mkdir -p "$prefix"
fi
mkdir -p $out
cp -r usr/* $out
mkdir -p "$out"
if shopt -q dotglob; then dotglobOpt=$?; else dotglobOpt=$?; fi
shopt -s dotglob
for file in usr/*; do
cp -R "$file" "$out"
done
if (( !dotglobOpt )); then shopt -u dotglob; fi
makeWrapper ${openjdk}/bin/java $out/bin/bluej \
"''${gappsWrapperArgs[@]}" \
--add-flags "-Dawt.useSystemAAFontSettings=on -Xmx512M \
--add-opens javafx.graphics/com.sun.glass.ui=ALL-UNNAMED \
-jar $out/share/bluej/bluej.jar"
runHook postInstall
'';
dontWrapGApps = true;
preFixup = ''
makeWrapper ${jdk}/bin/java $out/bin/bluej \
"''${gappsWrapperArgs[@]}" \
--add-flags "-Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M -cp $out/share/bluej/bluej.jar bluej.Boot"
'';
meta = with lib; {
description = "A simple integrated development environment for Java";
homepage = "https://www.bluej.org/";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.gpl2ClasspathPlus;
maintainers = with maintainers; [ chvp ];
platforms = platforms.unix;
platforms = platforms.linux;
};
}

View file

@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless, gradle_7
, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib
, ffmpeg_4-headless, python3, ruby, icu68
, ffmpeg_4-headless, python3, ruby, icu71, fetchurl, runCommand
, withMedia ? true
, withWebKit ? false
}:
@ -14,6 +14,18 @@ let
java = openjdk17_headless;
});
dashed-icu-version = lib.concatStringsSep "-" (lib.splitString "." (lib.getVersion icu71));
underscored-icu-version = lib.concatStringsSep "_" (lib.splitString "." (lib.getVersion icu71));
icu-data = fetchurl {
url = "https://github.com/unicode-org/icu/releases/download/release-${dashed-icu-version}/icu4c-${underscored-icu-version}-data-bin-l.zip";
hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM=";
};
fakeRepository = runCommand "icu-data-repository" {} ''
mkdir -p $out/download/release-${dashed-icu-version}
cp ${icu-data} $out/download/release-${dashed-icu-version}/icu4c-${underscored-icu-version}-data-bin-l.zip
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
@ -24,7 +36,7 @@ let
sha256 = "sha256-9VfXk2EfMebMyVKPohPRP2QXRFf8XemUtfY0JtBCHyw=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless icu68 ];
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless icu71 ];
nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
@ -71,6 +83,7 @@ in makePackage {
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${fakeRepository}"}
'';
preBuild = ''

View file

@ -29550,7 +29550,10 @@ with pkgs;
};
bluej = callPackage ../applications/editors/bluej {
jdk = jetbrains.jdk;
openjdk = openjdk17.override {
enableJavaFX = true;
openjfx = openjfx17.override { withWebKit = true; };
};
};
bluejeans-gui = callPackage ../applications/networking/instant-messengers/bluejeans { };