mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00

They are not doing anything right now. This is in preparation for their complete removal from the tree. Note: several changes that affect the derivation inputs (e.g. removal of references to stub paths in build instructions) were left out. They will be cleaned up the next iteration and will require special care. Note: this PR is a result of a mix of ugly regex (not AST) based automation and some manual labor. For reference, the regex automation part was hacked in: https://github.com/booxter/nix-clean-apple_sdk Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
171 lines
4.2 KiB
Nix
171 lines
4.2 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
ncurses,
|
|
pkg-config,
|
|
libiconv,
|
|
|
|
alsaSupport ? stdenv.hostPlatform.isLinux,
|
|
alsa-lib ? null,
|
|
# simple fallback for everyone else
|
|
aoSupport ? !stdenv.hostPlatform.isLinux,
|
|
libao ? null,
|
|
jackSupport ? false,
|
|
libjack ? null,
|
|
samplerateSupport ? jackSupport,
|
|
libsamplerate ? null,
|
|
ossSupport ? false,
|
|
alsa-oss ? null,
|
|
pulseaudioSupport ? config.pulseaudio or false,
|
|
libpulseaudio ? null,
|
|
sndioSupport ? false,
|
|
sndio ? null,
|
|
mprisSupport ? stdenv.hostPlatform.isLinux,
|
|
systemd ? null,
|
|
|
|
# TODO: add these
|
|
#, artsSupport
|
|
#, roarSupport
|
|
#, sunSupport
|
|
#, waveoutSupport
|
|
|
|
cddbSupport ? true,
|
|
libcddb ? null,
|
|
cdioSupport ? true,
|
|
libcdio ? null,
|
|
libcdio-paranoia ? null,
|
|
cueSupport ? true,
|
|
libcue ? null,
|
|
discidSupport ? false,
|
|
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,
|
|
opusSupport ? true,
|
|
opusfile ? null,
|
|
|
|
aacSupport ? false,
|
|
faad2 ? null, # already handled by ffmpeg
|
|
mp4Support ? false,
|
|
mp4v2 ? null, # ffmpeg does support mp4 better
|
|
|
|
# not in nixpkgs
|
|
#, vtxSupport ? true, libayemu ? null
|
|
}:
|
|
|
|
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" alsa-lib)
|
|
(mkFlag aoSupport "CONFIG_AO=y" libao)
|
|
(mkFlag jackSupport "CONFIG_JACK=y" libjack)
|
|
(mkFlag samplerateSupport "CONFIG_SAMPLERATE=y" libsamplerate)
|
|
(mkFlag ossSupport "CONFIG_OSS=y" alsa-oss)
|
|
(mkFlag pulseaudioSupport "CONFIG_PULSE=y" libpulseaudio)
|
|
(mkFlag sndioSupport "CONFIG_SNDIO=y" sndio)
|
|
(mkFlag mprisSupport "CONFIG_MPRIS=y" systemd)
|
|
|
|
#(mkFlag artsSupport "CONFIG_ARTS=y")
|
|
#(mkFlag roarSupport "CONFIG_ROAR=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
|
|
libcdio-paranoia
|
|
])
|
|
(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" faad2)
|
|
|
|
#(mkFlag vtxSupport "CONFIG_VTX=y" libayemu)
|
|
];
|
|
in
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "cmus";
|
|
version = "2.12.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "cmus";
|
|
repo = "cmus";
|
|
rev = "v${version}";
|
|
hash = "sha256-8hgibGtkiwzenMI9YImIApRmw2EzTwE6RhglALpUkp4=";
|
|
};
|
|
|
|
nativeBuildInputs = [ pkg-config ];
|
|
buildInputs =
|
|
[ ncurses ]
|
|
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
|
libiconv
|
|
]
|
|
++ lib.flatten (lib.concatMap (a: a.deps) opts);
|
|
|
|
prefixKey = "prefix=";
|
|
|
|
configureFlags = [
|
|
"CONFIG_WAV=y"
|
|
"HOSTCC=${stdenv.cc.targetPrefix}cc"
|
|
] ++ lib.concatMap (a: a.flags) opts;
|
|
|
|
makeFlags = [ "LD=$(CC)" ];
|
|
|
|
meta = with lib; {
|
|
description = "Small, fast and powerful console music player for Linux and *BSD";
|
|
homepage = "https://cmus.github.io/";
|
|
license = licenses.gpl2;
|
|
maintainers = [ maintainers.oxij ];
|
|
platforms = platforms.linux ++ platforms.darwin;
|
|
};
|
|
}
|