emerge of kdemedultmedia 3.0.1 fails with an error in alsa initatited throught an emerge -u world. Sound currently works. Box is a iMac DV 400 running latest public ebuilds, with the exception of mozilla Error follows: In file included from alsa_a.c:55: /usr/include/sys/asoundlib.h:1: warning: #warning This header is deprecated, use <alsa/asoundlib.h> instead. alsa_a.c: In function `check_sound_cards': alsa_a.c:153: storage size of `ctl_hw_info' isn't known alsa_a.c:154: storage size of `pcm_info' isn't known alsa_a.c:189: warning: passing arg 2 of `snd_ctl_open' makes pointer from integer without a cast alsa_a.c:189: too few arguments to function `snd_ctl_open' alsa_a.c:223: warning: passing arg 2 of `snd_ctl_pcm_info' makes pointer from integer without a cast alsa_a.c:223: too many arguments to function `snd_ctl_pcm_info' alsa_a.c:231: `SND_PCM_INFO_PLAYBACK' undeclared (first use in this function) alsa_a.c:231: (Each undeclared identifier is reported only once alsa_a.c:231: for each function it appears in.) alsa_a.c: In function `set_playback_info': alsa_a.c:265: `snd_pcm_channel_info_t' undeclared (first use in this function) alsa_a.c:265: parse error before `playback_info' alsa_a.c:271: storage size of `playback_params' isn't known alsa_a.c:272: storage size of `playback_status' isn't known alsa_a.c:273: storage size of `setup' isn't known alsa_a.c:278: request for member `interleave' in something not a structure or union alsa_a.c:281: `SND_PCM_CHANNEL_PLAYBACK' undeclared (first use in this function) alsa_a.c:282: `SND_PCM_MODE_BLOCK' undeclared (first use in this function) alsa_a.c:284: `playback_info' undeclared (first use in this function) alsa_a.c:308: request for member `rate' in something not a structure or union alsa_a.c:317: request for member `voices' in something not a structure or union alsa_a.c:319: request for member `voices' in something not a structure or union alsa_a.c:325: `SND_PCM_FMT_S16_LE' undeclared (first use in this function) alsa_a.c:327: request for member `format' in something not a structure or union alsa_a.c:327: `SND_PCM_SFMT_S16_LE' undeclared (first use in this function) alsa_a.c:330: `SND_PCM_FMT_U16_LE' undeclared (first use in this function) alsa_a.c:332: request for member `format' in something not a structure or union alsa_a.c:332: `SND_PCM_SFMT_U16_LE' undeclared (first use in this function) alsa_a.c:335: `SND_PCM_FMT_S16_BE' undeclared (first use in this function) alsa_a.c:337: request for member `format' in something not a structure or union alsa_a.c:337: `SND_PCM_SFMT_S16_BE' undeclared (first use in this function) alsa_a.c:340: `SND_PCM_FMT_U16_BE' undeclared (first use in this function) alsa_a.c:342: request for member `format' in something not a structure or union alsa_a.c:355: `SND_PCM_FMT_U8' undeclared (first use in this function) alsa_a.c:357: request for member `format' in something not a structure or union alsa_a.c:357: `SND_PCM_SFMT_U8' undeclared (first use in this function) alsa_a.c:360: `SND_PCM_FMT_S8' undeclared (first use in this function) alsa_a.c:362: request for member `format' in something not a structure or union alsa_a.c:392: request for member `voices' in something not a structure or union alsa_a.c:431: `SND_PCM_START_FULL' undeclared (first use in this function) alsa_a.c:432: `SND_PCM_STOP_STOP' undeclared (first use in this function) alsa_a.c: In function `open_output': alsa_a.c:499: `SND_PCM_OPEN_PLAYBACK' undeclared (first use in this function) alsa_a.c:499: `SND_PCM_OPEN_NONBLOCK' undeclared (first use in this function) alsa_a.c:499: warning: passing arg 2 of `snd_pcm_open' makes pointer from integer without a cast alsa_a.c:520: `SND_PCM_CHANNEL_PLAYBACK' undeclared (first use in this function) alsa_a.c: In function `playback_write_error': alsa_a.c:567: `snd_pcm_channel_status_t' undeclared (first use in this function) alsa_a.c:567: parse error before `status' alsa_a.c:569: `status' undeclared (first use in this function) alsa_a.c:570: `SND_PCM_CHANNEL_PLAYBACK' undeclared (first use in this function) alsa_a.c:575: `SND_PCM_STATUS_UNDERRUN' undeclared (first use in this function) alsa_a.c:583: `SND_PCM_STATUS_READY' undeclared (first use in this function) alsa_a.c:590: `SND_PCM_STATUS_RUNNING' undeclared (first use in this function) alsa_a.c: In function `output_count': alsa_a.c:614: storage size of `playback_status' isn't known alsa_a.c: In function `flush_output': alsa_a.c:662: `SND_PCM_CHANNEL_PLAYBACK' undeclared (first use in this function) alsa_a.c: In function `purge_output': alsa_a.c:670: `SND_PCM_CHANNEL_PLAYBACK' undeclared (first use in this function) make[3]: *** [alsa_a.o] Error 1 make[3]: Leaving directory `/var/tmp/portage/kdemultimedia-3.0.1.20020604/work/kdemultimedia-3.0.1/kmidi/TIMIDITY' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/kdemultimedia-3.0.1.20020604/work/kdemultimedia-3.0.1/kmidi' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/kdemultimedia-3.0.1.20020604/work/kdemultimedia-3.0.1' make: *** [all] Error 2 !!! ERROR: The ebuild did not complete successfully. !!! Function kde_src_compile, Line -3694, Exitcode 2 !!! died running emake, kde_src_compile:make !!! emerge aborting on /usr/portage/kde-base/kdemultimedia/kdemultimedia-3.0.1.20020604.ebuild .
http://www.moongroup.com/pipermail/lunar/2002-April/000409.html this seems to shed some light on the subject, maybe a simple patch would fix things up?
included proposed workaround by gerk: Ok, if I untar kdemultimedia and change the two include statements for the alsa headers to; #include </usr/include/alsaasoundlib.h> make will complete without errors. For some reason just having #include <alsa/asoundlib.h> does not work but the full path does. So how would the BUILD be changed to delete these two include statements in /usr/src/kdemultimedia-2.2.2/kmidi/alsa_a.cpp and change them to "#include </usr/include/alsa/asoundlib.h>"?
You don't mind if I take it? kdemm is my responsibility really.
Um, I missed the ppc tag when I took the ebuild. But n/m that, because I know the solution :-) So, Gerk, I'm ccing you as my ppc liason :-) This is basically the same as the infamous bug #2324. In other words, kdemm does NOT support alsa 0.9* and cannot be made to link against it. And it's up to the kde devs to fix it, and I don't know when they will do that. The problem here is that the 3.0.1 ebuild doesn't explicitly disable alsa support. The newer 3.0.1.20020604 ebuild explicitly says, regardless of any use flags, myconf="$myconf --disable-alsa --without-alsa". And that should do it. I don't know how exactly x86/general ebuilds move into the ppc profile, but this newer ebuild (which otherwise only adds bugfixes) should fix the problem. Please try it.
Sorry, my comment was misled by the topic that said 3.0.1. I now understand that this bug exists in 3.0.1.20020604 but NOT in 3.0.1. That's very odd because as I've said, the difference between 3.0.1 and 3.0.1.20020604 is that one line that disables alsa support (which is right). I'd like at the output of the ./configure section of emerge kdemultimedia, and at $T/eclass-debug.log (to see the parameters passed to configure).
Dan: Sorry I am unable to test that, it works perfectly on this box, and the box where I had the problems died under the wrath of a kernel yesterday (filesystems completely toast). trance 9the bug reporter) can probably get you this stuff thogh, I'll work with him later on today and try and get you the info you need. Incidentily if you export USE="-alsa" and emerge it works ok.
If that is so something is deeply wrong. Please read the ebuild, it does NOT depend on the alsa use flag in any way and is supopsed to always disable alsa support regardless of anything at all.
Ok, it seems this was my fault all along :-( I've committed the correct ebuild, please update and try gain and this time it really should build correctly and without alsa support.
*** Bug 3512 has been marked as a duplicate of this bug. ***
Closing with both ppc and x86 confirmation from Gerk.