Sorry, I do not value($$$) your privacy. :^) — Privacy Policy

non-XOrg Wayland

Warning: This is Wayland without any of libX11 or related (ie. libGL.so instead of libOpenGL.so) in the system, this also removes the XWayland compatibility layer as it's an xorg-server component.
You can find this kind of similar setup in embedded systems (ie. SailfishOS), as X11 makes no sense outside of keyboard+mouse setups, but I don't expect it until a bunch of years for regular desktops (say when X.Org will have died), I'm doing this right now to avoid having to rush to get rid of X11 with having to push the End-of-Life date way back it's upstream date (that happened with python-2 because it wasn't much prepared until the last year or two).
It's also the kind of setup that I expect soon in security-oriented systems because Wayland addresses a number of design flaws.

Testing is done on Gentoo Linux with USE="-X -XWayland" and -DEGL_NO_X11 into the C(XX)FLAGS. And launched into the Sway compositor.

Reminder:

static linking
(LDFLAGS="-static") some of the library is copied in the executable
shared linking
(LDFLAGS="-shared") system library like ld-linux-x86-64.so.2 loading the libraries before execution
dynamic linking loading
(dlopen()) loading a library during the execution

NoVidya reminder

Do not ask Libre software developers for support of the NVidia proprietary driver, specially when they already refused, the driver being proprietary means that any bug found has to be worked around, which often isn't possible without compromising performance and stability.

Also, in terms of history:

Buildsystems

I've yet to see one work correctly out of the box for this. The snippets in this section Abandons all copyrights if it could even begin to be copyrightable, as I can't assign to the Public Domain in France, they are distributed under any OSI/FSF-approuved license including CC-0, WTFPL, Unlicense and BSD-0.

CMake

  1. Replace find_package(OpenGL REQUIRED) to something like find_package(OpenGL COMPONENTS OpenGL REQUIRED). This allows to not error out when libGL.so isn't found but libOpenGL.so is.
  2. Replace OPENGL_gl_LIBRARY to OPENGL_opengl_LIBRARY. This will allow to use libOpenGL.so over libGL.so when possible.

Auto*hell

Use something like the following:

AC_CHECK_HEADER(
	[GL/gl.h],
	AC_SEARCH_LIBS(glBegin, [opengl32 GL GL2 OpenGL], [test $ac_cv_search_glBegin = "none required" || GL_LIBS="$ac_cv_search_glBegin $GL_LIBS"], [AC_MSG_ERROR(*** OpenGL library not found on system!)]),
	[AC_MSG_ERROR(*** OpenGL headers not found on system!)]
)

meson

Nice fail of an otherwise nice mainly declarative buildsystem there…

gl_dep = dependency('gl', required: false)
if not gl_dep.found()
  # libglvnd fallback for libX11-less wayland systems
  gl_dep = dependency('opengl')
endif

Librairies

Web Browsers

Games

Just Works

Needed a bit of work

Doesn't works

Multimedia

Emulator / Compat-layer

Misc

See Also

Own Gentoo Pull Requests