Xwayland 26.1.0 rc1
Announcement: Xwayland 26.1.0 rc1
Date: Wednesday, August 19, 2026, 13:37:02 UTC
Author: Olivier Fourdan (ofourdan at redhat.com)
[!IMPORTANT] As per the established development timeline, I am pleased to announce the release of Xwayland 26.0.99.901. This version serves as the initial release candidate for the upcoming standalone version (commonly referred to as Xwayland 26.1.0 rc1).
🚀 Key Enhancements & Changes
Since the release of Xwayland 24.1, several significant modifications have been implemented. The following table summarizes the most notable updates:
| Feature | Change Description | Detail/Flag |
|---|---|---|
| EGLStream | N/A | |
| Clipboard | Rootful Xwayland now features a bridge for clipboard/primary selection | Use -clipboard |
| Multi-seat | Wayland seats and devices are now mirrored into an XInput 2 hierarchy | via Xi2 |
wl_fixes | Added support for specific protocol fixes | destroy_global & ack_global_remove |
| RandR | Emulation now prioritizes native modes (up to physical res) | Rotation is now considered |
| Fullscreen | Rootful fullscreen now defaults to actual output resolution | No longer scales from |
| System Bell | Integration with xdg-system-bell | Uses Wayland system-bell protocol |
Release Workflow
🛠 Testing & Bug Reporting
Community feedback is essential for a stable release. Please participate in the testing phase:
- Install Xwayland 26.1.0 rc1.
- Verify clipboard bridging with the
-clipboardflag. - Test multi-seat configurations via
Xi2. - Report any regressions or bugs.
Issue Tracker: https://gitlab.freedesktop.org/xorg/xserver/-/issues
📜 Comprehensive Change Logs
The following logs detail all modifications since the inception of the xwayland-24.1 branch (spanning over two years). Note: Some entries pertain to general Xserver components rather than Xwayland specifically.
Contributions by Aki Sakurai
xquartz: Resolved compilation issues.xquartz: Fixed the inverted Y tilt for tablet pens on macOS.
Contributions by Alan Coopersmith
🖥️ Core & OS Integration
xf86_OSlib.h: Removed unnecessary Solaris keyboard headers.solaris: Migrated APM interfaces to official SRN interfaces.os: Implementation ofgetaddrinfo()andinet_ntop()for IPv4/IPv6 handling.os: Transitioned toEVP APIswhen utilizing OpenSSL 3.os: RemovedBUGADDRESSdefinition.xfree86: Fixed 64-bit Solaris/SPARC build issues.
⚙️ Build System (Meson & CI)
CI: Updatedxcbutility libraries to versions with valid submodule URLs.CI: Switchedlibdecorsource fromgnome.orgtofd.o.CI: Bumpedlibdecorfrom0.1.00.1.1.CI: Upgradedmesonfrom0.56.2to1.0.0(bullseye-backports).CI: UpdatedXTSto a commit removing the-fcommonworkaround.CI: Enabledxf86bigfontin specific build configurations.meson: Addedxprotoheader version requirements toxorg-server.pc.meson: Ensuredxselinuxis not built ifxaceis disabled.meson.build: IncludedXephyrin the DDX build output.compiler.h: Eliminated Sun compiler platform define translations togcc.meson: FixedAF_INET6checks for stricter compilers.
🛠️ DIX (Device Independent X)
dix: Addedcalloc()failure checks inXievent conversion.dix: Fully initializedlocal_closureinPolyText.dix: FixedSetFontPathto avoid settingerrorValueon success.dix: Resolved implicit fallthrough warnings inenterleave.c.dix: Fixed a null pointer dereference inCreateScratchGC.dix: Prevented memory leaks inInitPredictableAccelerationSchemeupon failure.dix: Added a check to preventmemcpyifmallocfails indixChangeWindowProperty.dix: OptimizedProcListPropertiesto skip work whennumProps == 0.dix: Switched to unsigned integers for bit shifting inHashResourceID.dix: Added NULL check forGetMasterinGetPairedDevice.dix: Fixed implicit fallthrough inFindBestPixel.dix: Implemented__builtin_popcountlto replaceOnes().dix: Corrected button offsets forDeviceButtonStateNotifyevents.dix: Capped checks atMAX_VALUATORSforXievents.
⌨️ Input & Keyboard (Xi, xkb)
Xi: Prevented NULL pointer dereference whenGetXTestDevicefails.xkb: FixedXkbAllocNamesto setnum_rgto 0 on allocation failure.xkb: Replacedsprintfwithsnprintfinxkbtext.c.xkb: IntroducedtbGetBufferStringhelper.
📺 Display & Rendering (Modesetting, Render, Panoramix)
render: Fixed NULL pointer dereference inPictureFindVisual.modesetting: Fixed memory leak inms_present_check_unflip().modesetting: Fixed typo inXF86ModuleVersionInfo.modesetting: Fixed builds whenpciaccessorudev_kmsare disabled.modesetting: Fixed symbol tests whenglxis disabled.panoramix: Fixed null dereferences inPanoramiXMaybeAddDepth()andPanoramiXConsolidate().mi: Adopted a common bit counting function implementation.render: Removed unnecessary header guard macros inmiindex.c.
📄 Documentation & Man Pages
Xserver.man: RemovedX FireWall Proxy (xfwp)details.Xserver.man: Updated default font path to allow line breaks.Xserver.man: AddedXwayland(1)to server-specific pages.Xserver.man: Corrected authorization protocol listings.man pages: General cleanup of trailing whitespace and.PPmacros.XWin.man: Fixed font change escape typos.man pages: Removed.BImacro usage for single arguments.Xephyr.man: Switched Unicode dashes to ASCII hyphens (\-).
📦 Miscellaneous
xfree86: Fixed memory leaks onreallocfailure.xfree86: Updatedmodeline2c.awkto ensure trailing newlines.pkgconfig: Added URL to files.dix-config.h: AddedHAVE_SOCKLEN_TandHAVE_STRUCT_SOCKADDR_STORAGEforxtrans 1.6.test: Removed stray semi-colons and extra returns.Xace: Provided hook function definitions for whenxaceis disabled.xwayland: Fixed builds withxacedisabled.xf86bigfont: Fixed-Wimplicit-function-declarationand-Werror=unused-variableerrors.test: Added unit tests forx_sha1_*functions inos/xsha1.c.
/* Example of the logic used for the new clipboard bridge */
if (xwayland_rootful_enabled && clipboard_bridge_active) {
bridge_selection(WAYLAND_SELECTION, X11_SELECTION);
}