diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2015-06-07 15:21:52 +0200 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2015-06-07 15:21:52 +0200 |
commit | 4d4ea4a818969dd0df6e4df553d0772e2211b2a0 (patch) | |
tree | 56ff0b7f16792f4e3cd6a1393e49a90971ab6b54 | |
parent | 3bae712a4eec6ae04833c91ba0f9b24572b091be (diff) | |
download | nixos-4d4ea4a818969dd0df6e4df553d0772e2211b2a0.tar nixos-4d4ea4a818969dd0df6e4df553d0772e2211b2a0.tar.gz nixos-4d4ea4a818969dd0df6e4df553d0772e2211b2a0.tar.bz2 nixos-4d4ea4a818969dd0df6e4df553d0772e2211b2a0.tar.xz nixos-4d4ea4a818969dd0df6e4df553d0772e2211b2a0.zip |
shipping mpd
-rw-r--r-- | bragi.nix | 4 | ||||
-rw-r--r-- | mpd.nix | 119 |
2 files changed, 120 insertions, 3 deletions
@@ -30,9 +30,7 @@ | |||
30 | nixpkgs.config.packageOverrides = pkgs: | 30 | nixpkgs.config.packageOverrides = pkgs: |
31 | { | 31 | { |
32 | jack2 = pkgs.callPackage ./jack2.nix {}; | 32 | jack2 = pkgs.callPackage ./jack2.nix {}; |
33 | mpd = pkgs.mpd.override { | 33 | mpd = pkgs.callPackage ./mpd.nix {}; |
34 | jackSupport = true; | ||
35 | }; | ||
36 | }; | 34 | }; |
37 | 35 | ||
38 | environment.systemPackages = with pkgs; [ | 36 | environment.systemPackages = with pkgs; [ |
diff --git a/mpd.nix b/mpd.nix new file mode 100644 index 00000000..36b78388 --- /dev/null +++ b/mpd.nix | |||
@@ -0,0 +1,119 @@ | |||
1 | { stdenv, fetchurl, pkgconfig, glib, systemd, boost | ||
2 | , alsaSupport ? true, alsaLib | ||
3 | , flacSupport ? true, flac | ||
4 | , vorbisSupport ? true, libvorbis | ||
5 | , madSupport ? true, libmad | ||
6 | , id3tagSupport ? true, libid3tag | ||
7 | , mikmodSupport ? true, libmikmod | ||
8 | , shoutSupport ? true, libshout | ||
9 | , sqliteSupport ? true, sqlite | ||
10 | , curlSupport ? true, curl | ||
11 | , audiofileSupport ? true, audiofile | ||
12 | , bzip2Support ? true, bzip2 | ||
13 | , ffmpegSupport ? true, ffmpeg | ||
14 | , fluidsynthSupport ? true, fluidsynth | ||
15 | , zipSupport ? true, zziplib | ||
16 | , samplerateSupport ? true, libsamplerate | ||
17 | , mmsSupport ? true, libmms | ||
18 | , mpg123Support ? true, mpg123 | ||
19 | , aacSupport ? true, faad2 | ||
20 | , pulseaudioSupport ? true, pulseaudio | ||
21 | , jackSupport ? true, jack2 | ||
22 | , gmeSupport ? true, game-music-emu | ||
23 | , icuSupport ? true, icu | ||
24 | , clientSupport ? false, mpd_clientlib | ||
25 | , opusSupport ? true, libopus | ||
26 | }: | ||
27 | |||
28 | let | ||
29 | opt = stdenv.lib.optional; | ||
30 | mkFlag = c: f: if c then "--enable-${f}" else "--disable-${f}"; | ||
31 | major = "0.19"; | ||
32 | minor = "9"; | ||
33 | |||
34 | in stdenv.mkDerivation rec { | ||
35 | name = "mpd-${major}.${minor}"; | ||
36 | src = fetchurl { | ||
37 | url = "http://www.musicpd.org/download/mpd/${major}/${name}.tar.xz"; | ||
38 | sha256 = "0vzj365s4j0pw5w37lfhx3dmpkdp85driravsvx8rlrw0lii91a7"; | ||
39 | }; | ||
40 | |||
41 | buildInputs = [ pkgconfig glib boost ] | ||
42 | ++ opt stdenv.isLinux systemd | ||
43 | ++ opt (stdenv.isLinux && alsaSupport) alsaLib | ||
44 | ++ opt flacSupport flac | ||
45 | ++ opt vorbisSupport libvorbis | ||
46 | # using libmad to decode mp3 files on darwin is causing a segfault -- there | ||
47 | # is probably a solution, but I'm disabling it for now | ||
48 | ++ opt (!stdenv.isDarwin && madSupport) libmad | ||
49 | ++ opt id3tagSupport libid3tag | ||
50 | ++ opt mikmodSupport libmikmod | ||
51 | ++ opt shoutSupport libshout | ||
52 | ++ opt sqliteSupport sqlite | ||
53 | ++ opt curlSupport curl | ||
54 | ++ opt bzip2Support bzip2 | ||
55 | ++ opt audiofileSupport audiofile | ||
56 | ++ opt ffmpegSupport ffmpeg | ||
57 | ++ opt fluidsynthSupport fluidsynth | ||
58 | ++ opt samplerateSupport libsamplerate | ||
59 | ++ opt mmsSupport libmms | ||
60 | ++ opt mpg123Support mpg123 | ||
61 | ++ opt aacSupport faad2 | ||
62 | ++ opt zipSupport zziplib | ||
63 | ++ opt pulseaudioSupport pulseaudio | ||
64 | ++ opt jackSupport jack2 | ||
65 | ++ opt gmeSupport game-music-emu | ||
66 | ++ opt icuSupport icu | ||
67 | ++ opt clientSupport mpd_clientlib | ||
68 | ++ opt opusSupport libopus; | ||
69 | |||
70 | configureFlags = | ||
71 | [ (mkFlag (!stdenv.isDarwin && alsaSupport) "alsa") | ||
72 | (mkFlag flacSupport "flac") | ||
73 | (mkFlag vorbisSupport "vorbis") | ||
74 | (mkFlag vorbisSupport "vorbis-encoder") | ||
75 | (mkFlag (!stdenv.isDarwin && madSupport) "mad") | ||
76 | (mkFlag mikmodSupport "mikmod") | ||
77 | (mkFlag id3tagSupport "id3") | ||
78 | (mkFlag shoutSupport "shout") | ||
79 | (mkFlag sqliteSupport "sqlite") | ||
80 | (mkFlag curlSupport "curl") | ||
81 | (mkFlag audiofileSupport "audiofile") | ||
82 | (mkFlag bzip2Support "bzip2") | ||
83 | (mkFlag ffmpegSupport "ffmpeg") | ||
84 | (mkFlag fluidsynthSupport "fluidsynth") | ||
85 | (mkFlag zipSupport "zzip") | ||
86 | (mkFlag samplerateSupport "lsr") | ||
87 | (mkFlag mmsSupport "mms") | ||
88 | (mkFlag mpg123Support "mpg123") | ||
89 | (mkFlag aacSupport "aac") | ||
90 | (mkFlag pulseaudioSupport "pulse") | ||
91 | (mkFlag jackSupport "jack") | ||
92 | (mkFlag stdenv.isDarwin "osx") | ||
93 | (mkFlag icuSupport "icu") | ||
94 | (mkFlag gmeSupport "gme") | ||
95 | (mkFlag clientSupport "libmpdclient") | ||
96 | (mkFlag opusSupport "opus") | ||
97 | "--enable-debug" | ||
98 | ] | ||
99 | ++ opt stdenv.isLinux | ||
100 | "--with-systemdsystemunitdir=$(out)/etc/systemd/system"; | ||
101 | |||
102 | NIX_LDFLAGS = '' | ||
103 | ${if shoutSupport then "-lshout" else ""} | ||
104 | ''; | ||
105 | |||
106 | meta = with stdenv.lib; { | ||
107 | description = "A flexible, powerful daemon for playing music"; | ||
108 | homepage = http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki; | ||
109 | license = licenses.gpl2; | ||
110 | maintainers = with maintainers; [ astsmtl fuuzetsu emery ]; | ||
111 | platforms = platforms.unix; | ||
112 | |||
113 | longDescription = '' | ||
114 | Music Player Daemon (MPD) is a flexible, powerful daemon for playing | ||
115 | music. Through plugins and libraries it can play a variety of sound | ||
116 | files while being controlled by its network protocol. | ||
117 | ''; | ||
118 | }; | ||
119 | } | ||