summaryrefslogtreecommitdiff
path: root/x11-libs/libX11
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-01-17 07:14:19 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-01-17 07:14:19 +0000
commit66520d3148e31806a52cf7df5b8d91d5cd431670 (patch)
tree15d0c80d9ee1b1e2a454a9930a03e3d3b7c6cc61 /x11-libs/libX11
parent0e82736d0df44565875b055019ded1be0ac5c319 (diff)
gentoo auto-resync : 17:01:2023 - 07:14:19
Diffstat (limited to 'x11-libs/libX11')
-rw-r--r--x11-libs/libX11/Manifest3
-rw-r--r--x11-libs/libX11/files/libX11-1.8.3-reentrancy-again.patch188
-rw-r--r--x11-libs/libX11/files/libX11-1.8.3-revert-XPutBackEvent.patch57
-rw-r--r--x11-libs/libX11/libX11-1.8.3-r1.ebuild49
4 files changed, 297 insertions, 0 deletions
diff --git a/x11-libs/libX11/Manifest b/x11-libs/libX11/Manifest
index 94c5149fd0a4..7636a3a1ad92 100644
--- a/x11-libs/libX11/Manifest
+++ b/x11-libs/libX11/Manifest
@@ -1,4 +1,6 @@
AUX libX11-1.8.2-reentrancy.patch 4077 BLAKE2B 6888f6185a03c9c5fbe79a3ce6d2b2a78ee951038a7c5cdbcd94e72a6c24d7aca3289c724b0c940a245cd352e3f50bf064fef5c00c02321e7cb67b94a39cd13d SHA512 6d8e9f578e33cb36236757127634899f71c7c194d536fd5ba7617f96fc38928f5d402aa9adb57a2939cd6dad041ba0431a2281aaec7e5b25395b67355a10bbce
+AUX libX11-1.8.3-reentrancy-again.patch 4713 BLAKE2B e2d308bd011120655009e5af1e5cbbefa217c3de1c7e78d3ddc64d0ce02535cc63903696ec21cb5743b49ee016a3c8ded22ee62a2f1256b71c0f245c51108de5 SHA512 a6a2f504fe7b860a86ac140c2b1ad7ca3c4a8fc2170535a5cac365bf8de40fa576f0d05134b1eb316192b4acb909bba473298704b18c7c1e1602e2a4f56e592f
+AUX libX11-1.8.3-revert-XPutBackEvent.patch 1772 BLAKE2B b60d6cb535d6557fb2ba84a962af77481c6ebd1780d23869172cb331a09f7638fee75deeb73b02a5c37f658f5d04d2b90a6f5c9d91121c187f9d98a311c3c718 SHA512 df965ba65ca448686e200feaee11f8f9fb90b27fd2def30aee930d21b03682ed83613d3630b024fe6d1fd2894e76fa35ff8d04afc6e958981ed9b3e8f51e834c
DIST libX11-1.7.5.tar.xz 1853152 BLAKE2B 95ceccbfd37d8a749a533bdc03feba94236a47185a2cd7ad6592c534c17636906b735aa5800d810d13d3e342e3dbe281bb1f1f3ecab9d07e6a6a50f33beef8af SHA512 ef33e2f631226cab27657f46e1fd4cfc928f62f928d8297474e7b993017c8f92b60272eed6515990cdf3a9d34581837b7a3896e584f3546dd26f3790034df347
DIST libX11-1.8.1.tar.xz 1818460 BLAKE2B 7602b4d8c65ea3160f81096b4e022b5462e49d96b36dee70fe06e972329dc9d70bbd462e2079da03ba5647d7a72bf03e29aab23c60bcc206c95d770655622226 SHA512 2e36d2c47519e0cb2697f588c0ccdf73fbe75c2163f0855c78f7052dc9e920bca081f9d5e39c707a14067f101faef74fc758c8862eeba675b1535b43119d533a
DIST libX11-1.8.2.tar.xz 1823712 BLAKE2B e504d93ba399301106181a29e6d869e82abe54472ef8d6a8d4d2d7d9cf94f73914a73911fb1ff156a08b852e5592231059f5ee4c64f2c7e8d49df3c532c9da43 SHA512 662ee8043d9ba27df82f647515b701d6f302a52715f21afdaba391f3b70691753e3649e7ff8322e07858be4297df9cbb19227958d676ed6dea198cce64330d1d
@@ -7,5 +9,6 @@ EBUILD libX11-1.7.5.ebuild 938 BLAKE2B 6559a7c7633d55efa6774d3b0d100a289e060a32c
EBUILD libX11-1.8.1.ebuild 966 BLAKE2B 4ad188c9d7030b656da151da82ecb7cd776deae774c5809e79a7a3f3fbd34ef0d7b54c822b4f7d748fc881293366b1c5e89817ce19e00c701e1d8186c9d40982 SHA512 5f361d9291ad4c0f04d6449efe244196c612bfbb3ba6342ca2da45dab3c169e306302e0e200ecd60d9a1bcc0e94cf9781807d9bf60f6573012b444d0d258800b
EBUILD libX11-1.8.2-r1.ebuild 1024 BLAKE2B b587287f2eccc135d80a93b16c7d1d3b83f588636489d8b2352d2ae3f0b424a6d2a1d7111b88c2a88e062c7f0f434f659e96cc53b7aa999babd2cc45f635223c SHA512 a979ece6a2ad173b9d2bf379cdcc7dfee990100ea6372d75a56b051d9a3a2156f5a0608507cfcd9391c57d68aac8e0492e3280015dc10463e841d1fec87fdfb9
EBUILD libX11-1.8.2.ebuild 974 BLAKE2B 1330883cf7063ac03afd07984a6fb2c3d1ba47ac0dc84c40614945e149e23c7d0f7372f79d1d901781bad49a1746190007c1b6ecdef3baf13b9b7a9cbedf4c03 SHA512 4cd859027b3b8e7fc6b0c4b556f168c5a18d0f03d9757670a0f53bbe24e37dd9998800172d9aec9c50bd49ca45c07cd4958b5fb5f639a601d379347de8f66f57
+EBUILD libX11-1.8.3-r1.ebuild 1077 BLAKE2B f240ab8a5fff1bea892e6636e780b66ef9ef639399dad44651cac05a86b23bb2fdee75721b40b29116860296e87b8e9fee124c9ed76cc7b82dc90fd0571ce834 SHA512 9ae6a254edb95cbaff3d0de9c7d6966fbc6718d4dfc1a8f3eda427a7e9e6df0816ddf8d1cace87cb25763aa635b65c4ae33639ff9d45d60263a6174322c6b276
EBUILD libX11-1.8.3.ebuild 974 BLAKE2B 1330883cf7063ac03afd07984a6fb2c3d1ba47ac0dc84c40614945e149e23c7d0f7372f79d1d901781bad49a1746190007c1b6ecdef3baf13b9b7a9cbedf4c03 SHA512 4cd859027b3b8e7fc6b0c4b556f168c5a18d0f03d9757670a0f53bbe24e37dd9998800172d9aec9c50bd49ca45c07cd4958b5fb5f639a601d379347de8f66f57
MISC metadata.xml 395 BLAKE2B 7912fcccfd8d8a4c9c1e5601783a0668679506638511ee719bf7bb95f99415fe95a417343060cf5ca3fe918ab1f9847f74861af36d3c712afa321272cd13cf66 SHA512 c2956ef519fe59d0f713732059224568b9d7c34579654b71993b02227a512c1ac3057dc7f81c6bc93834fd4fee212f1ae26f4055ea92f3eb7524da7d9e690f8f
diff --git a/x11-libs/libX11/files/libX11-1.8.3-reentrancy-again.patch b/x11-libs/libX11/files/libX11-1.8.3-reentrancy-again.patch
new file mode 100644
index 000000000000..3ab9b6b1424c
--- /dev/null
+++ b/x11-libs/libX11/files/libX11-1.8.3-reentrancy-again.patch
@@ -0,0 +1,188 @@
+https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/eb1c272ab5230d548077b9f59aca4b3457c3a8f8
+
+From eb1c272ab5230d548077b9f59aca4b3457c3a8f8 Mon Sep 17 00:00:00 2001
+From: GaryOderNichts <garyodernichts@gmail.com>
+Date: Sat, 17 Dec 2022 16:28:40 +0100
+Subject: [PATCH] Fix a9e845 and 797755 Allow X*IfEvent() to reenter libX11
+
+--- a/include/X11/Xlibint.h
++++ b/include/X11/Xlibint.h
+@@ -43,6 +43,10 @@ from The Open Group.
+ #include <X11/Xproto.h> /* to declare xEvent */
+ #include <X11/XlibConf.h> /* for configured options like XTHREADS */
+
++#ifdef XTHREADS
++#include <X11/Xthreads.h>
++#endif
++
+ /* The Xlib structs are full of implicit padding to properly align members.
+ We can't clean that up without breaking ABI, so tell clang not to bother
+ complaining about it. */
+@@ -207,7 +211,10 @@ struct _XDisplay
+
+ XIOErrorExitHandler exit_handler;
+ void *exit_handler_data;
+- CARD32 in_ifevent;
++ CARD32 in_ifevent;
++#ifdef XTHREADS
++ xthread_t ifevent_thread;
++#endif
+ };
+
+ #define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n)
+--- a/src/ChkIfEv.c
++++ b/src/ChkIfEv.c
+@@ -49,8 +49,11 @@ Bool XCheckIfEvent (
+ unsigned long qe_serial = 0;
+ int n; /* time through count */
+
+- dpy->in_ifevent++;
+ LockDisplay(dpy);
++#ifdef XTHREADS
++ dpy->ifevent_thread = xthread_self();
++#endif
++ dpy->in_ifevent++;
+ prev = NULL;
+ for (n = 3; --n >= 0;) {
+ for (qelt = prev ? prev->next : dpy->head;
+--- a/src/IfEvent.c
++++ b/src/IfEvent.c
+@@ -48,8 +48,11 @@ XIfEvent (
+ register _XQEvent *qelt, *prev;
+ unsigned long qe_serial = 0;
+
+- dpy->in_ifevent++;
+ LockDisplay(dpy);
++#ifdef XTHREADS
++ dpy->ifevent_thread = xthread_self();
++#endif
++ dpy->in_ifevent++;
+ prev = NULL;
+ while (1) {
+ for (qelt = prev ? prev->next : dpy->head;
+--- a/src/PeekIfEv.c
++++ b/src/PeekIfEv.c
+@@ -49,8 +49,11 @@ XPeekIfEvent (
+ register _XQEvent *prev, *qelt;
+ unsigned long qe_serial = 0;
+
+- dpy->in_ifevent++;
+ LockDisplay(dpy);
++#ifdef XTHREADS
++ dpy->ifevent_thread = xthread_self();
++#endif
++ dpy->in_ifevent++;
+ prev = NULL;
+ while (1) {
+ for (qelt = prev ? prev->next : dpy->head;
+--- a/src/locking.c
++++ b/src/locking.c
+@@ -240,7 +240,9 @@ static void _XUnlockDisplay(
+ if (lock_hist_loc >= LOCK_HIST_SIZE)
+ lock_hist_loc = 0;
+ #endif /* XTHREADS_WARN */
+- xmutex_unlock(dpy->lock->mutex);
++
++ if (dpy->in_ifevent == 0 || !xthread_equal(dpy->ifevent_thread, xthread_self()))
++ xmutex_unlock(dpy->lock->mutex);
+ }
+
+
+@@ -453,63 +455,24 @@ static void _XDisplayLockWait(
+ }
+
+ static void _XLockDisplay(
+- Display *dpy
+- XTHREADS_FILE_LINE_ARGS
+- );
+-
+-static void _XIfEventLockDisplay(
+ Display *dpy
+ XTHREADS_FILE_LINE_ARGS
+ )
+ {
+- /* assert(dpy->in_ifevent); */
+-}
++ struct _XErrorThreadInfo *ti;
+
+-static void _XInternalLockDisplay(
+- Display *dpy,
+- Bool wskip
+- XTHREADS_FILE_LINE_ARGS
+- );
++ if (dpy->in_ifevent && xthread_equal(dpy->ifevent_thread, xthread_self()))
++ return;
+
+-static void _XIfEventInternalLockDisplay(
+- Display *dpy,
+- Bool wskip
+- XTHREADS_FILE_LINE_ARGS
+- )
+-{
+- /* assert(dpy->in_ifevent); */
+-}
+-
+-static void _XIfEventUnlockDisplay(
+- Display *dpy
+- XTHREADS_FILE_LINE_ARGS
+- )
+-{
+- if (dpy->in_ifevent == 0) {
+- dpy->lock_fns->lock_display = _XLockDisplay;
+- dpy->lock_fns->unlock_display = _XUnlockDisplay;
+- dpy->lock->internal_lock_display = _XInternalLockDisplay;
+- UnlockDisplay(dpy);
+- } else
+- return;
+-}
+-
+-static void _XLockDisplay(
+- Display *dpy
+- XTHREADS_FILE_LINE_ARGS
+- )
+-{
+-#ifdef XTHREADS
+- struct _XErrorThreadInfo *ti;
+-#endif
+ #ifdef XTHREADS_WARN
+ _XLockDisplayWarn(dpy, file, line);
+ #else
+ xmutex_lock(dpy->lock->mutex);
+ #endif
++
+ if (dpy->lock->locking_level > 0)
+- _XDisplayLockWait(dpy);
+-#ifdef XTHREADS
++ _XDisplayLockWait(dpy);
++
+ /*
+ * Skip the two function calls below which may generate requests
+ * when LockDisplay is called from within _XError.
+@@ -517,14 +480,9 @@ static void _XLockDisplay(
+ for (ti = dpy->error_threads; ti; ti = ti->next)
+ if (ti->error_thread == xthread_self())
+ return;
+-#endif
++
+ _XIDHandler(dpy);
+ _XSeqSyncFunction(dpy);
+- if (dpy->in_ifevent) {
+- dpy->lock_fns->lock_display = _XIfEventLockDisplay;
+- dpy->lock_fns->unlock_display = _XIfEventUnlockDisplay;
+- dpy->lock->internal_lock_display = _XIfEventInternalLockDisplay;
+- }
+ }
+
+ /*
+@@ -537,6 +495,9 @@ static void _XInternalLockDisplay(
+ XTHREADS_FILE_LINE_ARGS
+ )
+ {
++ if (dpy->in_ifevent && xthread_equal(dpy->ifevent_thread, xthread_self()))
++ return;
++
+ #ifdef XTHREADS_WARN
+ _XLockDisplayWarn(dpy, file, line);
+ #else
+--
+GitLab
diff --git a/x11-libs/libX11/files/libX11-1.8.3-revert-XPutBackEvent.patch b/x11-libs/libX11/files/libX11-1.8.3-revert-XPutBackEvent.patch
new file mode 100644
index 000000000000..b210defcf664
--- /dev/null
+++ b/x11-libs/libX11/files/libX11-1.8.3-revert-XPutBackEvent.patch
@@ -0,0 +1,57 @@
+https://bugs.gentoo.org/886349
+https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/176
+https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/174
+https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/88399e01be679bfcc9a5e8922ffe2c47f0e56dee
+
+From 88399e01be679bfcc9a5e8922ffe2c47f0e56dee Mon Sep 17 00:00:00 2001
+From: Yuxuan Shui <yshuiv7@gmail.com>
+Date: Tue, 3 Jan 2023 15:09:28 +0000
+Subject: [PATCH] Revert "Update XPutBackEvent() to support clients that put
+ back unpadded events"
+
+This reverts commit d6d6cba90215d323567fef13d6565756c9956f60.
+
+The reverted commit intended to fix the problem where an unpadded X
+event struct is passed into XPutBackEvent, by creating a padded struct
+with _XEventToWire and _XWireToEvent. However, _XWireToEvent updates the
+last sequence number in Display, which may cause xlib to complain about
+lost sequence numbers.
+
+IMO, the problem that commit tried to solve is a bug in the client
+library, and workaround it inside Xlib is bad practice, especially given
+the problem it caused. Plus, the offender cited in the original commit
+message, freeglut, has already fixed this problem.
+
+Fixes: #176 #174
+
+Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
+--- a/src/PutBEvent.c
++++ b/src/PutBEvent.c
+@@ -79,22 +79,9 @@ XPutBackEvent (
+ register XEvent *event)
+ {
+ int ret;
+- xEvent wire = {0};
+- XEvent lib = {0};
+- Status (*fp)(Display *, XEvent *, xEvent *);
+- int type = event->type & 0177;
+
+ LockDisplay(dpy);
+- fp = dpy->wire_vec[type];
+- if (fp == NULL)
+- fp = _XEventToWire;
+- ret = (*fp)(dpy, event, &wire);
+- if (ret)
+- {
+- ret = (*dpy->event_vec[type])(dpy, &lib, &wire);
+- if (ret)
+- ret = _XPutBackEvent(dpy, &lib);
+- }
++ ret = _XPutBackEvent(dpy, event);
+ UnlockDisplay(dpy);
+ return ret;
+ }
+--
+GitLab
+
+
diff --git a/x11-libs/libX11/libX11-1.8.3-r1.ebuild b/x11-libs/libX11/libX11-1.8.3-r1.ebuild
new file mode 100644
index 000000000000..a24f4cae12dd
--- /dev/null
+++ b/x11-libs/libX11/libX11-1.8.3-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+XORG_DOC=doc
+XORG_MULTILIB=yes
+XORG_TARBALL_SUFFIX=xz
+inherit toolchain-funcs xorg-3
+
+# Note: please bump this with x11-misc/compose-tables
+DESCRIPTION="X.Org X11 library"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=x11-libs/libxcb-1.11.1[${MULTILIB_USEDEP}]
+ x11-misc/compose-tables
+
+ !<xfce-base/xfce4-settings-4.16.3
+"
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto
+ x11-libs/xtrans
+"
+BDEPEND="test? ( dev-lang/perl )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-revert-XPutBackEvent.patch
+ "${FILESDIR}"/${P}-reentrancy-again.patch
+)
+
+src_configure() {
+ local XORG_CONFIGURE_OPTIONS=(
+ $(use_with doc xmlto)
+ $(use_enable doc specs)
+ --enable-ipv6
+ --without-fop
+ CPP="$(tc-getPROG CPP cpp)"
+ )
+ xorg-3_src_configure
+}
+
+src_install() {
+ xorg-3_src_install
+ rm -rf "${ED}"/usr/share/X11/locale || die
+}