summary refs log tree commit diff
path: root/pkgs/tools/audio
diff options
context:
space:
mode:
authorymeister <47071325+ymeister@users.noreply.github.com>2020-03-07 17:56:11 +0000
committerymeister <47071325+ymeister@users.noreply.github.com>2020-03-13 13:38:05 +0700
commit5de1b169eaffe49027d31b066fa185db6fdcdba9 (patch)
treedd49e42e20071bbc9225ca75047e0a2b3719bbcb /pkgs/tools/audio
parentc5e223e1202424a5cef48d37f1f0c400f9a1b72b (diff)
downloadnixpkgs-5de1b169eaffe49027d31b066fa185db6fdcdba9.tar
nixpkgs-5de1b169eaffe49027d31b066fa185db6fdcdba9.tar.gz
nixpkgs-5de1b169eaffe49027d31b066fa185db6fdcdba9.tar.bz2
nixpkgs-5de1b169eaffe49027d31b066fa185db6fdcdba9.tar.lz
nixpkgs-5de1b169eaffe49027d31b066fa185db6fdcdba9.tar.xz
nixpkgs-5de1b169eaffe49027d31b066fa185db6fdcdba9.tar.zst
nixpkgs-5de1b169eaffe49027d31b066fa185db6fdcdba9.zip
alsaequal: init at 0.6
Co-Authored-By: Doron Behar <doron.behar@gmail.com>
Diffstat (limited to 'pkgs/tools/audio')
-rw-r--r--pkgs/tools/audio/alsaequal/caps_9.x.patch21
-rw-r--r--pkgs/tools/audio/alsaequal/default.nix42
-rw-r--r--pkgs/tools/audio/alsaequal/false_error.patch13
-rw-r--r--pkgs/tools/audio/alsaequal/makefile.patch13
4 files changed, 89 insertions, 0 deletions
diff --git a/pkgs/tools/audio/alsaequal/caps_9.x.patch b/pkgs/tools/audio/alsaequal/caps_9.x.patch
new file mode 100644
index 00000000000..282e0404974
--- /dev/null
+++ b/pkgs/tools/audio/alsaequal/caps_9.x.patch
@@ -0,0 +1,21 @@
+--- ./ctl_equal.c
++++ ./ctl_equal.c
+@@ -167,7 +167,7 @@
+ 	snd_ctl_equal_t *equal;
+ 	const char *controls = ".alsaequal.bin";
+ 	const char *library = "/usr/lib/ladspa/caps.so";
+-	const char *module = "Eq";
++	const char *module = "Eq10";
+ 	long channels = 2;
+ 	const char *sufix = " Playback Volume";
+ 	int err, i, index;
+--- ./pcm_equal.c
++++ ./pcm_equal.c
+@@ -151,7 +151,7 @@
+ 	snd_config_t *sconf = NULL;
+ 	const char *controls = ".alsaequal.bin";
+ 	const char *library = "/usr/lib/ladspa/caps.so";
+-	const char *module = "Eq";
++	const char *module = "Eq10";
+ 	long channels = 2;
+ 	int err;
diff --git a/pkgs/tools/audio/alsaequal/default.nix b/pkgs/tools/audio/alsaequal/default.nix
new file mode 100644
index 00000000000..fa11b665cd3
--- /dev/null
+++ b/pkgs/tools/audio/alsaequal/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl
+, alsaLib, caps
+}:
+
+stdenv.mkDerivation rec {
+  name = "alsaequal";
+  version = "0.6";
+
+  src = fetchurl {
+    url = "https://thedigitalmachine.net/tools/alsaequal-${version}.tar.bz2";
+    sha256 = "1w3g9q5z3nrn3mwdhaq6zsg0jila8d102dgwgrhj9vfx58apsvli";
+  };
+
+  buildInputs = [ alsaLib ];
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  # Borrowed from Arch Linux's AUR
+  patches = [
+    # Adds executable permissions to resulting libraries
+    # and changes their destination directory from "usr/lib/alsa-lib" to "lib/alsa-lib" to better align with nixpkgs filesystem hierarchy.
+    ./makefile.patch
+    # Fixes control port check, which resulted in false error.
+    ./false_error.patch
+    # Fixes name change of an "Eq" to "Eq10" method in version 9 of caps library.
+    ./caps_9.x.patch
+  ];
+
+  postPatch = ''
+    sed -i 's#/usr/lib/ladspa/caps\.so#${caps}/lib/ladspa/caps\.so#g' ctl_equal.c pcm_equal.c
+  '';
+
+  preInstall = ''
+    mkdir -p "$out/lib/alsa-lib"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Real-time adjustable equalizer plugin for ALSA";
+    homepage = "https://thedigitalmachine.net/alsaequal.html";
+    license = licenses.gpl2;
+  };
+}
diff --git a/pkgs/tools/audio/alsaequal/false_error.patch b/pkgs/tools/audio/alsaequal/false_error.patch
new file mode 100644
index 00000000000..1a8413da274
--- /dev/null
+++ b/pkgs/tools/audio/alsaequal/false_error.patch
@@ -0,0 +1,13 @@
+--- ./ctl_equal.c
++++ ./ctl_equal.c
+@@ -263,8 +263,8 @@
+ 	for(i = 0; i < equal->num_input_controls; i++) {
+ 		if(equal->control_data->control[i].type == LADSPA_CNTRL_INPUT) {
+ 			index = equal->control_data->control[i].index;
+-			if(equal->klass->PortDescriptors[index] !=
+-					(LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) {
++			if(equal->klass->PortDescriptors[index] &
++					(LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL) == 0) {
+ 				SNDERR("Problem with control file %s, %d.", controls, index);
+ 				return -1;
+ 			}
diff --git a/pkgs/tools/audio/alsaequal/makefile.patch b/pkgs/tools/audio/alsaequal/makefile.patch
new file mode 100644
index 00000000000..ee8aa170d60
--- /dev/null
+++ b/pkgs/tools/audio/alsaequal/makefile.patch
@@ -0,0 +1,13 @@
+--- ./Makefile
++++ ./Makefile
+@@ -45,8 +45,8 @@
+
+ install: all
+ 	@echo Installing...
+-	$(Q)install -m 644 $(SND_PCM_BIN) ${DESTDIR}/usr/lib/alsa-lib/
+-	$(Q)install -m 644 $(SND_CTL_BIN) ${DESTDIR}/usr/lib/alsa-lib/
++	$(Q)install -m 755 $(SND_PCM_BIN) ${DESTDIR}/lib/alsa-lib/
++	$(Q)install -m 755 $(SND_CTL_BIN) ${DESTDIR}/lib/alsa-lib/
+
+ uninstall:
+ 	@echo Un-installing...