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>
|
<Dependency>xmlto</Dependency>
|
||||||
</BuildDependencies>
|
</BuildDependencies>
|
||||||
<Patches>
|
<Patches>
|
||||||
<!--<Patch level="1">fix_typo.diff</Patch>
|
<Patch level="1">176.diff</Patch>
|
||||||
<Patch level="1">fix-segfault.diff</Patch>-->
|
<Patch level="1">177.diff</Patch>
|
||||||
<!-- <Patch level="1">0001-makekeys-handle-the-new-_EVDEVK-xorgproto-symbols.patch</Patch> -->
|
|
||||||
</Patches>
|
</Patches>
|
||||||
</Source>
|
</Source>
|
||||||
|
|
||||||
@@ -76,6 +75,13 @@
|
|||||||
</Package>
|
</Package>
|
||||||
|
|
||||||
<History>
|
<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">
|
<Update release="23">
|
||||||
<Date>2022-12-16</Date>
|
<Date>2022-12-16</Date>
|
||||||
<Version>1.8.3</Version>
|
<Version>1.8.3</Version>
|
||||||
|
|||||||
Reference in New Issue
Block a user