about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/haskell-modules/patches/portmidi-alsa-plugins.patch
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/haskell-modules/patches/portmidi-alsa-plugins.patch')
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/patches/portmidi-alsa-plugins.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/haskell-modules/patches/portmidi-alsa-plugins.patch b/nixpkgs/pkgs/development/haskell-modules/patches/portmidi-alsa-plugins.patch
new file mode 100644
index 000000000000..13860b7cfb7f
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/patches/portmidi-alsa-plugins.patch
@@ -0,0 +1,31 @@
+diff -Naurd PortMidi-0.2.0.0/portmidi/pm_linux/pmlinuxalsa.c PortMidi-0.2.0.0-alsafix/portmidi/pm_linux/pmlinuxalsa.c
+--- PortMidi-0.2.0.0/portmidi/pm_linux/pmlinuxalsa.c	2023-12-13 11:35:12.517413022 +0000
++++ PortMidi-0.2.0.0-alsafix/portmidi/pm_linux/pmlinuxalsa.c	2023-12-13 11:35:12.565413037 +0000
+@@ -719,6 +719,18 @@
+ }

+ 

+ 

++static void set_alsa_plugin_path( void )

++{

++    char *existing;

++

++    existing = getenv("ALSA_PLUGIN_DIR");

++    if (NULL != existing) {

++        return;

++    }

++    setenv("ALSA_PLUGIN_DIR", "@alsa_plugin_dir@", 0);

++}

++

++

+ PmError pm_linuxalsa_init( void )

+ {

+     int  err;

+@@ -726,6 +738,8 @@
+     snd_seq_port_info_t *pinfo;

+     unsigned int caps;

+ 

++    set_alsa_plugin_path();

++

+     /* Previously, the last parameter was SND_SEQ_NONBLOCK, but this 

+      * would cause messages to be dropped if the ALSA buffer fills up.

+      * The correct behavior is for writes to block until there is