diff options
Diffstat (limited to 'libxcb')
-rw-r--r-- | libxcb/NEWS | 39 | ||||
-rw-r--r-- | libxcb/configure.ac | 2 | ||||
-rw-r--r-- | libxcb/src/Makefile.am | 6 | ||||
-rw-r--r-- | libxcb/src/c_client.py | 4 | ||||
-rw-r--r-- | libxcb/src/xcb.h | 20 | ||||
-rw-r--r-- | libxcb/src/xcb_in.c | 12 | ||||
-rw-r--r-- | libxcb/xcb-proto/NEWS | 61 | ||||
-rw-r--r-- | libxcb/xcb-proto/src/xinput.xml | 8 | ||||
-rw-r--r-- | libxcb/xcb-proto/src/xproto.xml | 2 |
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 72800045e..99fd307b0 100644 --- a/libxcb/src/c_client.py +++ b/libxcb/src/c_client.py @@ -1061,8 +1061,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 63864dc37..e62c985d5 100644 --- a/libxcb/src/xcb.h +++ b/libxcb/src/xcb.h @@ -141,6 +141,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 fd6c2efd2..95087be4e 100644 --- a/libxcb/src/xcb_in.c +++ b/libxcb/src/xcb_in.c @@ -918,11 +918,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> |