biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / audio / mixxx / default.nix
blob4abc6d4956f4794f53b93c9afb2ca01e55f177f4
1 { lib
2 , stdenv
3 , mkDerivation
4 , fetchFromGitHub
5 , chromaprint
6 , cmake
7 , faad2
8 , ffmpeg
9 , fftw
10 , flac
11 , gbenchmark
12 , glibcLocales
13 , gtest
14 , hidapi
15 , lame
16 , libebur128
17 , libdjinterop
18 , libGLU
19 , libid3tag
20 , libkeyfinder
21 , libmad
22 , libmodplug
23 , libopus
24 , libsecret
25 , libshout
26 , libsndfile
27 , libusb1
28 , libvorbis
29 , libxcb
30 , lilv
31 , lv2
32 , microsoft-gsl
33 , mp4v2
34 , opusfile
35 , pcre
36 , pkg-config
37 , portaudio
38 , portmidi
39 , protobuf
40 , qtbase
41 , qtkeychain
42 , qtscript
43 , qtsvg
44 , qtx11extras
45 , rubberband
46 , serd
47 , sord
48 , soundtouch
49 , sratom
50 , sqlite
51 , taglib
52 , upower
53 , vamp-plugin-sdk
54 , wavpack
57 mkDerivation rec {
58   pname = "mixxx";
59   version = "2.4.0";
61   src = fetchFromGitHub {
62     owner = "mixxxdj";
63     repo = "mixxx";
64     rev = version;
65     hash = "sha256-JSWUzerm7D6AKq6g/9eRrt3EE2movRdM+VLUg07sLHo=";
66   };
68   nativeBuildInputs = [ cmake pkg-config ];
70   buildInputs = [
71     chromaprint
72     faad2
73     ffmpeg
74     fftw
75     flac
76     gbenchmark
77     glibcLocales
78     gtest
79     hidapi
80     lame
81     libebur128
82     libGLU
83     libid3tag
84     libdjinterop
85     libkeyfinder
86     libmad
87     libmodplug
88     libopus
89     libsecret
90     libshout
91     libsndfile
92     libusb1
93     libvorbis
94     libxcb
95     lilv
96     lv2
97     microsoft-gsl
98     mp4v2
99     opusfile
100     pcre
101     portaudio
102     portmidi
103     protobuf
104     qtbase
105     qtkeychain
106     qtscript
107     qtsvg
108     qtx11extras
109     rubberband
110     serd
111     sord
112     soundtouch
113     sratom
114     sqlite
115     taglib
116     upower
117     vamp-plugin-sdk
118     wavpack
119   ];
121   qtWrapperArgs = [
122     "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive"
123   ];
125   # mixxx installs udev rules to DATADIR instead of SYSCONFDIR
126   # let's disable this and install udev rules manually via postInstall
127   # see https://github.com/mixxxdj/mixxx/blob/2.3.5/CMakeLists.txt#L1381-L1392
128   cmakeFlags = [
129     "-DINSTALL_USER_UDEV_RULES=OFF"
130   ];
132   postInstall = lib.optionalString stdenv.isLinux ''
133     rules="$src/res/linux/mixxx-usb-uaccess.rules"
134     if [ ! -f "$rules" ]; then
135         echo "$rules is missing, must update the Nix file."
136         exit 1
137     fi
138     mkdir -p "$out/lib/udev/rules.d"
139     cp "$rules" "$out/lib/udev/rules.d/69-mixxx-usb-uaccess.rules"
140   '';
142   meta = with lib; {
143     homepage = "https://mixxx.org";
144     description = "Digital DJ mixing software";
145     mainProgram = "mixxx";
146     license = licenses.gpl2Plus;
147     maintainers = with maintainers; [ goibhniu bfortz ];
148     platforms = platforms.linux;
149   };