On Thu, 25 Oct 2018 09:30:00 +0300 Nikos Chantziaras wrote: > Trying to rebuild media-sound/pavucontrol or any other package that uses > dev-cpp/cairomm (like pulseeffects) will fail with: > > /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: > > /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib64/libcairomm-1.0.so: > undefined reference to `cairo_script_create' > > and a bunch of other "undefined reference" errors in libcairomm-1.0.so. > I don't know what broke cairomm. But I thought revdep-rebuild would > catch this. It doesn't. > > Now this is a rebuild of pavucontrol, so if I run: > > ldd -r /usr/bin/pavucontrol > > I will get: > > undefined symbol: cairo_script_create_for_stream > (/usr/lib64/libcairomm-1.0.so.1) > undefined symbol: cairo_script_set_mode (/usr/lib64/libcairomm-1.0.so.1) > undefined symbol: cairo_script_surface_create > (/usr/lib64/libcairomm-1.0.so.1) > undefined symbol: cairo_script_from_recording_surface > (/usr/lib64/libcairomm-1.0.so.1) > undefined symbol: cairo_script_create (/usr/lib64/libcairomm-1.0.so.1) > undefined symbol: cairo_script_surface_create_for_target > (/usr/lib64/libcairomm-1.0.so.1) > undefined symbol: cairo_script_get_mode (/usr/lib64/libcairomm-1.0.so.1) > undefined symbol: cairo_script_write_comment > (/usr/lib64/libcairomm-1.0.so.1) > > If I rebuild dev-cpp/cairomm manually (emerge -1 dev-cpp/cairomm), the > error goes away, and the affected packages can now be emerged successfully. > > Shouldn't revdep-rebuild catch this problem? Shouldn't it check > installed binaries for "undefined symbol" errors?
revdep-rebuild catches libraries from removed packages (including removed older versions) still in use by other packages. Though with proper subslot dependencies revdep-rebuild is rarely needed. If for some reason library containing required symbol was forcefully removed, revdep-rebuild cannot magically recreate that symbol. Best regards, Andrew Savchenko
pgpAJrxuaNyXT.pgp
Description: PGP signature