about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/games/jpsxdec/default.nix
blob: d749353abc511dc640240243ab951f073dfbf7b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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.06";

  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 = "sha256-6PLEvK4NP0/ipdygyDFFcWTIfch5y0Hren40+8iqYJs=";
  };

  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 ];
  };
}