[SM-Commit] GIT changes to master xorg-modular grimoire by Alexander Tsamutali (74d0e16c5103dd8b313973fa60b7386e0e08b2cd)

Alexander Tsamutali scm at sourcemage.org
Thu Sep 13 12:49:40 EDT 2007


GIT changes to master xorg-modular grimoire by Alexander Tsamutali <astsmtl at gmail.com>:

 dev/null                                  |binary
 xorg-lib/libxcb/DETAILS                   |    1 
 xorg-lib/libxcb/FINAL                     |    4 ++
 xorg-lib/libxcb/HISTORY                   |    7 +++-
 xorg-lib/libxcb/PRE_BUILD                 |    3 +
 xorg-lib/libxcb/libxcb-0.9.93.tar.bz2.sig |    0 
 xorg-lib/libxcb/sloppy-lock.patch         |   46 ++++++++++++++++++++++++++++++
 7 files changed, 60 insertions(+), 1 deletion(-)

New commits:
commit 74d0e16c5103dd8b313973fa60b7386e0e08b2cd
Author: Alexander Tsamutali <astsmtl at gmail.com>
Commit: Alexander Tsamutali <astsmtl at gmail.com>

    xorg-lib/libxcb: added optional workaround for java bug

diff --git a/xorg-lib/libxcb/DETAILS b/xorg-lib/libxcb/DETAILS
index f4bbf46..42bda4a 100755
--- a/xorg-lib/libxcb/DETAILS
+++ b/xorg-lib/libxcb/DETAILS
@@ -1,5 +1,6 @@
            SPELL=libxcb
          VERSION=1.0
+      PATCHLEVEL=1
           SOURCE="$SPELL-$VERSION.tar.bz2"
    SOURCE_URL[0]=http://xcb.freedesktop.org/dist/$SOURCE
      SOURCE_HASH=sha512:b3a3fe3317df8243e6bb08417018d5293bfbd3cdac3fa9c6f8c0c6a7ff3d450cadbff846dc61e0b41f5160e5931b58e1a9d9d9add9da3511638300eaee7aec11
diff --git a/xorg-lib/libxcb/FINAL b/xorg-lib/libxcb/FINAL
new file mode 100755
index 0000000..5adb6df
--- /dev/null
+++ b/xorg-lib/libxcb/FINAL
@@ -0,0 +1,4 @@
+message "${MESSAGE_COLOR}It's possible to workaround a bug when application
+crashes with something like:
+... xcb_xlib_unlock: Assertion \`c->xlib.lock' failed.
+Just export LIBXCB_ALLOW_SLOPPY_LOCK=1${DEFAULT_COLOR}"
diff --git a/xorg-lib/libxcb/HISTORY b/xorg-lib/libxcb/HISTORY
index 2ad2035..fe40edf 100644
--- a/xorg-lib/libxcb/HISTORY
+++ b/xorg-lib/libxcb/HISTORY
@@ -1,3 +1,9 @@
+2007-09-13 Alexander Tsamutali <astsmtl at gmail.com>
+	* PRE_BUILD, sloppy-lock.patch: added to enable optional workaround
+	  for one very popular java bug, thanks to opensuse
+	* FINAL: added information on how to enable workaround
+	* DETAILS: PATCHLEVEL++
+
 2007-02-01 Andraž "ruskie" Levstik <ruskie at mages.ath.cx>
 	* DETAILS: updated to 1.0
 	* DEPENDS: added lipthread-stubs
@@ -7,4 +13,3 @@
 
 2006-10-22 Andraž "ruskie" Levstik <ruskie at mages.ath.cx>
 	* DETAILS, DEPENDS, HISTORY: created spell
-
diff --git a/xorg-lib/libxcb/PRE_BUILD b/xorg-lib/libxcb/PRE_BUILD
new file mode 100755
index 0000000..2d6b3d8
--- /dev/null
+++ b/xorg-lib/libxcb/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build  &&
+cd  $SOURCE_DIRECTORY  &&
+patch -p0 < $SCRIPT_DIRECTORY/sloppy-lock.patch
diff --git a/xorg-lib/libxcb/libxcb-0.9.93.tar.bz2.sig b/xorg-lib/libxcb/libxcb-0.9.93.tar.bz2.sig
deleted file mode 100644
index 6353ee3..0000000
Binary files a/xorg-lib/libxcb/libxcb-0.9.93.tar.bz2.sig and /dev/null differ
diff --git a/xorg-lib/libxcb/sloppy-lock.patch b/xorg-lib/libxcb/sloppy-lock.patch
new file mode 100644
index 0000000..22236cb
--- /dev/null
+++ b/xorg-lib/libxcb/sloppy-lock.patch
@@ -0,0 +1,46 @@
+--- src/xcb_conn.c.orig	2007-03-03 17:05:12.000000000 +0100
++++ src/xcb_conn.c	2007-03-03 17:18:25.000000000 +0100
+@@ -62,6 +62,11 @@
+ static int _xcb_xlib_init(_xcb_xlib *xlib)
+ {
+     xlib->lock = 0;
++    xlib->sloppy_lock = 0;
++
++    if (getenv("LIBXCB_ALLOW_SLOPPY_LOCK"))
++        xlib->sloppy_lock = 1;
++
+     pthread_cond_init(&xlib->cond, 0);
+     return 1;
+ }
+--- src/xcbint.h.orig	2007-03-03 17:05:00.000000000 +0100
++++ src/xcbint.h	2007-03-03 17:10:33.000000000 +0100
+@@ -130,6 +130,7 @@
+ 
+ typedef struct _xcb_xlib {
+     int lock;
++    int sloppy_lock;
+     pthread_t thread;
+     pthread_cond_t cond;
+ } _xcb_xlib;
+--- src/xcb_xlib.c.orig	2007-03-03 17:07:06.000000000 +0100
++++ src/xcb_xlib.c	2007-03-03 17:10:14.000000000 +0100
+@@ -40,7 +40,8 @@
+ void xcb_xlib_lock(xcb_connection_t *c)
+ {
+     _xcb_lock_io(c);
+-    assert(!c->xlib.lock);
++    if (!c->xlib.sloppy_lock)
++	    assert(!c->xlib.lock);
+     c->xlib.lock = 1;
+     c->xlib.thread = pthread_self();
+     _xcb_unlock_io(c);
+@@ -49,7 +50,8 @@
+ void xcb_xlib_unlock(xcb_connection_t *c)
+ {
+     _xcb_lock_io(c);
+-    assert(c->xlib.lock);
++    if (!c->xlib.sloppy_lock)
++	assert(c->xlib.lock);
+     assert(pthread_equal(c->xlib.thread, pthread_self()));
+     c->xlib.lock = 0;
+     pthread_cond_broadcast(&c->xlib.cond);



More information about the SM-Commit mailing list