lol

Merge pull request #239254 from wirew0rm/pkgs/scenebuilder

scenebuilder: 15.0.1 -> 20.0.0, enable javaFX and webkit

authored by

Weijia Wang and committed by
GitHub
abb697a0 faf33cf2

+48 -84
+41 -82
pkgs/development/tools/scenebuilder/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, jdk11, gradle_6, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper, glib, wrapGAppsHook }: 2 - let 3 - gradle = gradle_6; 1 + { lib, stdenv, fetchFromGitHub, openjdk20, maven, makeDesktopItem, copyDesktopItems, makeWrapper, glib, wrapGAppsHook }: 4 2 3 + let 4 + jdk = openjdk20.override (lib.optionalAttrs stdenv.isLinux { 5 + enableJavaFX = true; 6 + }); 7 + maven' = maven.override { 8 + inherit jdk; 9 + }; 10 + selectSystem = attrs: 11 + attrs.${stdenv.hostPlatform.system} 12 + or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); 13 + in 14 + maven'.buildMavenPackage rec { 5 15 pname = "scenebuilder"; 6 - version = "15.0.1"; 16 + version = "20.0.0"; 7 17 8 18 src = fetchFromGitHub { 9 19 owner = "gluonhq"; 10 20 repo = pname; 11 21 rev = version; 12 - sha256 = "0dqlpfgr9qpmk62zsnhzw4q6n0swjqy00294q0kb4djp3jn47iz4"; 22 + hash = "sha256-Og+dzkJ6+YH0fD4HJw8gUKGgvQuNw17BxgzZMP/bEA0="; 13 23 }; 14 24 15 - deps = stdenv.mkDerivation { 16 - name = "${pname}-deps"; 17 - inherit src; 18 - 19 - nativeBuildInputs = [ jdk11 perl gradle ]; 20 - 21 - buildPhase = '' 22 - export GRADLE_USER_HOME=$(mktemp -d); 23 - gradle --no-daemon build -x test 24 - ''; 25 - 26 - # Mavenize dependency paths 27 - # e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.0.jar 28 - installPhase = '' 29 - find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ 30 - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ 31 - | sh 32 - ''; 33 - 34 - outputHashAlgo = "sha256"; 35 - outputHashMode = "recursive"; 36 - outputHash = "01dkayad68g3zpzdnjwrc0h6s7s6n619y5b576snc35l8g2r5sgd"; 25 + buildDate = "2022-10-07T00:00:00+01:00"; # v20.0.0 release date 26 + mvnParameters = "-Dmaven.test.skip -Dproject.build.outputTimestamp=${buildDate} -DbuildTimestamp=${buildDate}"; 27 + mvnHash = selectSystem { 28 + x86_64-linux = "sha256-3SFCQ+hyQPtAEx1jSbe/Qtq4dYkfVvU/Kmekzv53o3U="; 29 + aarch64-linux = "sha256-AZ1NXzSRyT77W+EjLIb7eWxf7Ztu6XuKjSImRg1lNcw="; 37 30 }; 38 31 39 - # Point to our local deps repo 40 - gradleInit = writeText "init.gradle" '' 41 - settingsEvaluated { settings -> 42 - settings.pluginManagement { 43 - repositories { 44 - clear() 45 - maven { url '${deps}' } 46 - } 47 - } 48 - } 49 - logger.lifecycle 'Replacing Maven repositories with ${deps}...' 50 - gradle.projectsLoaded { 51 - rootProject.allprojects { 52 - buildscript { 53 - repositories { 54 - clear() 55 - maven { url '${deps}' } 56 - } 57 - } 58 - repositories { 59 - clear() 60 - maven { url '${deps}' } 61 - } 62 - } 63 - } 64 - ''; 65 - 66 - desktopItem = makeDesktopItem { 67 - name = "scenebuilder"; 68 - exec = "scenebuilder"; 69 - icon = "scenebuilder"; 70 - comment = "A visual, drag'n'drop, layout tool for designing JavaFX application user interfaces."; 71 - desktopName = "Scene Builder"; 72 - mimeTypes = [ "application/java" "application/java-vm" "application/java-archive" ]; 73 - categories = [ "Development" ]; 74 - }; 75 - 76 - in stdenv.mkDerivation rec { 77 - inherit pname src version; 78 - 79 - nativeBuildInputs = [ jdk11 gradle makeWrapper glib wrapGAppsHook ]; 32 + nativeBuildInputs = [ copyDesktopItems makeWrapper glib wrapGAppsHook ]; 80 33 81 34 dontWrapGApps = true; # prevent double wrapping 82 35 83 - buildPhase = '' 84 - runHook preBuild 85 - 86 - export GRADLE_USER_HOME=$(mktemp -d) 87 - gradle -PVERSION=${version} --offline --no-daemon --info --init-script ${gradleInit} build -x test 88 - 89 - runHook postBuild 90 - ''; 91 - 92 36 installPhase = '' 93 37 runHook preInstall 94 38 95 - mkdir -p $out/bin $out/share/{${pname},icons/hicolor/128x128/apps} 96 - cp app/build/libs/SceneBuilder-${version}-all.jar $out/share/${pname}/${pname}.jar 97 - cp app/build/resources/main/com/oracle/javafx/scenebuilder/app/SB_Logo.png $out/share/icons/hicolor/128x128/apps/scenebuilder.png 39 + mkdir -p $out/bin $out/share/java $out/share/{${pname},icons/hicolor/128x128/apps} 40 + cp app/target/lib/scenebuilder-${version}-SNAPSHOT-all.jar $out/share/java/${pname}.jar 41 + 42 + cp app/src/main/resources/com/oracle/javafx/scenebuilder/app/SB_Logo.png $out/share/icons/hicolor/128x128/apps/scenebuilder.png 98 43 99 44 runHook postInstall 100 45 ''; 101 46 102 47 postFixup = '' 103 - makeWrapper ${jdk11}/bin/java $out/bin/${pname} --add-flags "-jar $out/share/${pname}/${pname}.jar" "''${gappsWrapperArgs[@]}" 48 + makeWrapper ${jdk}/bin/java $out/bin/${pname} \ 49 + --add-flags "--add-modules javafx.web,javafx.fxml,javafx.swing,javafx.media" \ 50 + --add-flags "--add-opens=javafx.fxml/javafx.fxml=ALL-UNNAMED" \ 51 + --add-flags "-cp $out/share/java/${pname}.jar" \ 52 + --add-flags "com.oracle.javafx.scenebuilder.app.SceneBuilderApp" \ 53 + "''${gappsWrapperArgs[@]}" 104 54 ''; 105 55 106 - desktopItems = [ desktopItem ]; 56 + desktopItems = [ (makeDesktopItem { 57 + name = "scenebuilder"; 58 + exec = "scenebuilder"; 59 + icon = "scenebuilder"; 60 + comment = "A visual, drag'n'drop, layout tool for designing JavaFX application user interfaces."; 61 + desktopName = "Scene Builder"; 62 + mimeTypes = [ "application/java" "application/java-vm" "application/java-archive" ]; 63 + categories = [ "Development" ]; 64 + }) ]; 107 65 108 66 meta = with lib; { 109 67 broken = stdenv.isDarwin; ··· 118 76 platforms = platforms.all; 119 77 }; 120 78 } 79 +
+6 -1
pkgs/development/tools/scenic-view/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, jdk, gradle_7, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper }: 1 + { lib, stdenv, fetchFromGitHub, openjdk, openjfx, gradle_7, makeDesktopItem, perl, writeText, makeWrapper }: 2 2 let 3 + jdk = openjdk.override (lib.optionalAttrs stdenv.isLinux { 4 + enableJavaFX = true; 5 + openjfx = openjfx.override { withWebKit = true; }; 6 + }); 7 + 3 8 pname = "scenic-view"; 4 9 version = "11.0.2"; 5 10
+1 -1
pkgs/top-level/all-packages.nix
··· 19873 19873 19874 19874 scenebuilder = callPackage ../development/tools/scenebuilder { }; 19875 19875 19876 - scenic-view = callPackage ../development/tools/scenic-view { jdk = jdk11; }; 19876 + scenic-view = callPackage ../development/tools/scenic-view { }; 19877 19877 19878 19878 shncpd = callPackage ../tools/networking/shncpd { }; 19879 19879