From 10735a9873903082c69bd319e3f2822ad4f74246 Mon Sep 17 00:00:00 2001 From: Alexander Krimm Date: Thu, 21 Jan 2021 22:48:10 +0100 Subject: [PATCH 1/3] maintainers: add wirew0rm --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 17ced60c684..bb25d41d72d 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -9994,6 +9994,12 @@ githubId = 78392041; name = "Winter"; }; + wirew0rm = { + email = "alex@wirew0rm.de"; + github = "wirew0rm"; + githubId = 1202371; + name = "Alexander Krimm"; + }; wishfort36 = { email = "42300264+wishfort36@users.noreply.github.com"; github = "wishfort36"; From 91e408f47f0fc1887becf52f7472e6b5f9f646c3 Mon Sep 17 00:00:00 2001 From: Alexander Krimm Date: Sun, 17 Jan 2021 01:50:09 +0100 Subject: [PATCH 2/3] scenebuilder: init at 15.0.0 --- .../tools/scenebuilder/default.nix | 116 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 118 insertions(+) create mode 100644 pkgs/development/tools/scenebuilder/default.nix diff --git a/pkgs/development/tools/scenebuilder/default.nix b/pkgs/development/tools/scenebuilder/default.nix new file mode 100644 index 00000000000..3d3b6bbe9d7 --- /dev/null +++ b/pkgs/development/tools/scenebuilder/default.nix @@ -0,0 +1,116 @@ +{ lib, stdenv, fetchFromGitHub, jdk, gradleGen, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper, glib, wrapGAppsHook }: +let + # The default one still uses jdk8 (#89731) + gradle = (gradleGen.override (old: { java = jdk; })).gradle_latest; + + pname = "scenebuilder"; + version = "15.0.1"; + + src = fetchFromGitHub { + owner = "gluonhq"; + repo = pname; + rev = version; + sha256 = "0dqlpfgr9qpmk62zsnhzw4q6n0swjqy00294q0kb4djp3jn47iz4"; + }; + + deps = stdenv.mkDerivation { + name = "${pname}-deps"; + inherit src; + + nativeBuildInputs = [ jdk perl gradle ]; + + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d); + gradle --no-daemon build -x test + ''; + + # Mavenize dependency paths + # 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 + installPhase = '' + find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ + | sh + ''; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "0n93kb8pajlbidvdrsf3hwcwqzvgdm6dnly7wvk3vpargx6k7y1r"; + }; + + # Point to our local deps repo + gradleInit = writeText "init.gradle" '' + settingsEvaluated { settings -> + settings.pluginManagement { + repositories { + clear() + maven { url '${deps}' } + } + } + } + logger.lifecycle 'Replacing Maven repositories with ${deps}...' + gradle.projectsLoaded { + rootProject.allprojects { + buildscript { + repositories { + clear() + maven { url '${deps}' } + } + } + repositories { + clear() + maven { url '${deps}' } + } + } + } + ''; + + desktopItem = makeDesktopItem { + name = "Scene Builder"; + exec = "scenebuilder"; + icon = "scenebuilder"; + comment = "A visual, drag'n'drop, layout tool for designing JavaFX application user interfaces."; + desktopName = pname; + mimeType = "application/java;application/java-vm;application/java-archive"; + categories = "Development"; + }; + +in stdenv.mkDerivation rec { + inherit pname src version; + + nativeBuildInputs = [ jdk gradle makeWrapper glib wrapGAppsHook ]; + + dontWrapGApps = true; # prevent double wrapping + + buildPhase = '' + runHook preBuild + + export GRADLE_USER_HOME=$(mktemp -d) + gradle -PVERSION=${version} --offline --no-daemon --info --init-script ${gradleInit} build -x test + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/{${pname},icons/hicolor/128x128/apps} + cp app/build/libs/SceneBuilder-${version}-all.jar $out/share/${pname}/${pname}.jar + cp app/build/resources/main/com/oracle/javafx/scenebuilder/app/SB_Logo.png $out/share/icons/hicolor/128x128/apps/scenebuilder.png + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${jdk}/bin/java $out/bin/${pname} --add-flags "-jar $out/share/${pname}/${pname}.jar" "''${gappsWrapperArgs[@]}" + ''; + + desktopItems = [ desktopItem ]; + + meta = with lib; { + description = "A visual, drag'n'drop, layout tool for designing JavaFX application user interfaces."; + homepage = "https://gluonhq.com/products/scene-builder/"; + license = licenses.bsd3; + maintainers = with maintainers; [ wirew0rm ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cc5c9fff481..a28023aee1f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12737,6 +12737,8 @@ in schemaspy = callPackage ../development/tools/database/schemaspy { }; + scenebuilder = callPackage ../development/tools/scenebuilder { }; + shncpd = callPackage ../tools/networking/shncpd { }; sigrok-cli = callPackage ../development/tools/sigrok-cli { }; From ddfc9e0dc3dd614c9af0fe1fdab4684b50a28979 Mon Sep 17 00:00:00 2001 From: Alexander Krimm Date: Sun, 17 Jan 2021 01:50:44 +0100 Subject: [PATCH 3/3] scenic-view: init at 11.0.2 --- .../development/tools/scenic-view/default.nix | 113 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 115 insertions(+) create mode 100644 pkgs/development/tools/scenic-view/default.nix diff --git a/pkgs/development/tools/scenic-view/default.nix b/pkgs/development/tools/scenic-view/default.nix new file mode 100644 index 00000000000..6575f490a22 --- /dev/null +++ b/pkgs/development/tools/scenic-view/default.nix @@ -0,0 +1,113 @@ +{ lib, stdenv, fetchFromGitHub, jdk, gradleGen, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper }: +let + # The default one still uses jdk8 (#89731) + gradle = (gradleGen.override (old: { java = jdk; })).gradle_latest; + + pname = "scenic-view"; + version = "11.0.2"; + + src = fetchFromGitHub { + owner = "JonathanGiles"; + repo = pname; + rev = version; + sha256 = "1idfh9hxqs4fchr6gvhblhvjqk4mpl4rnpi84vn1l3yb700z7dwy"; + }; + + deps = stdenv.mkDerivation { + name = "${pname}-deps"; + inherit src; + + nativeBuildInputs = [ jdk perl gradle ]; + + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d); + gradle --no-daemon build + ''; + + # Mavenize dependency paths + # 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 + installPhase = '' + find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ + | sh + ''; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "0d6qs0wg2nfxyq85q46a8dcdqknz9pypb2qmvc8k2w8vcdac1y7n"; + }; + + # Point to our local deps repo + gradleInit = writeText "init.gradle" '' + settingsEvaluated { settings -> + settings.pluginManagement { + repositories { + clear() + maven { url '${deps}' } + } + } + } + logger.lifecycle 'Replacing Maven repositories with ${deps}...' + gradle.projectsLoaded { + rootProject.allprojects { + buildscript { + repositories { + clear() + maven { url '${deps}' } + } + } + repositories { + clear() + maven { url '${deps}' } + } + } + } + ''; + + desktopItem = makeDesktopItem { + name = pname; + desktopName = pname; + exec = pname; + comment = "JavaFx application to visualize and modify the scenegraph of running JavaFx applications."; + mimeType = "application/java;application/java-vm;application/java-archive"; + categories = "Development"; + }; + +in stdenv.mkDerivation rec { + inherit pname version src; + nativeBuildInputs = [ jdk gradle makeWrapper ]; + + buildPhase = '' + runHook preBuild + + export GRADLE_USER_HOME=$(mktemp -d) + gradle --offline --no-daemon --info --init-script ${gradleInit} build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/${pname} + cp build/libs/scenicview.jar $out/share/${pname}/${pname}.jar + makeWrapper ${jdk}/bin/java $out/bin/${pname} --add-flags "-jar $out/share/${pname}/${pname}.jar" + + runHook postInstall + ''; + + desktopItems = [ desktopItem ]; + + meta = with lib; { + description = "JavaFx application to visualize and modify the scenegraph of running JavaFx applications."; + longDescription = '' + A JavaFX application designed to make it simple to understand the current state of your application scenegraph + and to also easily manipulate properties of the scenegraph without having to keep editing your code. + This lets you find bugs and get things pixel perfect without having to do the compile-check-compile dance. + ''; + homepage = "https://github.com/JonathanGiles/scenic-view/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ wirew0rm ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a28023aee1f..a047682bb28 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12739,6 +12739,8 @@ in scenebuilder = callPackage ../development/tools/scenebuilder { }; + scenic-view = callPackage ../development/tools/scenic-view { }; + shncpd = callPackage ../tools/networking/shncpd { }; sigrok-cli = callPackage ../development/tools/sigrok-cli { };