Control: retitle -1 gtk3-nocsd: secondary arch libraries aren't
installed by default, causes unnecessary warnings
Control: tags -1 + confirmed help
Am 2016-05-10 13:24, schrieb Vincent Lefevre:
After compiling a program with "gcc -m32", running this program
yields:
ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be
preloaded (cannot open shared object file): ignored.
on stderr. This is an annoying error message, which can also break
scripts that check error output.
Yes, so the problem is that gtk3-nocsd sets
LD_PRELOAD=libgtk3-noscd.so.0.
That means that ld.so tries to preload the library - and there's
currently
now way of telling ld.so to not print an error and simply ignore and
entry
in LD_PRELOAD if it can't load it. (And you only have the amd64 version
installed.)
(For this reason the library is installed as mode 4644, to make ld.so
preload it even if the binary is setuid/setgid/has fscaps, otherwise
you'd
get the same message everytime you type 'ping' or 'su'. See the lintian
overrides of the package.)
gtk3-nocsd is Multi-Arch-aware though: you can install the
libgtk3-nocsd0
package on i386 (in addition to the native arch one that's already
installed on your system) and the message will disappear. (gtk3-nocsd is
Arch: all, libgtk3-nocsd0 is Arch: any and M-A: same.)
Unfortunately, I have no good solution how to improve that:
gtk3-nocsd should be as transparent as possible.
I agree fully - but I don't really see a good way how to solve it.
1. There's no Depends/Recommends: pkg:all-enabled-archs in APT
2. There's no way of telling ld.so "yeah, it's fine if this LD_PRELOAD
fails, just try it and if it doesn't work silently ignore it"
I could of course add a postinst debconf prompt to gtk3-nocsd so that if
multiple architectures are installed, but gtk3-nocsd isn't, the user
gets
a message and is asked to install libgtk3-nocsd0 for the other archs.
Would that be something you'd be OK with?
Do you have any other ideas?
Regards,
Christian