summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-libs/libxcb')
-rw-r--r--x11-libs/libxcb/ChangeLog13
-rw-r--r--x11-libs/libxcb/files/libxcb-1.9.1-conflicting-types-for-xcb_ge_event_t.patch18
-rw-r--r--x11-libs/libxcb/files/libxcb-1.9.1-list-object-has-no-attribute-lenfield_name.patch29
-rw-r--r--x11-libs/libxcb/libxcb-1.9.1-r1.ebuild61
4 files changed, 120 insertions, 1 deletions
diff --git a/x11-libs/libxcb/ChangeLog b/x11-libs/libxcb/ChangeLog
index eebb9124ef5e..fa7940c5eed2 100644
--- a/x11-libs/libxcb/ChangeLog
+++ b/x11-libs/libxcb/ChangeLog
@@ -1,6 +1,17 @@
# ChangeLog for x11-libs/libxcb
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/libxcb/ChangeLog,v 1.126 2013/11/12 02:40:23 mattst88 Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/libxcb/ChangeLog,v 1.127 2013/11/23 11:50:01 gienah Exp $
+
+*libxcb-1.9.1-r1 (23 Nov 2013)
+
+ 23 Nov 2013; Mark Wright <gienah@gentoo.org>
+ +files/libxcb-1.9.1-conflicting-types-for-xcb_ge_event_t.patch,
+ +files/libxcb-1.9.1-list-object-has-no-attribute-lenfield_name.patch,
+ +libxcb-1.9.1-r1.ebuild:
+ Part of fix for bug 491496, thanks to Rion for reporting, thanks to gerardo
+ for the libxcb-list-object-has-no-attribute-lenfield_name.patch. libxcb-1.9.1
+ -conflicting-types-for-xcb_ge_event_t.patch by me. Fix bug 472032, thanks to
+ Myckel Habets for reporting.
12 Nov 2013; Matt Turner <mattst88@gentoo.org> libxcb-1.9.3.ebuild:
Update dependency on xcb-proto to make sure users get the fix for bug 490928.
diff --git a/x11-libs/libxcb/files/libxcb-1.9.1-conflicting-types-for-xcb_ge_event_t.patch b/x11-libs/libxcb/files/libxcb-1.9.1-conflicting-types-for-xcb_ge_event_t.patch
new file mode 100644
index 000000000000..2c884d79626f
--- /dev/null
+++ b/x11-libs/libxcb/files/libxcb-1.9.1-conflicting-types-for-xcb_ge_event_t.patch
@@ -0,0 +1,18 @@
+--- libxcb-1.9.1-orig/src/xcb.h 2013-05-31 01:38:01.000000000 +1000
++++ libxcb-1.9.1/src/xcb.h 2013-11-17 18:30:27.664675840 +1100
+@@ -143,6 +143,7 @@
+ * An event as sent by the XGE extension. The length field specifies the
+ * number of 4-byte blocks trailing the struct.
+ */
++#if 0
+ typedef struct {
+ uint8_t response_type; /**< Type of the response */
+ uint8_t pad0; /**< Padding */
+@@ -153,6 +154,7 @@
+ uint32_t pad[5]; /**< Padding */
+ uint32_t full_sequence; /**< full sequence */
+ } xcb_ge_event_t;
++#endif
+
+ /**
+ * @brief Generic error.
diff --git a/x11-libs/libxcb/files/libxcb-1.9.1-list-object-has-no-attribute-lenfield_name.patch b/x11-libs/libxcb/files/libxcb-1.9.1-list-object-has-no-attribute-lenfield_name.patch
new file mode 100644
index 000000000000..3ad63ffef2c7
--- /dev/null
+++ b/x11-libs/libxcb/files/libxcb-1.9.1-list-object-has-no-attribute-lenfield_name.patch
@@ -0,0 +1,29 @@
+diff --git a/src/c_client.py b/src/c_client.py
+index ec66223..942e78a 100644
+--- a/src/c_client.py
++++ b/src/c_client.py
+@@ -687,10 +687,20 @@ def _c_serialize_helper_switch(context, self, complex_name,
+ switch_expr = _c_accessor_get_expr(self.expr, None)
+
+ for b in self.bitcases:
+- bitcase_expr = _c_accessor_get_expr(b.type.expr, None)
+- code_lines.append(' if(%s & %s) {' % (switch_expr, bitcase_expr))
+-# code_lines.append(' printf("switch %s: entering bitcase section %s (mask=%%%%d)...\\n", %s);' %
+-# (self.name[-1], b.type.name[-1], bitcase_expr))
++ len_expr = len(b.type.expr)
++ for n, expr in enumerate(b.type.expr):
++ bitcase_expr = _c_accessor_get_expr(expr, None)
++ # only one <enumref> in the <bitcase>
++ if len_expr == 1:
++ code_lines.append(' if(%s & %s) {' % (switch_expr, bitcase_expr))
++ # multiple <enumref> in the <bitcase>
++ elif n == 0: # first
++ code_lines.append(' if((%s & %s) ||' % (switch_expr, bitcase_expr))
++ elif len_expr == (n + 1): # last
++ code_lines.append(' (%s & %s)) {' % (switch_expr, bitcase_expr))
++ else: # between first and last
++ code_lines.append(' (%s & %s) ||' % (switch_expr, bitcase_expr))
++
+ b_prefix = prefix
+ if b.type.has_name:
+ b_prefix = prefix + [(b.c_field_name, '.', b.type)]
diff --git a/x11-libs/libxcb/libxcb-1.9.1-r1.ebuild b/x11-libs/libxcb/libxcb-1.9.1-r1.ebuild
new file mode 100644
index 000000000000..d3fcdf312480
--- /dev/null
+++ b/x11-libs/libxcb/libxcb-1.9.1-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/libxcb/libxcb-1.9.1-r1.ebuild,v 1.1 2013/11/23 11:50:01 gienah Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3} )
+PYTHON_REQ_USE=xml
+
+XORG_DOC=doc
+XORG_MULTILIB=yes
+inherit eutils python-single-r1 xorg-2
+
+DESCRIPTION="X C-language Bindings library"
+HOMEPAGE="http://xcb.freedesktop.org/"
+EGIT_REPO_URI="git://anongit.freedesktop.org/git/xcb/libxcb"
+[[ ${PV} != 9999* ]] && \
+ SRC_URI="http://xcb.freedesktop.org/dist/${P}.tar.bz2"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="selinux xkb"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="dev-libs/libpthread-stubs[${MULTILIB_USEDEP}]
+ x11-libs/libXau[${MULTILIB_USEDEP}]
+ x11-libs/libXdmcp[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-lang/python[xml]
+ dev-libs/libxslt
+ >=x11-proto/xcb-proto-1.9-r1[${MULTILIB_USEDEP},${PYTHON_USEDEP}]
+ ${PYTHON_DEPS}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # https://bugs.gentoo.org/show_bug.cgi?id=472032
+ sed -e 's@x$(HTML_CHECK_RESULT)@xfalse@' \
+ -i "${S}/tests/Makefile.am" \
+ -i "${S}/tests/Makefile.in" \
+ || die "Could not patch tests/Makefile.am and tests/Makefile.in to fix tests"
+ # http://patchwork.freedesktop.org/patch/15185/
+ # Sounds like this commit is missing:
+ # c_client.py: Handle multiple expr. in a bitcase
+ # http://cgit.freedesktop.org/xcb/libxcb/commit/?id=e602b65
+ epatch "${FILESDIR}/${PN}-1.9.1-list-object-has-no-attribute-lenfield_name.patch"
+ # https://bugs.freedesktop.org/show_bug.cgi?id=71502
+ epatch "${FILESDIR}/${PN}-1.9.1-conflicting-types-for-xcb_ge_event_t.patch"
+}
+
+src_configure() {
+ XORG_CONFIGURE_OPTIONS=(
+ $(use_enable doc build-docs)
+ $(use_enable selinux)
+ $(use_enable xkb)
+ --enable-xinput
+ )
+ xorg-2_src_configure
+}