On Thu, 19 Aug 2021 at 13:57:30 +0200, Chris Hofstaedtler wrote:
> What do you all think? Will we see crashes in third party software
> (Steam, et al) again?

If libcryptsetup is opened with dlopen then that's probably OK.

If libcryptsetup is opened with an ordinary DT_NEEDED dependency,
I think we are going to see crashes again.

> To quote Simon's list:
> > - enabling the feature, but via dlopen rather than linking libcryptsetup
> >   normally (the developer who added verity support to util-linux seemed
> >   to be in favour of this, although I've lost the relevant tab and can't
> >   find a URL right now, sorry)

This appears to have been implemented since v2.36 if you build
--with-cryptsetup=dlopen, although it is documented as a "temporary
workaround" in the release notes.

> > - json-c, libjansson and json-glib *all* gaining versioned symbols
> >   (but the maintainer of json-glib has previously rejected requests to
> >   add versioned symbols, and this doesn't work unless all three libraries
> >   do it)

json-c and json-glib have been fixed, but libjansson has not. So this
will maybe be OK if json-c (used by libcryptsetup) and json-glib end up
in the same process, but it will not be OK if json-c and libjansson end up
in the same process.

libjansson has been fixed upstream, but the fixed version has not been
released. https://bugs.debian.org/966398,
https://github.com/akheron/jansson/issues/523

For this to have an effect, programs and "larger" libraries that use
json-c and json-glib (and libjansson, if fixed) also need to have been
recompiled since the versioned symbols were introduced.

> > - at least two of json-c, libjansson and json-glib renaming their public
> >   symbols

I think we can safely say this will not happen.

> > - GLib moving from normal linking of libmount to dlopen with RTLD_LOCAL

I don't think this will happen either.

> > - changing how Steam links OpenSSL (we cannot do this unilaterally, only
> >   its upstream maintainers can)

I tried, but this has not happened successfully. Reading between the lines,
I think the build system for the proprietary parts of Steam might be too
spaghetti to make this straightforward.

    smcv

Reply via email to