-
-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feh stopped working with XQuartz 2.8.4 (maybe 2.8.3) #314
Comments
2.8.4 is basically the same as 2.8.3 with some security updates. Can you please test 2.8.3 beta and rcs to determine when this regressed? |
Indeed, the regression starts with 2.8.3_beta1. Please let me know if you need more information, I have a working/broken setup running in parallel now (both on M1, 13.1). |
That beta bumped a lot of upstream changes. Can you backup XQuartz.app from 2.8.2, then install 2.8.4, then replace its XQuartz.app with the older 2.8.2 one? If that works, then at least we know it is a change in the server binary. If it doesn't, we know it is a change in the libraries. |
That works. Restoring the 2.8.2 XQuartz.app over a 2.8.4 install gives me "XQuartz 2.8.2 (xorg-server 1.20.14)" in the About.. window. So the server binary is the culprit. Just seen that the version bump from xorg-server 1.20.14 to 21.1.6 is substantial. |
It looks like this is resulting in a difference between autoconf and meson builds. I built e3a530540f2f13739b0233ec51d7a3985a7ec4be with both autoconf and meson. The autoconf build was fine. The meson build had this issue. |
I've narrowed it down to a difference between the way we build os/io.c with autoconf and meson, and specifically something in dix-config.h |
Looks like the difference between good and bad is that |
It's also something to do with ssh forwarding. If I enable tcp connections directly to the server, it works, but not if I use ssh's forwarding, eg:
|
It looks like it reproduces if using |
feh is hung at:
|
I sent an email to xorg-devel asking for guidance: I traced this to a difference in autoconf vs meson builds. With meson, we're setting XTRANS_SEND_FDS whereas with autoconf, we weren't:
vs
This change certainly looks fine to me. darwin supports SCM_RIGHTS. It was probably just overlooked in that configure.ac condition, and it never caused enough of a problem for someone to notice. So I turned my attention to figuring out why things aren't working with XTRANS_SEND_FDS set... Soon after launching When we use ssh forwarding with a local DISPLAY (eg: Now, I haven't dug into what's happening between the server and client, but I suspect OpenSSH just drops the FDs on the floor without logging a warning to the user and passes the rest of the message along. So there seem to be two issues here: 1 - libxcb should recover from this. How should this work? Why hasn't this been reported as an issue on other platforms? This all seems pretty platform agnostic, so I'd expect this to be an issue on other platforms as well. Is it not? If not, why not? |
XTRANS_SEND_FDS was disabled by default on darwin with autoconf builds. When we moved to meson, this was enabled. SCM_RIGHTS works well for local connections, but unfortunatley X11 forwarding over ssh is incorrectly identified as a local connection. This is being disabled to restore the previous functionality until a solution can be determined. Fixes: XQuartz/XQuartz#314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
XTRANS_SEND_FDS was disabled by default on darwin with autoconf builds. When we moved to meson, this was enabled. SCM_RIGHTS works well for local connections, but unfortunatley X11 forwarding over ssh is incorrectly identified as a local connection. This is being disabled to restore the previous functionality until a solution can be determined. Fixes: XQuartz/XQuartz#314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
XTRANS_SEND_FDS was disabled by default on darwin with autoconf builds. When we moved to meson, this was enabled. SCM_RIGHTS works well for local connections, but unfortunatley X11 forwarding over ssh is incorrectly identified as a local connection. This is being disabled to restore the previous functionality until a solution can be determined. Fixes: XQuartz/XQuartz#314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
XTRANS_SEND_FDS was disabled by default on darwin with autoconf builds. When we moved to meson, this was enabled. SCM_RIGHTS works well for local connections, but unfortunatley X11 forwarding over ssh is incorrectly identified as a local connection. This is being disabled to restore the previous functionality until a solution can be determined. Fixes: XQuartz/XQuartz#314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Withoug a proper implementation of DetermineClientCmd, clients that connect via an ssh tunnel are miscategorized as local. This results in failures when we try to use SCM_RIGHTS (eg: in MIT-SHM). Fixes: XQuartz/XQuartz#314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Withoug a proper implementation of DetermineClientCmd, clients that connect via an ssh tunnel are miscategorized as local. This results in failures when we try to use SCM_RIGHTS (eg: in MIT-SHM). Fixes: XQuartz/XQuartz#314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
This change allows the server to now properly detect ssh tunneled connections as remote rather than local connections. Fixes: #314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Withoug a proper implementation of DetermineClientCmd, clients that connect via an ssh tunnel are miscategorized as local. This results in failures when we try to use SCM_RIGHTS (eg: in MIT-SHM). Fixes: XQuartz/XQuartz#314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Withoug a proper implementation of DetermineClientCmd, clients that connect via an ssh tunnel are miscategorized as local. This results in failures when we try to use SCM_RIGHTS (eg: in MIT-SHM). Fixes: XQuartz/XQuartz#314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Withoug a proper implementation of DetermineClientCmd, clients that connect via an ssh tunnel are miscategorized as local. This results in failures when we try to use SCM_RIGHTS (eg: in MIT-SHM). Fixes: XQuartz/XQuartz#314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Withoug a proper implementation of DetermineClientCmd, clients that connect via an ssh tunnel are miscategorized as local. This results in failures when we try to use SCM_RIGHTS (eg: in MIT-SHM). Fixes: XQuartz/XQuartz#314 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> (cherry picked from commit 0ea9b59)
The X11 image viewer "feh", installed on Ubuntu 20.04 (feh version 3.3) or Ubuntu 22.04 (feh version 3.6.3) stopped working with XQuartz 2.8.4 (maybe 2.8.3, I didn't have this version installed). feh in any version works with XQuartz 2.8.2. The issue shows up on Intel and ARM Macs, macOS 13.1 on all Macs:
Starting "feh img.png" on the Ubuntu host starts XQuartz 2.8.4 on the Mac, but never shows the picture. The feh process is uninterruptible and can only be killed with signal 9.
The same img.png can be opened without problems with e.g. "gm display img.png" (GraphicsMagick display). All my X11-tests (such as xclock, xeyes, etc.) worked as well. It seems to be a feh + XQuartz >= 2.8.[3|4] problem only.
The text was updated successfully, but these errors were encountered: