1 { lib, config, clangStdenv, fetchFromGitHub
8 , swift-corelibs-libdispatch
9 # deadbeef can use either gtk2 or gtk3
10 , gtk2Support ? false, gtk2
11 , gtk3Support ? true, gtk3, gsettings-desktop-schemas, wrapGAppsHook3
13 , vorbisSupport ? true, libvorbis
14 , mp123Support ? true, libmad
15 , flacSupport ? true, flac
16 , wavSupport ? true, libsndfile
17 , cdaSupport ? true, libcdio, libcddb
18 , aacSupport ? true, faad2
19 , opusSupport ? true, opusfile
20 , wavpackSupport ? false, wavpack
21 , ffmpegSupport ? false, ffmpeg
22 , apeSupport ? true, yasm
24 , zipSupport ? true, libzip
25 , artworkSupport ? true, imlib2
26 , hotkeysSupport ? true, libX11
27 , osdSupport ? true, dbus
29 , alsaSupport ? true, alsa-lib
30 , pulseSupport ? config.pulseaudio or true, libpulseaudio
31 , pipewireSupport ? true, pipewire
33 , resamplerSupport ? true, libsamplerate
34 , overloadSupport ? true, zlib
36 , remoteSupport ? true, curl
39 assert gtk2Support || gtk3Support;
42 inherit (lib) optionals;
45 in clangStdenv.mkDerivation {
49 src = fetchFromGitHub {
50 owner = "DeaDBeeF-Player";
52 fetchSubmodules = true;
54 hash = "sha256-Q6hL4fOFPHn26ZqvrebgTMTgQZrhbXCEhM4ZFzNeyJE=";
59 swift-corelibs-libdispatch
60 ] ++ optionals gtk2Support [
62 ] ++ optionals gtk3Support [
64 gsettings-desktop-schemas
65 ] ++ optionals vorbisSupport [
67 ] ++ optionals mp123Support [
69 ] ++ optionals flacSupport [
71 ] ++ optionals wavSupport [
73 ] ++ optionals cdaSupport [
76 ] ++ optionals aacSupport [
78 ] ++ optionals opusSupport [
80 ] ++ optionals zipSupport [
82 ] ++ optionals ffmpegSupport [
84 ] ++ optionals apeSupport [
86 ] ++ optionals artworkSupport [
88 ] ++ optionals hotkeysSupport [
90 ] ++ optionals osdSupport [
92 ] ++ optionals alsaSupport [
94 ] ++ optionals pulseSupport [
96 ] ++ optionals pipewireSupport [
98 ] ++ optionals resamplerSupport [
100 ] ++ optionals overloadSupport [
102 ] ++ optionals wavpackSupport [
104 ] ++ optionals remoteSupport [
108 nativeBuildInputs = [
114 ] ++ optionals gtk3Support [
118 enableParallelBuilding = true;
125 # Fix the build on c++17 compiler:
126 # https://github.com/DeaDBeeF-Player/deadbeef/issues/3012
127 # TODO: remove after 1.9.5 release.
128 substituteInPlace plugins/adplug/Makefile.am --replace 'adplug_la_CXXFLAGS = ' 'adplug_la_CXXFLAGS = -std=c++11 '
132 description = "Ultimate Music Player for GNU/Linux";
133 mainProgram = "deadbeef";
134 homepage = "http://deadbeef.sourceforge.net/";
135 downloadPage = "https://github.com/DeaDBeeF-Player/deadbeef";
136 license = licenses.gpl2;
137 platforms = [ "x86_64-linux" "i686-linux" ];
138 maintainers = [ maintainers.abbradar ];