描述错误
在 Fedora 33 中,图形应用程序在 Wayland 中不再在工具箱容器中工作。 这打破了使用 Silverblue 的每个人的工作流程,并依赖于需要图形应用程序的工具箱。 (主要是:可能需要使用 gitk、VS Code 等图形工具的开发工作。)
如何重现行为的步骤
预期行为
图形应用程序应该出现。
实际行为
从工具箱中运行 gitk 时,会发生以下情况:
$ gitk
application-specific initialization failed: couldn't connect to display ":0"
Error in startup script: couldn't connect to display ":0"
while executing
"load /usr/lib64/libtk8.6.so Tk"
("package ifneeded Tk 8.6.10" script)
invoked from within
"package require Tk"
(file "/usr/bin/gitk" line 10)
toolbox --version
(v0.0.90+) 的输出
工具箱版本 0.0.95
工具箱包信息( rpm -q toolbox
)
工具箱-0.0.95-1.fc33.x86_64
podman version
Version: 2.1.0-dev
API Version: 1
Go Version: go1.15
Built: Tue Aug 25 14:48:48 2020
OS/Arch: linux/amd64
Podman 包信息 ( rpm -q podman
)
podman-2.1.0-0.179.dev.git43f2771.fc33.x86_64
有关您的操作系统的信息
Fedora Silverblue 33 测试版
附加上下文
这在 Silverblue 33 beta 的 2020-09-14 版本中运行良好。 它在那时和 2020-09-20 的最新版本之间发生了故障。 我相信它与 podman 相关,尤其是因为它是一个开发版本。
podman 的开发版本是否再次进入 F33/SB,破坏工具箱?
..还是打算在 Fedora 33 中使用 podman 2.1.x(因此工具箱必须解决或添加对新版本的支持)?
一些应用程序确实有效,例如 emacs(我正在运行 emacs 的 gtk 分支)。 但通常图形应用程序不起作用。
啊,我也可以在这里打开 GTK 应用程序。 也许他们会直接访问 Wayland 并且依赖于 X(甚至可能使用 XWayland)的应用程序不起作用?
我已经在 X 模式(非 Wayland)和工具箱启动中的所有应用程序中使用 GNOME 注销并重新登录。
显然,这并不能解决问题。 :眨眼:
~现在这也不是真正的解决方法,因为 Firefox(来自 flathub)由于某些奇怪的原因没有在 X 中启动。 (很可能是另一个错误,除非 Wayland 和 X 在某处存在一些问题。)~ _Edit:几个月前,我使用 Flatseal 禁用了 X11 fallpack 属性,当时我确保 Firefox 以 Wayland 模式运行以回答某人在 Silverblue 上的帖子论坛。 所以是自找的。 哎呀。_
我已重新启动 Silverblue 以:
Version: 33.20200913.n.0 (2020-09-13T07:59:41Z)
BaseCommit: 7de80b1a27968e257a31180f4ae046f5e7acc3c6fd978b90122a5551320b5db9
...而且我在 Wayland 并且可以从工具箱中再次运行图形应用程序。
$ rpm -q podman
podman-2.1.0-0.179.dev.git43f2771.fc33.x86_64
$ podman version
Version: 2.1.0-dev
API Version: 1
Go Version: go1.15
Built: Tue Aug 25 14:48:48 2020
OS/Arch: linux/amd64
$ toolbox --version
toolbox version 0.0.95
$ rpm -q toolbox
toolbox-0.0.95-1.fc33.x86_64
看起来 toolbox 和 podman 都是同一个版本,所以这实际上可能是 X 和 Wayland 的问题?
在没有覆盖的虚拟机中,我从
Version: 33.20200914.n.0 (2020-09-14T08:05:11Z)
Commit: a2ead73898ba4861d018599c001b141511c14c1efc4203b5433b754873171050
(众所周知;在工具箱容器中测试运行 gitk 并且它有效)
到
Version: 33.20200920.n.0 (2020-09-20T08:02:39Z)
Commit: 633fca7e849b77903f4f8e14d39ff421edfede3bafc903af06a9be948a85d603
(已知不好,最新;在工具箱容器中测试运行 gitk 并且失败)
升级时的变化是:
1 metadata, 0 content objects fetched; 592 B transferred in 2 seconds; 0 bytes content written
AvailableUpdate:
Version: 33.20200920.n.0 (2020-09-20T08:02:39Z)
Commit: 633fca7e849b77903f4f8e14d39ff421edfede3bafc903af06a9be948a85d603
GPGSignature: 1 signature
Signature made Sun 20 Sep 2020 10:02:51 AM CEST using RSA key ID 6C13026D12C944D0
Good signature from "Fedora <[email protected]>"
Upgraded: adwaita-cursor-theme 3.37.2-2.fc33 -> 3.38.0-1.fc33
adwaita-icon-theme 3.37.2-2.fc33 -> 3.38.0-1.fc33
at-spi2-atk 2.37.90-1.fc33 -> 2.38.0-1.fc33
at-spi2-core 2.37.90-1.fc33 -> 2.38.0-1.fc33
cheese-libs 2:3.34.0-4.fc33 -> 2:3.38.0-1.fc33
dconf 0.36.0-2.fc33 -> 0.38.0-1.fc33
evolution-data-server 3.37.90-1.fc33 -> 3.38.0-1.fc33
evolution-data-server-langpacks 3.37.90-1.fc33 -> 3.38.0-1.fc33
fedora-gpg-keys 33-0.11 -> 33-0.13
fedora-repos 33-0.11 -> 33-0.13
fedora-repos-modular 33-0.11 -> 33-0.13
fedora-repos-ostree 33-0.11 -> 33-0.13
gdm 1:3.37.90-1.fc33 -> 1:3.38.0-1.fc33
gjs 1.65.91-3.fc33 -> 1.66.0-1.fc33
glib-networking 2.65.90-1.fc33 -> 2.66.0-1.fc33
glib2 2.65.2-3.fc33 -> 2.66.0-1.fc33
gnome-backgrounds 3.37.2-2.fc33 -> 3.38.0-1.fc33
gnome-classic-session 3.37.91-1.fc33 -> 3.38.0-1.fc33
gnome-control-center 3.37.90-1.fc33 -> 3.38.0-1.fc33
gnome-control-center-filesystem 3.37.90-1.fc33 -> 3.38.0-1.fc33
gnome-desktop3 3.37.90.1-1.fc33 -> 3.38.0-1.fc33
gnome-disk-utility 3.37.2-3.fc33 -> 3.38.0-1.fc33
gnome-session 3.37.0-1.fc33 -> 3.38.0-1.fc33
gnome-session-wayland-session 3.37.0-1.fc33 -> 3.38.0-1.fc33
gnome-session-xsession 3.37.0-1.fc33 -> 3.38.0-1.fc33
gnome-settings-daemon 3.37.92-1.fc33 -> 3.38.0-1.fc33
gnome-shell 3.37.91-4.fc33 -> 3.38.0-1.fc33
gnome-shell-extension-apps-menu 3.37.91-1.fc33 -> 3.38.0-1.fc33
gnome-shell-extension-common 3.37.91-1.fc33 -> 3.38.0-1.fc33
gnome-shell-extension-horizontal-workspaces 3.37.91-1.fc33 -> 3.38.0-1.fc33
gnome-shell-extension-launch-new-instance 3.37.91-1.fc33 -> 3.38.0-1.fc33
gnome-shell-extension-places-menu 3.37.91-1.fc33 -> 3.38.0-1.fc33
gnome-shell-extension-window-list 3.37.91-1.fc33 -> 3.38.0-1.fc33
gnome-software 3.36.1-4.fc33 -> 3.38.0-2.fc33
gnome-software-rpm-ostree 3.36.1-4.fc33 -> 3.38.0-2.fc33
gnome-system-monitor 3.37.91-1.fc33 -> 3.38.0-1.fc33
gnome-tour 3.37.91-2.fc33 -> 3.38.0-1.fc33
gnome-user-docs 3.36.2-2.fc33 -> 3.38.0-1.fc33
gobject-introspection 1.64.1-4.fc33 -> 1.66.0-1.fc33
gsettings-desktop-schemas 3.37.2-2.fc33 -> 3.38.0-1.fc33
gspell 1.8.3-3.fc33 -> 1.8.4-1.fc33
gtk-update-icon-cache 3.24.22-2.fc33 -> 3.24.23-1.fc33
gtk3 3.24.22-2.fc33 -> 3.24.23-1.fc33
gvfs 1.45.90-1.fc33 -> 1.46.0-1.fc33
gvfs-afc 1.45.90-1.fc33 -> 1.46.0-1.fc33
gvfs-afp 1.45.90-1.fc33 -> 1.46.0-1.fc33
gvfs-archive 1.45.90-1.fc33 -> 1.46.0-1.fc33
gvfs-client 1.45.90-1.fc33 -> 1.46.0-1.fc33
gvfs-fuse 1.45.90-1.fc33 -> 1.46.0-1.fc33
gvfs-goa 1.45.90-1.fc33 -> 1.46.0-1.fc33
gvfs-gphoto2 1.45.90-1.fc33 -> 1.46.0-1.fc33
gvfs-mtp 1.45.90-1.fc33 -> 1.46.0-1.fc33
gvfs-smb 1.45.90-1.fc33 -> 1.46.0-1.fc33
json-glib 1.5.2-1.fc33 -> 1.6.0-1.fc33
libgdata 0.17.12-3.fc33 -> 0.17.13-1.fc33
libhandy1 0.90.0-1.fc33 -> 1.0.0-2.fc33
librsvg2 2.48.8-2.fc33 -> 2.50.0-1.fc33
libsoup 2.71.0-2.fc33 -> 2.72.0-1.fc33
libtracker-control 2.3.5-1.fc33 -> 2.3.6-1.fc33
libtracker-miner 2.3.5-1.fc33 -> 2.3.6-1.fc33
libtracker-sparql 2.3.5-1.fc33 -> 2.3.6-1.fc33
mutter 3.37.91-1.fc33 -> 3.38.0-1.fc33
nautilus 3.37.91-1.fc33 -> 3.38.0-1.fc33
nautilus-extensions 3.37.91-1.fc33 -> 3.38.0-1.fc33
orca 3.37.90-1.fc33 -> 3.38.0-1.fc33
python3-gobject 3.36.1-2.fc33 -> 3.38.0-1.fc33
python3-gobject-base 3.36.1-2.fc33 -> 3.38.0-1.fc33
python3-pyatspi 2.37.90-1.fc33 -> 2.38.0-1.fc33
python3-speechd 0.10.1-1.fc33 -> 0.10.1-2.fc33
rygel 0.39.2-1.fc33 -> 0.40.0-1.fc33
selinux-policy 3.14.6-25.fc33 -> 3.14.6-26.fc33
selinux-policy-targeted 3.14.6-25.fc33 -> 3.14.6-26.fc33
speech-dispatcher 0.10.1-1.fc33 -> 0.10.1-2.fc33
speech-dispatcher-espeak-ng 0.10.1-1.fc33 -> 0.10.1-2.fc33
systemd 246.4-1.fc33 -> 246.4-2.fc33
systemd-libs 246.4-1.fc33 -> 246.4-2.fc33
systemd-pam 246.4-1.fc33 -> 246.4-2.fc33
systemd-rpm-macros 246.4-1.fc33 -> 246.4-2.fc33
systemd-udev 246.4-1.fc33 -> 246.4-2.fc33
tracker 2.3.5-1.fc33 -> 2.3.6-1.fc33
tracker-miners 2.3.4-2.fc33 -> 2.3.5-1.fc33
yelp 2:3.37.90-2.fc33 -> 2:3.38.0-1.fc33
yelp-libs 2:3.37.90-2.fc33 -> 2:3.38.0-1.fc33
yelp-xsl 3.37.90-2.fc33 -> 3.38.0-1.fc33
Downgraded: perl-B 1.80-461.module_f33+9996+d5a76496 -> 1.80-461.module_f33+9980+83f6a35a
perl-Class-Struct 0.66-461.module_f33+9996+d5a76496 -> 0.66-461.module_f33+9980+83f6a35a
perl-Encode 4:3.07-457.module_f33+9996+d5a76496 -> 4:3.07-457.module_f33+9980+83f6a35a
perl-Errno 1.30-461.module_f33+9996+d5a76496 -> 1.30-461.module_f33+9980+83f6a35a
perl-Fcntl 1.13-461.module_f33+9996+d5a76496 -> 1.13-461.module_f33+9980+83f6a35a
perl-File-Basename 2.85-461.module_f33+9996+d5a76496 -> 2.85-461.module_f33+9980+83f6a35a
perl-File-Path 2.17-2.module_f33+9996+d5a76496 -> 2.17-2.module_f33+9980+83f6a35a
perl-File-stat 1.09-461.module_f33+9996+d5a76496 -> 1.09-461.module_f33+9980+83f6a35a
perl-FileHandle 2.03-461.module_f33+9996+d5a76496 -> 2.03-461.module_f33+9980+83f6a35a
perl-Getopt-Long 1:2.52-1.module_f33+9996+d5a76496 -> 1:2.52-1.module_f33+9980+83f6a35a
perl-Getopt-Std 1.12-461.module_f33+9996+d5a76496 -> 1.12-461.module_f33+9980+83f6a35a
perl-IO 1.43-461.module_f33+9996+d5a76496 -> 1.43-461.module_f33+9980+83f6a35a
perl-IPC-Open3 1.21-461.module_f33+9996+d5a76496 -> 1.21-461.module_f33+9980+83f6a35a
perl-NDBM_File 1.15-461.module_f33+9996+d5a76496 -> 1.15-461.module_f33+9980+83f6a35a
perl-POSIX 1.94-461.module_f33+9996+d5a76496 -> 1.94-461.module_f33+9980+83f6a35a
perl-Pod-Usage 4:1.70-3.module_f33+9996+d5a76496 -> 4:1.70-3.module_f33+9980+83f6a35a
perl-SelectSaver 1.02-461.module_f33+9996+d5a76496 -> 1.02-461.module_f33+9980+83f6a35a
perl-Socket 4:2.030-2.module_f33+9996+d5a76496 -> 4:2.030-2.module_f33+9980+83f6a35a
perl-Symbol 1.08-461.module_f33+9996+d5a76496 -> 1.08-461.module_f33+9980+83f6a35a
perl-Time-Local 2:1.300-4.module_f33+9996+d5a76496 -> 2:1.300-4.module_f33+9980+83f6a35a
perl-if 0.60.800-461.module_f33+9996+d5a76496 -> 0.60.800-461.module_f33+9980+83f6a35a
perl-interpreter 4:5.32.0-461.module_f33+9996+d5a76496 -> 4:5.32.0-461.module_f33+9980+83f6a35a
perl-libs 4:5.32.0-461.module_f33+9996+d5a76496 -> 4:5.32.0-461.module_f33+9980+83f6a35a
perl-macros 4:5.32.0-461.module_f33+9996+d5a76496 -> 4:5.32.0-461.module_f33+9980+83f6a35a
perl-mro 1.23-461.module_f33+9996+d5a76496 -> 1.23-461.module_f33+9980+83f6a35a
perl-overload 1.31-461.module_f33+9996+d5a76496 -> 1.31-461.module_f33+9980+83f6a35a
perl-overloading 0.02-461.module_f33+9996+d5a76496 -> 0.02-461.module_f33+9980+83f6a35a
perl-subs 1.03-461.module_f33+9996+d5a76496 -> 1.03-461.module_f33+9980+83f6a35a
perl-vars 1.05-461.module_f33+9996+d5a76496 -> 1.05-461.module_f33+9980+83f6a35a
Removed: fedora-repos-rawhide-33-0.11.noarch
fedora-repos-rawhide-modular-33-0.11.noarch
Added: libtracker-sparql3-3.0.0-1.fc33.x86_64
tracker3-3.0.0-1.fc33.x86_64
tracker3-miners-3.0.0-2.fc33.x86_64
podman 和 toolbox 都没有出现在该列表中,因此它不能直接是 toolbox 或 podman。 它必须是该列表中的某个包导致了一些问题。
除了包之外的其他东西可能已经改变,例如/etc
可能已经改变了。
@A6GibKm :好点。 有没有办法在 Silverblue 的版本之间区分 /etc/ ? (我知道如何区分 /etc/ 的本地更改,但不知道 SB 的更改。)
ostree admin config-diff
允许您比较/etc
,但据我所知它只进行本地更改,它不会比较不同的版本。
@A6GibKm :是的。 这就是我所说的。 这是在 /etc 未更改的 VM 中,因此在 system 和 Silverblue 的 /etc 之间进行区分是没有用的。 (在 /etc 之间可能有所不同。尽管 /etc 的许多更改无论如何都来自包。)
同时,我将 env 重定向到处于工作和损坏状态的系统和工具箱的文件。 工具箱容器中没有任何区别。 并且系统上的差异很小(与会话相关)。
这是系统环境的统一差异:
--- env-sys-working.txt 2020-09-21 12:56:12.920885043 +0200
+++ env-sys-broken.txt 2020-09-21 12:22:02.406835930 +0200
@@ -1,5 +1,5 @@
SHELL=/bin/bash
-SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/1464,unix/unix:/tmp/.ICE-unix/1464
+SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/1478,unix/unix:/tmp/.ICE-unix/1478
COLORTERM=truecolor
HISTCONTROL=ignoredups
XDG_MENU_PREFIX=gnome-
@@ -13,7 +13,7 @@
LOGNAME=garrett
XDG_SESSION_DESKTOP=gnome
XDG_SESSION_TYPE=wayland
-XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.RN94Q0
+XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.4M3FR0
GJS_DEBUG_TOPICS=JS ERROR;JS LOG
GDM_LANG=en_US.UTF-8
HOME=/var/home/garrett
@@ -23,21 +23,21 @@
XDG_CURRENT_DESKTOP=GNOME
VTE_VERSION=6003
WAYLAND_DISPLAY=wayland-0
-GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/72bbb014_1201_4bb5_8d9f_92b981a8fb9c
-INVOCATION_ID=81fe0a9268ce4c879b1c15b9831f9eb1
-MANAGERPID=1367
+GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/70d7dee0_be52_4b18_b618_93ce33bb45b9
+INVOCATION_ID=2faea5011a614329921ff66d8420329d
+MANAGERPID=1374
GJS_DEBUG_OUTPUT=stderr
GNOME_SETUP_DISPLAY=:1
XDG_SESSION_CLASS=user
TERM=xterm-256color
LESSOPEN=||/usr/bin/lesspipe.sh %s
USER=garrett
-GNOME_TERMINAL_SERVICE=:1.97
+GNOME_TERMINAL_SERVICE=:1.91
DISPLAY=:0
SHLVL=1
QT_IM_MODULE=ibus
XDG_RUNTIME_DIR=/run/user/1000
-JOURNAL_STREAM=8:37189
+JOURNAL_STREAM=8:39001
XDG_DATA_DIRS=/var/home/garrett/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
PATH=/var/home/garrett/.local/bin:/var/home/garrett/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
GDMSESSION=gnome
我看到的唯一区别(除了会话差异)是 GNOME_TERMINAL_SERVICE 从 1.91 到 1.97 ......但我真的怀疑是这样。
在上面的列表中,以下包是我猜最有可能的包:
gdm 1:3.37.90-1.fc33 -> 1:3.38.0-1.fc33
gnome-session 3.37.0-1.fc33 -> 3.38.0-1.fc33
gnome-session-wayland-session 3.37.0-1.fc33 -> 3.38.0-1.fc33
gnome-session-xsession 3.37.0-1.fc33 -> 3.38.0-1.fc33
gnome-settings-daemon 3.37.92-1.fc33 -> 3.38.0-1.fc33
gnome-shell 3.37.91-4.fc33 -> 3.38.0-1.fc33
mutter 3.37.91-1.fc33 -> 3.38.0-1.fc33
selinux-policy 3.14.6-25.fc33 -> 3.14.6-26.fc33
selinux-policy-targeted 3.14.6-25.fc33 -> 3.14.6-26.fc33
systemd 246.4-1.fc33 -> 246.4-2.fc33
systemd-libs 246.4-1.fc33 -> 246.4-2.fc33
其中,我猜 mutter、gnome-shell 或 gnome-session* 可能是最有可能首先研究的,因为这个问题涉及 X 和 Wayland 问题。
(我想知道@kalev是否能够进一步隔离问题?)
听起来像 XWayland 不工作。 我会问 gnome-shell 的人,看看他们是否知道发生了什么。
我正在运行版本:33.20200921.n.0 (2020-09-21T08:05:26Z) Silverblue。 当 F33 是生皮时,我有一个工具箱容器。 我在其中安装了 qtebrowser(编辑:它引入了一堆 deps)并且还必须安装 qt5-qtwayland.x86_64 插件才能让它运行,但它运行。 我以默认的 Wayland 身份登录到我的 Gnome 会话。
编辑:gvim 在工具箱中不起作用
Freenode 上#silverblue 的片段:
<mclasen> rishi`: hey, around ?
<mclasen> with gnome 3.38, x apps stopped working in toolboxes
<mclasen> since we make xwayland not use the abstract socket anymore
<mclasen> so not it uses the X socket in its traditional location, /tmp/
<mclasen> which ... is empty in my toolboxes
由于 v0.0.94 Toolbox 将 tmpfs 安装到/tmp
但正如 mclasen 所说,它是空的并且不包含套接字。
我会尝试使用套接字,但我想这对@debarshiray 来说更像是一个问题。
那是因为它现在在 Wayland 下运行。 Xwayland 应用程序是
问题。 试试 gvim。 或 xeyes。
2020 年 9 月 22 日,星期二,13:45 Stephen Snow, notifications@ github.com
写道:
我正在运行版本:33.20200921.n.0 (2020-09-21T08:05:26Z) Silverblue。 一世
有一个工具箱容器,当 F33 是生皮时。 我安装了qutebrowser
在其中,还必须安装 qt5-qtwayland.x86_64 插件才能运行,
但它运行。 我以默认的 Wayland 身份登录到我的 Gnome 会话。—
您收到此消息是因为您订阅了此线程。
直接回复本邮件,在GitHub上查看
https://github.com/containers/toolbox/issues/562#issuecomment-696732066 ,
或退订
https://github.com/notifications/unsubscribe-auth/AA2BH3EMRY7BXDHQPJ3ZGZ3SHCTA7ANCNFSM4RUIRONQ
.
你会注意到我上面关于 gvim 不起作用的编辑。 我知道 XWayland 可能是这里的问题。
我在https://github.com/containers/toolbox/pull/564 中有一个非常粗略的解决方案
xeyes 也不起作用,我只是“无法打开显示::0”
我在 #564 中有一个非常粗略的解决方案。 非常欢迎评论。 一般来说,我想尽可能避免挑选文件,我想知道这个愿望是否可以在这里实现。
我可以确认运行:
$ sudo ln -s /run/host/tmp/.X11-unix /tmp/
确实使应用程序运行。
我正在运行版本:33.20200921.n.0 (2020-09-21T08:05:26Z) Silverblue。 当 F33 是生皮时,我有一个工具箱容器。 我在其中安装了 qtebrowser(编辑:它引入了一堆 deps)并且还必须安装 qt5-qtwayland.x86_64 插件才能让它运行,但它运行。 我以默认的 Wayland 身份登录到我的 Gnome 会话。
编辑:gvim 在工具箱中不起作用
关于 qt5-qtwayland 缺少 dep: https ://src.fedoraproject.org/rpms/qutebrowser/pull-request/10
最有用的评论
听起来像 XWayland 不工作。 我会问 gnome-shell 的人,看看他们是否知道发生了什么。