onefetch: 2.22.0 -> 2.23.1 (#370530)
[NixPkgs.git] / pkgs / applications / audio / clementine / default.nix
blobc0f7c3cbc82a827e7f560c69da31fe7014c9923c
1 { lib
2 , mkDerivation
3 , fetchFromGitHub
4 , boost
5 , cmake
6 , chromaprint
7 , gettext
8 , gst_all_1
9 , liblastfm
10 , qtbase
11 , qtx11extras
12 , qttools
13 , taglib
14 , fftw
15 , glew
16 , qjson
17 , sqlite
18 , libgpod
19 , libplist
20 , usbmuxd
21 , libmtp
22 , libpulseaudio
23 , gvfs
24 , libcdio
25 , pcre
26 , projectm
27 , protobuf
28 , qca-qt5
29 , pkg-config
30 , sparsehash
31 , config
32 , makeWrapper
33 , gst_plugins
35 , util-linux
36 , libunwind
37 , libselinux
38 , elfutils
39 , libsepol
40 , orc
42 , alsa-lib
45 let
46   withIpod = config.clementine.ipod or false;
47   withMTP = config.clementine.mtp or true;
48   withCD = config.clementine.cd or true;
49   withCloud = config.clementine.cloud or true;
51 mkDerivation {
52   pname = "clementine";
53   version = "1.4.rc2-unstable-2024-05-12";
55   src = fetchFromGitHub {
56     owner = "clementine-player";
57     repo = "Clementine";
58     rev = "7607ddcb96e79d373c4b60d9de21f3315719c7d8";
59     sha256 = "sha256-yOG/Je6N8YEsu5AOtxOFgDl3iqb97assYMZYMSwQqqk=";
60   };
62   nativeBuildInputs = [
63     cmake
64     pkg-config
65     makeWrapper
67     util-linux
68     libunwind
69     libselinux
70     elfutils
71     libsepol
72     orc
73   ];
75   buildInputs = [
76     boost
77     chromaprint
78     fftw
79     gettext
80     glew
81     gst_all_1.gst-plugins-base
82     gst_all_1.gst-plugins-bad
83     gst_all_1.gstreamer
84     gvfs
85     liblastfm
86     libpulseaudio
87     pcre
88     projectm
89     protobuf
90     qca-qt5
91     qjson
92     qtbase
93     qtx11extras
94     qttools
95     sqlite
96     taglib
98     alsa-lib
99   ]
100   # gst_plugins needed for setup-hooks
101   ++ gst_plugins
102   ++ lib.optionals (withIpod) [ libgpod libplist usbmuxd ]
103   ++ lib.optionals (withMTP) [ libmtp ]
104   ++ lib.optionals (withCD) [ libcdio ]
105   ++ lib.optionals (withCloud) [ sparsehash ];
107   postPatch = ''
108     sed -i src/CMakeLists.txt \
109       -e 's,-Werror,,g' \
110       -e 's,-Wno-unknown-warning-option,,g' \
111       -e 's,-Wno-unused-private-field,,g'
112     sed -i CMakeLists.txt \
113       -e 's,libprotobuf.a,protobuf,g'
114   '';
116   preConfigure = ''
117     rm -rf ext/{,lib}clementine-spotifyblob
118   '';
120   cmakeFlags = [
121     "-DFORCE_GIT_REVISION=1.3.1"
122     "-DUSE_SYSTEM_PROJECTM=ON"
123     "-DSPOTIFY_BLOB=OFF"
124   ];
126   postInstall = ''
127     wrapProgram $out/bin/clementine \
128       --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
129   '';
131   meta = with lib; {
132     homepage = "https://www.clementine-player.org";
133     description = "Multiplatform music player";
134     license = licenses.gpl3Plus;
135     platforms = platforms.linux;
136     maintainers = [ maintainers.ttuegel ];
137   };