From 362ff9542f17c375c8ab8f30b067c2c4e7d8a205 Mon Sep 17 00:00:00 2001 From: Twaik Yont <9674930+twaik@users.noreply.github.com> Date: Wed, 9 Apr 2025 07:40:22 +0300 Subject: [PATCH] fix(x11): disable abstract sockets For some reason kernel does not let rebind abstract sockets a few seconds after process dies (after interruption or failure). That is critical bug for users who restart X server in scripts immediately and do not track if abstract socket is free or not. Everything works fine with Unix domain sockets though. --- packages/libx11/build.sh | 1 + packages/libxcb/build.sh | 1 + packages/libxcb/disable-abstract-sockets.patch | 11 +++++++++++ packages/xtrans/xtrans-1.4.0_Xtranssock.c.patch | 13 ++++++++++++- x11-packages/tigervnc/build.sh | 2 +- x11-packages/xorg-server/build.sh | 2 +- x11-packages/xwayland/build.sh | 1 + 7 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 packages/libxcb/disable-abstract-sockets.patch diff --git a/packages/libx11/build.sh b/packages/libx11/build.sh index 370bc49918493d..e2723f63bdf5e8 100644 --- a/packages/libx11/build.sh +++ b/packages/libx11/build.sh @@ -5,6 +5,7 @@ TERMUX_PKG_LICENSE="MIT, X11" TERMUX_PKG_LICENSE_FILE="COPYING" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.8.12" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://xorg.freedesktop.org/releases/individual/lib/libX11-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=fa026f9bb0124f4d6c808f9aef4057aad65e7b35d8ff43951cef0abe06bb9a9a TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/libxcb/build.sh b/packages/libxcb/build.sh index fb7517cb9e20c4..be76defb5ab978 100644 --- a/packages/libxcb/build.sh +++ b/packages/libxcb/build.sh @@ -4,6 +4,7 @@ TERMUX_PKG_DESCRIPTION="X11 client-side library" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.17.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://xorg.freedesktop.org/archive/individual/lib/libxcb-$TERMUX_PKG_VERSION.tar.xz TERMUX_PKG_SHA256=599ebf9996710fea71622e6e184f3a8ad5b43d0e5fa8c4e407123c88a59a6d55 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/libxcb/disable-abstract-sockets.patch b/packages/libxcb/disable-abstract-sockets.patch new file mode 100644 index 00000000000000..f35cf99e481105 --- /dev/null +++ b/packages/libxcb/disable-abstract-sockets.patch @@ -0,0 +1,11 @@ ++++ ./configure.ac +@@ -144,9 +144,6 @@ + have_win32="yes" + lt_enable_auto_import="-Wl,--enable-auto-import" + ;; +-linux*) +- AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets]) +- ;; + esac + + AC_SUBST(lt_enable_auto_import) diff --git a/packages/xtrans/xtrans-1.4.0_Xtranssock.c.patch b/packages/xtrans/xtrans-1.4.0_Xtranssock.c.patch index d6046f44c3041d..24cb8aaeb9b321 100644 --- a/packages/xtrans/xtrans-1.4.0_Xtranssock.c.patch +++ b/packages/xtrans/xtrans-1.4.0_Xtranssock.c.patch @@ -1,7 +1,18 @@ diff -uNr xtrans-1.4.0/Xtranssock.c xtrans-1.4.0.mod/Xtranssock.c --- xtrans-1.4.0/Xtranssock.c 2019-03-16 23:30:31.000000000 +0200 +++ xtrans-1.4.0.mod/Xtranssock.c 2019-05-19 00:52:00.404623112 +0300 -@@ -200,20 +200,20 @@ +@@ -141,10 +141,6 @@ + /* others don't need this */ + #define SocketInitOnce() /**/ + +-#ifdef __linux__ +-#define HAVE_ABSTRACT_SOCKETS +-#endif +- + #define MIN_BACKLOG 128 + #ifdef SOMAXCONN + #if SOMAXCONN > MIN_BACKLOG +@@ -233,20 +229,20 @@ #if defined(X11_t) diff --git a/x11-packages/tigervnc/build.sh b/x11-packages/tigervnc/build.sh index ace1db13f9dda9..dae85ab0edb058 100644 --- a/x11-packages/tigervnc/build.sh +++ b/x11-packages/tigervnc/build.sh @@ -9,7 +9,7 @@ TERMUX_PKG_SRCURL=(https://github.com/TigerVNC/tigervnc/archive/refs/tags/v${TER https://xorg.freedesktop.org/releases/individual/xserver/xorg-server-${TERMUX_PKG_VERSION[1]}.tar.xz) TERMUX_PKG_SHA256=(7f231906801e89f09a212e86701f3df1722e36767d6055a4e619390570548537 b14a116d2d805debc5b5b2aac505a279e69b217dae2fae2dfcb62400471a9970) -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_DEPENDS="libandroid-shmem, libc++, libgmp, libgnutls, libjpeg-turbo, libnettle, libpixman, libx11, libxau, libxdamage, libxdmcp, libxext, libxfixes, libxfont2, libxrandr, libxshmfence, libxtst, opengl, openssl, perl, xkeyboard-config, xorg-xauth, xorg-xkbcomp, zlib" TERMUX_PKG_BUILD_DEPENDS="xorg-font-util, xorg-server, xorg-util-macros, xorgproto, xtrans" TERMUX_PKG_SUGGESTS="aterm, xorg-twm" diff --git a/x11-packages/xorg-server/build.sh b/x11-packages/xorg-server/build.sh index 3b78a4101be452..b2c9bb0a9f90ec 100644 --- a/x11-packages/xorg-server/build.sh +++ b/x11-packages/xorg-server/build.sh @@ -4,7 +4,7 @@ TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" # Keep version of `tigervnc` package aligned with this package, revbump tigervnc after modifying patches of this package TERMUX_PKG_VERSION="21.1.16" -TERMUX_PKG_REVISION="1" +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://xorg.freedesktop.org/releases/individual/xserver/xorg-server-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=b14a116d2d805debc5b5b2aac505a279e69b217dae2fae2dfcb62400471a9970 # We can not update it automatically because tigervnc server version must be aligned with xorg-server. diff --git a/x11-packages/xwayland/build.sh b/x11-packages/xwayland/build.sh index 1d0492e3122522..f98a40c500cb6b 100644 --- a/x11-packages/xwayland/build.sh +++ b/x11-packages/xwayland/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Wayland X11 server" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="24.1.6" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://xorg.freedesktop.org/releases/individual/xserver/xwayland-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=737e612ca36bbdf415a911644eb7592cf9389846847b47fa46dc705bd754d2d7 TERMUX_PKG_AUTO_UPDATE=true