>>> package: media-libs/speex-1.2.0-r1 * - /usr/lib64/libspeex.so.1 * - /usr/lib64/libspeex.so.1.5.1 * used by /usr/lib64/libpjmedia-audiodev.so.2 (net-libs/pjproject-2.9-r2) * used by /usr/lib64/libpjmedia-codec.so.2 (net-libs/pjproject-2.9-r2) Reproducible: Always
Hi Daniel, Thanks for the report. I've looked at the ebuild, all looks to be OK, but I can't guarantee what happens in the configure script (I've had my battles with that one around ssl too). Just want to confirm steps to reproduce: emerge speex USE=-speex emerge pjproject Then check for linking against libspeex? Could you also please post me the output of: ldd /usr/lib64/libpjmedia-audiodev.so.2 ldd /usr/lib64/libpjmedia-codec.so.2 As well as provide me the build.log file for the merge please? (FEATURES=noclean emerge ... in $PORTAGE_TMPDIR/portage/net-libs/pjproject/temp)
(In reply to Jaco Kroon from comment #1) > Just want to confirm steps to reproduce: > > emerge speex > USE=-speex emerge pjproject > > Then check for linking against libspeex? Correct - both libraries below will be linked against libspeex even with USE=-speex, whenever is installed. > > Could you also please post me the output of: > > ldd /usr/lib64/libpjmedia-audiodev.so.2 ldd /usr/lib64/libpjmedia-audiodev.so.2 linux-vdso.so.1 (0x00007ffdde7b1000) libpjmedia.so.2 => /usr/lib64/libpjmedia.so.2 (0x00007ff8dd550000) libpj.so.2 => /usr/lib64/libpj.so.2 (0x00007ff8dd51f000) libilbccodec.so.2 => /usr/lib64/libilbccodec.so.2 (0x00007ff8dd50f000) libg7221codec.so.2 => /usr/lib64/libg7221codec.so.2 (0x00007ff8dd4fc000) libsrtp2.so.1 => /usr/lib64/libsrtp2.so.1 (0x00007ff8dd4e2000) libgsm.so.1 => /usr/lib64/libgsm.so.1 (0x00007ff8dd4d3000) libspeex.so.1 => /usr/lib64/libspeex.so.1 (0x00007ff8dd4b6000) libspeexdsp.so.1 => /usr/lib64/libspeexdsp.so.1 (0x00007ff8dd4a2000) libc.so.6 => /lib64/libc.so.6 (0x00007ff8dd2e7000) libpjlib-util.so.2 => /usr/lib64/libpjlib-util.so.2 (0x00007ff8dd2bf000) libpjnath.so.2 => /usr/lib64/libpjnath.so.2 (0x00007ff8dd293000) libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007ff8dcfd5000) libm.so.6 => /lib64/libm.so.6 (0x00007ff8dce90000) libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x00007ff8dcdfe000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007ff8dcdf5000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff8dcdd5000) /lib64/ld-linux-x86-64.so.2 (0x00007ff8dd5f8000) libz.so.1 => /lib64/libz.so.1 (0x00007ff8dcbbe000) libdl.so.2 => /lib64/libdl.so.2 (0x00007ff8dcbb7000) > ldd /usr/lib64/libpjmedia-codec.so.2 ldd /usr/lib64/libpjmedia-codec.so.2 linux-vdso.so.1 (0x00007ffd5ebf5000) libpjmedia.so.2 => /usr/lib64/libpjmedia.so.2 (0x00007f56394bd000) libpj.so.2 => /usr/lib64/libpj.so.2 (0x00007f563948c000) libilbccodec.so.2 => /usr/lib64/libilbccodec.so.2 (0x00007f563947c000) libg7221codec.so.2 => /usr/lib64/libg7221codec.so.2 (0x00007f5639469000) libsrtp2.so.1 => /usr/lib64/libsrtp2.so.1 (0x00007f563944f000) libgsm.so.1 => /usr/lib64/libgsm.so.1 (0x00007f5639440000) libspeex.so.1 => /usr/lib64/libspeex.so.1 (0x00007f5639423000) libspeexdsp.so.1 => /usr/lib64/libspeexdsp.so.1 (0x00007f563940f000) libc.so.6 => /lib64/libc.so.6 (0x00007f5639254000) libpjlib-util.so.2 => /usr/lib64/libpjlib-util.so.2 (0x00007f563922c000) libpjnath.so.2 => /usr/lib64/libpjnath.so.2 (0x00007f5639200000) libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007f5638f42000) libm.so.6 => /lib64/libm.so.6 (0x00007f5638dfd000) libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x00007f5638d6b000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f5638d62000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5638d42000) /lib64/ld-linux-x86-64.so.2 (0x00007f563956e000) libz.so.1 => /lib64/libz.so.1 (0x00007f5638b2b000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f5638b24000) > > As well as provide me the build.log file for the merge please? > (FEATURES=noclean emerge ... in > $PORTAGE_TMPDIR/portage/net-libs/pjproject/temp) If I rebuild in the near future I will add this. However, a quick glance at upstream's configure.ac indicates that there is a speex-codec option that is uncontrolled by the ebuild. I hope that helps. :)
(In reply to Daniel M. Weeks from comment #2) > If I rebuild in the near future I will add this. However, a quick glance at > upstream's configure.ac indicates that there is a speex-codec option that is > uncontrolled by the ebuild. I hope that helps. :) This statement is in fact incorrect, and this is actually what I checked for earlier. 17 CODEC_FLAGS="g711 g722 g7221 gsm ilbc speex l16" 69 for t in ${CODEC_FLAGS}; do 70 myconf+=( $(use_enable ${t} ${t}-codec) ) 71 done 81 LD="$(tc-getCC)" econf \ ... 100 "${myconf[@]}" This does however sound very similar to the issue we had with --{enable,disable}-ssl, and --enable-libwebrtc also ended up doing a disable... I sometimes wonder how far I can trust a library where such blatant obvious bugs exist in the configure stage for actually not having same bugs in actual code. And they really don't like taking patches. Actually looks like we might be facing another case of --without-external-speex really meaning --with-external-speex ... However, following your recipe, this is what I get from ./configure with USE=-speex ebuild pjproject-2.9-r2.ebuild clean configure: Checking if Speex codec is disabled...yes Checking if Speex codec is disabled...yes And none of the output from vi --with-external-speex stanza. So that at least looks good. If I proceed to compile, then find the related libs, this is what ldd hands me: jkroon@plastiekpoot /var/tmp/portage/net-libs/pjproject-2.9-r2/work/pjproject-2.9 $ ldd ./pjmedia/lib/libpjmedia-audiodev.so linux-vdso.so.1 (0x00007ffee9bde000) libpjmedia.so.2 => /usr/lib64/libpjmedia.so.2 (0x00007f3d99be4000) libpj.so.2 => /usr/lib64/libpj.so.2 (0x00007f3d99bb2000) libsrtp2.so.1 => /usr/lib64/libsrtp2.so.1 (0x00007f3d99b98000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3d99b78000) libasound.so.2 => /usr/lib64/libasound.so.2 (0x00007f3d99a9b000) libc.so.6 => /lib64/libc.so.6 (0x00007f3d998da000) libpjlib-util.so.2 => /usr/lib64/libpjlib-util.so.2 (0x00007f3d998af000) libpjnath.so.2 => /usr/lib64/libpjnath.so.2 (0x00007f3d99883000) libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007f3d995c6000) libm.so.6 => /lib64/libm.so.6 (0x00007f3d99490000) libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x00007f3d993fe000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f3d993f4000) /lib64/ld-linux-x86-64.so.2 (0x00007f3d99c6f000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f3d993ed000) libz.so.1 => /lib64/libz.so.1 (0x00007f3d993d3000) jkroon@plastiekpoot /var/tmp/portage/net-libs/pjproject-2.9-r2/work/pjproject-2.9 $ ldd ./pjmedia/lib/libpjmedia-codec.so linux-vdso.so.1 (0x00007ffc8b7e8000) libpjmedia.so.2 => /usr/lib64/libpjmedia.so.2 (0x00007fce3d8c5000) libpj.so.2 => /usr/lib64/libpj.so.2 (0x00007fce3d893000) libsrtp2.so.1 => /usr/lib64/libsrtp2.so.1 (0x00007fce3d879000) libc.so.6 => /lib64/libc.so.6 (0x00007fce3d6b8000) libpjlib-util.so.2 => /usr/lib64/libpjlib-util.so.2 (0x00007fce3d68f000) libpjnath.so.2 => /usr/lib64/libpjnath.so.2 (0x00007fce3d663000) libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007fce3d3a4000) libm.so.6 => /lib64/libm.so.6 (0x00007fce3d26e000) libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x00007fce3d1dc000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fce3d1d2000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fce3d1b2000) /lib64/ld-linux-x86-64.so.2 (0x00007fce3d94c000) libz.so.1 => /lib64/libz.so.1 (0x00007fce3d198000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fce3d191000) No linking against speex. So at this stage, I can't reproduce, in fact: jkroon@plastiekpoot /var/tmp/portage/net-libs/pjproject-2.9-r2/work/pjproject-2.9 $ find . -name "*.so" | xargs ldd | grep speex -i provides me no output.
(In reply to Jaco Kroon from comment #3) > > No linking against speex. So at this stage, I can't reproduce, in fact: > > jkroon@plastiekpoot > /var/tmp/portage/net-libs/pjproject-2.9-r2/work/pjproject-2.9 $ find . -name > "*.so" | xargs ldd | grep speex -i > > provides me no output. If USE=-speex then emerge will have no reason to install speex. Did you confirm you had speex installed before testing?
(In reply to Daniel M. Weeks from comment #4) > If USE=-speex then emerge will have no reason to install speex. Did you > confirm you had speex installed before testing? $ equery list -ipo speex * Searching for speex ... [IP-] [ ] media-libs/speex-1.2.0-r1:0 So currently this feels invalid for me, but giving you the benefit of the doubt to show me the error of my ways.
(In reply to Jaco Kroon from comment #5) > (In reply to Daniel M. Weeks from comment #4) > > If USE=-speex then emerge will have no reason to install speex. Did you > > confirm you had speex installed before testing? > > $ equery list -ipo speex > * Searching for speex ... > [IP-] [ ] media-libs/speex-1.2.0-r1:0 > > So currently this feels invalid for me, but giving you the benefit of the > doubt to show me the error of my ways. Sorry, I'm doing too many things at once and sent us down the wrong path at the beginning of comment #2. This happens with USE=speex emerge pjproject. The ebuild just needs to depend on media-libs/speexdsp *and* media-libs/speex when USE=speex.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8229ba0bc55796692fd469fa5a05e24a79e135be commit 8229ba0bc55796692fd469fa5a05e24a79e135be Author: Jaco Kroon <jaco@uls.co.za> AuthorDate: 2020-08-27 18:31:46 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2020-09-12 01:49:42 +0000 net-libs/pjproject: add dependency on media-libs/speex with USE=speex. Signed-off-by: Jaco Kroon <jaco@uls.co.za> Closes: https://bugs.gentoo.org/739242 Closes: https://github.com/gentoo/gentoo/pull/17286 Signed-off-by: Sam James <sam@gentoo.org> net-libs/pjproject/pjproject-2.9-r2.ebuild | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)