diff options
author | Jan Malakhovski <oxij@oxij.org> | 2015-12-05 13:19:29 +0000 |
---|---|---|
committer | Rok Garbas <rok@garbas.si> | 2015-12-05 20:18:13 +0100 |
commit | 74724837d63c2121c5b08300a28bfec9aaa0401f (patch) | |
tree | 8299b0d2745f04a4d716d5f163b09d073f1d881f /pkgs/applications | |
parent | 3ef66919b6b7e63cba46ba48986f917bfd3515d5 (diff) | |
download | nixlib-74724837d63c2121c5b08300a28bfec9aaa0401f.tar nixlib-74724837d63c2121c5b08300a28bfec9aaa0401f.tar.gz nixlib-74724837d63c2121c5b08300a28bfec9aaa0401f.tar.bz2 nixlib-74724837d63c2121c5b08300a28bfec9aaa0401f.tar.lz nixlib-74724837d63c2121c5b08300a28bfec9aaa0401f.tar.xz nixlib-74724837d63c2121c5b08300a28bfec9aaa0401f.tar.zst nixlib-74724837d63c2121c5b08300a28bfec9aaa0401f.zip |
cmus: rewrite expression, add more options, fixes #11483
Diffstat (limited to 'pkgs/applications')
-rw-r--r-- | pkgs/applications/audio/cmus/default.nix | 102 | ||||
-rw-r--r-- | pkgs/applications/audio/cmus/option-debugging.patch | 42 |
2 files changed, 141 insertions, 3 deletions
diff --git a/pkgs/applications/audio/cmus/default.nix b/pkgs/applications/audio/cmus/default.nix index 141d7ae07817..4aba1a530757 100644 --- a/pkgs/applications/audio/cmus/default.nix +++ b/pkgs/applications/audio/cmus/default.nix @@ -1,4 +1,95 @@ -{ stdenv, fetchFromGitHub, ncurses, pkgconfig, alsaLib, flac, libmad, ffmpeg, libvorbis, libmpc, mp4v2, libcue, libpulseaudio}: +{ stdenv, fetchFromGitHub, ncurses, pkgconfig + +, alsaSupport ? stdenv.isLinux, alsaLib ? null +# simple fallback for everyone else +, aoSupport ? !stdenv.isLinux, libao ? null +, jackSupport ? false, libjack ? null +, samplerateSupport ? jackSupport, libsamplerate ? null +, ossSupport ? false, alsaOss ? null +, pulseaudioSupport ? false, libpulseaudio ? null + +# TODO: add these +#, artsSupport +#, roarSupport +#, sndioSupport +#, sunSupport +#, waveoutSupport + +, cddbSupport ? true, libcddb ? null +, cdioSupport ? true, libcdio ? null +, cueSupport ? true, libcue ? null +, discidSupport ? true, libdiscid ? null +, ffmpegSupport ? true, ffmpeg ? null +, flacSupport ? true, flac ? null +, madSupport ? true, libmad ? null +, mikmodSupport ? true, libmikmod ? null +, modplugSupport ? true, libmodplug ? null +, mpcSupport ? true, libmpcdec ? null +, tremorSupport ? false, tremor ? null +, vorbisSupport ? true, libvorbis ? null +, wavpackSupport ? true, wavpack ? null + +# can't make these work, something is broken +#, aacSupport ? true, faac ? null +#, mp4Support ? true, mp4v2 ? null +#, opusSupport ? true, opusfile ? null + +# not in nixpkgs +#, vtxSupport ? true, libayemu ? null +}: + +with stdenv.lib; + +assert samplerateSupport -> jackSupport; + +# vorbis and tremor are mutually exclusive +assert vorbisSupport -> !tremorSupport; +assert tremorSupport -> !vorbisSupport; + +let + + mkFlag = b: f: dep: if b + then { flags = [ f ]; deps = [ dep ]; } + else { flags = []; deps = []; }; + + opts = [ + # Audio output + (mkFlag alsaSupport "CONFIG_ALSA=y" alsaLib) + (mkFlag aoSupport "CONFIG_AO=y" libao) + (mkFlag jackSupport "CONFIG_JACK=y" libjack) + (mkFlag samplerateSupport "CONFIG_SAMPLERATE=y" libsamplerate) + (mkFlag ossSupport "CONFIG_OSS=y" alsaOss) + (mkFlag pulseaudioSupport "CONFIG_PULSE=y" libpulseaudio) + + #(mkFlag artsSupport "CONFIG_ARTS=y") + #(mkFlag roarSupport "CONFIG_ROAR=y") + #(mkFlag sndioSupport "CONFIG_SNDIO=y") + #(mkFlag sunSupport "CONFIG_SUN=y") + #(mkFlag waveoutSupport "CONFIG_WAVEOUT=y") + + # Input file formats + (mkFlag cddbSupport "CONFIG_CDDB=y" libcddb) + (mkFlag cdioSupport "CONFIG_CDIO=y" libcdio) + (mkFlag cueSupport "CONFIG_CUE=y" libcue) + (mkFlag discidSupport "CONFIG_DISCID=y" libdiscid) + (mkFlag ffmpegSupport "CONFIG_FFMPEG=y" ffmpeg) + (mkFlag flacSupport "CONFIG_FLAC=y" flac) + (mkFlag madSupport "CONFIG_MAD=y" libmad) + (mkFlag mikmodSupport "CONFIG_MIKMOD=y" libmikmod) + (mkFlag modplugSupport "CONFIG_MODPLUG=y" libmodplug) + (mkFlag mpcSupport "CONFIG_MPC=y" libmpcdec) + (mkFlag tremorSupport "CONFIG_TREMOR=y" tremor) + (mkFlag vorbisSupport "CONFIG_VORBIS=y" libvorbis) + (mkFlag wavpackSupport "CONFIG_WAVPACK=y" wavpack) + + #(mkFlag opusSupport "CONFIG_OPUS=y" opusfile) + #(mkFlag mp4Support "CONFIG_MP4=y" mp4v2) + #(mkFlag aacSupport "CONFIG_AAC=y" faac) + + #(mkFlag vtxSupport "CONFIG_VTX=y" libayemu) + ]; + +in stdenv.mkDerivation rec { name = "cmus-${version}"; @@ -11,9 +102,14 @@ stdenv.mkDerivation rec { sha256 = "18w9mznb843nzkrcqvshfha51mlpdl92zlvb5wfc5dpgrbf37728"; }; - configurePhase = "./configure prefix=$out"; + patches = [ ./option-debugging.patch ]; + + configurePhase = "./configure " + concatStringsSep " " ([ + "prefix=$out" + "CONFIG_WAV=y" + ] ++ concatMap (a: a.flags) opts); - buildInputs = [ ncurses pkgconfig alsaLib flac libmad ffmpeg libvorbis libmpc mp4v2 libcue libpulseaudio ]; + buildInputs = [ ncurses pkgconfig ] ++ concatMap (a: a.deps) opts; meta = { description = "Small, fast and powerful console music player for Linux and *BSD"; diff --git a/pkgs/applications/audio/cmus/option-debugging.patch b/pkgs/applications/audio/cmus/option-debugging.patch new file mode 100644 index 000000000000..84115e1480e1 --- /dev/null +++ b/pkgs/applications/audio/cmus/option-debugging.patch @@ -0,0 +1,42 @@ +Shows build and link errors in configure for ease of debugging which +options require what. +diff --git a/scripts/checks.sh b/scripts/checks.sh +index 64cbbf3..fab4d9b 100644 +--- a/scripts/checks.sh ++++ b/scripts/checks.sh +@@ -425,7 +425,7 @@ try_compile() + echo "$1" > $__src || exit 1 + shift + __cmd="$CC -c $CFLAGS $@ $__src -o $__obj" +- $CC -c $CFLAGS "$@" $__src -o $__obj 2>/dev/null ++ $CC -c $CFLAGS "$@" $__src -o $__obj + ;; + cxx) + __src=`tmp_file prog.cc` +@@ -433,7 +433,7 @@ try_compile() + echo "$1" > $__src || exit 1 + shift + __cmd="$CXX -c $CXXFLAGS $@ $__src -o $__obj" +- $CXX -c $CXXFLAGS "$@" $__src -o $__obj 2>/dev/null ++ $CXX -c $CXXFLAGS "$@" $__src -o $__obj + ;; + esac + return $? +@@ -451,7 +451,7 @@ try_compile_link() + echo "$1" > $__src || exit 1 + shift + __cmd="$CC $__src -o $__exe $CFLAGS $LDFLAGS $@" +- $CC $__src -o $__exe $CFLAGS $LDFLAGS "$@" 2>/dev/null ++ $CC $__src -o $__exe $CFLAGS $LDFLAGS "$@" + ;; + cxx) + __src=`tmp_file prog.cc` +@@ -459,7 +459,7 @@ try_compile_link() + echo "$1" > $__src || exit 1 + shift + __cmd="$CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS $@" +- $CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS "$@" 2>/dev/null ++ $CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS "$@" + ;; + esac + return $? |