summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2023-07-31 11:56:30 +0200
committerGitHub <noreply@github.com>2023-07-31 11:56:30 +0200
commit2d6984283885f139b702bbed674c31d2fad98246 (patch)
treea021822194ee69b2b0cd8ac48e14ac45244bf84d
parentMerge pull request #246299 from s1341/bump_scim_keycloak_user_storage_api_plugin (diff)
parentns-usbloader: init at 7.0 (diff)
downloadnixpkgs-2d6984283885f139b702bbed674c31d2fad98246.tar.gz
Merge pull request #245931 from soupglasses/pkg/ns-usbloader-7.0
ns-usbloader: init at 7.0
-rw-r--r--maintainers/maintainer-list.nix12
-rw-r--r--nixos/doc/manual/release-notes/rl-2311.section.md2
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/programs/ns-usbloader.nix18
-rw-r--r--pkgs/applications/misc/ns-usbloader/99-ns-usbloader.rules4
-rw-r--r--pkgs/applications/misc/ns-usbloader/default.nix89
-rw-r--r--pkgs/applications/misc/ns-usbloader/make-deterministic.patch130
-rw-r--r--pkgs/applications/misc/ns-usbloader/no-launch4j.patch70
-rw-r--r--pkgs/applications/science/math/geogebra/default.nix2
-rw-r--r--pkgs/games/ferium/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix2
11 files changed, 324 insertions, 8 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index b22d4f763945..42e34d009bc1 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -7178,12 +7178,6 @@
fingerprint = "F5B2 BE1B 9AAD 98FE 2916 5597 3665 FFF7 9D38 7BAA";
}];
};
- imsofi = {
- email = "sofi+git@mailbox.org";
- github = "imsofi";
- githubId = 20756843;
- name = "Sofi";
- };
imuli = {
email = "i@imu.li";
github = "imuli";
@@ -15676,6 +15670,12 @@
githubId = 6277322;
name = "Wei Tang";
};
+ soupglasses = {
+ email = "sofi+git@mailbox.org";
+ github = "soupglasses";
+ githubId = 20756843;
+ name = "Sofi";
+ };
soywod = {
name = "Clément DOUIN";
email = "clement.douin@posteo.net";
diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md
index 780f7b51719c..305d534b257c 100644
--- a/nixos/doc/manual/release-notes/rl-2311.section.md
+++ b/nixos/doc/manual/release-notes/rl-2311.section.md
@@ -22,6 +22,8 @@
- [Typesense](https://github.com/typesense/typesense), a fast, typo-tolerant search engine for building delightful search experiences. Available as [services.typesense](#opt-services.typesense.enable).
+* [NS-USBLoader](https://github.com/developersu/ns-usbloader/), an all-in-one tool for managing Nintendo Switch homebrew. Available as [programs.ns-usbloader](#opt-programs.ns-usbloader.enable).
+
- [Anuko Time Tracker](https://github.com/anuko/timetracker), a simple, easy to use, open source time tracking system. Available as [services.anuko-time-tracker](#opt-services.anuko-time-tracker.enable).
- [sitespeed-io](https://sitespeed.io), a tool that can generate metrics (timings, diagnostics) for websites. Available as [services.sitespeed-io](#opt-services.sitespeed-io.enable).
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index e4e5fa97608a..0d4369cc3f15 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -221,6 +221,7 @@
./programs/nncp.nix
./programs/noisetorch.nix
./programs/npm.nix
+ ./programs/ns-usbloader.nix
./programs/oblogout.nix
./programs/oddjobd.nix
./programs/openvpn3.nix
diff --git a/nixos/modules/programs/ns-usbloader.nix b/nixos/modules/programs/ns-usbloader.nix
new file mode 100644
index 000000000000..8d0b698d6b4c
--- /dev/null
+++ b/nixos/modules/programs/ns-usbloader.nix
@@ -0,0 +1,18 @@
+{ config, lib, pkgs, ... }:
+let
+ cfg = config.programs.ns-usbloader;
+in
+{
+ options = {
+ programs.ns-usbloader = {
+ enable = lib.mkEnableOption (lib.mdDoc "ns-usbloader application with udev rules applied");
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ environment.systemPackages = [ pkgs.ns-usbloader ];
+ services.udev.packages = [ pkgs.ns-usbloader ];
+ };
+
+ meta.maintainers = pkgs.ns-usbloader.meta.maintainers;
+}
diff --git a/pkgs/applications/misc/ns-usbloader/99-ns-usbloader.rules b/pkgs/applications/misc/ns-usbloader/99-ns-usbloader.rules
new file mode 100644
index 000000000000..44644ba21770
--- /dev/null
+++ b/pkgs/applications/misc/ns-usbloader/99-ns-usbloader.rules
@@ -0,0 +1,4 @@
+# Nintendo Switch HOS
+SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", MODE="0666"
+# Nintendo Switch RCM
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7321", MODE="0666"
diff --git a/pkgs/applications/misc/ns-usbloader/default.nix b/pkgs/applications/misc/ns-usbloader/default.nix
new file mode 100644
index 000000000000..3abffa42e262
--- /dev/null
+++ b/pkgs/applications/misc/ns-usbloader/default.nix
@@ -0,0 +1,89 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, copyDesktopItems
+, makeDesktopItem
+, makeWrapper
+, maven
+, jre
+}:
+let
+ pkgDescription = "All-in-one tool for managing Nintendo Switch homebrew";
+
+ selectSystem = attrs:
+ attrs.${stdenv.hostPlatform.system}
+ or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+ jreWithJavaFX = jre.override { enableJavaFX = true; };
+in
+maven.buildMavenPackage rec {
+ pname = "ns-usbloader";
+ version = "7.0";
+
+ src = fetchFromGitHub {
+ owner = "developersu";
+ repo = "ns-usbloader";
+ rev = "v${version}";
+ sha256 = "sha256-x4zGwsDUVUHI4AUMPSqgnZVyZx+pWQA5xvtrFE8U3QU=";
+ };
+
+ patches = [ ./no-launch4j.patch ./make-deterministic.patch ];
+
+ # JavaFX pulls in architecture dependent jar dependencies. :(
+ # May be possible to unify these, but could lead to huge closure sizes.
+ mvnHash = selectSystem {
+ x86_64-linux = "sha256-vXZAlZOh9pXNF1RL78oQRal5pkXFRKDz/7SP9LibgiA=";
+ aarch64-linux = "sha256-xC+feb41EPi30gBrVR8usanVULI2Pt0knztzNagPQiw=";
+ };
+ mvnParameters = "-DskipTests";
+
+ nativeBuildInputs = [
+ copyDesktopItems
+ maven
+ makeWrapper
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/java
+ install -Dm644 target/ns-usbloader-${version}.jar $out/share/java/ns-usbloader.jar
+
+ mkdir -p $out/bin
+ makeWrapper ${jreWithJavaFX}/bin/java $out/bin/ns-usbloader \
+ --append-flags "-jar $out/share/java/ns-usbloader.jar"
+
+ mkdir -p $out/lib/udev/rules.d
+ install -Dm644 ${./99-ns-usbloader.rules} $out/lib/udev/rules.d/99-ns-usbloader.rules
+
+ mkdir -p $out/share/icons/hicolor
+ install -Dm644 target/classes/res/app_icon32x32.png $out/share/icons/hicolor/32x32/apps/ns-usbloader.png
+ install -Dm644 target/classes/res/app_icon48x48.png $out/share/icons/hicolor/48x48/apps/ns-usbloader.png
+ install -Dm644 target/classes/res/app_icon64x64.png $out/share/icons/hicolor/64x64/apps/ns-usbloader.png
+ install -Dm644 target/classes/res/app_icon128x128.png $out/share/icons/hicolor/128x128/apps/ns-usbloader.png
+
+ runHook postInstall
+ '';
+
+ desktopItems = [
+ (makeDesktopItem {
+ type = "Application";
+ name = "ns-usbloader";
+ desktopName = "NS-USBLoader";
+ comment = pkgDescription;
+ exec = "ns-usbloader";
+ icon = "ns-usbloader";
+ categories = [ "Game" ];
+ terminal = false;
+ keywords = [ "nintendo" "switch" ];
+ })
+ ];
+
+ meta = with lib; {
+ description = pkgDescription;
+ homepage = "https://github.com/developersu/ns-usbloader";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ soupglasses ];
+ platforms = [ "x86_64-linux" "aarch64-linux" ];
+ };
+}
diff --git a/pkgs/applications/misc/ns-usbloader/make-deterministic.patch b/pkgs/applications/misc/ns-usbloader/make-deterministic.patch
new file mode 100644
index 000000000000..531f640b0891
--- /dev/null
+++ b/pkgs/applications/misc/ns-usbloader/make-deterministic.patch
@@ -0,0 +1,130 @@
+From 3f85e2754144bbf2805ba68d8c76b3dec3299f4d Mon Sep 17 00:00:00 2001
+From: Sofi <sofi+git@mailbox.org>
+Date: Sat, 29 Jul 2023 11:16:38 +0200
+Subject: [PATCH] make deterministic
+
+---
+ pom.xml | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 57 insertions(+), 6 deletions(-)
+
+diff --git a/pom.xml b/pom.xml
+index 320d4f3..5a594e6 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -51,6 +51,7 @@
+ <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format>
+ <javafx.version>19.0.2.1</javafx.version>
+ <maven.compiler.release>11</maven.compiler.release>
++ <project.build.outputTimestamp>2023-01-01T00:00:00Z</project.build.outputTimestamp>
+ </properties>
+
+ <issueManagement>
+@@ -166,7 +167,7 @@
+ </dependency>
+ </dependencies>
+ <build>
+- <finalName>${project.artifactId}-${project.version}-${maven.build.timestamp}</finalName>
++ <finalName>${project.artifactId}-${project.version}</finalName>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+@@ -193,26 +194,51 @@
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+- <version>2.22.2</version>
++ <version>3.1.2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+- <version>2.22.2</version>
++ <version>3.1.2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+- <version>3.10.1</version>
++ <version>3.11.0</version>
+ <configuration>
+ <release>11</release>
+ </configuration>
+ </plugin>
++ <plugin>
++ <groupId>org.apache.maven.plugins</groupId>
++ <artifactId>maven-enforcer-plugin</artifactId>
++ <version>3.3.0</version>
++ <executions>
++ <execution>
++ <id>enforce-versions</id>
++ <phase>validate</phase>
++ <goals>
++ <goal>enforce</goal>
++ </goals>
++ <configuration>
++ <rules>
++ <requireMavenVersion>
++ <version>[3.2.5,)</version>
++ </requireMavenVersion>
++ <requireJavaVersion>
++ <version>[1.8,)</version>
++ </requireJavaVersion>
++ <requirePluginVersions />
++ </rules>
++ </configuration>
++ </execution>
++ </executions>
++ </plugin>
+ <!-- Don't generate default JAR without dependencies -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+- <version>3.1.2</version>
++ <version>3.3.0</version>
+ <!--
+ <configuration>
+ <manifestEntries>
+@@ -231,7 +257,7 @@
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+- <version>3.1.0</version>
++ <version>3.6.0</version>
+ <configuration>
+ <archive>
+ <manifest>
+@@ -253,6 +279,31 @@
+ </execution>
+ </executions>
+ </plugin>
++ <plugin>
++ <groupId>org.apache.maven.plugins</groupId>
++ <artifactId>maven-deploy-plugin</artifactId>
++ <version>3.1.1</version>
++ </plugin>
++ <plugin>
++ <groupId>org.apache.maven.plugins</groupId>
++ <artifactId>maven-resources-plugin</artifactId>
++ <version>3.3.1</version>
++ </plugin>
++ <plugin>
++ <groupId>org.apache.maven.plugins</groupId>
++ <artifactId>maven-site-plugin</artifactId>
++ <version>4.0.0-M9</version>
++ </plugin>
++ <plugin>
++ <groupId>org.apache.maven.plugins</groupId>
++ <artifactId>maven-install-plugin</artifactId>
++ <version>3.1.1</version>
++ </plugin>
++ <plugin>
++ <groupId>org.apache.maven.plugins</groupId>
++ <artifactId>maven-clean-plugin</artifactId>
++ <version>3.3.1</version>
++ </plugin>
+ </plugins>
+ </build>
+ </project>
+--
+2.41.0
+
diff --git a/pkgs/applications/misc/ns-usbloader/no-launch4j.patch b/pkgs/applications/misc/ns-usbloader/no-launch4j.patch
new file mode 100644
index 000000000000..4342b47e7fbe
--- /dev/null
+++ b/pkgs/applications/misc/ns-usbloader/no-launch4j.patch
@@ -0,0 +1,70 @@
+From ead7a3b988a47a3896ea8a3ff01556e073115f16 Mon Sep 17 00:00:00 2001
+From: Sofi <sofi+git@mailbox.org>
+Date: Thu, 27 Jul 2023 17:23:31 +0200
+Subject: [PATCH] No launch4j
+
+---
+ pom.xml | 47 +----------------------------------------------
+ 1 file changed, 1 insertion(+), 46 deletions(-)
+
+diff --git a/pom.xml b/pom.xml
+index 21352e0..320d4f3 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -253,51 +253,6 @@
+ </execution>
+ </executions>
+ </plugin>
+- <plugin>
+- <groupId>com.akathist.maven.plugins.launch4j</groupId>
+- <version>2.2.0</version>
+- <artifactId>launch4j-maven-plugin</artifactId>
+- <executions>
+- <execution>
+- <id>l4j-ns-usbloader</id>
+- <phase>package</phase>
+- <goals>
+- <goal>launch4j</goal>
+- </goals>
+- <configuration>
+- <headerType>gui</headerType>
+- <icon>appicon.ico</icon>
+- <outfile>target/${project.name}.exe</outfile>
+- <jar>target/${project.artifactId}-${project.version}-${maven.build.timestamp}.jar</jar>
+- <!-- <downloadUrl>https://download.oracle.com/java/17/archive/jdk-17.0.1_windows-x64_bin.msi</downloadUrl> -->
+- <errTitle>Launching error</errTitle>
+- <!-- <dontWrapJar>true</dontWrapJar> -->
+- <jre>
+- <path>%PWD%/jdk</path>
+- <minVersion>11.0.0</minVersion>
+- </jre>
+- <versionInfo>
+- <fileVersion>${project.version}.0.0</fileVersion>
+- <txtFileVersion>${project.version}</txtFileVersion>
+- <fileDescription>NS multi-tool</fileDescription>
+- <copyright>GNU General Public License v3, ${project.inceptionYear} ${project.organization.name}, Russia.</copyright>
+- <productVersion>${project.version}.0.0</productVersion>
+- <txtProductVersion>${project.version}</txtProductVersion>
+- <companyName>${project.organization.name}</companyName>
+- <productName>${project.name}</productName>
+- <internalName>${project.name}</internalName>
+- <originalFilename>${project.name}.exe</originalFilename>
+- </versionInfo>
+- <messages>
+- <startupErr>Startup error</startupErr>
+- <jreNotFoundErr>JDK not found</jreNotFoundErr>
+- <jreVersionErr>JDK Version mismatch</jreVersionErr>
+- <launcherErr>Launcher Error</launcherErr>
+- </messages>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+ </plugins>
+ </build>
+-</project>
+\ No newline at end of file
++</project>
+--
+2.41.0
+
diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix
index b8d149364ef2..e9e309f421a0 100644
--- a/pkgs/applications/science/math/geogebra/default.nix
+++ b/pkgs/applications/science/math/geogebra/default.nix
@@ -27,7 +27,7 @@ let
calculus in one easy-to-use package.
'';
homepage = "https://www.geogebra.org/";
- maintainers = with maintainers; [ sikmir imsofi ];
+ maintainers = with maintainers; [ sikmir soupglasses ];
license = with licenses; [ gpl3 cc-by-nc-sa-30 geogebra ];
sourceProvenance = with sourceTypes; [
binaryBytecode
diff --git a/pkgs/games/ferium/default.nix b/pkgs/games/ferium/default.nix
index 6f602ca0de2e..5a8859e95e2f 100644
--- a/pkgs/games/ferium/default.nix
+++ b/pkgs/games/ferium/default.nix
@@ -34,6 +34,6 @@ rustPlatform.buildRustPackage rec {
description = "Fast and multi-source CLI program for managing Minecraft mods and modpacks from Modrinth, CurseForge, and GitHub Releases";
homepage = "https://github.com/gorilla-devs/ferium";
license = licenses.mpl20;
- maintainers = with maintainers; [ leo60228 imsofi ];
+ maintainers = with maintainers; [ leo60228 soupglasses ];
};
}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0ac157d4ba3f..012a318ecdc5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -33644,6 +33644,8 @@ with pkgs;
novnc = callPackage ../applications/networking/novnc { };
+ ns-usbloader = callPackage ../applications/misc/ns-usbloader { };
+
nwg-bar = callPackage ../applications/misc/nwg-bar { };
nwg-dock = callPackage ../applications/misc/nwg-dock { };