libmount dependency is problematic now that libmount has non-trivial dependencies
The util-linux source package in development versions of Debian and Ubuntu recently added cryptsetup support to libmount, which means we have these dependency chains:
- GIO -> libmount -> libcryptsetup -> OpenSSL
- GIO -> libmount -> libcryptsetup -> json-c
The OpenSSL dependency is problematic for anything that uses GLib/GTK and statically links OpenSSL, which seems to be somewhat common in proprietary software (Steam and Minecraft are known to be affected).
The json-c dependency is problematic for anything that links a different JSON library, because approximately everything that parses JSON in C seems to use the json_
namespace, so json-c collides with libjansson and with GNOME's own json-glib (see also json-glib#33 (closed)).
One way to mitigate this might be if the libmount integration happened in a dlopened module that was loaded with RTLD_LOCAL
.
(Another would be for low-level libraries like libmount not to add non-trivial dependencies.)