Description of problem: pulseaudio refuses to start, failing to find a necessary component. Version-Release number of selected component (if applicable): Name : pulseaudio Version : 12.2 Release : 4.fc31 Architecture: x86_64 How reproducible: Every time Steps to Reproduce: 1. Install Fedora rawhide, including pulseaudio 2. Try to start pulseaudio 3. Actual results: Short form W: [pulseaudio] module-ladspa-sink.c: The 'master' module argument is deprecated and may be removed in the future, please use the 'sink_master' argument instead. E: [pulseaudio] module-ladspa-sink.c: Master sink not found. E: [pulseaudio] module.c: Failed to load module "module-ladspa-sink" (argument: "sink_name=ladspa_output.mbeq_1197.mbeq master=alsa_output.pci-0000_00_14.2.analog-stereo plugin=mbeq_1197 label=mbeq control=-14.1,-9.5,-4.2,-2.1,0.4,0.4,0,0,0,0,0,0,0,0,0"): initialization failed. E: [pulseaudio] main.c: Sink ladspa_output.mbeq_1197.mbeq does not exist. E: [pulseaudio] main.c: No sink found by this name or index. E: [pulseaudio] main.c: Failed to initialize daemon. Expected results: Sound plays Additional info: Results with -v pulseaudio -v I: [pulseaudio] main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted I: [pulseaudio] main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted I: [pulseaudio] core-util.c: Successfully gained nice level -11. I: [pulseaudio] main.c: This is PulseAudio 12.2-rebootstrapped I: [pulseaudio] main.c: Page size is 4096 bytes I: [pulseaudio] main.c: Machine ID is 4bfdc2af3cf549efa03a6186c809dc60. I: [pulseaudio] main.c: Session ID is 13. I: [pulseaudio] main.c: Using runtime directory /run/user/9999/pulse. I: [pulseaudio] main.c: Using state directory /home/stan/.pulse. I: [pulseaudio] main.c: Using modules directory /usr/lib64/pulse-12.2/modules. I: [pulseaudio] main.c: Running in system mode: no I: [pulseaudio] main.c: System supports high resolution timers I: [pulseaudio] cpu-x86.c: CPU flags: CMOV MMX SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 MMXEXT I: [pulseaudio] svolume_mmx.c: Initialising MMX optimized volume functions. I: [pulseaudio] remap_mmx.c: Initialising MMX optimized remappers. I: [pulseaudio] svolume_sse.c: Initialising SSE2 optimized volume functions. I: [pulseaudio] remap_sse.c: Initialising SSE2 optimized remappers. I: [pulseaudio] sconv_sse.c: Initialising SSE2 optimized conversions. I: [pulseaudio] svolume_orc.c: Initialising ORC optimized volume functions. I: [pulseaudio] module-device-restore.c: Successfully opened database file '/home/stan/.pulse/4bfdc2af3cf549efa03a6186c809dc60-device-volumes'. I: [pulseaudio] module.c: Loaded "module-device-restore" (index: #0; argument: ""). I: [pulseaudio] module-stream-restore.c: Successfully opened database file '/home/stan/.pulse/4bfdc2af3cf549efa03a6186c809dc60-stream-volumes'. I: [pulseaudio] module.c: Loaded "module-stream-restore" (index: #1; argument: "restore_device=false"). I: [pulseaudio] module-card-restore.c: Successfully opened database file '/home/stan/.pulse/4bfdc2af3cf549efa03a6186c809dc60-card-database'. I: [pulseaudio] module.c: Loaded "module-card-restore" (index: #2; argument: ""). I: [pulseaudio] module.c: Loaded "module-augment-properties" (index: #3; argument: ""). I: [pulseaudio] module.c: Loaded "module-switch-on-port-available" (index: #4; argument: ""). I: [pulseaudio] module-udev-detect.c: Found 4 cards. I: [pulseaudio] module.c: Loaded "module-udev-detect" (index: #5; argument: ""). I: [pulseaudio] module.c: Loaded "module-jackdbus-detect" (index: #6; argument: "channels=2"). I: [pulseaudio] module.c: Loaded "module-bluetooth-policy" (index: #7; argument: ""). I: [pulseaudio] module.c: Loaded "module-bluez5-discover" (index: #9; argument: ""). I: [pulseaudio] module.c: Loaded "module-bluetooth-discover" (index: #8; argument: ""). I: [pulseaudio] module.c: Loaded "module-esound-protocol-unix" (index: #10; argument: ""). I: [pulseaudio] module.c: Loaded "module-native-protocol-unix" (index: #11; argument: ""). I: [pulseaudio] module.c: Loaded "module-gsettings" (index: #12; argument: ""). I: [pulseaudio] module.c: Loaded "module-gconf" (index: #13; argument: ""). I: [pulseaudio] module-default-device-restore.c: No previous default sink setting, ignoring. I: [pulseaudio] module-default-device-restore.c: No previous default source setting, ignoring. I: [pulseaudio] module.c: Loaded "module-default-device-restore" (index: #14; argument: ""). I: [pulseaudio] module.c: Loaded "module-rescue-streams" (index: #15; argument: ""). I: [pulseaudio] sink.c: Created sink 0 "auto_null" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right I: [pulseaudio] sink.c: device.description = "Dummy Output" I: [pulseaudio] sink.c: device.class = "abstract" I: [pulseaudio] sink.c: device.icon_name = "audio-card" I: [pulseaudio] source.c: Created source 0 "auto_null.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right I: [pulseaudio] source.c: device.description = "Monitor of Dummy Output" I: [pulseaudio] source.c: device.class = "monitor" I: [pulseaudio] source.c: device.icon_name = "audio-input-microphone" I: [pulseaudio] core.c: default_source: (unset) -> auto_null.monitor I: [pulseaudio] core.c: default_sink: (unset) -> auto_null I: [pulseaudio] module.c: Loaded "module-null-sink" (index: #17; argument: "sink_name=auto_null sink_properties='device.description="Dummy Output"'"). I: [pulseaudio] module.c: Loaded "module-always-sink" (index: #16; argument: ""). I: [pulseaudio] module.c: Loaded "module-intended-roles" (index: #18; argument: ""). I: [pulseaudio] module.c: Loaded "module-suspend-on-idle" (index: #19; argument: ""). I: [pulseaudio] client.c: Created 0 "Login Session 34" I: [pulseaudio] core.c: exit_idle_time: 20 -> 0 I: [pulseaudio] client.c: Created 1 "Login Session 13" I: [pulseaudio] module.c: Loaded "module-systemd-login" (index: #20; argument: ""). I: [pulseaudio] module.c: Loaded "module-position-event-sounds" (index: #21; argument: ""). I: [pulseaudio] module.c: Loaded "module-role-cork" (index: #22; argument: ""). I: [pulseaudio] module.c: Loaded "module-filter-heuristics" (index: #23; argument: ""). I: [pulseaudio] module.c: Loaded "module-filter-apply" (index: #24; argument: ""). W: [pulseaudio] module-ladspa-sink.c: The 'master' module argument is deprecated and may be removed in the future, please use the 'sink_master' argument instead. E: [pulseaudio] module-ladspa-sink.c: Master sink not found. E: [pulseaudio] module.c: Failed to load module "module-ladspa-sink" (argument: "sink_name=ladspa_output.mbeq_1197.mbeq master=alsa_output.pci-0000_00_14.2.analog-stereo plugin=mbeq_1197 label=mbeq control=-14.1,-9.5,-4.2,-2.1,0.4,0.4,0,0,0,0,0,0,0,0,0"): initialization failed. E: [pulseaudio] main.c: Sink ladspa_output.mbeq_1197.mbeq does not exist. E: [pulseaudio] main.c: No sink found by this name or index. E: [pulseaudio] main.c: Failed to initialize daemon. I: [pulseaudio] module.c: Unloading "module-filter-apply" (index: #24). I: [pulseaudio] module.c: Unloaded "module-filter-apply" (index: #24). I: [pulseaudio] module.c: Unloading "module-filter-heuristics" (index: #23). I: [pulseaudio] module.c: Unloaded "module-filter-heuristics" (index: #23). I: [pulseaudio] module.c: Unloading "module-role-cork" (index: #22). I: [pulseaudio] module.c: Unloaded "module-role-cork" (index: #22). I: [pulseaudio] module.c: Unloading "module-position-event-sounds" (index: #21). I: [pulseaudio] module.c: Unloaded "module-position-event-sounds" (index: #21). I: [pulseaudio] module.c: Unloading "module-systemd-login" (index: #20). I: [pulseaudio] client.c: Freed 0 "Login Session 34" I: [pulseaudio] client.c: Freed 1 "Login Session 13" I: [pulseaudio] module.c: Unloaded "module-systemd-login" (index: #20). I: [pulseaudio] module.c: Unloading "module-suspend-on-idle" (index: #19). I: [pulseaudio] module.c: Unloaded "module-suspend-on-idle" (index: #19). I: [pulseaudio] module.c: Unloading "module-intended-roles" (index: #18). I: [pulseaudio] module.c: Unloaded "module-intended-roles" (index: #18). I: [pulseaudio] module.c: Unloading "module-null-sink" (index: #17). I: [pulseaudio] core.c: default_sink: auto_null -> (unset) I: [pulseaudio] core.c: default_source: auto_null.monitor -> (unset) I: [pulseaudio] sink.c: Freeing sink 0 "auto_null" I: [pulseaudio] source.c: Freeing source 0 "auto_null.monitor" I: [pulseaudio] module.c: Unloaded "module-null-sink" (index: #17). I: [pulseaudio] module.c: Unloading "module-always-sink" (index: #16). I: [pulseaudio] module.c: Unloaded "module-always-sink" (index: #16). I: [pulseaudio] module.c: Unloading "module-rescue-streams" (index: #15). I: [pulseaudio] module.c: Unloaded "module-rescue-streams" (index: #15). I: [pulseaudio] module.c: Unloading "module-default-device-restore" (index: #14). I: [pulseaudio] module.c: Unloaded "module-default-device-restore" (index: #14). I: [pulseaudio] module.c: Unloading "module-gconf" (index: #13). I: [pulseaudio] module.c: Unloaded "module-gconf" (index: #13). I: [pulseaudio] module.c: Unloading "module-gsettings" (index: #12). I: [pulseaudio] module.c: Unloaded "module-gsettings" (index: #12). I: [pulseaudio] module.c: Unloading "module-native-protocol-unix" (index: #11). I: [pulseaudio] module.c: Unloaded "module-native-protocol-unix" (index: #11). I: [pulseaudio] module.c: Unloading "module-esound-protocol-unix" (index: #10). I: [pulseaudio] module.c: Unloaded "module-esound-protocol-unix" (index: #10). I: [pulseaudio] module.c: Unloading "module-bluez5-discover" (index: #9). I: [pulseaudio] module.c: Unloaded "module-bluez5-discover" (index: #9). I: [pulseaudio] module.c: Unloading "module-bluetooth-discover" (index: #8). I: [pulseaudio] module.c: Unloaded "module-bluetooth-discover" (index: #8). I: [pulseaudio] module.c: Unloading "module-bluetooth-policy" (index: #7). I: [pulseaudio] module.c: Unloaded "module-bluetooth-policy" (index: #7). I: [pulseaudio] module.c: Unloading "module-jackdbus-detect" (index: #6). I: [pulseaudio] module.c: Unloaded "module-jackdbus-detect" (index: #6). I: [pulseaudio] module.c: Unloading "module-udev-detect" (index: #5). I: [pulseaudio] module.c: Unloaded "module-udev-detect" (index: #5). I: [pulseaudio] module.c: Unloading "module-switch-on-port-available" (index: #4). I: [pulseaudio] module.c: Unloaded "module-switch-on-port-available" (index: #4). I: [pulseaudio] module.c: Unloading "module-augment-properties" (index: #3). I: [pulseaudio] module.c: Unloaded "module-augment-properties" (index: #3). I: [pulseaudio] module.c: Unloading "module-card-restore" (index: #2). I: [pulseaudio] module.c: Unloaded "module-card-restore" (index: #2). I: [pulseaudio] module.c: Unloading "module-stream-restore" (index: #1). I: [pulseaudio] module.c: Unloaded "module-stream-restore" (index: #1). I: [pulseaudio] module.c: Unloading "module-device-restore" (index: #0). I: [pulseaudio] module.c: Unloaded "module-device-restore" (index: #0). I: [pulseaudio] main.c: Daemon terminated.
I tried building pulseaudio from the src.rpm, but it failed with what, to me, appears to be a bug. It failed to find the asoundlib.h from alsa-lib-devel. I think it was looking in the wrong place. Here is the pertinent error output. In file included from modules/alsa/module-alsa-sink.c:29: modules/alsa/alsa-util.h:24:10: fatal error: asoundlib.h: No such file or directory 24 | #include <asoundlib.h> | ^~~~~~~~~~~~~ compilation terminated. make[3]: *** [Makefile:9255: modules/alsa/module_alsa_sink_la-module-alsa-sink.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... modules/alsa/module-alsa-source.c:27:10: fatal error: asoundlib.h: No such file or directory 27 | #include <asoundlib.h> | ^~~~~~~~~~~~~ compilation terminated. make[3]: *** [Makefile:9262: modules/alsa/module_alsa_source_la-module-alsa-source.lo] Error 1 In file included from modules/alsa/module-alsa-card.c:37: modules/alsa/alsa-util.h:24:10: fatal error: asoundlib.h: No such file or directory 24 | #include <asoundlib.h> | ^~~~~~~~~~~~~ compilation terminated. make[3]: *** [Makefile:9248: modules/alsa/module_alsa_card_la-module-alsa-card.lo] Error 1 make[2]: *** [Makefile:5362: all] Error 2 make[1]: *** [Makefile:813: all-recursive] Error 1 make: *** [Makefile:628: all] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.RIQFOO (%build) Macro expanded in comment on line 7: (c=%{gitcommit}; echo ${c:0:5}) Bad exit status from /var/tmp/rpm-tmp.RIQFOO (%build) It isn't finding asoundlib.h, but it exists, just not in /usr/include. It is in /usr/include/alsa. So, I think the include should be #include <alsa/asoundlib.h>.
So, I patched to fix the above error. I'll attach the modified spec file and the patches. They worked to get past the initial error. However, it hit a more serious error. modules/alsa/alsa-source.c: In function 'pa_alsa_source_new': modules/alsa/alsa-source.c:1947:17: warning: implicit declaration of function 'snd_use_case_set' [-Wimplicit-function-declaration] 1947 | if (snd_use_case_set(u->ucm_context->ucm->ucm_mgr, "_enamod", mod_name) < 0) | ^~~~~~~~~~~~~~~~ modules/alsa/alsa-sink.c: In function 'pa_alsa_sink_new': modules/alsa/alsa-sink.c:2260:17: warning: implicit declaration of function 'snd_use_case_set' [-Wimplicit-function-declaration] 2260 | if (snd_use_case_set(u->ucm_context->ucm->ucm_mgr, "_enamod", mod_name) < 0) | ^~~~~~~~~~~~~~~~ /usr/bin/ld: ./.libs/libalsa-util.so: undefined reference to `pa_alsa_ucm_device_update_available' collect2: error: ld returned 1 exit status make[3]: *** [Makefile:6917: alsa-mixer-path-test] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [Makefile:5362: all] Error 2 make[1]: *** [Makefile:813: all-recursive] Error 1 make: *** [Makefile:628: all] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.j7mujG (%build) Macro expanded in comment on line 7: (c=%{gitcommit}; echo ${c:0:5}) It looks like the library interface has changed in libalsa-util.so.
Created attachment 1579480 [details] modified spec file
Created attachment 1579482 [details] alsa-mixer.c.patch
Created attachment 1579483 [details] alsa-mixer.h.patch
Created attachment 1579484 [details] alsa-sink.c.patch
Created attachment 1579485 [details] alsa-source.c.patch
Created attachment 1579486 [details] alsa-ucm.c.patch
Created attachment 1579487 [details] alsa-util.c.patch
Created attachment 1579488 [details] alsa-util.h.patch
Created attachment 1579489 [details] module-alsa-source.c.patch
I've been trying to get this past the implied function declaration. It all has to do with HAVE_ALSA_UCM. The implied functions are defined in /usr/include/alsa/use-case.h. But that isn't even in the include chain for alsa-sink.c and alsa-source.c. It is in the include chain for alsa-ucm.c, but it is conditional there on HAVE_ALSA_UCM. I'm not sure what UCM is, but apparently the configure doesn't find it on my machine, so /usr/include/alsa/use-case.h doesn't get included for the compilation of alsa-ucm.c, and so doesn't get included in the library. I don't see how this ever built in rawhide because it is logically inconsistent. Maybe with alsa 1.0.18? I tried installing the pulseaudio from Fedora 30 to see if it would work, but it fails the same way. Yet, pulseaudio worked fine on Fedora 28 with the same hardware.
pulling in upstream related fix (include paths): https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=993d3fd89e5611997f1e165bf03edefb0204b0a4 but looks like that is insufficient, looking closer.
Looks like similar issue you hit, ./.libs/libalsa-util.so: undefined reference to `pa_alsa_ucm_device_update_available' BUILDSTDERR: collect2: error: ld returned 1 exit status BUILDSTDERR: make[3]: *** [Makefile:6917: alsa-mixer-path-test] Error 1
This followup upstream patch fixes the build at least, https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=b89d33bb182c42db5ad3987b0e91b7bf62f421e8 All included in latest rawhide build, https://koji.fedoraproject.org/koji/buildinfo?buildID=1288984
Thanks for the followup. I think the fix isn't complete with just those patches. The implicit declaration of the function in alsa-sink.c and alsa-source.c requires the use-case.h file as an include, and it isn't fixed by those. The new packages aren't available on my repos yet, but I look forward to trying them.
You can download builds manually following links from https://koji.fedoraproject.org/koji/packageinfo?packageID=3527 if needed.
They didn't show up in the repos this morning, so I decided to download and install them. And everything is working. Even the pulseaudio-equalizer is working. I had to locally compile the ladspa-swh-plugins src.rpm from f29 to get the ladspa-swh-plugins package in order satisfy the dependency so I could install pulseaudio-equalizer. It seems to have been dropped because it FTBFS, but there were no problems building the rpm here in F31 from the F29 src.rpm. So, I am back in business. I was going to close the ticket, but I don't see a 'FIXED' selection, so I'll let you decide what to call it. Thanks again for your help.
FEDORA-2019-a0870ad9e1 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-a0870ad9e1
pulseaudio-12.2-6.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-a0870ad9e1
pulseaudio-12.2-6.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.