summaryrefslogtreecommitdiff
path: root/x11-libs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-11-25 07:12:05 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-11-25 07:12:05 +0000
commit14a74a5f982f25582974c2ee235027a041aec36d (patch)
treedc57c37e535d9d67af9a5034c4748ec3698923b9 /x11-libs
parentb1b0997aac1e7f68389ed3e0f95d3ea9d92277e2 (diff)
gentoo auto-resync : 25:11:2022 - 07:12:04
Diffstat (limited to 'x11-libs')
-rw-r--r--x11-libs/Manifest.gzbin19021 -> 19026 bytes
-rw-r--r--x11-libs/libX11/Manifest2
-rw-r--r--x11-libs/libX11/files/libX11-1.8.2-reentrancy.patch149
-rw-r--r--x11-libs/libX11/libX11-1.8.2-r1.ebuild48
4 files changed, 199 insertions, 0 deletions
diff --git a/x11-libs/Manifest.gz b/x11-libs/Manifest.gz
index fcf1fdb55196..5aa4aba6db15 100644
--- a/x11-libs/Manifest.gz
+++ b/x11-libs/Manifest.gz
Binary files differ
diff --git a/x11-libs/libX11/Manifest b/x11-libs/libX11/Manifest
index af278bda188f..c700f48e6a33 100644
--- a/x11-libs/libX11/Manifest
+++ b/x11-libs/libX11/Manifest
@@ -1,7 +1,9 @@
+AUX libX11-1.8.2-reentrancy.patch 4077 BLAKE2B 6888f6185a03c9c5fbe79a3ce6d2b2a78ee951038a7c5cdbcd94e72a6c24d7aca3289c724b0c940a245cd352e3f50bf064fef5c00c02321e7cb67b94a39cd13d SHA512 6d8e9f578e33cb36236757127634899f71c7c194d536fd5ba7617f96fc38928f5d402aa9adb57a2939cd6dad041ba0431a2281aaec7e5b25395b67355a10bbce
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
EBUILD libX11-1.7.5.ebuild 938 BLAKE2B 6559a7c7633d55efa6774d3b0d100a289e060a32c53cff2fb1c7dcaeffa2119058eeb8aeb1b0ff1d13dfca02fe07086c9d42071233388ede0a5b5f9a74b5bff9 SHA512 340786682d8218feb524815a1813af189f21d5a4b100e3fb61c399afff7897298a34aff2bbe8f6efe96ca9899b89f1e5acc2515f21e9277aad7c423b319f2d32
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
MISC metadata.xml 395 BLAKE2B 7912fcccfd8d8a4c9c1e5601783a0668679506638511ee719bf7bb95f99415fe95a417343060cf5ca3fe918ab1f9847f74861af36d3c712afa321272cd13cf66 SHA512 c2956ef519fe59d0f713732059224568b9d7c34579654b71993b02227a512c1ac3057dc7f81c6bc93834fd4fee212f1ae26f4055ea92f3eb7524da7d9e690f8f
diff --git a/x11-libs/libX11/files/libX11-1.8.2-reentrancy.patch b/x11-libs/libX11/files/libX11-1.8.2-reentrancy.patch
new file mode 100644
index 000000000000..784adaeb008f
--- /dev/null
+++ b/x11-libs/libX11/files/libX11-1.8.2-reentrancy.patch
@@ -0,0 +1,149 @@
+https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/a9e845809bcaae22496bc8aa3ca252b410d5f39b
+https://bugs.gentoo.org/862115
+
+From a9e845809bcaae22496bc8aa3ca252b410d5f39b Mon Sep 17 00:00:00 2001
+From: Matthieu Herrb <matthieu@herrb.eu>
+Date: Fri, 11 Nov 2022 18:55:23 +0100
+Subject: [PATCH] Fix 797755 Allow X*IfEvent() to reenter libX11
+
+- the activation logic is reversed
+- there is also _XInternalLockDisplay() that needs protection
+- I've found cases (in fvwm2) where the callback calls XCheckIfEvent()
+ recursively. So the flag needs to be a counter.
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+--- a/include/X11/Xlibint.h
++++ b/include/X11/Xlibint.h
+@@ -207,7 +207,7 @@ struct _XDisplay
+
+ XIOErrorExitHandler exit_handler;
+ void *exit_handler_data;
+- Bool in_ifevent;
++ CARD32 in_ifevent;
+ };
+
+ #define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n)
+--- a/src/ChkIfEv.c
++++ b/src/ChkIfEv.c
+@@ -49,8 +49,8 @@ Bool XCheckIfEvent (
+ unsigned long qe_serial = 0;
+ int n; /* time through count */
+
++ dpy->in_ifevent++;
+ LockDisplay(dpy);
+- dpy->in_ifevent = True;
+ prev = NULL;
+ for (n = 3; --n >= 0;) {
+ for (qelt = prev ? prev->next : dpy->head;
+@@ -80,7 +80,7 @@ Bool XCheckIfEvent (
+ /* another thread has snatched this event */
+ prev = NULL;
+ }
+- dpy->in_ifevent = False;
++ dpy->in_ifevent--;
+ UnlockDisplay(dpy);
+ return False;
+ }
+--- a/src/IfEvent.c
++++ b/src/IfEvent.c
+@@ -48,8 +48,8 @@ XIfEvent (
+ register _XQEvent *qelt, *prev;
+ unsigned long qe_serial = 0;
+
++ dpy->in_ifevent++;
+ LockDisplay(dpy);
+- dpy->in_ifevent = True;
+ prev = NULL;
+ while (1) {
+ for (qelt = prev ? prev->next : dpy->head;
+@@ -60,7 +60,7 @@ XIfEvent (
+ *event = qelt->event;
+ _XDeq(dpy, prev, qelt);
+ _XStoreEventCookie(dpy, event);
+- dpy->in_ifevent = False;
++ dpy->in_ifevent--;
+ UnlockDisplay(dpy);
+ return 0;
+ }
+--- a/src/OpenDis.c
++++ b/src/OpenDis.c
+@@ -189,7 +189,7 @@ XOpenDisplay (
+ dpy->xcmisc_opcode = 0;
+ dpy->xkb_info = NULL;
+ dpy->exit_handler_data = NULL;
+- dpy->in_ifevent = False;
++ dpy->in_ifevent = 0;
+
+ /*
+ * Setup other information in this display structure.
+--- a/src/PeekIfEv.c
++++ b/src/PeekIfEv.c
+@@ -49,8 +49,8 @@ XPeekIfEvent (
+ register _XQEvent *prev, *qelt;
+ unsigned long qe_serial = 0;
+
++ dpy->in_ifevent++;
+ LockDisplay(dpy);
+- dpy->in_ifevent = True;
+ prev = NULL;
+ while (1) {
+ for (qelt = prev ? prev->next : dpy->head;
+@@ -64,7 +64,7 @@ XPeekIfEvent (
+ _XStoreEventCookie(dpy, &copy);
+ *event = copy;
+ }
+- dpy->in_ifevent = False;
++ dpy->in_ifevent--;
+ UnlockDisplay(dpy);
+ return 0;
+ }
+--- a/src/locking.c
++++ b/src/locking.c
+@@ -465,17 +465,33 @@ static void _XIfEventLockDisplay(
+ /* assert(dpy->in_ifevent); */
+ }
+
++static void _XInternalLockDisplay(
++ Display *dpy,
++ Bool wskip
++ XTHREADS_FILE_LINE_ARGS
++ );
++
++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)
++ 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;
+-
+- dpy->lock_fns->lock_display = _XLockDisplay;
+- dpy->lock_fns->unlock_display = _XUnlockDisplay;
+- UnlockDisplay(dpy);
+ }
+
+ static void _XLockDisplay(
+@@ -507,6 +523,7 @@ static void _XLockDisplay(
+ if (dpy->in_ifevent) {
+ dpy->lock_fns->lock_display = _XIfEventLockDisplay;
+ dpy->lock_fns->unlock_display = _XIfEventUnlockDisplay;
++ dpy->lock->internal_lock_display = _XIfEventInternalLockDisplay;
+ }
+ }
+
+GitLab
diff --git a/x11-libs/libX11/libX11-1.8.2-r1.ebuild b/x11-libs/libX11/libX11-1.8.2-r1.ebuild
new file mode 100644
index 000000000000..b848ddf9b842
--- /dev/null
+++ b/x11-libs/libX11/libX11-1.8.2-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2022 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}-reentrancy.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
+}