diff --git a/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch b/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch new file mode 100644 index 000000000000..17899ef328f1 --- /dev/null +++ b/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch @@ -0,0 +1,43 @@ +From 52662c71f7b043f374d4062d07a28b59ef010cbe Mon Sep 17 00:00:00 2001 +From: Zane van Iperen +Date: Wed, 22 Sep 2021 18:41:36 +1000 +Subject: [PATCH] jpsxdec: hackfix build with newer JDKs + +--- + jpsxdec/build.xml | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/jpsxdec/build.xml b/jpsxdec/build.xml +index 713941c..f5aa902 100644 +--- a/jpsxdec/build.xml ++++ b/jpsxdec/build.xml +@@ -43,8 +43,8 @@ + + + +- +- ++ ++ + + + +@@ -76,7 +76,6 @@ + + + +- + + + +@@ -109,7 +108,6 @@ + + + +- + + + +-- +2.31.1 + diff --git a/pkgs/tools/games/jpsxdec/default.nix b/pkgs/tools/games/jpsxdec/default.nix new file mode 100644 index 000000000000..2c18f29bbf33 --- /dev/null +++ b/pkgs/tools/games/jpsxdec/default.nix @@ -0,0 +1,84 @@ +{ stdenv +, lib +, fetchFromGitHub +, jdk +/* + * jPSXdec needs to be built with no later than JDK8, but + * should be run with the latest to get HiDPI fixes, etc. + */ +, jre ? jdk +, ant +, unoconv +, makeWrapper +, makeDesktopItem +}: +let + pname = "jpsxdec"; + version = "1.05"; + + description = "Cross-platform PlayStation 1 audio and video converter"; + + desktopItem = makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + comment = description; + desktopName = "jPSXdec"; + categories = "AudioVideo;Utility;"; + }; +in +stdenv.mkDerivation rec { + inherit pname version; + + src = fetchFromGitHub { + owner = "m35"; + repo = pname; + rev = "v${version}"; + sha256 = "0wnfvvcyldf699b08lzlc0gshl7rn09a6q4i7jmr41izlcdszdbz"; + }; + + nativeBuildInputs = [ ant jdk unoconv makeWrapper ]; + buildInputs = [ jre ]; + + patches = [ + ./0001-jpsxdec-hackfix-build-with-newer-JDKs.patch + ]; + + buildPhase = '' + runHook preBuild + + cd jpsxdec + mkdir -p _ant/release/doc/ + unoconv -d document -f pdf -o _ant/release/doc/jPSXdec-manual.pdf doc/jPSXdec-manual.odt + + ant release + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,share/pixmaps} + mv _ant/release $out/jpsxdec + + makeWrapper ${jre}/bin/java $out/bin/jpsxdec \ + --add-flags "-jar $out/jpsxdec/jpsxdec.jar" + + cp ${src}/jpsxdec/src/jpsxdec/gui/icon48.png $out/share/pixmaps/${pname}.png + ln -s ${desktopItem}/share/applications $out/share + + runHook postInstall + ''; + + meta = with lib; { + inherit description; + homepage = "https://jpsxdec.blogspot.com/"; + platforms = platforms.all; + license = { + url = "https://raw.githubusercontent.com/m35/jpsxdec/readme/.github/LICENSE.md"; + free = true; + }; + maintainers = with maintainers; [ zane ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7a9d7517defe..497ded888291 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27511,6 +27511,10 @@ with pkgs; wxGTK = wxGTK30-gtk3; }; + jpsxdec = callPackage ../tools/games/jpsxdec { + jdk = openjdk8; + }; + pdfslicer = callPackage ../applications/misc/pdfslicer { }; pekwm = callPackage ../applications/window-managers/pekwm { };