On 9/23/24 8:52 PM, Mitchell Dorrell wrote: > I run a lean X system for desktop workflows, with USE="-wayland". > Every unconditional dev-libs/wayland dependency I've encountered has > used dlopen. These were proprietary binary applications like Zoom and > Slack. On an X system, they work completely fine without > dev-libs/wayland, though. If I remember correctly, the word was, > "Upstream says it's a dependency, so it's a dependency.". > > The moral of that story is, an unconditional dependency on Wayland > *does not mean* that it isn't fully functional without > dev-libs/wayland.
I took a look at Gentoo's net-im/zoom package as an example. It has USE=wayland. If you disable wayland support, it deletes: - /opt/zoom/cef/libGLESv2.so conditional on the bundled Qt: - /opt/zoom/Qt/lib/libQt5Wayland*.so* - /opt/zoom/Qt/plugins/wayland* - /opt/zoom/Qt/plugins/platforms/libqwayland*.so - /opt/zoom/Qt/qml/QtWayland including comments such as "Soname dependency on libwayland-client.so.0" (for libGLESv2, which doesn't actually seem to be accurate?) I did say "usually" for a reason. Proprietary software has a dual habit of: - statically linking to support libraries such as say, libwayland-client - going to extremes to defer loading libraries which they don't bundle, behind dlopen conditionals to make it more likely it will run on diverse end user systems This is typically just not the case for open source software, because they can rely on package manager distribution with enforced dependencies, and people rebuilding from source if they don't want a specific dependency. And of course: compiling against libwayland-client and hiding it behind a dlopen still requires you to have what to compile against as a build dependency, making it less attractive to people that know the software can simply be recompiled from source. slack does indeed have only one dependency on dev-libs/wayland that I can find -- it comes from https://swiftshader.googlesource.com/SwiftShader/+/a88d056919f1a84777c8b33531f40acc74a19d1e%5E%21/ Previously, slack was modified to have an unconditional RDEPEND on wayland via https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0328dbab456f04c57b286cf93235f7323c7c5a0f The commit message indicates exactly why it was added and it was not "upstream says it's a dependency, so it's a dependency". :) Please open a bug report for it. Thanks. ... Overall I think that these phantom wayland dependencies are an artifact of Electron's constant churn and the fact that every application using electron basically bundles its own inconsistent copy of it. -- Eli Schwartz
OpenPGP_signature.asc
Description: OpenPGP digital signature