diff --git a/pkgs/by-name/fo/forge-mtg/no-launch4j.patch b/pkgs/by-name/fo/forge-mtg/no-launch4j.patch
index 7e9d9f4790a0..02731aa16fdb 100644
--- a/pkgs/by-name/fo/forge-mtg/no-launch4j.patch
+++ b/pkgs/by-name/fo/forge-mtg/no-launch4j.patch
@@ -1,396 +1,85 @@
-diff --git a/forge-adventure/pom.xml b/forge-adventure/pom.xml
-index b35356ea76..b7ab1c775b 100644
---- a/forge-adventure/pom.xml
-+++ b/forge-adventure/pom.xml
-@@ -47,131 +47,6 @@
-
-
-
--
-- com.akathist.maven.plugins.launch4j
-- launch4j-maven-plugin
-- 1.7.25
--
--
-- l4j-adv
-- package
--
-- launch4j
--
--
-- gui
-- ${project.build.directory}/forge-adventure-editor-java8.exe
-- ${project.build.finalName}-jar-with-dependencies.jar
-- true
-- forge
-- src/main/config/forge-adventure-editor.ico
--
-- forge.adventure.Main
-- false
-- anything
--
--
-- 1.8.0
-- 4096
--
-- -Dfile.encoding=UTF-8
--
--
--
--
-- 1.0.0.0
--
--
-- 1.0.0.0
--
-- Forge
-- Forge
--
-- 1.0.0.0
--
--
-- 1.0.0.0
--
-- forge-adventure-editor
-- forge-adventure-editor
-- forge-adventure-editor-java8.exe
--
--
--
--
--
-- l4j-adv2
-- package
--
-- launch4j
--
--
-- gui
-- ${project.build.directory}/forge-adventure-editor.exe
-- ${project.build.finalName}-jar-with-dependencies.jar
-- true
-- forge
-- https://www.oracle.com/java/technologies/downloads/
-- src/main/config/forge-adventure-editor.ico
--
-- forge.adventure.Main
-- false
-- anything
--
--
-- 11.0.1
-- jdkOnly
-- 4096
--
-- -Dfile.encoding=UTF-8
-- --add-opens java.base/java.lang=ALL-UNNAMED
-- --add-opens java.base/java.math=ALL-UNNAMED
-- --add-opens java.base/jdk.internal.misc=ALL-UNNAMED
-- --add-opens java.base/java.nio=ALL-UNNAMED
-- --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
-- --add-opens java.base/java.util=ALL-UNNAMED
-- --add-opens java.base/java.lang.reflect=ALL-UNNAMED
-- --add-opens java.base/java.text=ALL-UNNAMED
-- --add-opens java.desktop/java.awt=ALL-UNNAMED
-- --add-opens java.desktop/java.awt.font=ALL-UNNAMED
-- --add-opens java.desktop/java.awt.image=ALL-UNNAMED
-- --add-opens java.desktop/java.awt.color=ALL-UNNAMED
-- --add-opens java.desktop/sun.awt.image=ALL-UNNAMED
-- --add-opens java.desktop/javax.swing=ALL-UNNAMED
-- --add-opens java.desktop/javax.swing.border=ALL-UNNAMED
-- --add-opens java.desktop/javax.swing.event=ALL-UNNAMED
-- --add-opens java.desktop/sun.swing=ALL-UNNAMED
-- --add-opens java.desktop/java.beans=ALL-UNNAMED
-- --add-opens java.base/java.util.concurrent=ALL-UNNAMED
-- --add-opens java.base/java.net=ALL-UNNAMED
-- -Dio.netty.tryReflectionSetAccessible=true
--
--
--
--
-- 1.0.0.0
--
--
-- 1.0.0.0
--
-- Forge
-- Forge
--
-- 1.0.0.0
--
--
-- 1.0.0.0
--
-- forge-adventure-editor
-- forge-adventure-editor
-- forge-adventure-editor.exe
--
--
--
--
--
--
--
-
- com.google.code.maven-replacer-plugin
- replacer
diff --git a/forge-gui-desktop/pom.xml b/forge-gui-desktop/pom.xml
-index 3b74663b04..f0e324b69c 100644
+index dfe902e6b9..6fe3382f27 100644
--- a/forge-gui-desktop/pom.xml
+++ b/forge-gui-desktop/pom.xml
-@@ -282,59 +282,6 @@
- windows-linux-release
-
-
--
-- com.akathist.maven.plugins.launch4j
-- launch4j-maven-plugin
-- 2.1.2
--
--
-- l4j-gui
-- package
--
-- launch4j
--
--
-- gui
-- ${project.build.directory}/forge-java8.exe
-- ${project.build.finalName}-jar-with-dependencies.jar
-- true
-- forge
-- src/main/config/forge.ico
--
-- forge.view.Main
-- false
-- anything
--
--
-- 1.8.0
-- 4096
--
-- -Dfile.encoding=UTF-8
--
--
--
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
-- Forge
-- Forge
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
-- Forge
-- forge
-- forge-java8.exe
--
--
--
--
--
-
-
- org.apache.maven.plugins
-@@ -447,130 +394,6 @@
- windows-linux
-
-
--
-- com.akathist.maven.plugins.launch4j
-- launch4j-maven-plugin
-- 2.1.2
--
--
-- l4j-gui
-- package
--
-- launch4j
--
--
-- gui
-- ${project.build.directory}/forge-java8.exe
-- ${project.build.finalName}-jar-with-dependencies.jar
-- true
-- forge
-- src/main/config/forge.ico
--
-- forge.view.Main
-- false
-- anything
--
--
-- 1.8.0
-- 4096
--
-- -Dfile.encoding=UTF-8
--
--
--
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
-- Forge
-- Forge
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
-- Forge
-- forge
-- forge-java8.exe
--
--
--
--
--
-- l4j-gui2
-- package
--
-- launch4j
--
--
-- gui
-- ${project.build.directory}/forge.exe
-- ${project.build.finalName}-jar-with-dependencies.jar
-- true
-- forge
-- https://www.oracle.com/java/technologies/downloads/
-- src/main/config/forge.ico
--
-- forge.view.Main
-- false
-- anything
--
--
-- 11.0.1
-- jdkOnly
-- 4096
--
-- -Dfile.encoding=UTF-8
-- --add-opens java.base/java.lang=ALL-UNNAMED
-- --add-opens java.base/java.math=ALL-UNNAMED
-- --add-opens java.base/jdk.internal.misc=ALL-UNNAMED
-- --add-opens java.base/java.nio=ALL-UNNAMED
-- --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
-- --add-opens java.base/java.util=ALL-UNNAMED
-- --add-opens java.base/java.lang.reflect=ALL-UNNAMED
-- --add-opens java.base/java.text=ALL-UNNAMED
-- --add-opens java.desktop/java.awt=ALL-UNNAMED
-- --add-opens java.desktop/java.awt.font=ALL-UNNAMED
-- --add-opens java.desktop/java.awt.image=ALL-UNNAMED
-- --add-opens java.desktop/java.awt.color=ALL-UNNAMED
-- --add-opens java.desktop/sun.awt.image=ALL-UNNAMED
-- --add-opens java.desktop/javax.swing=ALL-UNNAMED
-- --add-opens java.desktop/javax.swing.border=ALL-UNNAMED
-- --add-opens java.desktop/javax.swing.event=ALL-UNNAMED
-- --add-opens java.desktop/sun.swing=ALL-UNNAMED
-- --add-opens java.desktop/java.beans=ALL-UNNAMED
-- --add-opens java.base/java.util.concurrent=ALL-UNNAMED
-- --add-opens java.base/java.net=ALL-UNNAMED
-- -Dio.netty.tryReflectionSetAccessible=true
--
--
--
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
-- Forge
-- Forge
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
--
-- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
--
-- Forge
-- forge
-- forge.exe
--
--
--
--
--
--
-
-
- org.apache.maven.plugins
-diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml
-index e7439c1e3a..de0cbc16a1 100644
---- a/forge-gui-mobile-dev/pom.xml
-+++ b/forge-gui-mobile-dev/pom.xml
-@@ -64,130 +64,6 @@
-
-
+@@ -70,62 +70,6 @@
+
+
-
- com.akathist.maven.plugins.launch4j
- launch4j-maven-plugin
-- 1.7.25
+- 2.5.1
-
-
-- l4j-adv
+- l4j-gui
- package
-
- launch4j
-
-
- gui
-- ${project.build.directory}/forge-adventure-java8.exe
+- ${project.build.directory}/forge.exe
- ${project.build.finalName}-jar-with-dependencies.jar
- true
- forge
-- src/main/config/forge-adventure.ico
+- https://bell-sw.com/pages/downloads/#jdk-17-lts
+- src/main/config/forge.ico
-
-- forge.app.Main
+- forge.view.Main
- false
- anything
-
-
-- 1.8.0
+- 17
+- true
- 4096
-
-- -Dfile.encoding=UTF-8
+- ${mandatory.java.args}
+- ${addopen.java.args}
-
-
-
-
-- 1.0.0.0
+- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
-
-
-- 1.0.0.0
+- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
-
- Forge
- Forge
-
-- 1.0.0.0
+- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
-
-
-- 1.0.0.0
+- ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0
-
-- forge-adventure
-- forge-adventure
-- forge-adventure-java8.exe
+- Forge
+- forge
+- forge.exe
-
-
-
--
+-
+-
+
+ com.google.code.maven-replacer-plugin
+ replacer
+diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml
+index 168ecba1dc..748dbf47b7 100644
+--- a/forge-gui-mobile-dev/pom.xml
++++ b/forge-gui-mobile-dev/pom.xml
+@@ -60,57 +60,6 @@
+ 17
+
+
+-
+- com.akathist.maven.plugins.launch4j
+- launch4j-maven-plugin
+- 2.5.1
+-
-
-- l4j-adv2
+- l4j-adv
- package
-
- launch4j
@@ -401,40 +90,14 @@ index e7439c1e3a..de0cbc16a1 100644
- ${project.build.finalName}-jar-with-dependencies.jar
- true
- forge
-- https://www.oracle.com/java/technologies/downloads/
+- https://bell-sw.com/pages/downloads/#jdk-17-lts
- src/main/config/forge-adventure.ico
--
-- forge.app.Main
-- false
-- anything
--
-
-- 11.0.1
-- jdkOnly
+- 17
+- true
- 4096
-
-- -Dfile.encoding=UTF-8
-- --add-opens java.base/java.lang=ALL-UNNAMED
-- --add-opens java.base/java.math=ALL-UNNAMED
-- --add-opens java.base/jdk.internal.misc=ALL-UNNAMED
-- --add-opens java.base/java.nio=ALL-UNNAMED
-- --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
-- --add-opens java.base/java.util=ALL-UNNAMED
-- --add-opens java.base/java.lang.reflect=ALL-UNNAMED
-- --add-opens java.base/java.text=ALL-UNNAMED
-- --add-opens java.desktop/java.awt=ALL-UNNAMED
-- --add-opens java.desktop/java.awt.font=ALL-UNNAMED
-- --add-opens java.desktop/java.awt.image=ALL-UNNAMED
-- --add-opens java.desktop/java.awt.color=ALL-UNNAMED
-- --add-opens java.desktop/sun.awt.image=ALL-UNNAMED
-- --add-opens java.desktop/javax.swing=ALL-UNNAMED
-- --add-opens java.desktop/javax.swing.border=ALL-UNNAMED
-- --add-opens java.desktop/javax.swing.event=ALL-UNNAMED
-- --add-opens java.desktop/sun.swing=ALL-UNNAMED
-- --add-opens java.desktop/java.beans=ALL-UNNAMED
-- --add-opens java.base/java.util.concurrent=ALL-UNNAMED
-- --add-opens java.base/java.net=ALL-UNNAMED
-- -Dio.netty.tryReflectionSetAccessible=true
+- ${mandatory.java.args}
-
-
-
@@ -462,5 +125,5 @@ index e7439c1e3a..de0cbc16a1 100644
-
-
- maven-assembly-plugin
-
+ com.google.code.maven-replacer-plugin
+ replacer
diff --git a/pkgs/by-name/fo/forge-mtg/package.nix b/pkgs/by-name/fo/forge-mtg/package.nix
index dedce0dd3cd3..683fe9a51f31 100644
--- a/pkgs/by-name/fo/forge-mtg/package.nix
+++ b/pkgs/by-name/fo/forge-mtg/package.nix
@@ -6,16 +6,20 @@
maven,
makeWrapper,
openjdk,
+ libGL,
+ makeDesktopItem,
+ copyDesktopItems,
+ imagemagick,
}:
let
- version = "1.6.65";
+ version = "2.0.05";
src = fetchFromGitHub {
owner = "Card-Forge";
repo = "forge";
rev = "forge-${version}";
- hash = "sha256-MCJl3nBHbX/O24bzD4aQ12eMWxYY2qJC5vomvtsIBek=";
+ hash = "sha256-71CZBI4FvN5X7peDjhv+0cdTYv8hWwzM8ePdvQSb6QI=";
};
# launch4j downloads and runs a native binary during the package phase.
@@ -26,11 +30,56 @@ maven.buildMavenPackage {
pname = "forge-mtg";
inherit version src patches;
- mvnHash = "sha256-ouF0Ja3oGrlUCcT0PzI5i9FQ+oLdEhE/LvhJ0QGErvI=";
+ mvnHash = "sha256-krPOUaJTo5i3imkDvEkBJH3W01y1KypdvitqmZ5JMMA=";
doCheck = false; # Needs a running Xorg
- nativeBuildInputs = [ makeWrapper ];
+ nativeBuildInputs = [
+ makeWrapper
+ copyDesktopItems
+ imagemagick
+ ];
+ desktopItems = [
+ (makeDesktopItem {
+ name = "forge";
+ exec = "forge";
+ actions = {
+ forge-adventure = {
+ exec = "forge-adventure";
+ name = "Play Adventure";
+ };
+ forge-adventure-editor = {
+ exec = "forge-adventure-editor";
+ name = "Adventure Editor";
+ };
+ forge-classic = {
+ exec = "forge";
+ name = "Play Classic";
+ };
+ };
+ icon = "forge-mtg";
+ comment = "Magic: the Gathering card game with rules enforcement";
+ desktopName = "Forge MTG";
+ genericName = "Card Game";
+ categories = [
+ "Game"
+ "BoardGame"
+ ];
+ keywords = [
+ "Magic"
+ "MTG"
+ "Card Game"
+ "Trading Card Game"
+ "TCG"
+ ];
+ })
+ ];
+
+ mvnParameters = lib.escapeShellArgs [
+ "-pl"
+ ":adventure-editor,:forge-gui-desktop,:forge-gui-mobile-dev" # forge-gui-mobile-dev is required for forge-adventure
+ "--also-make"
+ ];
installPhase = ''
runHook preInstall
@@ -40,16 +89,25 @@ maven.buildMavenPackage {
forge-gui-desktop/target/forge-gui-desktop-${version}-jar-with-dependencies.jar \
forge-gui-mobile-dev/target/forge-adventure.sh \
forge-gui-mobile-dev/target/forge-gui-mobile-dev-${version}-jar-with-dependencies.jar \
- forge-adventure/target/forge-adventure-editor.sh \
- forge-adventure/target/forge-adventure-${version}-jar-with-dependencies.jar \
+ adventure-editor/target/adventure-editor-jar-with-dependencies.jar \
forge-gui/res \
$out/share/forge
+ cp adventure-editor/target/adventure-editor.sh $out/share/forge/forge-adventure-editor.sh
+
+ mkdir -p $out/share/icons/hicolor/128x128/apps
+ magick AppIcon.png -resize 128x128 $out/share/icons/hicolor/128x128/apps/forge-mtg.png
+
runHook postInstall
'';
preFixup = ''
for commandToInstall in forge forge-adventure forge-adventure-editor; do
chmod 555 $out/share/forge/$commandToInstall.sh
+ PREFIX_CMD=""
+ if [ "$commandToInstall" = "forge-adventure" ]; then
+ PREFIX_CMD="--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL ]}"
+ fi
+
makeWrapper $out/share/forge/$commandToInstall.sh $out/bin/$commandToInstall \
--prefix PATH : ${
lib.makeBinPath [
@@ -59,13 +117,14 @@ maven.buildMavenPackage {
]
} \
--set JAVA_HOME ${openjdk}/lib/openjdk \
- --set SENTRY_DSN ""
+ --set SENTRY_DSN "" \
+ $PREFIX_CMD
done
'';
meta = with lib; {
description = "Magic: the Gathering card game with rules enforcement";
- homepage = "https://www.slightlymagic.net/forum/viewforum.php?f=26";
+ homepage = "https://card-forge.github.io/forge";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ eigengrau ];
};