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

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to