base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / tu / tuxguitar / package.nix
blobe8df3929fc6f02ad9ef7b7eb8427fc75b6eed72f
2   lib,
3   stdenv,
4   fetchurl,
5   swt,
6   jre,
7   makeWrapper,
8   alsa-lib,
9   jack2,
10   fluidsynth,
11   libpulseaudio,
12   lilv,
13   nixosTests,
16 stdenv.mkDerivation (finalAttrs: {
17   version = "1.6.4";
18   pname = "tuxguitar";
20   src = fetchurl {
21     url = "https://github.com/helge17/tuxguitar/releases/download/${finalAttrs.version}/tuxguitar-${finalAttrs.version}-linux-swt-amd64.tar.gz";
22     hash = "sha256-FD1+7jV69E9AfTczjD6DOGD+pPlscg4o8A9ADBUM9B4=";
23   };
25   nativeBuildInputs = [
26     makeWrapper
27   ];
29   installPhase = ''
30     mkdir -p $out/bin
31     cp -r dist lib share $out/
32     cp tuxguitar.sh $out/bin/tuxguitar
34     ln -s $out/dist $out/bin/dist
35     ln -s $out/lib $out/bin/lib
36     ln -s $out/share $out/bin/share
38     wrapProgram $out/bin/tuxguitar \
39       --set JAVA "${jre}/bin/java" \
40       --prefix LD_LIBRARY_PATH : "$out/lib/:${
41         lib.makeLibraryPath [
42           swt
43           alsa-lib
44           jack2
45           fluidsynth
46           libpulseaudio
47           lilv
48         ]
49       }" \
50       --prefix CLASSPATH : "${swt}/jars/swt.jar:$out/lib/tuxguitar.jar:$out/lib/itext.jar"
51   '';
53   passthru.tests = {
54     nixos = nixosTests.tuxguitar;
55   };
57   meta = {
58     description = "Multitrack guitar tablature editor";
59     longDescription = ''
60       TuxGuitar is a multitrack guitar tablature editor and player written
61       in Java-SWT. It can open GuitarPro, PowerTab and TablEdit files.
62     '';
63     homepage = "https://github.com/helge17/tuxguitar";
64     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
65     license = lib.licenses.lgpl2;
66     maintainers = with lib.maintainers; [ ardumont ];
67     platforms = [ "x86_64-linux" ];
68   };