1 |
On Thu, 25 Oct 2018 09:30:00 +0300 Nikos Chantziaras wrote: |
2 |
> Trying to rebuild media-sound/pavucontrol or any other package that uses |
3 |
> dev-cpp/cairomm (like pulseeffects) will fail with: |
4 |
> |
5 |
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: |
6 |
> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib64/libcairomm-1.0.so: |
7 |
> undefined reference to `cairo_script_create' |
8 |
> |
9 |
> and a bunch of other "undefined reference" errors in libcairomm-1.0.so. |
10 |
> I don't know what broke cairomm. But I thought revdep-rebuild would |
11 |
> catch this. It doesn't. |
12 |
> |
13 |
> Now this is a rebuild of pavucontrol, so if I run: |
14 |
> |
15 |
> ldd -r /usr/bin/pavucontrol |
16 |
> |
17 |
> I will get: |
18 |
> |
19 |
> undefined symbol: cairo_script_create_for_stream |
20 |
> (/usr/lib64/libcairomm-1.0.so.1) |
21 |
> undefined symbol: cairo_script_set_mode (/usr/lib64/libcairomm-1.0.so.1) |
22 |
> undefined symbol: cairo_script_surface_create |
23 |
> (/usr/lib64/libcairomm-1.0.so.1) |
24 |
> undefined symbol: cairo_script_from_recording_surface |
25 |
> (/usr/lib64/libcairomm-1.0.so.1) |
26 |
> undefined symbol: cairo_script_create (/usr/lib64/libcairomm-1.0.so.1) |
27 |
> undefined symbol: cairo_script_surface_create_for_target |
28 |
> (/usr/lib64/libcairomm-1.0.so.1) |
29 |
> undefined symbol: cairo_script_get_mode (/usr/lib64/libcairomm-1.0.so.1) |
30 |
> undefined symbol: cairo_script_write_comment |
31 |
> (/usr/lib64/libcairomm-1.0.so.1) |
32 |
> |
33 |
> If I rebuild dev-cpp/cairomm manually (emerge -1 dev-cpp/cairomm), the |
34 |
> error goes away, and the affected packages can now be emerged successfully. |
35 |
> |
36 |
> Shouldn't revdep-rebuild catch this problem? Shouldn't it check |
37 |
> installed binaries for "undefined symbol" errors? |
38 |
|
39 |
revdep-rebuild catches libraries from removed packages (including |
40 |
removed older versions) still in use by other packages. Though with |
41 |
proper subslot dependencies revdep-rebuild is rarely needed. |
42 |
|
43 |
If for some reason library containing required symbol was |
44 |
forcefully removed, revdep-rebuild cannot magically recreate that |
45 |
symbol. |
46 |
|
47 |
Best regards, |
48 |
Andrew Savchenko |