summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonnie Berkholz <dberkholz@gentoo.org>2006-10-12 19:26:58 +0000
committerDonnie Berkholz <dberkholz@gentoo.org>2006-10-12 19:26:58 +0000
commitf26de0cfa313314687508177b451577032f13fc1 (patch)
tree1885b5c5eaafb95cc81671c4c047088674713cae /x11-libs/libX11
parentVersion bump (diff)
downloadgentoo-2-f26de0cfa313314687508177b451577032f13fc1.tar.gz
gentoo-2-f26de0cfa313314687508177b451577032f13fc1.tar.bz2
gentoo-2-f26de0cfa313314687508177b451577032f13fc1.zip
Bump to fix some crashes associated with XKB, when XCB is active (Magnus Kessler, Jamey Sharp).
(Portage version: 2.1.2_pre2-r9)
Diffstat (limited to 'x11-libs/libX11')
-rw-r--r--x11-libs/libX11/ChangeLog9
-rw-r--r--x11-libs/libX11/files/1.0.99.1-xcb-xkb-fixes.patch106
-rw-r--r--x11-libs/libX11/files/digest-libX11-1.0.99.1-r13
-rw-r--r--x11-libs/libX11/libX11-1.0.99.1-r1.ebuild33
4 files changed, 150 insertions, 1 deletions
diff --git a/x11-libs/libX11/ChangeLog b/x11-libs/libX11/ChangeLog
index 5f6778350303..ab4b066a111e 100644
--- a/x11-libs/libX11/ChangeLog
+++ b/x11-libs/libX11/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for x11-libs/libX11
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/libX11/ChangeLog,v 1.54 2006/10/09 01:58:51 dberkholz Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/libX11/ChangeLog,v 1.55 2006/10/12 19:26:58 dberkholz Exp $
+
+*libX11-1.0.99.1-r1 (12 Oct 2006)
+
+ 12 Oct 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/1.0.99.1-xcb-xkb-fixes.patch, +libX11-1.0.99.1-r1.ebuild:
+ Bump to fix some crashes associated with XKB, when XCB is active (Magnus
+ Kessler, Jamey Sharp).
*libX11-1.0.99.1 (09 Oct 2006)
diff --git a/x11-libs/libX11/files/1.0.99.1-xcb-xkb-fixes.patch b/x11-libs/libX11/files/1.0.99.1-xcb-xkb-fixes.patch
new file mode 100644
index 000000000000..5bf095cc5738
--- /dev/null
+++ b/x11-libs/libX11/files/1.0.99.1-xcb-xkb-fixes.patch
@@ -0,0 +1,106 @@
+diff --git a/src/xkb/XKBGeom.c b/src/xkb/XKBGeom.c
+index 02b03ba..fa652b2 100644
+--- a/src/xkb/XKBGeom.c
++++ b/src/xkb/XKBGeom.c
+@@ -632,21 +632,27 @@ XkbGetGeometry(Display *dpy,XkbDescPtr x
+ {
+ xkbGetGeometryReq *req;
+ xkbGetGeometryReply rep;
++Status status;
+
+ if ( (!xkb) || (dpy->flags & XlibDisplayNoXkb) ||
+ (!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)))
+ return BadAccess;
+
++ LockDisplay(dpy);
+ GetReq(kbGetGeometry, req);
+ req->reqType = dpy->xkb_info->codes->major_opcode;
+ req->xkbReqType = X_kbGetGeometry;
+ req->deviceSpec = xkb->device_spec;
+ req->name= None;
+ if (!_XReply(dpy, (xReply *)&rep, 0, xFalse))
+- return BadImplementation;
+- if (!rep.found)
+- return BadName;
+- return _XkbReadGetGeometryReply(dpy,&rep,xkb,NULL);
++ status = BadImplementation;
++ else if (!rep.found)
++ status = BadName;
++ else
++ status = _XkbReadGetGeometryReply(dpy,&rep,xkb,NULL);
++ UnlockDisplay(dpy);
++ SyncHandle();
++ return status;
+ }
+
+ Status
+@@ -654,20 +660,26 @@ XkbGetNamedGeometry(Display *dpy,XkbDesc
+ {
+ xkbGetGeometryReq *req;
+ xkbGetGeometryReply rep;
++Status status;
+
+ if ( (name==None) || (dpy->flags & XlibDisplayNoXkb) ||
+ (!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)) )
+ return BadAccess;
+
++ LockDisplay(dpy);
+ GetReq(kbGetGeometry, req);
+ req->reqType = dpy->xkb_info->codes->major_opcode;
+ req->xkbReqType = X_kbGetGeometry;
+ req->deviceSpec = xkb->device_spec;
+ req->name= (CARD32)name;
+ if ((!_XReply(dpy, (xReply *)&rep, 0, xFalse))||(!rep.found))
+- return BadImplementation;
+- if (!rep.found)
+- return BadName;
+- return _XkbReadGetGeometryReply(dpy,&rep,xkb,NULL);
++ status = BadImplementation;
++ else if (!rep.found)
++ status = BadName;
++ else
++ status = _XkbReadGetGeometryReply(dpy,&rep,xkb,NULL);
++ UnlockDisplay(dpy);
++ SyncHandle();
++ return status;
+ }
+
+diff --git a/src/xkb/XKBGetMap.c b/src/xkb/XKBGetMap.c
+index 777f7cc..59e9962 100644
+--- a/src/xkb/XKBGetMap.c
++++ b/src/xkb/XKBGetMap.c
+@@ -823,8 +823,8 @@ XkbGetMapChanges(Display *dpy,XkbDescPtr
+ req->firstVModMapKey = changes->first_vmodmap_key;
+ req->nVModMapKeys = changes->num_vmodmap_keys;
+ status= _XkbHandleGetMapReply(dpy, xkb);
+- SyncHandle();
+ UnlockDisplay(dpy);
++ SyncHandle();
+ return status;
+ }
+ UnlockDisplay(dpy);
+diff --git a/src/xkb/XKBSetGeom.c b/src/xkb/XKBSetGeom.c
+index e070623..8e4d8b1 100644
+--- a/src/xkb/XKBSetGeom.c
++++ b/src/xkb/XKBSetGeom.c
+@@ -446,6 +446,7 @@ Status ret;
+ (!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)))
+ return BadAccess;
+
++ LockDisplay(dpy);
+ GetReq(kbSetGeometry, req);
+ req->reqType = dpy->xkb_info->codes->major_opcode;
+ req->xkbReqType = X_kbSetGeometry;
+diff --git a/src/xkb/XKBleds.c b/src/xkb/XKBleds.c
+index 89ab2e9..865342c 100644
+--- a/src/xkb/XKBleds.c
++++ b/src/xkb/XKBleds.c
+@@ -228,6 +228,8 @@ XkbGetNamedDeviceIndicator( Display * d
+ SyncHandle();
+ return False;
+ }
++ UnlockDisplay(dpy);
++ SyncHandle();
+ if ((!rep.found)||(!rep.supported))
+ return False;
+ if (pNdxRtrn!=NULL)
diff --git a/x11-libs/libX11/files/digest-libX11-1.0.99.1-r1 b/x11-libs/libX11/files/digest-libX11-1.0.99.1-r1
new file mode 100644
index 000000000000..c0fdfac85db2
--- /dev/null
+++ b/x11-libs/libX11/files/digest-libX11-1.0.99.1-r1
@@ -0,0 +1,3 @@
+MD5 c7478cff2fe70f56a4f0ac503a0900df libX11-1.0.99.1.tar.bz2 1422144
+RMD160 ae7a4ba107efdc9acb573ffff025312100af366e libX11-1.0.99.1.tar.bz2 1422144
+SHA256 66fc9b1f59100ca9cc7fa4dd8840fb28b1e968ef3e5ad34e178fca1de373fdcf libX11-1.0.99.1.tar.bz2 1422144
diff --git a/x11-libs/libX11/libX11-1.0.99.1-r1.ebuild b/x11-libs/libX11/libX11-1.0.99.1-r1.ebuild
new file mode 100644
index 000000000000..128d49b01940
--- /dev/null
+++ b/x11-libs/libX11/libX11-1.0.99.1-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/libX11/libX11-1.0.99.1-r1.ebuild,v 1.1 2006/10/12 19:26:58 dberkholz Exp $
+
+# Must be before x-modular eclass is inherited
+#SNAPSHOT="yes"
+
+inherit x-modular
+
+DESCRIPTION="X.Org X11 library"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="ipv6 xcb"
+RDEPEND=">=x11-libs/xtrans-1.0.1
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-proto/kbproto
+ x11-proto/inputproto
+ >=x11-proto/xproto-7.0.6
+ xcb? ( >=x11-libs/libxcb-0.9.92 )"
+DEPEND="${RDEPEND}
+ x11-proto/xf86bigfontproto
+ x11-proto/bigreqsproto
+ x11-proto/xextproto
+ x11-proto/xcmiscproto
+ >=x11-misc/util-macros-0.99.0_p20051007"
+
+CONFIGURE_OPTIONS="$(use_enable ipv6)
+ $(use_with xcb)"
+# xorg really doesn't like xlocale disabled.
+# $(use_enable nls xlocale)
+
+PATCHES="${FILESDIR}/${PV}-xcb-xkb-fixes.patch"