cmus: rewrite expression, add more options, fixes #11483
This commit is contained in:
parent
3ef66919b6
commit
74724837d6
@ -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 {
|
stdenv.mkDerivation rec {
|
||||||
name = "cmus-${version}";
|
name = "cmus-${version}";
|
||||||
@ -11,9 +102,14 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "18w9mznb843nzkrcqvshfha51mlpdl92zlvb5wfc5dpgrbf37728";
|
sha256 = "18w9mznb843nzkrcqvshfha51mlpdl92zlvb5wfc5dpgrbf37728";
|
||||||
};
|
};
|
||||||
|
|
||||||
configurePhase = "./configure prefix=$out";
|
patches = [ ./option-debugging.patch ];
|
||||||
|
|
||||||
buildInputs = [ ncurses pkgconfig alsaLib flac libmad ffmpeg libvorbis libmpc mp4v2 libcue libpulseaudio ];
|
configurePhase = "./configure " + concatStringsSep " " ([
|
||||||
|
"prefix=$out"
|
||||||
|
"CONFIG_WAV=y"
|
||||||
|
] ++ concatMap (a: a.flags) opts);
|
||||||
|
|
||||||
|
buildInputs = [ ncurses pkgconfig ] ++ concatMap (a: a.deps) opts;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Small, fast and powerful console music player for Linux and *BSD";
|
description = "Small, fast and powerful console music player for Linux and *BSD";
|
||||||
|
42
pkgs/applications/audio/cmus/option-debugging.patch
Normal file
42
pkgs/applications/audio/cmus/option-debugging.patch
Normal file
@ -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 $?
|
@ -11234,7 +11234,12 @@ let
|
|||||||
pulseSupport = config.pulseaudio or true;
|
pulseSupport = config.pulseaudio or true;
|
||||||
};
|
};
|
||||||
|
|
||||||
cmus = callPackage ../applications/audio/cmus { };
|
cmus = callPackage ../applications/audio/cmus {
|
||||||
|
libjack = libjack2;
|
||||||
|
libcdio = libcdio082;
|
||||||
|
|
||||||
|
pulseaudioSupport = config.pulseaudio or false;
|
||||||
|
};
|
||||||
|
|
||||||
CompBus = callPackage ../applications/audio/CompBus { };
|
CompBus = callPackage ../applications/audio/CompBus { };
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user