diff --git a/system/base/libX11/files/0001-makekeys-handle-the-new-_EVDEVK-xorgproto-symbols.patch b/system/base/libX11/files/0001-makekeys-handle-the-new-_EVDEVK-xorgproto-symbols.patch deleted file mode 100644 index 55adaaec..00000000 --- a/system/base/libX11/files/0001-makekeys-handle-the-new-_EVDEVK-xorgproto-symbols.patch +++ /dev/null @@ -1,43 +0,0 @@ -From e92efc63acd7b377faa9e534f4bf52aaa86be2a9 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Tue, 27 Jul 2021 11:46:19 +1000 -Subject: [PATCH libX11] makekeys: handle the new _EVDEVK xorgproto symbols - -These keys are all defined through a macro in the form: - #define XF86XK_BrightnessAuto _EVDEVK(0x0F4) - -The _EVDEVK macro is simply an offset of 0x10081000. -Let's parse these lines correctly so those keysyms end up in our -hashtables. - -Signed-off-by: Peter Hutterer ---- - src/util/makekeys.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/src/util/makekeys.c b/src/util/makekeys.c -index e847ef4c..4896cc53 100644 ---- a/src/util/makekeys.c -+++ b/src/util/makekeys.c -@@ -78,6 +78,18 @@ parse_line(const char *buf, char *key, KeySym *val, char *prefix) - return 1; - } - -+ /* See if we can parse one of the _EVDEVK symbols */ -+ i = sscanf(buf, "#define %127s _EVDEVK(0x%lx)", key, val); -+ if (i == 2 && (tmp = strstr(key, "XK_"))) { -+ memcpy(prefix, key, (size_t)(tmp - key)); -+ prefix[tmp - key] = '\0'; -+ tmp += 3; -+ memmove(key, tmp, strlen(tmp) + 1); -+ -+ *val += 0x10081000; -+ return 1; -+ } -+ - /* Now try to catch alias (XK_foo XK_bar) definitions, and resolve them - * immediately: if the target is in the form XF86XK_foo, we need to - * canonicalise this to XF86foo before we do the lookup. */ --- -2.31.1 - diff --git a/system/base/libX11/files/176.diff b/system/base/libX11/files/176.diff new file mode 100644 index 00000000..704ec694 --- /dev/null +++ b/system/base/libX11/files/176.diff @@ -0,0 +1,189 @@ +diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h +index e20c4833c16c6d3518e4b7feb9bdbc606584bfcc..b570bd01c657f4d86f06b414a43e96da4319f729 100644 +--- a/include/X11/Xlibint.h ++++ b/include/X11/Xlibint.h +@@ -43,6 +43,10 @@ from The Open Group. + #include /* to declare xEvent */ + #include /* for configured options like XTHREADS */ + ++#ifdef XTHREADS ++#include ++#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) +diff --git a/src/ChkIfEv.c b/src/ChkIfEv.c +index b32c2d3ebcb1aad0e704a3e5dce52dc31971afd2..666366966a0e81bf413a64e015a84da1fcf5cdf0 100644 +--- 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; +diff --git a/src/IfEvent.c b/src/IfEvent.c +index 54c37f0031b27f3d7eb629ec2ea16b615b29e734..35c592e3a54d89f1d2ac1efa40c43a04eab1c0c5 100644 +--- 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; +diff --git a/src/PeekIfEv.c b/src/PeekIfEv.c +index 68c028b70705968c6757c1e70a238886a94adecb..754749a77c0835c0ba3c1aa6edded15dab7fb478 100644 +--- 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; +diff --git a/src/locking.c b/src/locking.c +index c550603e1f5d0601af3fa19c0b8486ef5b1bc30f..642cf9894268dfbbb79a104b42b4097cfd293d82 100644 +--- 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 || 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 && 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 && dpy->ifevent_thread == xthread_self()) ++ return; ++ + #ifdef XTHREADS_WARN + _XLockDisplayWarn(dpy, file, line); + #else diff --git a/system/base/libX11/files/177.diff b/system/base/libX11/files/177.diff new file mode 100644 index 00000000..dfc886ff --- /dev/null +++ b/system/base/libX11/files/177.diff @@ -0,0 +1,32 @@ +diff --git a/src/PutBEvent.c b/src/PutBEvent.c +index f7b74b31deeba41a47816a53bbccf5319810ffb3..b8273e1adca11f6a7cee0199729a0908c2888937 100644 +--- a/src/PutBEvent.c ++++ b/src/PutBEvent.c +@@ -85,15 +85,20 @@ XPutBackEvent ( + int type = event->type & 0177; + + LockDisplay(dpy); +- fp = dpy->wire_vec[type]; +- if (fp == NULL) +- fp = _XEventToWire; +- ret = (*fp)(dpy, event, &wire); +- if (ret) ++ if (type == GenericEvent) ++ ret = _XPutBackEvent(dpy, event); ++ else + { +- ret = (*dpy->event_vec[type])(dpy, &lib, &wire); ++ fp = dpy->wire_vec[type]; ++ if (fp == NULL) ++ fp = _XEventToWire; ++ ret = (*fp)(dpy, event, &wire); + if (ret) +- ret = _XPutBackEvent(dpy, &lib); ++ { ++ ret = (*dpy->event_vec[type])(dpy, &lib, &wire); ++ if (ret) ++ ret = _XPutBackEvent(dpy, &lib); ++ } + } + UnlockDisplay(dpy); + return ret; diff --git a/system/base/libX11/files/fix-null-pointer.patch b/system/base/libX11/files/fix-null-pointer.patch deleted file mode 100644 index 8b37f365..00000000 --- a/system/base/libX11/files/fix-null-pointer.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur libX11-1.3.5//src/xlibi18n/ICWrap.c libX11-1.3.5.tpg//src/xlibi18n/ICWrap.c ---- libX11-1.3.5//src/xlibi18n/ICWrap.c 2010-08-10 04:59:44.000000000 +0000 -+++ libX11-1.3.5.tpg//src/xlibi18n/ICWrap.c 2010-09-17 17:11:21.000000000 +0000 -@@ -283,7 +283,7 @@ - XIMArg *args; - char *ret; - -- if (!ic->core.im) -+ if (!ic || !ic->core.im) - return (char *) NULL; - - /* diff --git a/system/base/libX11/files/fix-segfault.diff b/system/base/libX11/files/fix-segfault.diff deleted file mode 100644 index a38c0ce2..00000000 --- a/system/base/libX11/files/fix-segfault.diff +++ /dev/null @@ -1,50 +0,0 @@ -Index: libX11-1.4.99.1/src/Xrm.c -=================================================================== ---- libX11-1.4.99.1.orig/src/Xrm.c -+++ libX11-1.4.99.1/src/Xrm.c -@@ -2540,30 +2540,40 @@ Bool XrmQGetResource( - VClosureRec closure; - - if (db && *names) { -- _XLockMutex(&db->linfo); -+ if ((_XLockMutex_fn) && db->linfo.lock ) { -+ _XLockMutex(&db->linfo); -+ } - closure.type = pType; - closure.value = pValue; - table = db->table; - if (names[1]) { - if (table && !table->leaf) { - if (GetNEntry(table, names, classes, &closure)) { -- _XUnlockMutex(&db->linfo); -+ if ((_XUnlockMutex_fn) && db->linfo.lock ) { -+ _XUnlockMutex(&db->linfo); -+ } - return True; - } - } else if (table && table->hasloose && - GetLooseVEntry((LTable)table, names, classes, &closure)) { -- _XUnlockMutex (&db->linfo); -+ if ((_XUnlockMutex_fn) && db->linfo.lock ) { -+ _XUnlockMutex (&db->linfo); -+ } - return True; - } - } else { - if (table && !table->leaf) - table = table->next; - if (table && GetVEntry((LTable)table, names, classes, &closure)) { -- _XUnlockMutex(&db->linfo); -+ if ((_XUnlockMutex_fn) && db->linfo.lock ) { -+ _XUnlockMutex(&db->linfo); -+ } - return True; - } - } -- _XUnlockMutex(&db->linfo); -+ if ((_XUnlockMutex_fn) && db->linfo.lock ) { -+ _XUnlockMutex(&db->linfo); -+ } - } - *pType = NULLQUARK; - pValue->addr = (XPointer)NULL; diff --git a/system/base/libX11/files/fix_typo.diff b/system/base/libX11/files/fix_typo.diff deleted file mode 100644 index a55a9407..00000000 --- a/system/base/libX11/files/fix_typo.diff +++ /dev/null @@ -1,27 +0,0 @@ -From 5dcb40f28d59587597d2ff6e6ac64c71cfe6ff7b Mon Sep 17 00:00:00 2001 -From: James Cloos -Date: Tue, 17 Sep 2013 16:50:42 +0000 -Subject: nls/en_US.UTF-8/Compose.pre: Fix typo. - -Fix typo added in 215ce6a67863, s/actute/acute/. - -Fixes bug #69476. Reported by Jean Krohn. - -Signed-off-by: James Cloos ---- -diff --git a/nls/en_US.UTF-8/Compose.pre b/nls/en_US.UTF-8/Compose.pre -index a741332..7314d7f 100644 ---- a/nls/en_US.UTF-8/Compose.pre -+++ b/nls/en_US.UTF-8/Compose.pre -@@ -743,7 +743,7 @@ XCOMM Part 3 - : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS - : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS - : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS -- : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301 -+ : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301 - : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301 - : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301 - : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301 --- -cgit v0.9.0.2-2-gbebe - diff --git a/system/base/libX11/pspec.xml b/system/base/libX11/pspec.xml index bb862187..d52da23d 100644 --- a/system/base/libX11/pspec.xml +++ b/system/base/libX11/pspec.xml @@ -22,9 +22,8 @@ xmlto - - + 176.diff + 177.diff @@ -76,6 +75,13 @@ + + 2022-12-19 + 1.8.3 + Rebuild. + Mustafa Cinasal + muscnsl@gmail.com + 2022-12-16 1.8.3