From 0c343ce16e9f1fcc930b644a97025a48fed15afa Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Fri, 24 Nov 2023 01:06:45 +0100 Subject: quark-goldleaf: init at 1.0.0 --- .../qu/quark-goldleaf/99-quark-goldleaf.rules | 2 + .../quark-goldleaf/fix-maven-plugin-versions.patch | 88 ++++++++++++++++ pkgs/by-name/qu/quark-goldleaf/package.nix | 114 +++++++++++++++++++++ .../by-name/qu/quark-goldleaf/remove-pom-jfx.patch | 93 +++++++++++++++++ 4 files changed, 297 insertions(+) create mode 100644 pkgs/by-name/qu/quark-goldleaf/99-quark-goldleaf.rules create mode 100644 pkgs/by-name/qu/quark-goldleaf/fix-maven-plugin-versions.patch create mode 100644 pkgs/by-name/qu/quark-goldleaf/package.nix create mode 100644 pkgs/by-name/qu/quark-goldleaf/remove-pom-jfx.patch diff --git a/pkgs/by-name/qu/quark-goldleaf/99-quark-goldleaf.rules b/pkgs/by-name/qu/quark-goldleaf/99-quark-goldleaf.rules new file mode 100644 index 0000000000000..aa79720d7b55e --- /dev/null +++ b/pkgs/by-name/qu/quark-goldleaf/99-quark-goldleaf.rules @@ -0,0 +1,2 @@ +# Nintendo Switch HOS +SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", MODE="0666" diff --git a/pkgs/by-name/qu/quark-goldleaf/fix-maven-plugin-versions.patch b/pkgs/by-name/qu/quark-goldleaf/fix-maven-plugin-versions.patch new file mode 100644 index 0000000000000..efe2e13c69ccb --- /dev/null +++ b/pkgs/by-name/qu/quark-goldleaf/fix-maven-plugin-versions.patch @@ -0,0 +1,88 @@ +diff --git a/pom.xml b/pom.xml +index 5a683ca..be71e5d 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -104,7 +105,7 @@ + + org.apache.maven.plugins + maven-compiler-plugin +- 3.1 ++ 3.11.0 + + 1.8 + 1.8 +@@ -113,7 +114,7 @@ + + + maven-jar-plugin +- 2.4 ++ 3.3.0 + + + default-jar +@@ -134,7 +135,7 @@ + + org.apache.maven.plugins + maven-assembly-plugin +- 3.1.0 ++ 3.6.0 + + Quark + false +@@ -157,6 +158,56 @@ + + + ++ ++ ++ org.apache.maven.plugins ++ maven-enforcer-plugin ++ 3.3.0 ++ ++ ++ require-all-plugin-versions-to-be-set ++ validate ++ ++ enforce ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-deploy-plugin ++ 3.1.1 ++ ++ ++ org.apache.maven.plugins ++ maven-resources-plugin ++ 3.3.1 ++ ++ ++ org.apache.maven.plugins ++ maven-site-plugin ++ 4.0.0-M9 ++ ++ ++ org.apache.maven.plugins ++ maven-install-plugin ++ 3.1.1 ++ ++ ++ org.apache.maven.plugins ++ maven-clean-plugin ++ 3.3.1 ++ ++ ++ org.apache.maven.plugins ++ maven-surefire-plugin ++ 3.1.2 ++ + + + diff --git a/pkgs/by-name/qu/quark-goldleaf/package.nix b/pkgs/by-name/qu/quark-goldleaf/package.nix new file mode 100644 index 0000000000000..71321a76fbd5f --- /dev/null +++ b/pkgs/by-name/qu/quark-goldleaf/package.nix @@ -0,0 +1,114 @@ +{ lib +, jdk +, maven +, fetchFromGitHub +, fetchpatch +, makeDesktopItem +, copyDesktopItems +, imagemagick +, wrapGAppsHook +, gtk3 +}: + +let + jdk' = jdk.override { enableJavaFX = true; }; + maven' = maven.override { jdk = jdk'; }; +in +maven'.buildMavenPackage rec { + pname = "quark-goldleaf"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "XorTroll"; + repo = "Goldleaf"; + rev = version; + hash = "sha256-gagIQGOiygJ0Onm0SrkbFWaovqWX2WJNx7LpSRheCLM="; + }; + + sourceRoot = "${src.name}/Quark"; + + patches = [ + ./fix-maven-plugin-versions.patch + ./remove-pom-jfx.patch + (fetchpatch { + name = "fix-config-path.patch"; + url = "https://github.com/XorTroll/Goldleaf/commit/714ecc2755df9c1252615ad02cafff9c0311a739.patch"; + hash = "sha256-4j+6uLIOdltZ4XIb3OtOzZg9ReH9660gZMMNQpHnn4o="; + relative = "Quark"; + }) + ]; + + mvnHash = "sha256-gA3HsQZFa2POP9cyJLb1l8t3hrJYzDowhJU+5Xl79p4="; + + # set fixed build timestamp for deterministic jar + mvnParameters = "-Dproject.build.outputTimestamp=1980-01-01T00:00:02Z"; + + nativeBuildInputs = [ + imagemagick # for icon conversion + copyDesktopItems + wrapGAppsHook + ]; + + buildInputs = [ gtk3 ]; + + # don't double-wrap + dontWrapGApps = true; + + installPhase = '' + runHook preInstall + + install -Dm644 ${./99-quark-goldleaf.rules} $out/etc/udev/rules.d/99-quark-goldleaf.rules + install -Dm644 target/Quark.jar $out/share/java/quark-goldleaf.jar + + for size in 16 24 32 48 64 128; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + convert -resize "$size"x"$size" src/main/resources/Icon.png $out/share/icons/hicolor/"$size"x"$size"/apps/quark-goldleaf.png + done + + runHook postInstall + ''; + + postFixup = '' + # This is in postFixup because gappsWrapperArgs are generated during preFixup + makeWrapper ${jdk'}/bin/java $out/bin/quark-goldleaf \ + "''${gappsWrapperArgs[@]}" \ + --add-flags "-jar $out/share/java/quark-goldleaf.jar" + ''; + + desktopItems = [ + (makeDesktopItem { + name = "quark-goldleaf"; + exec = "quark-goldleaf"; + icon = "quark-goldleaf"; + desktopName = "Quark"; + comment = meta.description; + terminal = false; + categories = [ "Utility" "FileTransfer" ]; + keywords = [ "nintendo" "switch" "goldleaf" ]; + }) + ]; + + meta = { + changelog = "https://github.com/XorTroll/Goldleaf/releases/tag/${src.rev}"; + description = "A GUI tool for transfering files between a computer and a Nintendo Switch running Goldleaf"; + homepage = "https://github.com/XorTroll/Goldleaf#quark-and-remote-browsing"; + longDescription = '' + ${meta.description} + + For the program to work properly, you will have to install Nintendo Switch udev rules. + + You can either do this by enabling the NixOS module: + + `programs.quark-goldleaf.enable = true;` + + or by adding the package manually to udev packages: + + `services.udev.packages = [ pkgs.quark-goldleaf ]; + ''; + license = lib.licenses.gpl3Only; + mainProgram = "quark-goldleaf"; + maintainers = with lib.maintainers; [ tomasajt ]; + platforms = with lib.platforms; linux ++ darwin; + }; +} + diff --git a/pkgs/by-name/qu/quark-goldleaf/remove-pom-jfx.patch b/pkgs/by-name/qu/quark-goldleaf/remove-pom-jfx.patch new file mode 100644 index 0000000000000..3a28ee27086a8 --- /dev/null +++ b/pkgs/by-name/qu/quark-goldleaf/remove-pom-jfx.patch @@ -0,0 +1,93 @@ +diff --git a/pom.xml b/pom.xml +index 51ce56b..44dcd09 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -15,72 +15,6 @@ + + + +- +- org.openjfx +- javafx-controls +- 17 +- linux +- compile +- +- +- org.openjfx +- javafx-controls +- 17 +- win +- compile +- +- +- org.openjfx +- javafx-controls +- 17 +- mac +- compile +- +- +- +- org.openjfx +- javafx-fxml +- 17 +- linux +- compile +- +- +- org.openjfx +- javafx-fxml +- 17 +- win +- compile +- +- +- org.openjfx +- javafx-fxml +- 17 +- mac +- compile +- +- +- +- org.openjfx +- javafx-graphics +- 17 +- linux +- compile +- +- +- org.openjfx +- javafx-graphics +- 17 +- win +- compile +- +- +- org.openjfx +- javafx-graphics +- 17 +- mac +- compile +- +- + + org.usb4java + usb4java-javax +@@ -123,15 +57,6 @@ + + + +- +- org.openjfx +- javafx-maven-plugin +- 0.0.8 +- +- xortroll.goldleaf.quark.Main +- +- +- + + org.apache.maven.plugins + maven-assembly-plugin -- cgit 1.4.1