diff options
Diffstat (limited to 'pkgs/by-name/al/alsa-utils/package.nix')
-rw-r--r-- | pkgs/by-name/al/alsa-utils/package.nix | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/pkgs/by-name/al/alsa-utils/package.nix b/pkgs/by-name/al/alsa-utils/package.nix new file mode 100644 index 00000000000..401c66beb70 --- /dev/null +++ b/pkgs/by-name/al/alsa-utils/package.nix @@ -0,0 +1,76 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, alsa-lib +, alsa-plugins +, gettext +, makeWrapper +, ncurses +, libsamplerate +, pciutils +, which +, fftw +, pipewire +, withPipewireLib ? true +, symlinkJoin +}: + +let + plugin-packages = [ alsa-plugins ] ++ lib.optional withPipewireLib pipewire; + + # Create a directory containing symlinks of all ALSA plugins. + # This is necessary because ALSA_PLUGIN_DIR must reference only one directory. + plugin-dir = symlinkJoin { + name = "all-plugins"; + paths = map + (path: "${path}/lib/alsa-lib") + plugin-packages; + }; +in +stdenv.mkDerivation rec { + pname = "alsa-utils"; + version = "1.2.10"; + + src = fetchurl { + url = "mirror://alsa/utils/${pname}-${version}.tar.bz2"; + sha256 = "sha256-EEti7H8Cp84WynefSBVhbfHMIZM1A3g6kQe1lE+DBjo="; + }; + patches = [ + # Backport fixes for musl libc. Remove on next release + (fetchpatch { + url = "https://github.com/alsa-project/alsa-utils/commit/8c229270f6bae83b705a03714c46067a7aa57b02.patch"; + hash = "sha256-sUaBHY8EHf4805nF6tyNV5jYXcJf3O+r04VXFu4dUCE="; + }) + (fetchpatch { + url = "https://github.com/alsa-project/alsa-utils/commit/0925ad7f09b2dc77015784f9ac2f5e34dd0dd5c3.patch"; + hash = "sha256-bgGU9On82AUbOjo+KN6WfuhqUAWM87OHnKN7plpG284="; + }) + ]; + + nativeBuildInputs = [ gettext makeWrapper ]; + buildInputs = [ alsa-lib ncurses libsamplerate fftw ]; + + configureFlags = [ "--disable-xmlto" "--with-udev-rules-dir=$(out)/lib/udev/rules.d" ]; + + installFlags = [ "ASOUND_STATE_DIR=$(TMPDIR)/dummy" ]; + + postFixup = '' + mv $out/bin/alsa-info.sh $out/bin/alsa-info + wrapProgram $out/bin/alsa-info --prefix PATH : "${lib.makeBinPath [ which pciutils ]}" + wrapProgram $out/bin/aplay --set-default ALSA_PLUGIN_DIR ${plugin-dir} + ''; + + meta = with lib; { + homepage = "http://www.alsa-project.org/"; + description = "ALSA, the Advanced Linux Sound Architecture utils"; + longDescription = '' + The Advanced Linux Sound Architecture (ALSA) provides audio and + MIDI functionality to the Linux-based operating system. + ''; + + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.AndersonTorres ]; + }; +} |