Package: mumble
Version: 1.2.3-349-g315b5f5-2.2
Severity: wishlist

--- Please enter the report below this line. ---

Ron --

Mumble upstream replied to a bug I submitted to them concerning the OpenGL bug 
that was dealt with in #691535 and after investigating they came up with a 
different solution.


-----------------------------------------------------------------

libmumble.so as built fresh from Git is meant to work without
being linked to libGL. It overrides glXSwapBuffers (via traditional
LD_PRELOAD or by hooking into dlopen/dlsym), and will only ever
call OpenGL functions in the glXSwapBuffers call -- so OpenGL
functions will only be invoked if the process by some means
has loaded libGL (or equivalent) anyway.

This is the way it has worked for a long time.

While looking into this, I also found out why it doesn't work
that way for Debian anymore. The reason is that the rules file
sets DEB_BUILD_HARDENING=1 which, among other things, causes all
built binaries to be linked with "-z now". This causes all dynamic
symbols to resolved when the program is loaded.

In our normal build, we use "-z now" for all binaries and shared
libraries, except libmumble.so -- because we want the behavior
of a lightweight LD_PRELOADable library I described above.

I have updated the debian/rules file in our Ubuntu PPA with a fix
for this:

https://github.com/mumble-voip/mumble-ubuntu-
ppa/commit/8756933f3a18cec4f24ca885d5c33118cc10bddf

I set DEB_BUILD_HARDENING_BINDNOW=0, and let the Mumble build link
using "-z now" for the binaries it knows are OK with having load-time
symbol resolving.

Regarding the current Debian fix of linking directly with libGL,
I don't see too much harm. The Linux overlay only supports GLX
at present, so direct linking doesn't hurt in that regard. But
were the overlay to support a non-GLX OpenGL implementation in
the future, alongside the current GLX support, direct linking
probably wouldn't work out favourably.

Our preferred method however is still the lightweight LD_PRELOAD-able
overlay library which only links against libc and friends. That
way, we don't potentially bring in unwanted dependencies with us
when we're LD_PRELOADED into foreign programs, and we let the
environment of the foreign program guide our decisions.


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to