Forwarded from q234rty 🍓
q234rty 🍓
要细节的话就是,我理解 https://gitlab.freedesktop.org/wayland/wayland/-/commit/fd42f70bafa26fcf6f39f034b581b35838be71aa 这个提交假设了 wl_shm 的 version 2 是被定义的(libwayland 自带的 wayland.xml 里定义了),但 qt vendor 了一份自己的 wayland.xml,导致这个提交修改的函数失败了
kwin 6 不再调用 wl_display_init_shm 了所以不受影响
但其实 qtwaylandcompositor 也被这个搞坏了(是 qt 内部的混成器实现,和 kwin 无关)
arch 的解决方法是直接把 qt6 vendor 的 wayland.xml 更新了(
另:telegram-desktop 的小程序在 wayland 下是用 qtwaylandcompositor 实现了一个嵌套 wayland 混成器,再在这个嵌套混成器里跑 webkit2gtk
但其实 qtwaylandcompositor 也被这个搞坏了(是 qt 内部的混成器实现,和 kwin 无关)
arch 的解决方法是直接把 qt6 vendor 的 wayland.xml 更新了(
另:telegram-desktop 的小程序在 wayland 下是用 qtwaylandcompositor 实现了一个嵌套 wayland 混成器,再在这个嵌套混成器里跑 webkit2gtk
q234rty 🍓
这个提交假设了 wl_shm 的 version 2 是被定义的(libwayland 自带的 wayland.xml 里定义了),但 qt vendor 了一份自己的 wayland.xml,导致这个提交修改的函数失败了
具体来说,用到 wayland 协议的项目编译时往往会用到 wayland-scanner 或者其类似物,其会从 xml 格式的协议里生成头文件和一些胶水代码,而 wayland.xml 生成的代码里面就定义了
wl_shm_interface 的版本;但在使用了 qt 的混成器里这被 qtwayland 自带的老版本 wayland.xml 生成的代码覆盖了,导致了这个问题。
q234rty 🍓
telegram-desktop 的小程序在 wayland 下是用 qtwaylandcompositor 实现了一个嵌套 wayland 混成器,再在这个嵌套混成器里跑 webkit2gtk
至于 telegram-desktop 为何采用这种技术路线而不是直接使用 qtwebengine,我猜想是为了减小其官方发布的二进制大小(目前 telegram-desktop 会尝试 dlopen 系统上的
libwebkitgtk-6.0.so 等)Forwarded from Rong布星球 🧶 (Rongron🧊 | g𝐝𝐛)
Debian 的 kwin 软件包已被 rebuild against libwayland 1.23,rebuild 后修复了上述问题。
比较两个版本的 kwin 软件包源代码,可以看到没有任何源代码变更,这是纯粹的 rebuild。
根据 Debian BTS 里的推测,这个 bug 的成因可能是 symbol 冲突:
新版
kwin5 会调用
kwin6 不调用
Rebuild 尽管没有从根本上解决上述问题,但是使得
Debian Qt/KDE Maintainers 没有考虑从根本上解决这个问题应该是因为没有必要,毕竟到 KDE Plasma 6.1 的 migration 迟早要发生。
目前似乎没有其他 Wayland 混成器(compositor)受影响。
确保你使用的镜像已同步了
比较两个版本的 kwin 软件包源代码,可以看到没有任何源代码变更,这是纯粹的 rebuild。
根据 Debian BTS 里的推测,这个 bug 的成因可能是 symbol 冲突:
libkwin 携带了过时的 wl_shm_interface symbol (在 build against 旧版 libwayland 时由 qtwaylandscanner 生成)并且错误地没有 make it private (产生了 symbol leak);新版
libwayland 携带了更新的 wl_shm_interface ,携带了新的 symbol ;kwin5 会调用
wl_display_init_shm() ,后者不幸地使用了 libkwin leak 出来的过时的 wl_shm_interface 。kwin6 不调用
wl_display_init_shm() ,因此不受影响(并不意味着它一定不 leak symbol,这个问题在两周前才被修复)。Rebuild 尽管没有从根本上解决上述问题,但是使得
libkwin 携带的将会 leak 的 wl_shm_interface symbol 与 libwayland 携带的 up-to-date 版本一致了,因此不会再触发 segmentation fault 然后 hang 了。Debian Qt/KDE Maintainers 没有考虑从根本上解决这个问题应该是因为没有必要,毕竟到 KDE Plasma 6.1 的 migration 迟早要发生。
目前似乎没有其他 Wayland 混成器(compositor)受影响。
确保你使用的镜像已同步了
kwin-wayland 4:5.27.11-2 ,然后可以 unhold libwayland 并更新它们了。Forwarded from q234rty 🍓
Rong布星球 🧶
Debian 的 kwin 软件包已被 rebuild against libwayland 1.23,rebuild 后修复了上述问题。 比较两个版本的 kwin 软件包源代码,可以看到没有任何源代码变更,这是纯粹的 rebuild。 根据 Debian BTS 里的推测,这个 bug 的成因可能是 symbol 冲突: libkwin 携带了过时的 wl_shm_interface symbol (在 build against 旧版 libwayland 时由 qtwaylandscanner 生成)并且错误地没有…
确实,后来发现我之前的说法误导了(
kwin 用的是 extra-cmake-modules 来处理 wayland 协议,没有直接链接到 qtwayland,也没有用到 qtwayland 自带的 wayland.xml,所以确实只需要 rebuild
和 telegram-desktop 的情况不一样,后者链接的
kwin 用的是 extra-cmake-modules 来处理 wayland 协议,没有直接链接到 qtwayland,也没有用到 qtwayland 自带的 wayland.xml,所以确实只需要 rebuild
和 telegram-desktop 的情况不一样,后者链接的
libQt6WaylandCompositor.so 里的 wl_shm_interface 符号是由 qtwayland 内置的旧版的 wayland.xml 生成的,所以单纯 rebuild 并不足以修复https://freebsdfoundation.org/blog/why-laptop-support-why-now-freebsds-strategic-move-toward-broader-adoption #火星救援
FreeBSD Foundation | A non-profit organization dedicated to supporting and building the FreeBSD Project
Why laptop support, why now: FreeBSD’s strategic move toward broader adoption | FreeBSD Foundation
FreeBSD has long been a top choice for IT professionals and organizations focused on servers and networking, and it is known for its unmatched stability, performance, and security. However, as technology evolves, FreeBSD faces a significant challenge: supporting…
不是说频道主会马上 move to FreeBSD,但有 alternative 总是好的,不是吗(
https://github.com/swaywm/sway/releases/tag/1.10
sway 1.10 发布了,应该是第一个支持 wayland 输入法协议显示候选框的正式版本
sway 1.10 发布了,应该是第一个支持 wayland 输入法协议显示候选框的正式版本
GitHub
Release 1.10 · swaywm/sway
Sway 1.10 contains 237 changes from 44 contributors.
This release depends on wlroots 0.18.0. See the wlroots release notes.
New features
All of the enhancements from wlroots 0.18.
Rewrite the rend...
This release depends on wlroots 0.18.0. See the wlroots release notes.
New features
All of the enhancements from wlroots 0.18.
Rewrite the rend...
👍2
Forwarded from Ziyao Channel | 二代目 (梓瑶 | dt-binding 苦手)
CVE-2024-11477[1] 7zip 的 zstd 实现未正确检查用户输入, 整数下溢可导致任意代码执行, 于 24.07 修复
此问题存在于原始的 7zip 实现中, 该 zstd 算法用于解压 .zst 格式的压缩包以及 zstd 算法压缩的 zip/squashfs/rpm 文件.
https://github.com/mcmilk/7-Zip-zstd/ 使用独立的 zstd 实现, 不受该问题影响[2]
7zip 于 24.01 引入了对 zstd 算法的支持[3]
[1]: https://nvd.nist.gov/vuln/detail/CVE-2024-11477
[2]: https://github.com/mcmilk/7-Zip-zstd/issues/384#issuecomment-2501410682
[3]: https://www.7-zip.org/history.txt
此问题存在于原始的 7zip 实现中, 该 zstd 算法用于解压 .zst 格式的压缩包以及 zstd 算法压缩的 zip/squashfs/rpm 文件.
https://github.com/mcmilk/7-Zip-zstd/ 使用独立的 zstd 实现, 不受该问题影响[2]
7zip 于 24.01 引入了对 zstd 算法的支持[3]
24.01 2024-01-31
-------------------------
- 7-Zip now can unpack ZSTD archives (.zst filename extension).
- 7-Zip now can unpack ZIP, SquashFS and RPM archives that use ZSTD compression method.
[1]: https://nvd.nist.gov/vuln/detail/CVE-2024-11477
[2]: https://github.com/mcmilk/7-Zip-zstd/issues/384#issuecomment-2501410682
[3]: https://www.7-zip.org/history.txt
GitHub
GitHub - mcmilk/7-Zip-zstd: 7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard
7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard - mcmilk/7-Zip-zstd
🥰6👍1
Forwarded from q234rty 🍓
我终于知道 KDE 系统设置的主题为什么对于 gtk3-demo 做不到实时切换了
Forwarded from q234rty 🍓
q234rty 🍓
我终于知道 KDE 系统设置的主题为什么对于 gtk3-demo 做不到实时切换了
首先 gtk 不支持动态重载
~/.config/gtk-{3,4}.0/{settings.ini,gtk.css}Forwarded from q234rty 🍓
然后
kde-gtk-config 在亮暗切的换时候不会修改 gsettings org.gnome.desktop.interface 里的 gtk-theme ,而是单纯修改了 settings.ini 里的 gtk-application-prefer-dark-theme 这个变量Forwarded from q234rty 🍓
实际上 KDE 还修改了
gsettings 里的 color-scheme ,但 gtk3-demo 不读取这个;只有 libhandy/libadwaita 会读取这个Forwarded from q234rty 🍓
最后就算清除了
settings.ini 中的 gtk-application-prefer-dark-theme 键并且修改了 kde-gtk-config 绕过以上,还有另一个问题:kde 修改了 gtk.css 来支持用户的自定义 color scheme ,这就导致 gtk theme 变动的时候颜色会被这里覆盖Forwarded from q234rty 🍓
我的绕过方法就直接是清空
~/.config/gtk-{3,4}.0/gtk.css 完了 chattr +i既然发频道了还是得说一句:如果你决定按照以上操作那么 you're on your own,不要给上游提 bug(