aboutsummaryrefslogtreecommitdiff
path: root/libxcb
diff options
context:
space:
mode:
Diffstat (limited to 'libxcb')
-rw-r--r--libxcb/NEWS39
-rw-r--r--libxcb/configure.ac2
-rw-r--r--libxcb/src/Makefile.am6
-rw-r--r--libxcb/src/c_client.py4
-rw-r--r--libxcb/src/xcb.h20
-rw-r--r--libxcb/src/xcb_in.c12
-rw-r--r--libxcb/xcb-proto/NEWS61
-rw-r--r--libxcb/xcb-proto/src/xinput.xml8
-rw-r--r--libxcb/xcb-proto/src/xproto.xml2
9 files changed, 137 insertions, 17 deletions
diff --git a/libxcb/NEWS b/libxcb/NEWS
index 533d72b87..d0198f59c 100644
--- a/libxcb/NEWS
+++ b/libxcb/NEWS
@@ -1,6 +1,43 @@
+Release 1.10 (2013-12-XX)
+=========================
+* Bump libxcb-xkb SONAME due to ABI break introduced in 1.9.2
+* Enable libxcb-xkb by default
+* Bump libxcb-sync SONAME
+* c_client.py: Fix _sizeof() functions
+* c_client.py: Do not create pointers in unions
+* c_client.py: Always initialize xcb_align_to
+* Re-introduce xcb_ge_event_t (deprecated, xcb_ge_generic_event_t should be
+ used instead)
+* Fix alignment issues in FD passing code
+* Fix poll() if POLLIN == ROLLRDNORM|POLLRDBAND
+* Use /usr/spool/sockets/X11/ on HP-UX for UNIX sockets
+* Make xsltproc optional
+
+Release 1.9.3 (2013-11-07)
+==========================
+* Check if we need to define _XOPEN_SOURCE for struct msghdr.msg_control
+* Add configure option to enable or disable fd passing with sendmsg
+* Switch to using the CMSG_* macros for FD passing
+* Initialize automake earlier (bugfix for #66413)
+
+Release 1.9.2 (2013-11-07)
+==========================
+* Add Present extension
+* Add DRI3 library
+* Add event queue splitting
+* Add support for receiving fds in replies
+* Add xcb_send_fd API
+* Remove xcb_ge_event_t from xcb.h
+* c_client.py: Inject full_sequence into GE events
+* c_client.py: Handle multiple expr. in a bitcase
+
+Release 1.9.1 (2013-05-30)
+==========================
+* Fix python code to work with python-3
+* Security fix for integer overflow in read_packet() [CVE-2013-2064]
+
Release 1.9 (2012-10-05)
========================
-
* Always include "config.h" at the start of all C source files.
* Add AC_USE_SYSTEM_EXTENSIONS to allow use of more system functionality
* Return connection failure if display string specifies non-existent screen
diff --git a/libxcb/configure.ac b/libxcb/configure.ac
index 87804ba26..294bd1a92 100644
--- a/libxcb/configure.ac
+++ b/libxcb/configure.ac
@@ -41,7 +41,7 @@ fi
AC_SUBST(HTML_CHECK_RESULT)
# Checks for pkg-config packages
-PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.9)
+PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.10)
NEEDED="pthread-stubs xau >= 0.99.2"
PKG_CHECK_MODULES(NEEDED, $NEEDED)
diff --git a/libxcb/src/Makefile.am b/libxcb/src/Makefile.am
index 346ee03cc..f2875dd18 100644
--- a/libxcb/src/Makefile.am
+++ b/libxcb/src/Makefile.am
@@ -139,7 +139,7 @@ endif
EXTSOURCES += sync.c
if BUILD_SYNC
lib_LTLIBRARIES += libxcb-sync.la
-libxcb_sync_la_LDFLAGS = -version-info 0:0:0 -no-undefined @lt_enable_auto_import@
+libxcb_sync_la_LDFLAGS = -version-info 1:0:0 -no-undefined @lt_enable_auto_import@
libxcb_sync_la_LIBADD = $(XCB_LIBS)
nodist_libxcb_sync_la_SOURCES = sync.c sync.h
endif
@@ -179,7 +179,7 @@ endif
EXTSOURCES += xinput.c
if BUILD_XINPUT
lib_LTLIBRARIES += libxcb-xinput.la
-libxcb_xinput_la_LDFLAGS = -version-info 0:0:0 -no-undefined @lt_enable_auto_import@
+libxcb_xinput_la_LDFLAGS = -version-info 1:0:1 -no-undefined @lt_enable_auto_import@
libxcb_xinput_la_LIBADD = $(XCB_LIBS)
nodist_libxcb_xinput_la_SOURCES = xinput.c xinput.h
endif
@@ -187,7 +187,7 @@ endif
EXTSOURCES += xkb.c
if BUILD_XKB
lib_LTLIBRARIES += libxcb-xkb.la
-libxcb_xkb_la_LDFLAGS = -version-info 0:0:0 -no-undefined
+libxcb_xkb_la_LDFLAGS = -version-info 1:0:0 -no-undefined
libxcb_xkb_la_LIBADD = $(XCB_LIBS)
nodist_libxcb_xkb_la_SOURCES = xkb.c xkb.h
endif
diff --git a/libxcb/src/c_client.py b/libxcb/src/c_client.py
index 3f7c00859..407c06259 100644
--- a/libxcb/src/c_client.py
+++ b/libxcb/src/c_client.py
@@ -1062,8 +1062,8 @@ def _c_serialize_helper(context, complex_type,
if context in ('unserialize', 'unpack', 'sizeof') and not self.var_followed_by_fixed_fields:
code_lines.append('%s xcb_block_len += sizeof(%s);' % (space, self.c_type))
code_lines.append('%s xcb_tmp += xcb_block_len;' % space)
- # probably not needed
- #_c_serialize_helper_insert_padding(context, code_lines, space, False)
+ code_lines.append('%s xcb_buffer_len += xcb_block_len;' % space)
+ code_lines.append('%s xcb_block_len = 0;' % space)
count += _c_serialize_helper_fields(context, self,
code_lines, temp_vars,
diff --git a/libxcb/src/xcb.h b/libxcb/src/xcb.h
index 8cdba0550..6571ee693 100644
--- a/libxcb/src/xcb.h
+++ b/libxcb/src/xcb.h
@@ -142,6 +142,26 @@ typedef struct {
} xcb_generic_event_t;
/**
+ * @brief GE event
+ *
+ * An event as sent by the XGE extension. The length field specifies the
+ * number of 4-byte blocks trailing the struct.
+ *
+ * @deprecated Since some fields in this struct have unfortunate names, it is
+ * recommended to use xcb_ge_generic_event_t instead.
+ */
+typedef struct {
+ uint8_t response_type; /**< Type of the response */
+ uint8_t pad0; /**< Padding */
+ uint16_t sequence; /**< Sequence number */
+ uint32_t length;
+ uint16_t event_type;
+ uint16_t pad1;
+ uint32_t pad[5]; /**< Padding */
+ uint32_t full_sequence; /**< full sequence */
+} xcb_ge_event_t;
+
+/**
* @brief Generic error.
*
* A generic error structure.
diff --git a/libxcb/src/xcb_in.c b/libxcb/src/xcb_in.c
index 5506e3088..1eef6caf5 100644
--- a/libxcb/src/xcb_in.c
+++ b/libxcb/src/xcb_in.c
@@ -919,11 +919,13 @@ int _xcb_in_read(xcb_connection_t *c)
#if HAVE_SENDMSG
struct cmsghdr *hdr;
- for (hdr = CMSG_FIRSTHDR(&msg); hdr; hdr = CMSG_NXTHDR(&msg, hdr)) {
- if (hdr->cmsg_level == SOL_SOCKET && hdr->cmsg_type == SCM_RIGHTS) {
- int nfd = (hdr->cmsg_len - CMSG_LEN(0)) / sizeof (int);
- memcpy(&c->in.in_fd.fd[c->in.in_fd.nfd], CMSG_DATA(hdr), nfd * sizeof (int));
- c->in.in_fd.nfd += nfd;
+ if (msg.msg_controllen >= sizeof (struct cmsghdr)) {
+ for (hdr = CMSG_FIRSTHDR(&msg); hdr; hdr = CMSG_NXTHDR(&msg, hdr)) {
+ if (hdr->cmsg_level == SOL_SOCKET && hdr->cmsg_type == SCM_RIGHTS) {
+ int nfd = (hdr->cmsg_len - CMSG_LEN(0)) / sizeof (int);
+ memcpy(&c->in.in_fd.fd[c->in.in_fd.nfd], CMSG_DATA(hdr), nfd * sizeof (int));
+ c->in.in_fd.nfd += nfd;
+ }
}
}
#endif
diff --git a/libxcb/xcb-proto/NEWS b/libxcb/xcb-proto/NEWS
index ebe184532..50ced6186 100644
--- a/libxcb/xcb-proto/NEWS
+++ b/libxcb/xcb-proto/NEWS
@@ -1,3 +1,64 @@
+Release 1.10 (2013-12-XX)
+=========================
+* xkb: comment out portions that libxcb doesn't handle properly
+* Present: Remove reference to nonexistent enum
+* sync: Add missing namespace for the INT64 struct
+* sync: VALUETYPE and TESTTYPE are enum
+* xinput: Add XI2 event enum. for event selection
+* Rename ge events to GeGeneric events to avoid clash with libxcb
+
+Release 1.9 (2013-11-07)
+========================
+* Add Present protocol specification
+* Add DRI3
+* Add MIT-SHM AttachFd and CreateSegment requests
+* Add support for file descriptor request fields
+* Define X generic event structure
+* Add CARD64/INT64 protocol types
+* XKB: Rewrite AXOption
+* XKB: Fix values of AXFBOpt enum
+* xkb: Fix struct ExtensionDeviceNotify
+* xkb: Pad structs CommonDoodad and SALockDeviceBtn
+* randr: Fix GetProviderProperty reply
+* Enforce a bit or value in enum items
+* xkb: Add missing LedClass and BellClass enum values
+* xkb: Add missing 'supported' field to GetNamedIndicator reply
+* xkb: Unify Overlay1Behavior and Overlay2Behavior
+* xkb: Change DfltBtnAbsolute to the value used by the server
+* xkb: Fix key type map entry field order
+* xkb: Work around alignment problems in GetNames and GetMap replies
+* xinput: Use BARRIER from xfixes
+* xinput: Unlock uninterpreted lists
+* xinput: Add XI v2.3
+* xinput: Add XI v2.2
+* xinput: Add XI v2.1
+* xinput: Add XI v2.0
+* xinput: Add XI v1.5
+* xinput: Cleanup implementation of XI up to v1.4
+* Add support for X Generic Extension events
+* sync: Change value list param of CreateAlarm and ChangeAlarm into switch
+* res: Add ClientIdMask enum
+* res: Fix and rename list in ClientIdValue
+* randr: Add provider object support (RandR v1.4)
+* xtest: Version bump 2.1..2.2
+* glx: Version bump 1.3..1.4
+* composite: Version bump 0.3..0.4
+* xfixes: Rename enum DirectionMask to BarrierDirec.
+* XKB: Correct enum to mask
+* screensaver: Use enum and mask attributes
+* screensaver: Remove wrong fields from Notify event
+* Prototype for XRes v1.2
+* XKB: Fix calculation in GetIndicatorMap
+* XKB: Fix GetKbdByName
+* Allow multiple <enumref> in a <bitcase>
+* XKB: Change CARD8 to char where ASCII is expected
+* XKB: Fix VirtualMods
+* XKB: Fix SymInterpret
+* XKB: Fix CountedString16 padding
+* xkb: Revert half of d42d791 XKB: Fix broken events
+* xfixes: Update to version 5
+* autogen.sh: Implement GNOME Build API
+
Release 1.8 (2012-10-05)
========================
* dri2: Update to DRI2 1.4
diff --git a/libxcb/xcb-proto/src/xinput.xml b/libxcb/xcb-proto/src/xinput.xml
index dd3f18438..fa115bdcd 100644
--- a/libxcb/xcb-proto/src/xinput.xml
+++ b/libxcb/xcb-proto/src/xinput.xml
@@ -1790,10 +1790,10 @@ authorization from the authors.
<eventcopy name="DeviceMotionNotify" number="5" ref="DeviceKeyPress" />
<event name="DeviceFocusIn" number="6">
- <field type="BYTE" name="detail" enum="NotifyDetail" />
+ <field type="BYTE" name="detail" enum="xproto:NotifyDetail" />
<field type="TIMESTAMP" name="time" />
<field type="WINDOW" name="window" />
- <field type="BYTE" name="mode" enum="NotifyMode" />
+ <field type="BYTE" name="mode" enum="xproto:NotifyMode" />
<field type="CARD8" name="device_id" />
<pad bytes="18" />
</event>
@@ -2003,8 +2003,8 @@ authorization from the authors.
<field type="TIMESTAMP" name="time" altenum="Time" />
<!-- event specific fields -->
<field type="DeviceId" name="sourceid" altenum="Device" />
- <field type="CARD8" name="mode" enum="NotifyMode" />
- <field type="CARD8" name="detail" enum="NotifyDetail" />
+ <field type="CARD8" name="mode" enum="xinput:NotifyMode" />
+ <field type="CARD8" name="detail" enum="xinput:NotifyDetail" />
<field type="WINDOW" name="root" />
<field type="WINDOW" name="event" />
<field type="WINDOW" name="child" />
diff --git a/libxcb/xcb-proto/src/xproto.xml b/libxcb/xcb-proto/src/xproto.xml
index defa11e6e..07795682c 100644
--- a/libxcb/xcb-proto/src/xproto.xml
+++ b/libxcb/xcb-proto/src/xproto.xml
@@ -1080,7 +1080,7 @@ The number of keycodes altered.
</doc>
</event>
- <event name="ge" number="35" xge="true">
+ <event name="GeGeneric" number="35" xge="true">
<pad bytes="22" />
<doc>
<brief>generic event (with length)</brief>