smap: init at 0.1.12 (#371402)
[NixPkgs.git] / pkgs / applications / audio / touchosc / default.nix
blob89593cd7d9c6e1bce6cca053d0d3eb709044701b
1 { lib
2 , stdenv
3 , fetchurl
4 , makeWrapper
5 , autoPatchelfHook
6 , dpkg
7 , alsa-lib
8 , curl
9 , avahi
10 , jack2
11 , libxcb
12 , libX11
13 , libXcursor
14 , libXext
15 , libXi
16 , libXinerama
17 , libXrandr
18 , libXrender
19 , libXxf86vm
20 , libglvnd
21 , zenity
24 let
25   runLibDeps = [
26     curl
27     avahi
28     jack2
29     libxcb
30     libX11
31     libXcursor
32     libXext
33     libXi
34     libXinerama
35     libXrandr
36     libXrender
37     libXxf86vm
38     libglvnd
39   ];
41   runBinDeps = [
42     zenity
43   ];
46 stdenv.mkDerivation rec {
47   pname = "touchosc";
48   version = "1.3.7.218";
50   suffix = {
51     aarch64-linux = "linux-arm64";
52     armv7l-linux  = "linux-armhf";
53     x86_64-linux  = "linux-x64";
54   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
56   src = fetchurl {
57     url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.deb";
58     hash = {
59       aarch64-linux = "sha256-6nnTSMTKlUyqzhxSmTfDcpNcxCb34B0vuJaUiVNS0NE=";
60       armv7l-linux  = "sha256-eOQiYqAKt36ah7BY5yxChaPF6lhBnVOshhep1u36p3U=";
61       x86_64-linux  = "sha256-rBGbiV/1RhL513qSyc2TTsdvkTPJ2bmP6oq2Q6Ykay8=";
62     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
63   };
65   strictDeps = true;
67   nativeBuildInputs = [
68     makeWrapper
69     autoPatchelfHook
70     dpkg
71   ];
73   buildInputs = [
74     (lib.getLib stdenv.cc.cc)
75     alsa-lib
76   ];
78   dontConfigure = true;
79   dontBuild = true;
81   installPhase = ''
82     runHook preInstall
84     mkdir -p $out
85     cp -r usr/share $out/share
87     mkdir -p $out/bin
88     cp opt/touchosc/TouchOSC $out/bin/TouchOSC
90     wrapProgram $out/bin/TouchOSC \
91       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath runLibDeps} \
92       --prefix PATH : ${lib.makeBinPath runBinDeps}
94     runHook postInstall
95   '';
97   passthru.updateScript = ./update.sh;
99   meta = with lib; {
100     homepage = "https://hexler.net/touchosc";
101     description = "Next generation modular control surface";
102     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
103     license = licenses.unfree;
104     maintainers = [ ];
105     platforms = [ "aarch64-linux" "armv7l-linux" "x86_64-linux" ];
106     mainProgram = "TouchOSC";
107   };