]> git.pld-linux.org Git - packages/xfce4-settings.git/commitdiff
- added libX11 1.8.1 compatibility patch, rel 2 auto/th/xfce4-settings-4.16.2-2
authorKrzysztof Mrozowicz <mrozowik@pld-linux.org>
Fri, 1 Jul 2022 07:25:41 +0000 (07:25 +0000)
committerKrzysztof Mrozowicz <mrozowik@pld-linux.org>
Fri, 1 Jul 2022 07:25:41 +0000 (07:25 +0000)
xfce4-settings.spec
xfsettingsd_xsettings_c.patch [new file with mode: 0644]

index 51bcbdf762dd514fdbe5bbd4787ff227144ffc55..f755f6fc427ead580e55c7402984627b21cb6c1a 100644 (file)
@@ -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 (file)
index 0000000..7a47a5a
--- /dev/null
@@ -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;
+ }
This page took 0.211408 seconds and 4 git commands to generate.