mpd: fix build on darwin

* disable systemd
* disable alsaLib
* disable ffado
* compile with gccApple
* disable libmad
This commit is contained in:
Jason \"Don\" O'Conal 2013-07-04 15:07:37 +10:00 committed by Rok Garbas
parent 481be8185f
commit 5c8a44fd18
2 changed files with 49 additions and 39 deletions

View File

@ -18,8 +18,7 @@
, samplerateSupport ? true, libsamplerate , samplerateSupport ? true, libsamplerate
, mmsSupport ? true, libmms , mmsSupport ? true, libmms
, mpg123Support ? true, mpg123 , mpg123Support ? true, mpg123
, aacSupport ? true, faad2 , aacSupport ? true, faad2 }:
}:
let let
@ -28,17 +27,20 @@ let
mkFlag = c: f: if c then "--enable-${f}" else "--disable-${f}"; mkFlag = c: f: if c then "--enable-${f}" else "--disable-${f}";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "mpd-0.17.3"; name = "mpd-0.17.4";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/musicpd/${name}.tar.bz2"; url = "http://www.musicpd.org/download/mpd/stable/${name}.tar.gz";
sha256 = "1iilimlyhw22lpbqiab4qprznxg9c4d68fkrr9jww765b4c7x1ip"; sha256 = "06diyprg65xx0c0bgxdwlgrc5bhwy6cf39rabwnv9ikhimh94ir3";
}; };
buildInputs = [ pkgconfig glib systemd ] buildInputs = [ pkgconfig glib ]
++ opt alsaSupport alsaLib ++ opt (!stdenv.isDarwin) systemd
++ opt (!stdenv.isDarwin && alsaSupport) alsaLib
++ opt flacSupport flac ++ opt flacSupport flac
++ opt vorbisSupport libvorbis ++ opt vorbisSupport libvorbis
++ opt madSupport libmad # using libmad to decode mp3 files on darwin is causing a segfault -- there
# is probably a solution, but I'm disabling it for now
++ opt (!stdenv.isDarwin && madSupport) libmad
++ opt id3tagSupport libid3tag ++ opt id3tagSupport libid3tag
++ opt mikmodSupport libmikmod ++ opt mikmodSupport libmikmod
++ opt shoutSupport libshout ++ opt shoutSupport libshout
@ -47,7 +49,7 @@ in stdenv.mkDerivation rec {
++ opt soupSupport libsoup ++ opt soupSupport libsoup
++ opt bzip2Support bzip2 ++ opt bzip2Support bzip2
++ opt audiofileSupport audiofile ++ opt audiofileSupport audiofile
++ opt ffadoSupport ffado ++ opt (!stdenv.isDarwin && ffadoSupport) ffado
++ opt ffmpegSupport ffmpeg ++ opt ffmpegSupport ffmpeg
++ opt fluidsynthSupport fluidsynth ++ opt fluidsynthSupport fluidsynth
++ opt samplerateSupport libsamplerate ++ opt samplerateSupport libsamplerate
@ -56,45 +58,47 @@ in stdenv.mkDerivation rec {
++ opt aacSupport faad2 ++ opt aacSupport faad2
++ opt zipSupport zziplib; ++ opt zipSupport zziplib;
configureFlags = [ configureFlags =
"--with-systemdsystemunitdir=$(out)/etc/systemd/system" [ (mkFlag (!stdenv.isDarwin && alsaSupport) "alsa")
(mkFlag alsaSupport "alsa") (mkFlag flacSupport "flac")
(mkFlag flacSupport "flac") (mkFlag vorbisSupport "vorbis")
(mkFlag vorbisSupport "vorbis") (mkFlag vorbisSupport "vorbis-encoder")
(mkFlag vorbisSupport "vorbis-encoder") (mkFlag (!stdenv.isDarwin && madSupport) "mad")
(mkFlag madSupport "mad") (mkFlag mikmodSupport "mikmod")
(mkFlag mikmodSupport "mikmod") (mkFlag id3tagSupport "id3")
(mkFlag id3tagSupport "id3") (mkFlag shoutSupport "shout")
(mkFlag shoutSupport "shout") (mkFlag sqliteSupport "sqlite")
(mkFlag sqliteSupport "sqlite") (mkFlag curlSupport "curl")
(mkFlag curlSupport "curl") (mkFlag soupSupport "soup")
(mkFlag soupSupport "soup") (mkFlag audiofileSupport "audiofile")
(mkFlag audiofileSupport "audiofile") (mkFlag bzip2Support "bzip2")
(mkFlag bzip2Support "bzip2") (mkFlag (!stdenv.isDarwin && ffadoSupport) "ffado")
(mkFlag ffadoSupport "ffado") (mkFlag ffmpegSupport "ffmpeg")
(mkFlag ffmpegSupport "ffmpeg") (mkFlag fluidsynthSupport "fluidsynth")
(mkFlag fluidsynthSupport "fluidsynth") (mkFlag zipSupport "zzip")
(mkFlag zipSupport "zzip") (mkFlag samplerateSupport "lsr")
(mkFlag samplerateSupport "lsr") (mkFlag mmsSupport "mms")
(mkFlag mmsSupport "mms") (mkFlag mpg123Support "mpg123")
(mkFlag mpg123Support "mpg123") (mkFlag aacSupport "aac")
(mkFlag aacSupport "aac") "--enable-debugging" ]
]; ++ opt (!stdenv.isDarwin)
"--with-systemdsystemunitdir=$(out)/etc/systemd/system";
NIX_LDFLAGS = '' NIX_LDFLAGS = ''
${if shoutSupport then "-lshout" else ""} ${if shoutSupport then "-lshout" else ""}
''; '';
meta = { meta = with stdenv.lib; {
description = "A flexible, powerful daemon for playing music"; description = "A flexible, powerful daemon for playing music";
homepage = http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki;
license = licenses.gpl2;
maintainers = with maintainers; [ astsmtl ];
platforms = platforms.unix;
longDescription = '' longDescription = ''
Music Player Daemon (MPD) is a flexible, powerful daemon for playing Music Player Daemon (MPD) is a flexible, powerful daemon for playing
music. Through plugins and libraries it can play a variety of sound music. Through plugins and libraries it can play a variety of sound
files while being controlled by its network protocol. files while being controlled by its network protocol.
''; '';
homepage = http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki;
license = "GPLv2";
maintainers = with stdenv.lib.maintainers; [ astsmtl ];
platforms = with stdenv.lib.platforms; linux;
}; };
} }

View File

@ -5902,7 +5902,13 @@ let
mod_wsgi = callPackage ../servers/http/apache-modules/mod_wsgi { }; mod_wsgi = callPackage ../servers/http/apache-modules/mod_wsgi { };
mpd = callPackage ../servers/mpd { }; mpd = callPackage ../servers/mpd {
# resolve the "stray '@' in program" errors
stdenv = if stdenv.isDarwin
then overrideGCC stdenv gccApple
else stdenv;
};
mpd_clientlib = callPackage ../servers/mpd/clientlib.nix { }; mpd_clientlib = callPackage ../servers/mpd/clientlib.nix { };
miniHttpd = callPackage ../servers/http/mini-httpd {}; miniHttpd = callPackage ../servers/http/mini-httpd {};