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