biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / audio / bitwig-studio / bitwig-studio5.nix
blob3ec595e3e8bbc036273a0029d2470335ca752f0e
1 { stdenv
2 , fetchurl
3 , alsa-lib
4 , atk
5 , cairo
6 , dpkg
7 , ffmpeg
8 , freetype
9 , gdk-pixbuf
10 , glib
11 , gtk3
12 , harfbuzz
13 , lib
14 , libglvnd
15 , libjack2
16 , libjpeg
17 , libxkbcommon
18 , makeWrapper
19 , pango
20 , pipewire
21 , pulseaudio
22 , wrapGAppsHook
23 , xdg-utils
24 , xorg
25 , zlib
28 stdenv.mkDerivation rec {
29   pname = "bitwig-studio";
30   version = "5.1.6";
32   src = fetchurl {
33     url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
34     sha256 = "sha256-U1Qp7/7kAr1IEcv256I2J/sb5MYxfR20Pi5N8WaVh2U=";
35   };
37   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
39   unpackCmd = ''
40     mkdir -p root
41     dpkg-deb -x $curSrc root
42   '';
44   dontBuild = true;
45   dontWrapGApps = true; # we only want $gappsWrapperArgs here
47   buildInputs = with xorg; [
48     alsa-lib
49     atk
50     cairo
51     freetype
52     gdk-pixbuf
53     glib
54     gtk3
55     harfbuzz
56     libglvnd
57     libjack2
58     # libjpeg8 is required for converting jpeg's to colour palettes
59     libjpeg
60     libxcb
61     libXcursor
62     libX11
63     libXtst
64     libxkbcommon
65     pango
66     pipewire
67     pulseaudio
68     stdenv.cc.cc.lib
69     xcbutil
70     xcbutilwm
71     zlib
72   ];
74   installPhase = ''
75     runHook preInstall
77     mkdir -p $out/bin
78     cp -r opt/bitwig-studio $out/libexec
79     ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio
80     cp -r usr/share $out/share
81     substitute usr/share/applications/com.bitwig.BitwigStudio.desktop \
82       $out/share/applications/com.bitwig.BitwigStudio.desktop \
83       --replace /usr/bin/bitwig-studio $out/bin/bitwig-studio
85       runHook postInstall
86   '';
88   postFixup = ''
89     # patchelf fails to set rpath on BitwigStudioEngine, so we use
90     # the LD_LIBRARY_PATH way
92     find $out -type f -executable \
93       -not -name '*.so.*' \
94       -not -name '*.so' \
95       -not -name '*.jar' \
96       -not -name 'jspawnhelper' \
97       -not -path '*/resources/*' | \
98     while IFS= read -r f ; do
99       patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f
100       # make xdg-open overrideable at runtime
101       wrapProgram $f \
102         "''${gappsWrapperArgs[@]}" \
103         --prefix PATH : "${lib.makeBinPath [ ffmpeg ]}" \
104         --suffix PATH : "${lib.makeBinPath [ xdg-utils ]}" \
105         --suffix LD_LIBRARY_PATH : "${lib.strings.makeLibraryPath buildInputs}"
106     done
108     find $out -type f -executable -name 'jspawnhelper' | \
109     while IFS= read -r f ; do
110       patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f
111     done
112   '';
114   meta = with lib; {
115     description = "A digital audio workstation";
116     longDescription = ''
117       Bitwig Studio is a multi-platform music-creation system for
118       production, performance and DJing, with a focus on flexible
119       editing tools and a super-fast workflow.
120     '';
121     homepage = "https://www.bitwig.com/";
122     license = licenses.unfree;
123     platforms = [ "x86_64-linux" ];
124     maintainers = with maintainers; [ bfortz michalrus mrVanDalo ];
125   };