Xwayland 26.1.0 发布候选版1
摘要
Olivier Fourdan 宣布了 Xwayland 26.1.0 的首个发布候选版,包括更改如 EGLStream 移除、rootful 模式的剪贴板桥接、多座位支持以及各种错误修复,并请求进行测试。
暂无内容
查看缓存全文
缓存时间: 2026/08/19 22:11
# [公告] xwayland 26.0.99.901 源文件:https://lists.x.org/archives/xorg/2026-August/062280.html
**Olivier Fourdan** [ofourdan at redhat\.com](mailto:xorg%40lists.x.org?Subject=Re%3A%20%5BANNOUNCE%5D%20xwayland%2026.0.99.901&In-Reply-To=%3Ca5aa329b-6fb6-4c30-a89d-3457b8620098%40redhat.com%3E)
*2026年8月19日 星期三 13:37:02 UTC*
- 上一条消息(按线程):[\[公告\] xload 1\.2\.2](https://lists.x.org/archives/xorg/2026-August/062279.html)
- **消息排序方式:**[\[ 日期 \]](https://lists.x.org/archives/xorg/2026-August/date.html#62280)[\[ 线程 \]](https://lists.x.org/archives/xorg/26-August/thread.html#62280)[\[ 主题 \]](https://lists.x.org/archives/xorg/2026-August/subject.html#62280)[\[ 作者 \]](https://lists.x.org/archives/xorg/2026-August/author.html#62280)
---
```
按照计划,我荣幸地宣布 Xwayland 26.0.99.901 发布,这是即将发布的独立版 Xwayland 26.1.0 版本的第一个候选版本(简称 Xwayland 26.1.0 rc1)。
自 Xwayland 24.1 以来的一些显著变化包括:
* 移除了 EGLStream 支持。
* Xwayland rootful 实现了剪贴板/主选择区桥接功能(通过 "-clipboard" 启用),允许在 rootful Xwayland 与 Wayland 桌面其他部分之间进行复制/粘贴操作。
* 通过 Xi2 支持多座位:Wayland 座位及其设备被映射到 XInput 2 层级结构中。
* 支持 "wl_fixes",即 destroy_global 和 ack_global_remove。
* RandR 模拟现在更倾向于使用原生模式直至物理分辨率,并且模拟模式现在考虑了旋转。
* Xwayland rootful 全屏模式默认使用实际输出分辨率,而非将 640x480 分辨率放大。
* 支持 xdg-system-bell:当合成器支持时,Xwayland 现在通过 Wayland 系统提示音协议发出系统提示音。
非常感谢对这个候选版本进行测试。请在 https://gitlab.freedesktop.org/xorg/xserver/-/issues 报告任何问题。
以下简短日志包含了自上一个 xwayland-24.1 分支首次创建以来(两年多前)的所有更改,但并非所有更改都与 Xwayland 相关:
Aki Sakurai (2):
xquartz: 修复编译问题
xquartz: 修复 macOS 上数位板笔 Y 轴倾斜反转的问题
Alan Coopersmith (190):
xf86_OSlib.h: 此处无需包含 Solaris 键盘头文件
solaris: 将 APM 接口转换为官方 SRN 接口
CI: 将驱动标签检出到构建目录
将 sizeof 移至 calloc 调用的第二个参数
meson: 使 AF_INET6 检查在更严格的编译器标志下工作
compiler.h: 移除 Sun 编译器平台定义到 gcc 的转换
移除对 SVR4 之前 SysV 版本的支持残留
移除对除 Solaris 和 illumos 外 SVR4 系统的支持残留
dix: 在 Xi 事件转换例程中检查 calloc() 失败
dix: PolyText: 完全初始化 local_closure
dix: SetFontPath: 成功时不设置 errorValue
dix: enterleave.c: 修复隐式穿透警告
dix: CreateScratchGC: 避免解引用我们刚刚设为 NULL 的指针
dix: InitPredictableAccelerationScheme: 失败时避免内存泄漏
dix: dixChangeWindowProperty: malloc 失败时不调用 memcpy
dix: ProcListProperties: 如果 numProps 为 0 则跳过不必要的工作
dix: HashResourceID: 对位移使用无符号整数
dix: GetPairedDevice: 检查 GetMaster 是否返回 NULL
dix: FindBestPixel: 修复隐式穿透警告
CI: 更新 xcb 工具库到子模块 URL 正常的版本
CI: 从 fd.o 而非 gnome.org 克隆 libdecor
CI: 将 libdecor 从 0.1.0 更新到 0.1.1
CI: 将 meson 从 0.56.2 (bullseye) 更新到 1.0.0 (bullseye-backports)
meson: 在 xorg-server.pc 中列出 xproto 头文件所需版本
os: NextDPMSTimeout: 标记 switch 中的故意穿透
dix: 如果可用则使用 __builtin_popcountl 替换 Ones()
xfree86: realloc 失败时避免内存泄漏
Xi: 如果 GetXTestDevice 返回 NULL 则避免空指针解引用
render: 如果 PictureFindVisual 返回 NULL 则避免空指针解引用
dix: 生成 DeviceButtonStateNotify 事件时修复按钮偏移
dix: 生成 Xi 事件时将检查限制在 MAX_VALUATORS
modesetting: ms_present_check_unflip() 返回 FALSE 时避免内存泄漏
dix-config.h: 添加 HAVE_SOCKLEN_T 定义
os: 如果 getaddrinfo() 可用,即使禁用 IPv6 支持也使用它
os: 如果 inet_ntop() 可用,也用于 IPv4 地址
ci: 更新 XTS 到不需要 -fcommon 变通方案的提交
xkb: 确保 XkbAllocNames 在分配失败时将 num_rg 设为 0
xkb: 在 xkbtext.c 中将更多 sprintf 调用转换为 snprintf
xkb: 添加 tbGetBufferString 辅助函数
pkgconfig 文件: 添加 URL
dix-config.h: 为 xtrans 1.6 定义 HAVE_STRUCT_SOCKADDR_STORAGE
Xserver.man: 移除 X 防火墙代理 (xfwp) 信息
man pages: 使用 .BR 标记 man 手册引用
Xserver.man: 允许默认字体路径中出现换行
Xserver.man: 在服务器特定 man 手册列表中添加 Xwayland(1)
Xserver.man: 更正可用授权协议列表
xfree86: 使 modeline2c.awk 在 xf86DefModeSet.c 末尾放置换行符
test: 移除函数后多余的分号
modesetting: 修复 XF86ModuleVersionInfo 初始化中的拼写错误
test: 移除多余的返回
os: 移除未使用的 BUGADDRESS 定义
render: miindex.c 不需要头文件保护宏
mi: 使用位计数函数的通用实现
man pages: 去除尾随空格
man pages: 移除多余的 PP 宏
XWin.man: 修复字体更改转义中的拼写错误
man pages: 单个参数时不要使用 .BI 宏
Xephyr.man: 使用 \- 获取 ASCII 连字符而非 Unicode 破折号
重新导出 Ones()
xf86bigfont: 修复 -Wimplicit-function-declaration 错误
ci: 在一组构建中启用 xf86bigfont
xf86bigfont: 修复 -Werror=unused-variable 构建失败
xfree86: 使用 gcc -Wpedantic 修复构建
ci: 在启用大多数选项和禁用大多数选项的情况下运行构建
Xace: 当 xace 禁用时提供新钩子函数的定义
dix: 使用 meson -Dxace=false -Dwerror=true 修复构建
meson: 如果 xace 禁用则不构建 xselinux
modesetting: 当 pciaccess 或 udev_kms 禁用时修复构建
xwayland: 修复 xace 禁用时的构建
modesetting: 当 glx 禁用时修复 modesetting 符号测试
meson.build: 在输出我们正在构建的哪个 ddx 中包含 Xephyr
panoramix: 避免 PanoramiXMaybeAddDepth() 中的空指针解引用
panoramix: 避免 PanoramiXConsolidate() 中的空指针解引用
test: 为 os/xsha1.c 中的 x_sha1_* 函数添加单元测试
os: 使用 OpenSSL 3 构建时使用 EVP API
xfree86: 修复在 64 位 Solaris/SPARC 系统上的 meson 构建
xfree86: 为在 Solaris/SPARC 上构建 sun_init.c 添加缺失的头文件
meson: 如果启用了 shmfence 但未启用 dri3 和 xwayland 则修复构建
xfree86: 修复 SPARC Sbus 探测代码中的 -Wdiscarded-qualifiers 警告
从源文件中去除尾随空格
Xext/shm: 避免 ShmInitScreenPriv() 中的空指针解引用
Xext/sync: 如果 SysCounterGetPrivate() 返回 NULL 则避免空指针解引用
Xext/sync: 避免 init_system_idle_counter() 中的空指针解引用
Xext/sync: malloc() 失败时避免解引用无效指针
Xext/vidmode: 如果 VidModeCreateMode() 分配失败则避免空指针解引用
Xext/xres: 避免 ProcXResQueryClients() 中的空指针解引用
Xext/xselinux: 为 ProcSELinuxListSelections() 添加快速路径
Xext/xselinux: 避免 SELinuxAtomToSID() 中的内存泄漏
Xext/xtest: 避免 ProcXTestFakeInput() 中的空指针解引用
Xi: 如果 wOtherInputMasks() 返回 NULL 则避免空指针解引用
Xi: 在 CopySwapKbdFeedback() 中设置 led_values 的值
Xi: 处理 ProcXGetDeviceDontPropagateList() 中的分配失败
Xi: 处理 ProcXListInputDevices() 中的分配失败
Xi: 处理 add_master_func() 中的分配失败
dix: 处理 DeviceFocusEvent() 中的分配失败
dix: 如果 wOtherInputMasks() 返回 NULL 则避免空指针解引用
dix: 断言要交换的缓冲区大小是交换大小的倍数
dix: 处理 ChangeWindowDeviceCursor() 中的分配失败
dix: 避免 ProcListProperties() 中的内存泄漏
dri: 防止 dri3_fd_from_pixmap 中的越界读取
glamor: 处理 GetPictureScreenIfSet() 可能返回的 NULL
glamor: 处理 glamor_create_pixmap() 中的分配失败
glamor: 消除 glamor_validate_gc() 中的误报
glamor: 处理 glamor_largepixmap.c 中的分配失败
glamor: 避免 glamor_dash_setup() 中的空指针解引用
glamor: 避免 glamor_composite_clipped_region() 中的空指针解引用
glamor: 避免 glamor_make_pixmap_exportable() 中的双重释放
创建 SECURITY.md 文件
dix: ChangeGCXIDs() 中 XID 查找失败时正确设置 errorValue
os: 使 FormatInt64() 正确处理 LONG_MIN
xfree86: 移除残留的 ev56.c 源文件
gitlab CI: 将主分支添加到 check-commits 的例外列表
xfree86: 如果配置中列出了过多的时钟条目则发出错误
os: 添加通用 -verbose 选项,而非让每个服务器添加自己的选项
os: 修复使用 Nettle 4.0 时的 sha1 构建错误
ephyr: 在 Xephyr man 手册中添加 -title
ephyr: 在 Xephyr man 手册中添加 -name
ephyr: 在用法输出中显示 -name 和 -title 接受非可选参数
CI: 更新 cross-prereqs-build.sh 中 freetype 和 font/util 的 URL
CI: 更新到 libX11 1.8.2 并在 cross-prereqs-build 中移除 -fcommon 变通方案
os: 在 xserver_poll.h 中的 mingw 上使用 winsock2.h 定义
os: 在 ospoll.c 中包含
CI: 将 debian 镜像从 bullseye (11) 更新到 bookworm (12)
meson: 添加 install_tags 到 meson 无法自行猜测的文件
meson: 将 join_paths() 替换为 / 操作符
xf86: 修复 platform_noop.c 中的热插拔头文件包含
CI: 在 whitespace-check.py 中捕获 UnicodeDecodeError
glx: 避免 validGlxFBConfigForWindow() 中的空指针解引用
Xvfb: 处理 vfbInstallColormap() 中的分配失败
fb: 消除 fbOverlayCopyWindow() 中的 -Wanalyzer-out-of-bounds 警告
os: 处理 set_font_authorizations() 中的内存分配失败
os: 处理 get_mcast_options() 中的内存分配失败
present: 防止 present_create_notifies() 中的内存泄漏
randr: 处理 ProcRRGetOutputInfo() 中的 -Wanalyzer-null-dereference
randr: 处理 ProcRRListProviderProperties() 中的 -Wanalyzer-null-dereference
randr: 处理 ProcRRGetScreenInfo() 中的 -Wanalyzer-null-dereference
render: 处理 AllocateGlyphHash() 中的 -Wanalyzer-null-dereference
tests: 修补 compute_expected_damage() 中的结果泄漏
tests: 处理 damage/primitives.c 中的 -Wanalyzer-possible-null-dereference
xf86: 从默认的 Intel 驱动程序列表中删除不再需要的条目
xkb: 处理 XkbDDXLoadKeymapByNames() 中的 -Wanalyzer-null-dereference
xkb: 在 InitKeyboardDeviceStructInternal() 错误路径中修补内存泄漏
meson: 适当时为 xtrans 定义 BSD44SOCKETS 和 LOCALCONN
meson: 将最低支持版本提高到 meson 1.0.0
dix: 修复版权通知中的 Collabora 名称
COPYING: 删除已移除 SCO 代码的版权和许可通知
COPYING: 删除已移除 USL 代码的版权和许可通知
COPYING: 删除已移除非 evdev 输入驱动程序的版权
COPYING: 删除已移除的 xf8_16bpp 覆盖模块的版权
COPYING: 删除已移除 dlloader 代码的版权和许可通知
COPYING: 删除已移除 glxvisuals.c 的版权和许可通知
COPYING: 删除已移除 DMX 代码的版权和许可通知
COPYING: 删除已移除 xorgcfg 代码的版权和许可通知
COPYING: 删除已移除 assyntax.h 的版权和许可通知
COPYING: 删除已移除 mibstore.h 的版权和许可通知
COPYING: 删除已移除 kdrive linux 后端的版权和许可通知
COPYING: 删除已移除 SysV os-support 代码的版权和许可通知
COPYING: 删除已移除 extmod 代码的版权和许可通知
COPYING: 删除已移除 lnx_font.c 的版权和许可通知
COPYING: 删除已移除 DMX 输入驱动程序的版权和许可通知
COPYING: 删除已移除 kdrive 和 cw 代码的版权和许可通知
COPYING: 删除已移除 fbmmx.[ch] 文件的版权
COPYING: 删除已移除 fbcompose.c 的版权和许可通知
COPYING: 删除已移除 kdrive AGP 代码的版权
COPYING: 删除 Xquartz 中已移除 Darwin 代码的版权
COPYING: 删除已移除 i2c 多媒体模块的版权和许可通知
COPYING: 移除对 BSD tsort 代码的致谢
COPYING: 为 os/xserver_poll.c 添加 BSD-3-clause 许可
COPYING: 为 config/fdi2iclass.py 添加另一个 MIT 变体
COPYING: 为 hw/xfree86/parser/InputClass.c 添加另一个 MIT 变体
COPYING: 为 os/timingsafe_memcmp.c 添加 ISC 许可
COPYING: 为 hw/xfree86/common/modeline2c.awk 添加 BSD-2-clause 许可
COPYING: 为 glxvnd 服务器模块添加 NVIDIA/Khronos 许可
COPYING: 更新剩余现有许可的版权日期/持有者
COPYING: 排序许可
test/pyxtest: 添加 SO_PEERCRED 的 Solaris 等效项
test/pyxtest: 添加 ProcXIChangeCursor 窗口为 None 的测试
CI: 将 FreeBSD 镜像从 14.2 更新到 15.1
CI: 将 debian 镜像更新到 libpciaccess 0.19
xfree86: 将 pci_device_is_boot_display() 回退移到非导出头文件
xfree86: 更正 AllowForceTerminate 选项设置的标志
meson: 将 fixesproto 所需版本从 6.0 提高到 6.1
xkb: 修复 _XkbCopyGeom() 中的 -Wcalloc-transposed-args 警告
xf86: 防止将 NULL 指针作为 strcpy 目标传递
xf86: 防止将 NULL 指针作为 strcat() 目标传递
xf86: 消除解析器中的 -Wanalyzer-possible-null-dereference 警告
test: 消除 strndup 测试中的 -Wanalyzer-null-argument 警告
exa: 消除来自 gcc 16 的 -Wold-style-declaration 警告
xf86: 处理 DoSubstitution() 中的 malloc 失败
处理来自 gcc 16.1 的 -Wimplicit-fallthrough 警告
Alexander Melnyk (1):
xkb: 修复多个键盘间锁定/锁定指示器不同步的问题
Andy Myers (2):
xvfb: 添加多 CRTC 支持
xvfb: 扩展 -crtcs 以接受可选大小 (N at WxH)
Ben Skeggs (1):
xfree86: 在 GeForce 8 及更新型号上默认使用 modesetting 驱动程序
Benjamin Valentin (1):
xf86: 在 xf86CompatOutput() 中检查 XF86_CRTC_CONFIG_PTR 的返回值
Bjarni Ingi Gislason (8):
xorg.conf.man: 省略号中未加保护的句点
xorg.conf.5: 手册中的一些格式和文字更正
Xserver.man: 一些微小的标记更改
Xserver.man: 修复一些文本和格式问题
Xserver.man: 一些手册编辑修复
Xserver.man: 一些针对此手册页的备注和编辑更改
exa.man: 针对此手册页的编辑更改
inputtestdrv.4: 针对此手册页的编辑更改
Chenx Dust (1):
xwayland: 修复 `xwl_glamor_gbm_init_main_dev` 中的段错误
Christian Göttsche (2):
selinux: 在策略加载时重新映射安全类别
selinux: 仅为 avc 和错误消息生成审计事件
Demi Marie Obenour (3):
实现 XFixes 6.1
在 xorg.conf 中添加 AllowForceTerminate
当 ForceTerminate 被阻止时添加日志消息
Diego Viola (3):
修复拼写错误
恢复 "Avance Logic" 的正确拼写
全树修复拼写错误
Dongwon Kim (1):
modesetting: 调度完成后清空损害
Doug Brown (1):
dri2: 防止 dri2ClientPrivate 断言失败
Doug Johnson (1):
os: 回溯: 修复 32 位目标上的 -Wincompatible-pointer-types 编译器错误
Dr. David Alan Gilbert (1):
xkb: 死代码清理
Edênis Freindorfer Azevedo (1):
支持 `XDG Base Dir Spec 0.8`
Enrico Weigelt, metux IT consult (311):
xfree86: os-support: 清理 SVR3/sysv 支持残留
xfree86: os-support: 移除 Solaris pre-7 残留
xfree86: os-support: 将 _NEED_SYSI86 保护的块移到 sun_vid.c
xfree86: vgahw: 移除过时的 _NEED_SYSI86
present: present_scmd: 移除过时的包含
m4: 移除 autoconf 残留
os: connection: 移除过时的定义 Pid_t
xnest: Display: 修复 xallocarray() 编译器警告
Xnest: 忽略 NoExpose 事件
Xnest: 规范化包含
Xnest: 清理 X.h 包含
Xnest: 在警告未处理的上游事件时打印事件 ID
xfree86: x86emu: 从 debug.h 中移除不必要的 extern C
xfree86: x86emu: 修复 debug.h 中缺失的 Xfuncproto.h 包含
include: 将 busfault.h 移出公共包含目录
include: gc.h: 移除未使用的定义
os: 取消导出 xthread_sigmask
os: 取消导出 OsLookupColor()
os: 取消导出 OsVendorVErrorFProc 指针
dix: 将 closestr.h 移到 dix 目录以防止在 Windows 上与 RT_* 定义冲突
dix: 避免在 win32 上 CreateWindow() 名称冲突
```
相似文章
Xorg-Server 26.0.99.901
xorg-server 26.1.0 的首个发布候选版本已发布,带来多项更新,如移除 autoconf/automake 构建系统、新增显示特性,以及修复了 Xorg 和 Xwayland 等多个服务器的错误。
Xfwl4 的首个预览版发布
Brian Tarricone 宣布推出 xfwl4 的首个预览版,这是 Xfce 的 Wayland 合成器,经过了六个月的工作,详细说明了已知缺失的功能和未来计划。
X.Org Server 26.1 RC1 为五年来首次功能版本发布做准备 - Phoronix
X.Org Server 26.1 RC1 作为五年来的首次功能更新发布,引入了诸如移除 Autoconf/Automake 以支持 Meson 以及各种安全改进等变化。
XLibre XServer 25.2 发布
社区管理的 X Window System 显示服务器 XLibre XServer 25.2 已发布,默认启用 TearFree 模式设置,支持 Nvidia 驱动程序,并通过 seatd 进行席位管理。
多用户 Wayland 现状
对 Linux Wayland 合成器和库中多座位(多个鼠标/键盘)支持的深入调查,并提供了已发布的工具和补丁以改善多用户计算。