libx11 rebuild
This commit is contained in:
@@ -1,43 +0,0 @@
|
||||
From e92efc63acd7b377faa9e534f4bf52aaa86be2a9 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
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 <peter.hutterer@who-t.net>
|
||||
---
|
||||
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
|
||||
|
||||
@@ -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 <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)
|
||||
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
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
|
||||
/*
|
||||
@@ -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;
|
||||
@@ -1,27 +0,0 @@
|
||||
From 5dcb40f28d59587597d2ff6e6ac64c71cfe6ff7b Mon Sep 17 00:00:00 2001
|
||||
From: James Cloos <cloos@jhcloos.com>
|
||||
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 <cloos@jhcloos.com>
|
||||
---
|
||||
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
|
||||
<Multi_key> <i> <quotedbl> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
<Multi_key> <diaeresis> <i> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
<Multi_key> <i> <diaeresis> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
-<dead_actute> <j> : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
|
||||
+<dead_acute> <j> : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
|
||||
<Multi_key> <apostrophe> <j> : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
|
||||
<Multi_key> <j> <apostrophe> : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
|
||||
<Multi_key> <acute> <j> : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
||||
|
||||
@@ -22,9 +22,8 @@
|
||||
<Dependency>xmlto</Dependency>
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<!--<Patch level="1">fix_typo.diff</Patch>
|
||||
<Patch level="1">fix-segfault.diff</Patch>-->
|
||||
<!-- <Patch level="1">0001-makekeys-handle-the-new-_EVDEVK-xorgproto-symbols.patch</Patch> -->
|
||||
<Patch level="1">176.diff</Patch>
|
||||
<Patch level="1">177.diff</Patch>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
@@ -76,6 +75,13 @@
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="24">
|
||||
<Date>2022-12-19</Date>
|
||||
<Version>1.8.3</Version>
|
||||
<Comment>Rebuild.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="23">
|
||||
<Date>2022-12-16</Date>
|
||||
<Version>1.8.3</Version>
|
||||
|
||||
Reference in New Issue
Block a user