diff --git a/.compat-libxcb.metadata b/.compat-libxcb.metadata new file mode 100644 index 0000000..9220aa4 --- /dev/null +++ b/.compat-libxcb.metadata @@ -0,0 +1 @@ +ad2fb95eeec41ba3d39502a4f7460c3b64fdf061 SOURCES/libxcb-1.9.tar.bz2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..10ffa8d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libxcb-1.9.tar.bz2 diff --git a/SOURCES/0001-c_client.py-Handle-multiple-expr.-in-a-bitcase.patch b/SOURCES/0001-c_client.py-Handle-multiple-expr.-in-a-bitcase.patch new file mode 100644 index 0000000..3f5c588 --- /dev/null +++ b/SOURCES/0001-c_client.py-Handle-multiple-expr.-in-a-bitcase.patch @@ -0,0 +1,47 @@ +From e602b653c191e18cbb63db6526aac77c368ed70b Mon Sep 17 00:00:00 2001 +From: Daniel Martin +Date: Mon, 13 May 2013 23:33:04 +0200 +Subject: [PATCH] c_client.py: Handle multiple expr. in a bitcase + +Adopt a change from xcbgen. With that modification the expression in a +bitcase became a list of expressions to support multiple in a +. + +Signed-off-by: Daniel Martin +Signed-off-by: Peter Harris +--- + src/c_client.py | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +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 in the ++ if len_expr == 1: ++ code_lines.append(' if(%s & %s) {' % (switch_expr, bitcase_expr)) ++ # multiple in the ++ 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)] +-- +2.1.0 + diff --git a/SOURCES/0001-integer-overflow-in-read_packet-CVE-2013-2064.patch b/SOURCES/0001-integer-overflow-in-read_packet-CVE-2013-2064.patch new file mode 100644 index 0000000..0c98d6d --- /dev/null +++ b/SOURCES/0001-integer-overflow-in-read_packet-CVE-2013-2064.patch @@ -0,0 +1,48 @@ +From 1b33867fa996034deb50819ae54640be501f8d20 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +Date: Wed, 1 May 2013 17:59:31 -0700 +Subject: [PATCH] integer overflow in read_packet() [CVE-2013-2064] + +Ensure that when calculating the size of the incoming response from the +Xserver, we don't overflow the integer used in the calculations when we +multiply the int32_t length by 4 and add it to the default response size. + +Signed-off-by: Alan Coopersmith +--- + src/xcb_in.c | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/src/xcb_in.c b/src/xcb_in.c +index b810783..8a7af92 100644 +--- a/src/xcb_in.c ++++ b/src/xcb_in.c +@@ -93,8 +93,9 @@ static void remove_finished_readers(reader_list **prev_reader, uint64_t complete + static int read_packet(xcb_connection_t *c) + { + xcb_generic_reply_t genrep; +- int length = 32; +- int eventlength = 0; /* length after first 32 bytes for GenericEvents */ ++ uint64_t length = 32; ++ uint64_t eventlength = 0; /* length after first 32 bytes for GenericEvents */ ++ uint64_t bufsize; + void *buf; + pending_reply *pend = 0; + struct event_list *event; +@@ -169,8 +170,12 @@ static int read_packet(xcb_connection_t *c) + if ((genrep.response_type & 0x7f) == XCB_XGE_EVENT) + eventlength = genrep.length * 4; + +- buf = malloc(length + eventlength + +- (genrep.response_type == XCB_REPLY ? 0 : sizeof(uint32_t))); ++ bufsize = length + eventlength + ++ (genrep.response_type == XCB_REPLY ? 0 : sizeof(uint32_t)); ++ if (bufsize < INT32_MAX) ++ buf = malloc((size_t) bufsize); ++ else ++ buf = NULL; + if(!buf) + { + _xcb_conn_shutdown(c, XCB_CONN_CLOSED_MEM_INSUFFICIENT); +-- +1.8.1.4 + diff --git a/SOURCES/xkb.patch b/SOURCES/xkb.patch new file mode 100644 index 0000000..8f08554 --- /dev/null +++ b/SOURCES/xkb.patch @@ -0,0 +1,2837 @@ +diff -up libxcb-1.9/src/Makefile.am.jx libxcb-1.9/src/Makefile.am +--- libxcb-1.9/src/Makefile.am.jx 2012-10-05 05:20:06.000000000 -0400 ++++ libxcb-1.9/src/Makefile.am 2015-04-13 14:37:49.967302939 -0400 +@@ -168,7 +168,6 @@ libxcb_xinput_la_LIBADD = $(XCB_LIBS) + nodist_libxcb_xinput_la_SOURCES = xinput.c xinput.h + endif + +-EXTSOURCES += xkb.c + if BUILD_XKB + lib_LTLIBRARIES += libxcb-xkb.la + libxcb_xkb_la_LDFLAGS = -version-info 0:0:0 -no-undefined +@@ -217,7 +216,7 @@ nodist_libxcb_xvmc_la_SOURCES = xvmc.c x + endif + + +-EXTHEADERS=$(EXTSOURCES:.c=.h) ++EXTHEADERS=$(EXTSOURCES:.c=.h) xkb.h + xcbinclude_HEADERS = xcb.h xcbext.h + if XCB_HAVE_WIN32 + xcbinclude_HEADERS += xcb_windefs.h +@@ -230,8 +229,11 @@ BUILT_MANS = man/xcb_*.3 + man_MANS = $(STATIC_MANS) $(BUILT_MANS) + EXTRA_DIST = $(STATIC_MANS) + +-BUILT_SOURCES = $(EXTSOURCES) $(BUILT_MANS) +-CLEANFILES = $(EXTSOURCES) $(EXTHEADERS) $(BUILT_MANS) ++BUILT_SOURCES = $(EXTSOURCES) $(BUILT_MANS) xkb.c ++CLEANFILES = $(EXTSOURCES) $(EXTHEADERS) $(BUILT_MANS) xkb.c xkb.h ++ ++xkb.c: c_client.py ++ $(PYTHON) $(srcdir)/c_client.py -p $(XCBPROTO_XCBPYTHONDIR) $(top_srcdir)/xkb.xml + + $(EXTSOURCES): c_client.py + $(PYTHON) $(srcdir)/c_client.py -p $(XCBPROTO_XCBPYTHONDIR) $(XCBPROTO_XCBINCLUDEDIR)/$(@:.c=.xml) +diff -up libxcb-1.9/xkb.xml.jx libxcb-1.9/xkb.xml +--- libxcb-1.9/xkb.xml.jx 2015-04-13 14:36:31.093765130 -0400 ++++ libxcb-1.9/xkb.xml 2015-04-13 14:36:31.093765130 -0400 +@@ -0,0 +1,2799 @@ ++ ++ ++ ++ ++ xproto ++ ++ ++ ++ 255 ++ ++ 32 ++ ++ ++ 4 ++ ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ 10 ++ 11 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ ++ ++ ++ 0 ++ 1 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ 10 ++ 11 ++ 12 ++ 13 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ 10 ++ 11 ++ 12 ++ ++ ++ ++ ++ 27 ++ 28 ++ 29 ++ 30 ++ 31 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ ++ ++ ++ 6 ++ 7 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 4 ++ ++ ++ ++ 768 ++ 1280 ++ ++ ++ ++ ++ 0 ++ 5 ++ ++ ++ ++ 768 ++ ++ ++ ++ ++ 256 ++ 512 ++ 768 ++ 1024 ++ 1280 ++ 1536 ++ 65280 ++ ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ ++ ++ ++ 254 ++ 255 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ ++ ++ ++ 7 ++ ++ ++ ++ 0 ++ 6 ++ 7 ++ ++ ++ ++ 7 ++ 6 ++ 5 ++ 4 ++ 3 ++ 2 ++ 1 ++ 0 ++ ++ ++ ++ 7 ++ 6 ++ 5 ++ 4 ++ 3 ++ 2 ++ 1 ++ 0 ++ ++ ++ ++ 15 ++ 14 ++ 13 ++ 12 ++ 11 ++ 10 ++ 9 ++ 8 ++ 7 ++ 6 ++ 5 ++ 4 ++ 3 ++ 2 ++ 1 ++ 0 ++ ++ ++ ++ 7 ++ 6 ++ 5 ++ 4 ++ 3 ++ 2 ++ 1 ++ 0 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ ++ ++ ++ 7 ++ 127 ++ ++ ++ ++ 7 ++ 6 ++ 5 ++ ++ ++ ++ 4 ++ 3 ++ 2 ++ 1 ++ 0 ++ ++ ++ ++ 4 ++ 3 ++ 2 ++ 1 ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 1 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ 10 ++ 11 ++ 12 ++ 13 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 4 ++ ++ ++ ++ ++ ++ 4 ++ ++ ++ 4 ++ ++ ++ ++ ++ ++ ++ length ++ ++ ++ ++ ++ ++ ++ length ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nMapEntries ++ ++ ++ ++ hasPreserve ++ nMapEntries ++ ++ ++ ++ ++ ++ ++ 4 ++ ++ ++ ++ ++ ++ nSyms ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 129 ++ 130 ++ 131 ++ 132 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nMapEntries ++ ++ ++ ++ preserve ++ nMapEntries ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nameLength ++ ++ ++ ++ valueLength ++ ++ ++ ++ ++ ++ ++ ++ ++ nPoints ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nOutlines ++ ++ ++ ++ ++ ++ 4 ++ ++ ++ ++ ++ ++ ++ ++ ++ 4 ++ ++ ++ 4 ++ ++ ++ ++ ++ ++ ++ ++ ++ nKeys ++ ++ ++ ++ ++ ++ ++ ++ ++ nRows ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nKeys ++ ++ ++ ++ ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nRows ++ ++ ++ nDoodads ++ ++ ++ nOverlays ++ ++ ++ ++ ++ ++ ++ ++ length ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ namesPresent ++ ++ ++ ++ ++ mapsPresent ++ ++ ++ ++ ++ ++ ++ ++ 255 ++ 254 ++ 253 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 2 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ 10 ++ 11 ++ 12 ++ 13 ++ 14 ++ 15 ++ 16 ++ 17 ++ 18 ++ 19 ++ 20 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 1 ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 2 ++ 3 ++ ++ ++ ++ 3 ++ 4 ++ 5 ++ 6 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 2 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ ++ 6 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ affectWhich ++ ++ clear ++ selectAll ++ ++ ++ ++ NewKeyboardNotify ++ ++ ++ ++ ++ StateNotify ++ ++ ++ ++ ++ ControlsNotify ++ ++ ++ ++ ++ IndicatorStateNotify ++ ++ ++ ++ ++ IndicatorMapNotify ++ ++ ++ ++ ++ NamesNotify ++ ++ ++ ++ ++ CompatMapNotify ++ ++ ++ ++ ++ BellNotify ++ ++ ++ ++ ++ ActionMessage ++ ++ ++ ++ ++ AccessXNotify ++ ++ ++ ++ ++ ExtensionDeviceNotify ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 32 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 32 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ present ++ ++ KeyTypes ++ ++ nTypes ++ ++ ++ ++ KeySyms ++ ++ nKeySyms ++ ++ ++ ++ KeyActions ++ ++ nKeyActions ++ ++ ++ totalActions ++ ++ ++ ++ KeyBehaviors ++ ++ totalKeyBehaviors ++ ++ ++ ++ VirtualMods ++ ++ nVModMapKeys ++ ++ ++ ++ ExplicitComponents ++ ++ totalKeyExplicit ++ ++ ++ ++ ModifierMap ++ ++ totalModMapKeys ++ ++ ++ ++ VirtualModMap ++ ++ totalVModMapKeys ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ present ++ ++ KeyTypes ++ ++ nTypes ++ ++ ++ ++ KeySyms ++ ++ nKeySyms ++ ++ ++ ++ KeyActions ++ ++ nKeyActions ++ ++ ++ totalActions ++ ++ ++ ++ KeyBehaviors ++ ++ totalKeyBehaviors ++ ++ ++ ++ VirtualMods ++ ++ nVModMapKeys ++ ++ ++ ++ ExplicitComponents ++ ++ totalKeyExplicit ++ ++ ++ ++ ModifierMap ++ ++ totalModMapKeys ++ ++ ++ ++ VirtualModMap ++ ++ totalVModMapKeys ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 16 ++ nSIRtrn ++ ++ ++ ++ ++ groupsRtrn ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 16 ++ nSI ++ ++ ++ ++ ++ groups ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nIndicators ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ which ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ which ++ ++ Keycodes ++ ++ ++ ++ Geometry ++ ++ ++ ++ Symbols ++ ++ ++ ++ PhysSymbols ++ ++ ++ ++ Types ++ ++ ++ ++ Compat ++ ++ ++ ++ KeyTypeNames ++ ++ nTypes ++ ++ ++ ++ KTLevelNames ++ ++ ++ nTypes ++ ++ ++ ++ ++ ++ ++ IndicatorNames ++ ++ ++ indicators ++ ++ ++ ++ ++ VirtualModNames ++ ++ ++ virtualMods ++ ++ ++ ++ ++ GroupNames ++ ++ ++ groupNames ++ ++ ++ ++ ++ KeyNames ++ ++ nKeys ++ ++ ++ ++ KeyAliases ++ ++ nKeyAliases ++ ++ ++ ++ RGNames ++ ++ nRadioGroups ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ which ++ ++ Keycodes ++ ++ ++ ++ Geometry ++ ++ ++ ++ Symbols ++ ++ ++ ++ PhysSymbols ++ ++ ++ ++ Types ++ ++ ++ ++ Compat ++ ++ ++ ++ KeyTypeNames ++ ++ nTypes ++ ++ ++ ++ KTLevelNames ++ ++ nKTLevels ++ ++ ++ ++ ++ ++ ++ IndicatorNames ++ ++ ++ indicators ++ ++ ++ ++ ++ VirtualModNames ++ ++ ++ virtualMods ++ ++ ++ ++ ++ GroupNames ++ ++ ++ groupNames ++ ++ ++ ++ ++ KeyNames ++ ++ nKeys ++ ++ ++ ++ KeyAliases ++ ++ nKeyAliases ++ ++ ++ ++ RGNames ++ ++ nRadioGroups ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nProperties ++ ++ ++ nColors ++ ++ ++ nShapes ++ ++ ++ nSections ++ ++ ++ nDoodads ++ ++ ++ nKeyAliases ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nProperties ++ ++ ++ nColors ++ ++ ++ nShapes ++ ++ ++ nSections ++ ++ ++ nDoodads ++ ++ ++ nKeyAliases ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ keymapsSpecLen ++ ++ ++ ++ keycodesSpecLen ++ ++ ++ ++ typesSpecLen ++ ++ ++ ++ compatMapSpecLen ++ ++ ++ ++ symbolsSpecLen ++ ++ ++ ++ geometrySpecLen ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nKeymaps ++ ++ ++ nKeycodes ++ ++ ++ nTypes ++ ++ ++ nCompatMaps ++ ++ ++ nSymbols ++ ++ ++ nGeometries ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ keymapsSpecLen ++ ++ ++ ++ keycodesSpecLen ++ ++ ++ ++ typesSpecLen ++ ++ ++ ++ compatMapSpecLen ++ ++ ++ ++ symbolsSpecLen ++ ++ ++ ++ geometrySpecLen ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ reported ++ ++ Types ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ present ++ ++ KeyTypes ++ ++ nTypes ++ ++ ++ ++ KeySyms ++ ++ nKeySyms ++ ++ ++ ++ KeyActions ++ ++ nKeyActions ++ ++ ++ totalActions ++ ++ ++ ++ KeyBehaviors ++ ++ totalKeyBehaviors ++ ++ ++ ++ VirtualMods ++ ++ nVModMapKeys ++ ++ ++ ++ ExplicitComponents ++ ++ totalKeyExplicit ++ ++ ++ ++ ModifierMap ++ ++ totalModMapKeys ++ ++ ++ ++ VirtualModMap ++ ++ totalVModMapKeys ++ ++ ++ ++ ++ ++ CompatMap ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 16 ++ nSIRtrn ++ ++ ++ ++ ++ groupsRtrn ++ ++ ++ ++ ++ ClientSymbols ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ present ++ ++ KeyTypes ++ ++ nTypes ++ ++ ++ ++ KeySyms ++ ++ nKeySyms ++ ++ ++ ++ KeyActions ++ ++ nKeyActions ++ ++ ++ totalActions ++ ++ ++ ++ KeyBehaviors ++ ++ totalKeyBehaviors ++ ++ ++ ++ VirtualMods ++ ++ nVModMapKeys ++ ++ ++ ++ ExplicitComponents ++ ++ totalKeyExplicit ++ ++ ++ ++ ModifierMap ++ ++ totalModMapKeys ++ ++ ++ ++ VirtualModMap ++ ++ totalVModMapKeys ++ ++ ++ ++ ++ ++ ServerSymbols ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ present ++ ++ KeyTypes ++ ++ nTypes ++ ++ ++ ++ KeySyms ++ ++ nKeySyms ++ ++ ++ ++ KeyActions ++ ++ nKeyActions ++ ++ ++ totalActions ++ ++ ++ ++ KeyBehaviors ++ ++ totalKeyBehaviors ++ ++ ++ ++ VirtualMods ++ ++ nVModMapKeys ++ ++ ++ ++ ExplicitComponents ++ ++ totalKeyExplicit ++ ++ ++ ++ ModifierMap ++ ++ totalModMapKeys ++ ++ ++ ++ VirtualModMap ++ ++ totalVModMapKeys ++ ++ ++ ++ ++ ++ IndicatorMaps ++ ++ ++ ++ ++ ++ ++ nIndicators ++ ++ ++ ++ KeyNames ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ which ++ ++ Keycodes ++ ++ ++ ++ Geometry ++ ++ ++ ++ Symbols ++ ++ ++ ++ PhysSymbols ++ ++ ++ ++ Types ++ ++ ++ ++ Compat ++ ++ ++ ++ KeyTypeNames ++ ++ nTypes ++ ++ ++ ++ KTLevelNames ++ ++ nKTLevels ++ ++ ++ ++ ++ ++ ++ IndicatorNames ++ ++ ++ indicators ++ ++ ++ ++ ++ VirtualModNames ++ ++ ++ virtualMods ++ ++ ++ ++ ++ GroupNames ++ ++ ++ groupNames ++ ++ ++ ++ ++ KeyNames ++ ++ nKeys ++ ++ ++ ++ KeyAliases ++ ++ nKeyAliases ++ ++ ++ ++ RGNames ++ ++ nRadioGroups ++ ++ ++ ++ ++ ++ OtherNames ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ which ++ ++ Keycodes ++ ++ ++ ++ Geometry ++ ++ ++ ++ Symbols ++ ++ ++ ++ PhysSymbols ++ ++ ++ ++ Types ++ ++ ++ ++ Compat ++ ++ ++ ++ KeyTypeNames ++ ++ nTypes ++ ++ ++ ++ KTLevelNames ++ ++ nKTLevels ++ ++ ++ ++ ++ ++ ++ IndicatorNames ++ ++ ++ indicators ++ ++ ++ ++ ++ VirtualModNames ++ ++ ++ virtualMods ++ ++ ++ ++ ++ GroupNames ++ ++ ++ groupNames ++ ++ ++ ++ ++ KeyNames ++ ++ nKeys ++ ++ ++ ++ KeyAliases ++ ++ nKeyAliases ++ ++ ++ ++ RGNames ++ ++ nRadioGroups ++ ++ ++ ++ ++ ++ Geometry ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nProperties ++ ++ ++ nColors ++ ++ ++ nShapes ++ ++ ++ nSections ++ ++ ++ nDoodads ++ ++ ++ nKeyAliases ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nameLen ++ ++ ++ nBtnsRtrn ++ ++ ++ nDeviceLedFBs ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ nBtns ++ ++ ++ nDeviceLedFBs ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ msgLength ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 8 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ diff --git a/SPECS/compat-libxcb.spec b/SPECS/compat-libxcb.spec new file mode 100644 index 0000000..c2ee14c --- /dev/null +++ b/SPECS/compat-libxcb.spec @@ -0,0 +1,67 @@ +Name: compat-libxcb +Version: 1.9 +Release: 1%{?dist} +Summary: A C binding to the X11 protocol + +Group: System Environment/Libraries +License: MIT +URL: http://xcb.freedesktop.org/ +Source0: http://xcb.freedesktop.org/dist/libxcb-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/libxcb-%{version}-%{release}-root-%(%{__id_u} -n) + +Patch1: 0001-integer-overflow-in-read_packet-CVE-2013-2064.patch +Patch2: 0001-c_client.py-Handle-multiple-expr.-in-a-bitcase.patch +Patch3: xkb.patch + +BuildRequires: autoconf automake libtool pkgconfig +BuildRequires: libXau-devel +BuildRequires: libxslt +BuildRequires: xcb-proto >= 1.7-3 +BuildRequires: xorg-x11-proto-devel +BuildRequires: xorg-x11-util-macros + +%description +The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a +small footprint, latency hiding, direct access to the protocol, improved +threading support, and extensibility. + +%prep +%setup -q -n libxcb-%{version} +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 -b .jx + +%build +sed -i 's/pthread-stubs //' configure.ac +autoreconf -v --install +%configure --disable-static --disable-build-docs --enable-xkb --enable-sync \ + --disable-{composite,damage,dpms,dri2,glx,randr,record,render} \ + --disable-{resource,screensaver,shape,shm,xevie,xfixes,xfree86-dri} \ + --disable-{xprint,xinerama,selinux,xtest,xv,xvmc} +ln -s %{_datadir}/xcb/xproto.xml . +make %{?_smp_mflags} V=1 + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT + +find $RPM_BUILD_ROOT -name '*.la' -delete +rm -rf $RPM_BUILD_ROOT{%{_datadir},%{_includedir},%{_libdir}/pkgconfig} +rm -f $RPM_BUILD_ROOT%{_libdir}/*.so +rm -f $RPM_BUILD_ROOT%{_libdir}/libxcb.so* + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc COPYING +%{_libdir}/libxcb-sync.so.0* +%{_libdir}/libxcb-xkb.so.0* + +%changelog +* Tue Apr 07 2015 Adam Jackson 1.9-1 +- Compatibility build for libxcb-sync.so.0 and libxcb-xkb.so.0