Please note that this is not the same as bug# 68583! (Though that bug is occurs here as well.) This is with kdemultimedia-3.3.2, but I'm pretty sure this is a problem with 3.3.1 as well (I had a very similar error, but not positive if it was the exact same.) 3.3.0 emerged fine back in the day, so I think that version is unaffected. Reproducible: Always Steps to Reproduce: 1.emerge -C speex 2.emerge kdemultimedia *OR* USE="speex" emerge kdemultimedia *OR* USE="-speex" emerge kdemultimedia 3. Actual Results: The setting of the "speex" USE flag has no effect on the build. The kdemultimedia build apparently requires speex as a dependancy, but fails to install this first. So if you don't already have speex installed, the build will die with the following error: speex_decoder.cpp: In member function `virtual bool aKode::SpeexDecoder::readFrame(aKode::AudioFrame*)': speex_decoder.cpp:251: error: cannot convert `int16_t*' to `float*' for argument `3' to `int speex_decode(void*, SpeexBits*, float*)' speex_decoder.cpp:262: error: cannot convert `int16_t*' to `float*' for argument `1' to `void speex_decode_stereo(float*, int, SpeexStereoState*)' make[4]: *** [speex_decoder.lo] Error 1 make[4]: *** Waiting for unfinished jobs.... make[4]: Leaving directory `/tmp/portage/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2/akode/plugins/xiph_decoder' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/tmp/portage/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2/akode/plugins' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/tmp/portage/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2/akode' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/portage/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2' make: *** [all] Error 2 Expected Results: If the "speex" USE flag is set, speex should be pulled in as a dependency. If the "-speex" USE flag is set, the the build should really not use speex, and avoid the aformentioned errors. (And if speex is in fact a hard depenency, what do we have a deceptive USE flag for then?) Here is my portage info: Portage 2.0.51-r8 (default-linux/x86/2004.0, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.9 i686) ================================================================= System uname: 2.6.9 i686 AMD Athlon(tm) XP 2400+ Gentoo Base System version 1.6.7 Python: dev-lang/python-2.3.4 [2.3.4 (#1, Jun 11 2004, 07:12:52)] dev-lang/python: 2.3.4 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.8.5-r2, 1.5, 1.4_p6, 1.6.3, 1.7.9, 1.9.3 sys-devel/binutils: 2.15.92.0.2-r2 sys-devel/libtool: 1.5.10-r1 virtual/os-headers: 2.6.8.1-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=i686 -mtune=athlon-xp -O3 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/share/config:/usr/kde/3.3/env:/usr/kde/3.3/shutdown /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/share/config/usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi//var/qmail/alias /var/qmail/control /var/vpopmail/domains /var/vpopmail/etc" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=i686 -mtune=athlon-xp -O3 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/tmp/portage" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X alsa apache2 apm avi berkdb bitmap-fonts cdparanoia cdr crypt cups encode esd f77 fam flac foomaticdb fortran gd gdbm gif gnome gphoto2 gpm gtk gtk2 guile imagemagick imap imlib ipv6 jack java jpeg junit kde kerberos ldap libg++ libwww mad mikmod mmx motif mozilla mpeg mysql ncurses nls nvidia odbc oggvorbis opengl oss pam pdflib perl png python qt quicktime readline ruby samba sdl slang snmp spell sse ssl svga tcltk tcpd tetex tiff truetype usb x86 xml xml2 xmms xv zlib" And here is my complete log of the build: http://www.cs.iastate.edu/~neilfunk/kdemultimedia_speex_error.txt (One important thing omitted in the log above is that portage does indeed acknowledge the state of my speex USE flag before the build begins.)
It's true that kdemultimedia does not respect the speex USE flag, and speex support is compiled in if and only if it is autodetected by configure. But your compilation error comes after kdemultimedia has detected that speex _is_ installed on your system: from the ./configure output: checking for speex headers... yes checking for speex_decoder_ctl in -lspeex... yes checking for speex11 headers... yes checking for speex_decode_int in -lspeex... no What's strange is that given that ./configure output, you should have #define HAVE_SPEEX 1 #define HAVE_SPEEX11 1 /* #undef BROKEN_SPEEX11 */ in your /var/tmp/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2/config.h and then, reading akode/plugins/xiph_decoder/speex_decoder.cpp (line ~250): #if defined(HAVE_SPEEX11) && !defined(BROKEN_SPEEX11) speex_decode_int(m_data->dec_state, &m_data->bits, m_data->out_buffer); #else speex_decode(m_data->dec_state, &m_data->bits, m_data->out_buffer); #endif the function speex_decode_int() should be compiled, while it seems speex_decode() is compiled instead, and compilation fails.
Hmm. I'm heading moving home today so I won't have time to check that stuff till sunday, but when I do I'll let you know. Thanks for looking into this with me.
Well, this might have been my mistake :-[ I found that I somehow had speex headers in /usr/local/include even though I did not have speex installed. I don't know how they got there, but it's unlikely that this is any fault of kdemultimedia. Sorry about initially marking this as a blocker; I misunderstood the meaning. I think this bug can be closed, but I'll leave that up to someone who knows more about this than I. Thank you for your help.
closing.
I have pretty much the same problem. I have speex 1.0.2 installed (even reemerged it), but still speex_decode_int in -lspeex seems to be missing and leading to kdemultimedia compile failiour. Donnow exactly where, but somewhere something is broken for sure. Could someone reopen & possibly change bugsummary to something more apropriate? make[4]: Entering directory `/var/portage/tmp/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2/akode/plugins/xiph_decoder' /bin/sh ../../../libtool --silent --mode=compile --tag=CXX i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../akode/lib -I/usr/kde/3.3/include -I/usr/qt/3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_DEBUG -O2 -mcpu=athlon-xp -O2 -pipe -fomit-frame-pointer -fstack-protector -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -c -o flac_decoder.lo flac_decoder.cpp /bin/sh ../../../libtool --silent --mode=compile --tag=CXX i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../akode/lib -I/usr/kde/3.3/include -I/usr/qt/3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_DEBUG -O2 -mcpu=athlon-xp -O2 -pipe -fomit-frame-pointer -fstack-protector -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -c -o speex_decoder.lo speex_decoder.cpp /bin/sh ../../../libtool --silent --mode=compile --tag=CXX i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../akode/lib -I/usr/kde/3.3/include -I/usr/qt/3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_DEBUG -O2 -mcpu=athlon-xp -O2 -pipe -fomit-frame-pointer -fstack-protector -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -c -o vorbis_decoder.lo vorbis_decoder.cpp /bin/sh ../../../libtool --silent --mode=compile --tag=CXX i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../akode/lib -I/usr/kde/3.3/include -I/usr/qt/3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_DEBUG -O2 -mcpu=athlon-xp -O2 -pipe -fomit-frame-pointer -fstack-protector -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -c -o xiph_decoder.lo xiph_decoder.cpp speex_decoder.cpp: In member function `virtual bool aKode::SpeexDecoder::readFrame(aKode::AudioFrame*)': speex_decoder.cpp:251: error: cannot convert `int16_t*' to `float*' for argument `3' to `int speex_decode(void*, SpeexBits*, float*)' speex_decoder.cpp:262: error: cannot convert `int16_t*' to `float*' for argument `1' to `void speex_decode_stereo(float*, int, SpeexStereoState*)' make[4]: *** [speex_decoder.lo] Fel 1 make[4]: Leaving directory `/var/portage/tmp/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2/akode/plugins/xiph_decoder' make[3]: *** [all-recursive] Fel 1 make[3]: Leaving directory `/var/portage/tmp/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2/akode/plugins' make[2]: *** [all-recursive] Fel 1 make[2]: Leaving directory `/var/portage/tmp/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2/akode' make[1]: *** [all-recursive] Fel 1 make[1]: Leaving directory `/var/portage/tmp/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2' make: *** [all] Fel 2 !!! ERROR: kde-base/kdemultimedia-3.3.2 failed. !!! Function kde_src_compile, Line 166, Exitcode 2 !!! died running emake, kde_src_compile:make !!! If you need support, post the topmost build error, NOT this status message. --------- checking for vorbis headers... yes checking for ov_test_callbacks in -lvorbisfile... yes checking for speex headers... yes checking for speex_decoder_ctl in -lspeex... yes checking for speex11 headers... yes checking for speex_decode_int in -lspeex... no
To try to fix this I tried emerging various unstable speex versions After emergin 1.0.3 it still failed. After emergin 1.1.5 it worked. I would thus assume that kdemultimedia 3.3.2 actually needs a Speexversion of 1.1.5 (or higher?) to work. Thus ebuild dependency version bug?