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
, mmsSupport ? true, libmms
, mpg123Support ? true, mpg123
, aacSupport ? true, faad2
}:
, aacSupport ? true, faad2 }:
let
@ -28,17 +27,20 @@ let
mkFlag = c: f: if c then "--enable-${f}" else "--disable-${f}";
in stdenv.mkDerivation rec {
name = "mpd-0.17.3";
name = "mpd-0.17.4";
src = fetchurl {
url = "mirror://sourceforge/musicpd/${name}.tar.bz2";
sha256 = "1iilimlyhw22lpbqiab4qprznxg9c4d68fkrr9jww765b4c7x1ip";
url = "http://www.musicpd.org/download/mpd/stable/${name}.tar.gz";
sha256 = "06diyprg65xx0c0bgxdwlgrc5bhwy6cf39rabwnv9ikhimh94ir3";
};
buildInputs = [ pkgconfig glib systemd ]
++ opt alsaSupport alsaLib
buildInputs = [ pkgconfig glib ]
++ opt (!stdenv.isDarwin) systemd
++ opt (!stdenv.isDarwin && alsaSupport) alsaLib
++ opt flacSupport flac
++ 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 mikmodSupport libmikmod
++ opt shoutSupport libshout
@ -47,7 +49,7 @@ in stdenv.mkDerivation rec {
++ opt soupSupport libsoup
++ opt bzip2Support bzip2
++ opt audiofileSupport audiofile
++ opt ffadoSupport ffado
++ opt (!stdenv.isDarwin && ffadoSupport) ffado
++ opt ffmpegSupport ffmpeg
++ opt fluidsynthSupport fluidsynth
++ opt samplerateSupport libsamplerate
@ -56,13 +58,12 @@ in stdenv.mkDerivation rec {
++ opt aacSupport faad2
++ opt zipSupport zziplib;
configureFlags = [
"--with-systemdsystemunitdir=$(out)/etc/systemd/system"
(mkFlag alsaSupport "alsa")
configureFlags =
[ (mkFlag (!stdenv.isDarwin && alsaSupport) "alsa")
(mkFlag flacSupport "flac")
(mkFlag vorbisSupport "vorbis")
(mkFlag vorbisSupport "vorbis-encoder")
(mkFlag madSupport "mad")
(mkFlag (!stdenv.isDarwin && madSupport) "mad")
(mkFlag mikmodSupport "mikmod")
(mkFlag id3tagSupport "id3")
(mkFlag shoutSupport "shout")
@ -71,7 +72,7 @@ in stdenv.mkDerivation rec {
(mkFlag soupSupport "soup")
(mkFlag audiofileSupport "audiofile")
(mkFlag bzip2Support "bzip2")
(mkFlag ffadoSupport "ffado")
(mkFlag (!stdenv.isDarwin && ffadoSupport) "ffado")
(mkFlag ffmpegSupport "ffmpeg")
(mkFlag fluidsynthSupport "fluidsynth")
(mkFlag zipSupport "zzip")
@ -79,22 +80,25 @@ in stdenv.mkDerivation rec {
(mkFlag mmsSupport "mms")
(mkFlag mpg123Support "mpg123")
(mkFlag aacSupport "aac")
];
"--enable-debugging" ]
++ opt (!stdenv.isDarwin)
"--with-systemdsystemunitdir=$(out)/etc/systemd/system";
NIX_LDFLAGS = ''
${if shoutSupport then "-lshout" else ""}
'';
meta = {
meta = with stdenv.lib; {
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 = ''
Music Player Daemon (MPD) is a flexible, powerful daemon for playing
music. Through plugins and libraries it can play a variety of sound
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 { };
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 { };
miniHttpd = callPackage ../servers/http/mini-httpd {};