[packages/xfce4-settings] - added libX11 1.8.1 compatibility patch, rel 2
mrozowik
mrozowik at pld-linux.org
Fri Jul 1 09:25:52 CEST 2022
commit 38ed07fdfebcc765dea9f439cbfb58fcae56bbbd
Author: Krzysztof Mrozowicz <mrozowik at pld-linux.org>
Date: Fri Jul 1 07:25:41 2022 +0000
- added libX11 1.8.1 compatibility patch, rel 2
xfce4-settings.spec | 4 ++-
xfsettingsd_xsettings_c.patch | 57 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 60 insertions(+), 1 deletion(-)
---
diff --git a/xfce4-settings.spec b/xfce4-settings.spec
index 51bcbdf..f755f6f 100644
--- a/xfce4-settings.spec
+++ b/xfce4-settings.spec
@@ -3,12 +3,13 @@ Summary: Settings manager for the Xfce desktop environment
Summary(pl.UTF-8): Menadżer ustawień dla środowiska Xfce
Name: xfce4-settings
Version: 4.16.2
-Release: 1
+Release: 2
License: GPL v2
Group: X11/Applications
Source0: http://archive.xfce.org/src/xfce/xfce4-settings/4.16/%{name}-%{version}.tar.bz2
# Source0-md5: 66828054b7c745dde39f1d4031ef0291
Patch0: 01_use-tango-icon-theme.patch
+Patch1: xfsettingsd_xsettings_c.patch
URL: http://www.xfce.org/projects/xfce4-settings/
BuildRequires: autoconf >= 2.50
BuildRequires: automake >= 1:1.8
@@ -53,6 +54,7 @@ Menadżer ustawień pozwala w łatwy i intuicyjny sposób dostosowywać
%prep
%setup -q
%patch0 -p1
+%patch1 -p0
%{__sed} -i '1s,/usr/bin/env python3$,%{__python3},' \
dialogs/mime-settings/helpers/xfce4-compose-mail
diff --git a/xfsettingsd_xsettings_c.patch b/xfsettingsd_xsettings_c.patch
new file mode 100644
index 0000000..7a47a5a
--- /dev/null
+++ b/xfsettingsd_xsettings_c.patch
@@ -0,0 +1,57 @@
+Fix recursive lock in libX11
+
+Index: xfsettingsd/xsettings.c
+--- xfsettingsd/xsettings.c.orig
++++ xfsettingsd/xsettings.c
+@@ -144,6 +144,12 @@ struct _XfceXSettingsScreen
+ gint screen_num;
+ };
+
++struct _XfceTimestamp
++{
++ Window window;
++ Atom atom;
++};
++
+
+
+ G_DEFINE_TYPE (XfceXSettingsHelper, xfce_xsettings_helper, G_TYPE_OBJECT);
+@@ -1033,11 +1039,11 @@ xfce_xsettings_helper_timestamp_predicate (Display *x
+ XEvent *xevent,
+ XPointer arg)
+ {
+- Window window = GPOINTER_TO_UINT (arg);
++ struct _XfceTimestamp *ts = (struct _XfceTimestamp *)arg;
+
+ return (xevent->type == PropertyNotify
+- && xevent->xproperty.window == window
+- && xevent->xproperty.atom == XInternAtom (xdisplay, "_TIMESTAMP_PROP", False));
++ && xevent->xproperty.window == ts->window
++ && xevent->xproperty.atom == ts->atom);
+ }
+
+
+@@ -1046,17 +1052,18 @@ Time
+ xfce_xsettings_get_server_time (Display *xdisplay,
+ Window window)
+ {
+- Atom timestamp_atom;
++ struct _XfceTimestamp *ts = g_malloc(sizeof(struct _XfceTimestamp));
+ guchar c = 'a';
+ XEvent xevent;
+
+ /* get the current xserver timestamp */
+- timestamp_atom = XInternAtom (xdisplay, "_TIMESTAMP_PROP", False);
+- XChangeProperty (xdisplay, window, timestamp_atom, timestamp_atom,
++ ts->atom = XInternAtom (xdisplay, "_TIMESTAMP_PROP", False);
++ ts->window = window;
++ XChangeProperty (xdisplay, window, ts->atom, ts->atom,
+ 8, PropModeReplace, &c, 1);
+ XIfEvent (xdisplay, &xevent, xfce_xsettings_helper_timestamp_predicate,
+- GUINT_TO_POINTER (window));
+-
++ (XPointer)ts);
++ g_free(ts);
+ return xevent.xproperty.time;
+ }
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/xfce4-settings.git/commitdiff/38ed07fdfebcc765dea9f439cbfb58fcae56bbbd
More information about the pld-cvs-commit
mailing list