timidity: add enableVorbis option

TiMidity++ can not only play sounds, but also can save the generated
waveforms as various audio file formats. The current package only
supports Linux and Darwin outputs to play sound, but it does not support
saving sounds as eg. vorbis.

This commit adds an optional flag `enableVorbis` to the package,
disabled by default. This does not change the semantics of the current
package but it allows users that need such support to curate their own
set of packages with a `callPackage timidity { enableVorbis = true; }`.
This commit is contained in:
Niols 2022-11-16 00:14:50 +01:00
parent c0915172d9
commit 7d96814b29
No known key found for this signature in database
GPG Key ID: 0B4EB01A5527EA54

View File

@ -9,6 +9,9 @@
, ncurses
, alsa-lib
, buildPackages
## Additional optional output modes
, enableVorbis ? false, libvorbis
}:
stdenv.mkDerivation rec {
@ -29,6 +32,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config ]
++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [ memstreamHook ];
buildInputs = [
libjack2
ncurses
@ -37,19 +41,31 @@ stdenv.mkDerivation rec {
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
CoreAudio
libobjc
] ++ lib.optionals enableVorbis [
libvorbis
];
enabledOutputModes = [
"jack"
] ++ lib.optionals stdenv.hostPlatform.isLinux [
"oss"
"alsa"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
"darwin"
] ++ lib.optionals enableVorbis [
"vorbis"
];
configureFlags = [
"--enable-ncurses"
("--enable-audio=" + builtins.concatStringsSep "," enabledOutputModes)
"lib_cv_va_copy=yes"
"lib_cv___va_copy=yes"
] ++ lib.optionals stdenv.hostPlatform.isLinux [
"--enable-audio=oss,alsa,jack"
"--enable-alsaseq"
"--with-default-output=alsa"
"lib_cv_va_val_copy=yes"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
"--enable-audio=darwin,jack"
"lib_cv_va_val_copy=no"
"timidity_cv_ccoption_rdynamic=yes"
# These configure tests fail because of incompatible function pointer conversions.