{
stdenv,
lib,
fetchFromGitHub,
gitUpdater,
alsaSupport ? stdenv.hostPlatform.isLinux,
alsa-lib,
autoreconfHook,
pulseSupport ? stdenv.hostPlatform.isLinux,
libpulseaudio,
libsidplayfp,
out123Support ? stdenv.hostPlatform.isDarwin,
mpg123,
perl,
pkg-config,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sidplayfp";
version = "2.12.0";
src = fetchFromGitHub {
owner = "libsidplayfp";
repo = "sidplayfp";
rev = "v${finalAttrs.version}";
hash = "sha256-78NlRBZ2GlZWhnZiefNIgRNv6bnJaHH94WsxEhP9rAk=";
};
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
perl
pkg-config
];
buildInputs =
[
libsidplayfp
]
++ lib.optionals alsaSupport [
alsa-lib
++ lib.optionals pulseSupport [
libpulseaudio
++ lib.optionals out123Support [
mpg123
configureFlags = [
(lib.strings.withFeature out123Support "out123")
enableParallelBuilding = true;
passthru = {
updateScript = gitUpdater { rev-prefix = "v"; };
meta = {
description = "SID player using libsidplayfp";
homepage = "https://github.com/libsidplayfp/sidplayfp";
changelog = "https://github.com/libsidplayfp/sidplayfp/releases/tag/v${finalAttrs.version}";
license = with lib.licenses; [ gpl2Plus ];
mainProgram = "sidplayfp";
maintainers = with lib.maintainers; [
dezgeg
OPNA2608
platforms = lib.platforms.all;
})