From cb53e3febe75235522b55efcef094af98b3cb68b Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Mon, 13 Mar 2023 23:03:00 -0300 Subject: [PATCH] alsa-tools: refactor --- .../linux/alsa-project/alsa-tools/default.nix | 111 +++++++++++++----- 1 file changed, 81 insertions(+), 30 deletions(-) diff --git a/pkgs/os-specific/linux/alsa-project/alsa-tools/default.nix b/pkgs/os-specific/linux/alsa-project/alsa-tools/default.nix index 8b9abb74036b..c8c4456a01f2 100644 --- a/pkgs/os-specific/linux/alsa-project/alsa-tools/default.nix +++ b/pkgs/os-specific/linux/alsa-project/alsa-tools/default.nix @@ -1,54 +1,105 @@ -{ lib, stdenv, fetchurl, alsa-lib, pkg-config, gtk2, gtk3, fltk13 }: -# Comes from upstream as as bundle of several tools, -# some use gtk2, some gtk3 (and some even fltk13). +{ lib +, stdenv +, fetchurl +, alsa-lib +, fltk13 +, gtk2 +, gtk3 +, pkg-config +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (self: { pname = "alsa-tools"; version = "1.2.5"; src = fetchurl { - url = "mirror://alsa/tools/${pname}-${version}.tar.bz2"; - sha256 = "sha256-NacQJ6AfTX3kci4iNSDpQN5os8VwtsZxaRVnrij5iT4="; + url = "mirror://alsa/tools/alsa-tools-${self.version}.tar.bz2"; + hash = "sha256-NacQJ6AfTX3kci4iNSDpQN5os8VwtsZxaRVnrij5iT4="; }; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ alsa-lib gtk2 gtk3 fltk13 ]; + nativeBuildInputs = [ + pkg-config + ]; - patchPhase = '' - export tools="as10k1 hda-verb hdspmixer echomixer hdajackretask hdspconf hwmixvolume mixartloader rmedigicontrol sscape_ctl vxloader envy24control hdajacksensetest hdsploader ld10k1 pcxhrloader sb16_csp us428control" - # export tools="as10k1 hda-verb hdspmixer qlo10k1 seq usx2yloader echomixer hdajackretask hdspconf hwmixvolume mixartloader rmedigicontrol sscape_ctl vxloader envy24control hdajacksensetest hdsploader ld10k1 pcxhrloader sb16_csp us428control" + buildInputs = [ + alsa-lib + fltk13 + gtk2 + gtk3 + ]; + + env.TOOLSET = lib.concatStringsSep " " [ + "as10k1" + "echomixer" + "envy24control" + "hda-verb" + "hdajackretask" + "hdajacksensetest" + "hdspconf" + "hdsploader" + "hdspmixer" + # "hwmixvolume" # needs Python + "ld10k1" + # "qlo10k1" # needs Qt + "mixartloader" + "pcxhrloader" + "rmedigicontrol" + "sb16_csp" + # "seq" # mysterious configure error + "sscape_ctl" + "us428control" + # "usx2yloader" # tries to create /etc/hptplug/usb + "vxloader" + ]; + + postPatch = '' + patchShebangs hwmixvolume/ ''; configurePhase = '' - for tool in $tools; do - echo "Tool: $tool:" - cd "$tool"; ./configure --prefix="$out"; cd - + runHook preConfigure + + for tool in $TOOLSET; do + echo "Configuring $tool:" + pushd "$tool" + ./configure --prefix="$out" + popd done + + runHook postConfigure ''; buildPhase = '' - for tool in $tools; do - cd "$tool"; make; cd - + runHook preBuild + + echo "Building $tool:" + for tool in $TOOLSET; do + pushd "$tool" + make + popd done + + runHook postBuild ''; installPhase = '' - for tool in $tools; do - cd "$tool"; make install; cd - + runHook preInstall + + echo "Installing $tool:" + for tool in $TOOLSET; do + pushd "$tool" + make install + popd done + + runHook postInstall ''; - meta = with lib; { + meta = { homepage = "http://www.alsa-project.org/"; - description = "ALSA, the Advanced Linux Sound Architecture tools"; - - 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.fps ]; + description = "ALSA Tools"; + license = lib.licenses.gpl2Plus; + maintainers = [ ]; + platforms = lib.platforms.linux; }; -} +})