biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / audio / moc / default.nix
blob6e408a5d12b5438a0ea9f4af30711960f8db1f6a
1 { lib, stdenv, fetchurl, pkg-config
2 , ncurses, db , popt, libtool
3 , libiconv, CoreServices
4 # Sound sub-systems
5 , alsaSupport ? (!stdenv.isDarwin), alsa-lib
6 , pulseSupport ? true, libpulseaudio, autoreconfHook
7 , jackSupport ? true, libjack2
8 , ossSupport ? true
9 # Audio formats
10 , aacSupport ? true, faad2, libid3tag
11 , flacSupport ? true, flac
12 , midiSupport ? true, timidity
13 , modplugSupport ? true, libmodplug
14 , mp3Support ? true, libmad
15 , musepackSupport ? true, libmpc, libmpcdec, taglib
16 , vorbisSupport ? true, libvorbis
17 , speexSupport ? true, speex
18 , ffmpegSupport ? true, ffmpeg_4
19 , sndfileSupport ? true, libsndfile
20 , wavpackSupport ? true, wavpack
21 # Misc
22 , curlSupport ? true, curl
23 , samplerateSupport ? true, libsamplerate
24 , withDebug ? false
27 stdenv.mkDerivation rec {
29   pname = "moc";
30   version = "2.5.2";
32   src = fetchurl {
33     url = "http://ftp.daper.net/pub/soft/moc/stable/moc-${version}.tar.bz2";
34     sha256 = "026v977kwb0wbmlmf6mnik328plxg8wykfx9ryvqhirac0aq39pk";
35   };
37   patches = []
38     ++ lib.optional ffmpegSupport ./moc-ffmpeg4.patch
39     ++ lib.optional pulseSupport ./pulseaudio.patch;
41   nativeBuildInputs = [ pkg-config ]
42     ++ lib.optional pulseSupport autoreconfHook;
44   buildInputs = [ ncurses db popt libtool ]
45     # Sound sub-systems
46     ++ lib.optional alsaSupport alsa-lib
47     ++ lib.optional pulseSupport libpulseaudio
48     ++ lib.optional jackSupport libjack2
49     # Audio formats
50     ++ lib.optional (aacSupport || mp3Support) libid3tag
51     ++ lib.optional aacSupport faad2
52     ++ lib.optional flacSupport flac
53     ++ lib.optional midiSupport timidity
54     ++ lib.optional modplugSupport libmodplug
55     ++ lib.optional mp3Support libmad
56     ++ lib.optionals musepackSupport [ libmpc libmpcdec taglib ]
57     ++ lib.optional vorbisSupport libvorbis
58     ++ lib.optional speexSupport speex
59     ++ lib.optional ffmpegSupport ffmpeg_4
60     ++ lib.optional sndfileSupport libsndfile
61     ++ lib.optional wavpackSupport wavpack
62     # Misc
63     ++ lib.optional curlSupport curl
64     ++ lib.optional samplerateSupport libsamplerate
65     ++ lib.optionals stdenv.isDarwin [ libiconv CoreServices ];
67   configureFlags = [
68     # Sound sub-systems
69     (lib.withFeature alsaSupport "alsa")
70     (lib.withFeature pulseSupport "pulse")
71     (lib.withFeature jackSupport "jack")
72     (lib.withFeature ossSupport "oss")
73     # Audio formats
74     (lib.withFeature aacSupport "aac")
75     (lib.withFeature flacSupport "flac")
76     (lib.withFeature midiSupport "timidity")
77     (lib.withFeature modplugSupport "modplug")
78     (lib.withFeature mp3Support "mp3")
79     (lib.withFeature musepackSupport "musepack")
80     (lib.withFeature vorbisSupport "vorbis")
81     (lib.withFeature speexSupport "speex")
82     (lib.withFeature ffmpegSupport "ffmpeg")
83     (lib.withFeature sndfileSupport "sndfile")
84     (lib.withFeature wavpackSupport "wavpack")
85     # Misc
86     (lib.withFeature curlSupport "curl")
87     (lib.withFeature samplerateSupport "samplerate")
88     ("--enable-debug=" + (if withDebug then "yes" else "no"))
89     "--disable-cache"
90     "--without-rcc"
91   ];
93   meta = with lib; {
94     description = "An ncurses console audio player designed to be powerful and easy to use";
95     homepage = "http://moc.daper.net/";
96     license = licenses.gpl2;
97     maintainers = with maintainers; [ aethelz pSub jagajaga ];
98     platforms = platforms.unix;
99     mainProgram = "mocp";
100   };