Arch Linux

Please read this before reporting a bug:

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!

FS#59108 - [pulseaudio] LADSPA plugins not loaded from LADSPA path anymore

Attached to Project: Arch Linux
Opened by Hermann Zahnweh (eigengrau) - Friday, 22 June 2018, 13:30 GMT
Last edited by Eli Schwartz (eschwartz) - Tuesday, 17 July 2018, 18:05 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 3
Private No



Pulseaudio is currently unable to load LADSPA plugins due to a failure when locating the corresponding shared objects. LADSPA-related packages install these into `/usr/lib/ladspa`. It looks like Pulseaudio now only tries to load from the regular library paths; i.e., I could get pulse to load these LADSPA plugins after symlinking the LADSPA .so files into `/usr/lib`.

The behavior seems to have arisen with an upgrade to pulseaudio 12.0-1. The only upstream changes related to the LADSPA-plugin path is commit 8c22cd54, which, superficially, looked innocent to me.

Additional info:

* pulseaudio 12.0-1
* swh-plugins 0.4.17-3

Steps to reproduce:

$ pactl load-module module-ladspa-sink plugin=mbeq_1197 label=mbeq

The daemon then logs:

pulseaudio[27295]: E: [pulseaudio] ltdl-bind-now.c: Failed to open module cannot open shared object file: No such file or directory
pulseaudio[27295]: E: [pulseaudio] module-ladspa-sink.c: Failed to load LADSPA plugin: file not found
pulseaudio[27295]: E: [pulseaudio] module.c: Failed to load module "module-ladspa-sink" (argument: "plugin=mbeq_1197 label=mbeq"): initialization failed.

We can get the plugin to load by making it reachable from the regular library path:

$ sudo ln -s /usr/lib/ladspa/ /usr/lib
$ pactl load-module module-ladspa-sink plugin=mbeq_1197 label=mbeq # Succeeds
This task depends upon

Closed by  Eli Schwartz (eschwartz)
Tuesday, 17 July 2018, 18:05 GMT
Reason for closing:  Fixed
Additional comments about closing:  pulseaudio 12.1-1
Comment by Heorhii Valakhanovich (tormoz) - Friday, 22 June 2018, 19:06 GMT
Actually I think this commit is the reason. Stringizing operator just expands to "LADSPA_PATH" and it is clearly not what was expected. Perhaps we need to post a bug upstream.
Another reason to believe this is my strace log.

access("LADSPA_PATH/", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib32/", R_OK) = -1 ENOENT (No such file or directory)
Comment by Vinicius (PhantomX) - Sunday, 01 July 2018, 02:08 GMT Comment by Bernhard Landauer (oberon) - Thursday, 05 July 2018, 09:48 GMT
This patch, referenced on the upstream bug report fixes the LADSPA_PATH issue for me:
Comment by Heorhii Valakhanovich (tormoz) - Monday, 16 July 2018, 16:02 GMT
Looks like it was fixed in pulseaudio 12.1 update