From 2aa7bcf37f00b7884ae166d62db81493ea37934a Mon Sep 17 00:00:00 2001 From: marha Date: Wed, 18 Aug 2010 09:35:37 +0000 Subject: libxext libx11 libxcb libXinerama libXau pixman xserver git update 18/10/2010 --- libxcb/NEWS | 837 ++++++++++++++++++++++++++-------------------------- libxcb/configure.ac | 2 +- 2 files changed, 424 insertions(+), 415 deletions(-) (limited to 'libxcb') diff --git a/libxcb/NEWS b/libxcb/NEWS index 457059877..eaa31e885 100644 --- a/libxcb/NEWS +++ b/libxcb/NEWS @@ -1,414 +1,423 @@ -Release 1.6 (2010-04-09) -======================== -- darwin: xnu doesn't support poll on ttys on the master side -- Fix descriptor leak on memory error path -- Support xcb_discard_reply -- Open the X11 socket with close-on-exec flag -- Fix authentication on hpux and Hurd - -Release 1.5 (2009-12-03) -======================== -- setsockopt(SO_KEEPALIVE) on TCP display connections -- Add DRI2 support -- Fix check dependency -- Cygwin build fix: Add -no-undefined to libtool flags - -Release 1.4 (2009-07-15) -======================== -* Add majorCode, minorCode and resourceID fields to X generic error -* Fix precedence bug: wrong length for big-requests preceded by sync -* Fix libxcb-randr version info - -Release 1.3 (2009-05-29) -======================== -* Copy full IPv4 mapping (Bug #20665) -* Fix XID allocation -* Use poll() instead of select() when available -* Fix local socket connection on Hurd -* Fix XDM-AUTHORIZATION-1 -* Disable Nagle on TCP socket - -Release 1.2 (2009-02-17) -======================== -* Stop packaging auto-generated C files into tarball. - -Release 1.1.93 (2008-12-11) -=========================== -Enhancements: -* Apple: Enable support for launchd DISPLAY socket -* Treat XIDs the same as other cardinal values. - -Release 1.1.92 (2008-11-01) -=========================== -Enhancements: -* Added small fix to support trailing fixed fields; also warning for non-pad fixed fields -* Fixed overly aggressive warning about fixed field following variable -* Added generation of extern "C" for compatibility with C++ -* Remove libxcb-xlib and xcbxlib.h. -* Inline _xcb_lock_io, _xcb_unlock_io, and _xcb_wait_io. -* Track 64-bit sequence numbers internally. -* Use sequence number ranges in pending replies -* Remove duplicate XCB_EXTENSION calls for Composite extension -* Factorize m4 macros and add one to set X extensions -* Allow compile-time setting for XCB queue buffer size -* Support handing off socket write permission to external code. -* Add support for the abstract socket namespace under Linux - -Bug fixes: -* Fix tiny memory leak in read_packet -* Fix some fd leaks in _xcb_open_*() - -Release 1.1 (2007-11-04) -======================== - -This release requires xcb-proto 1.1, due to the addition of the -extension-multiword attribute to the XML schema. - -This release contains several important bug fixes, summarized below. It -also contains a patch much like Novell's libxcb-sloppy-lock.diff. -Rationale from the commit message follows. The patch and this rationale -were authored by Jamey Sharp , with agreement from -Josh Triplett . - - I strongly opposed proposals like this one for a long time. - Originally I had a very good reason: libX11, when compiled to use - XCB, would crash soon after a locking correctness violation, so it - was better to have an informative assert failure than a mystifying - crash soon after. - - It took some time for me to realize that I'd changed the libX11 - implementation (for unrelated reasons) so that it could survive most - invalid locking situations, as long as it wasn't actually being used - from multiple threads concurrently. - - The other thing that has changed is that most of the code with - incorrect locking has now been fixed. The value of the assert is - accordingly lower. - - However, remaining broken callers do need to be fixed. That's why - libXCB will still noisily print a stacktrace (if possible) on each - assertion failure, even when assert isn't actually invoked to - abort() the program; and that's why aborting is still default. This - environment variable is provided only for use as a temporary - workaround for broken applications. - -Enhancements: -* Print a backtrace, if possible, on locking assertion failures. -* Skip abort() on locking assertions if LIBXCB_ALLOW_SLOPPY_LOCK is set. -* xcb_poll_for_event: Return already-read events before reading again. -* Output a configuration summary at the end of ./configure. - -Bug fixes: -* Don't hold the xlib-xcb lock while sleeping: that allows deadlock. -* Allow unix: style display names again. -* Bug #9119: test xcb_popcount -* Fix unit tests for FreeBSD -* NetBSD doesn't have AI_ADDRCONFIG: use it only if it's available. -* Require libXau >= 0.99.2; earlier versions have a broken .pc file -* Use substitition variables in xcb-xinerama.pc.in -* Update autogen.sh to one that does objdir != srcdir -* Add tools/* and autogen.sh to EXTRA_DIST. -* Doxygen can now be fully disabled if desired. - -Documentation improvements: -* Many fixes and updates to the tutorial. -* Iterators, requests, and replies get partial Doxygen documentation. - - -Release 1.0 (2006-11-23) -======================== - -The "Thanksgiving" release: We feel thankful to have it released. Five years -have passed since XCB's initial commit on September 3rd, 2001: - - -* Support IPv6. XCB now supports displays with IPv6 addresses, with or without - enclosing square brackets, or with hosts which resolve to IPv6 addresses, by - using getaddrinfo instead of gethostbyname, and by including support for - authentication for such connections. This allows such displays as "::1:1.1". - -* XCB now uses the libpthread-stubs, to properly support optional use of - pthreads even on platforms which do not have all the necessary pthread stubs - in libc or otherwise available by default. - -* Switch from the old AM_PATH_CHECK macro to pkg-config. check 0.9.4 is now - required to build XCB's unit tests. The version that we were requiring was - not actually new enough to let our unit tests compile, and the AM_PATH_CHECK - macro is now considered deprecated. We know that versions of check using - pkg-config are new enough to work, and the check dependency was optional - anyway, so we've dropped support for older versions. - -* Provide a xcb_prefetch_maximum_request_length counterpart to - xcb_get_maximum_request_length. - -* Fix Bug #5958: zero out padding bytes in requests. - -* Change xcb_connect to pass the display number to _xcb_get_auth_info, which - passes it to get_authptr. This allows get_authptr to stop hacking the - display number out of the sockaddrs of various address families, such as - port - X_TCP_PORT, or the number after the last X in the UNIX socket path. - -* Remove --with-opt and --with-debug options from configure.ac; configure - supports the use of custom CFLAGS, so please use that instead. - -* Reove support for the tag in protocol descriptions, since they - no longer use it, and since new protocol descriptions should not need it - either. - -* xcb-proto has no libraries or headers, so don't use XCBPROTO_CFLAGS or - XCBPROTO_LIBS. - -* XCB builds which use xdmcp now include it in Requires.private, to support - static linking. - -* Replace "long" with uint32_t when used for a 32-bit quantity - -* Various enhancements to the generation of documentation with Doxygen: - * Check for doxygen in configure.ac - * Fix some Doxygen warnings. - * Install documentation. - * Handle out-of-tree builds, with srcdir != builddir. xcb.doxygen now gets - generated from xcb.doxygen.in, so that it can use top_builddir and - top_srcdir to find source and to output documentation. - * Fill in PROJECT_NUMBER from @VERSION@, now that we have it readily - available via autoconf. - - -Release 1.0 RC3 (2006-11-02) -============================ - -Note: Version 0.9.4 of the test suite tool "check" provides a broken -version of the AM_PATH_CHECK macro, which causes autoconf to fail due to -insufficient quoting on the macro names it prints in its deprecation -message. We have written a patch to fix this problem, available at: - -Version 0.9.4-2 of the Debian package for check includes this patch. -Users of other distributions who want to re-autotool libxcb will need to -apply this patch, use an older version of check, or wait for a fixed -upstream version. This bug does not affect users who use the distributed -tarballs and do not re-autotool. - -* Add library support for xcb-xinerama, using new protocol description - from xcb-proto. -* In the generated protocol code, define and use constants for opcode - numbers rather than hard-coding them. -* In the API conversion script, match only XCB-namespaced XID generators - when converting to xcb_generate_id. -* Quit treating xproto specially in Makefile.am: handle it like all the - extensions. -* Generate Doxygen documentation comments in the protocol stubs, and - provide a Doxygen config file for building HTML documentation for XCB. -* Add note to xcbxlib.h that nothing except Xlib/XCB should use it. -* Extend test suite to test xcb_parse_display with NULL argument and - display in $DISPLAY. - - -Release 1.0 RC2 (2006-10-07) -============================ - -API changes ------------ - -In our announcement of XCB 1.0 RC1, we proposed two API changes for -community feedback: - - We would greatly appreciate API review in this final release - candidate period. We've had some limited feedback that our attempts - to impose static type safety on XIDs in C pose more a hindrance than - a help, so we would appreciate discussion over whether this - constitutes a "serious issue with the API". Some question also - remains of whether xcb_poll_for_event should have the out-parameter - 'error', now that XCB has a more uniform mechanism for reporting - connection errors. Speak now on these points or leave us alone. ;-) - -Since we've received feedback agreeing with our proposed changes, and no -objections or requests to keep the existing API, we made both changes -and bumped the soname to libxcb.so.1.0.0 in preparation for the release -of XCB 1.0. - -* Remove XID wrapper structures and replace them with uint32_t typedefs. - XID union types like xcb_drawable_t and xcb_fontable_t also become - uint32_t typedefs. The API conversion script now replaces xcb_*_new - with calls directly to xcb_generate_id. This change makes - xcb_generate_id part of the client API rather than the extension API, - so move xcb_generate_id from xcbext.h to xcb.h. - -* Remove the 'int *error' out-parameter for xcb_poll_for_event. - xcb_poll_for_event now shuts down the xcb_connection_t on fatal - errors; use xcb_connection_has_error to check. - -The Xlib-specific API in libxcb-xlib also changed: - -* Stop exposing the XCB IO lock for Xlib's benefit, by removing - xcb_get_io_lock from the Xlib-specific XCB API; instead, libxcb-xlib - now provides xcb_xlib_lock and xcb_xlib_unlock. - -Code generation changes ------------------------ - -* The code generator no longer implicitly imports xproto for extensions. - xcb-proto 1.0 RC2 includes the corresponding change to explicitly - import xproto in extensions that need it - -* The generated protocol headers now declare "struct foo", "union foo" - or "enum foo", not just the typedef "foo" of an unnamed - struct/union/enum type. - -Bug Fixes ---------- - -* Make Plan 7 'checked' requests work correctly. - -Documentation improvements --------------------------- - -* Document xcb_generate_id. - -* Tutorial enhancements. - - -Release 1.0 RC1 (2006-09-25) -============================ - -The Great XCB Renaming ----------------------- - -Rename API to follow a new naming convention: - -* XCB_CONSTANTS_UPPERCASE_WITH_UNDERSCORES -* xcb_functions_lowercase_with_underscores -* xcb_types_lowercase_with_underscores_and_suffix_t -* expand all abbreviations like "req", "rep", and "iter" - -Word boundaries for the names in the protocol descriptions fall: - -* Wherever the protocol descriptions already have an underscore -* Between a lowercase letter and a subsequent uppercase letter -* Before the last uppercase letter in a string of uppercase letters - followed by a lowercase letter (such as in LSBFirst between LSB and - First) -* Before and after a string of digits (with exceptions for sized types - like xcb_char2b_t and xcb_glx_float32_t to match the stdint.h - convention) - -Also fix up some particular naming issues: - -* Rename shape_op and shape_kind to drop the "shape_" prefix, since - otherwise these types end up as xcb_shape_shape_{op,kind}_t. -* Remove leading underscores from enums in the GLX protocol description, - previously needed to ensure a word separator, but now redundant. - -This renaming breaks code written for the previous API naming -convention. The scripts in XCB's tools directory will convert code -written for the old API to use the new API; they work well enough that -we used them to convert the non-program-generated code in XCB, and when -run on the old program-generated code, they almost exactly reproduce the -new program-generated code (modulo whitespace and bugs in the old code -generator). - -Authors: Vincent Torri, Thomas Hunger, Josh Triplett - -In addition to the API renaming, the library SONAMEs have changed to -libxcb.so and libxcb-extname.so. The library major version remains at 0, -to become version 1 before 1.0 is released; the SONAME lowercasing means -that this will not conflict with XCB 0.9 libraries. - -The header files have moved from /usr/include/X11/XCB/ to -/usr/include/xcb/. The XML-XCB protocol descriptions have moved to -/usr/share/xcb, with extension descriptions no longer relegated to an -extensions/ subdirectory. The API conversion script api_conv.pl will fix -references to the header files, and packages using pkg-config will -automatically use the new library names. - -Error handling Plan 7 ---------------------- - -All request functions now come in an "unchecked" and "checked" variant. -The checked variant allows callers to handle errors inline where they -obtain the reply, or by calling xcb_request_check for requests with no -reply. The unchecked variant uses the event queue for errors. Requests -with replies default to checked, because the caller must already make a -function call to retrieve the reply and can see the error at that time; -the unchecked variant uses the suffix _unchecked. Requests without -replies default to unchecked, because the caller will not necessarily -expect to handle a response, and the checked variant uses the suffix -_checked. - -Connection error handling -------------------------- - -Fatal connection errors now put the xcb_connection_t object into an -error state, at which point all further operations on that connection -will fail. Callers can use the new xcb_connection_has_error function to -check for this state in a connection. Functions that return a -connection, such as the xcb_connect function, may instead return an -xcb_connection_t already in an error state. - -In the future we expect to add additional API for getting more -information about the error condition that caused the connection to get -into an error state. - -Smaller API changes -------------------- - -All functions that have been marked 'deprecated' up to now have been -removed for this release. After XCB 1.0 is released, functions marked -'deprecated' will be preserved until the end of time to maintain -compatibility. - -XCB no longer provides a sync function. Most callers of this function -should use xcb_flush instead, which usually provides the intended -functionality and does not require a round-trip to the server. If you -really need this functionality, either use xcb_get_input_focus like sync -used to do, or use the xcb_aux_sync function from the xcb-aux library in -xcb-util. However, note that we do not consider the libraries in -xcb-util remotely stable yet. - -XCB no longer provides xcb_[extension_name]_init functions for each -extension. These functions previously caused XCB to issue and process a -QueryExtension request. Callers should now directly call -xcb_get_extension_data on the xcb_[extension_name]_id, or use -xcb_prefetch_extension_data if they do not need to force a round-trip -immediately. - -The compatibility functions in xcbxlib.h, provided solely for use by -Xlib/XCB, now exist in a separate library libxcb-xlib. We don't want to -have to change the libxcb soname if we later change or remove the Xlib -compatibility functions, and nothing except Xlib/XCB should ever use -them. (Applications which use Xlib/XCB do not need this library either; -Xlib/XCB only uses it internally.) - -The descriptions of several extensions have been updated to match the -latest versions implemented in the X.org X server. - -GIT Repository split --------------------- - -Previously, several XCB-related projects all existed under the umbrella -of a single monolithic GIT repository with per-project subdirectories. -We have split this repository into individual per-project repositories. - -Josh Triplett and Jamey Sharp wrote a tool called git-split to -accomplish this repository split. git-split reconstructs the history of -a sub-project previously stored in a subdirectory of a larger -repository. It constructs new commit objects based on the existing tree -objects for the subtree in each commit, and discards commits which do -not affect the history of the sub-project, as well as merges made -unnecessary due to these discarded commits. - -We would like to acknowledge the work of the gobby team in creating a -collaborative editor which greatly aided the development of git-split -(as well as these release notes). - -Build and implementation fixes ------------------------------- - -XCB no longer needs proto/x11 from X.org; the XCB header xproto.h -provides the definitions from X.h, named according to XCB conventions. - -XCB should now build with non-GNU implementations of Make. - -XCB properly handles 32-bit wrap of sequence numbers, and thus now -supports issuing more than 2**32 requests in one connection. - -Fixed bugs #7001, #7261. +Release 1.7 (2010-08-13) +======================== +- Always wake up readers after writing +- Get rid of PATH_MAX and MAXPATHLEN +- Add ~ operator support in code generator +- xcb_open: Improve protocol/host parsing +- xcb_connect_to_display_with_auth_info: Fix memory leak +- Report which extensions are being built + +Release 1.6 (2010-04-09) +======================== +- darwin: xnu doesn't support poll on ttys on the master side +- Fix descriptor leak on memory error path +- Support xcb_discard_reply +- Open the X11 socket with close-on-exec flag +- Fix authentication on hpux and Hurd + +Release 1.5 (2009-12-03) +======================== +- setsockopt(SO_KEEPALIVE) on TCP display connections +- Add DRI2 support +- Fix check dependency +- Cygwin build fix: Add -no-undefined to libtool flags + +Release 1.4 (2009-07-15) +======================== +* Add majorCode, minorCode and resourceID fields to X generic error +* Fix precedence bug: wrong length for big-requests preceded by sync +* Fix libxcb-randr version info + +Release 1.3 (2009-05-29) +======================== +* Copy full IPv4 mapping (Bug #20665) +* Fix XID allocation +* Use poll() instead of select() when available +* Fix local socket connection on Hurd +* Fix XDM-AUTHORIZATION-1 +* Disable Nagle on TCP socket + +Release 1.2 (2009-02-17) +======================== +* Stop packaging auto-generated C files into tarball. + +Release 1.1.93 (2008-12-11) +=========================== +Enhancements: +* Apple: Enable support for launchd DISPLAY socket +* Treat XIDs the same as other cardinal values. + +Release 1.1.92 (2008-11-01) +=========================== +Enhancements: +* Added small fix to support trailing fixed fields; also warning for non-pad fixed fields +* Fixed overly aggressive warning about fixed field following variable +* Added generation of extern "C" for compatibility with C++ +* Remove libxcb-xlib and xcbxlib.h. +* Inline _xcb_lock_io, _xcb_unlock_io, and _xcb_wait_io. +* Track 64-bit sequence numbers internally. +* Use sequence number ranges in pending replies +* Remove duplicate XCB_EXTENSION calls for Composite extension +* Factorize m4 macros and add one to set X extensions +* Allow compile-time setting for XCB queue buffer size +* Support handing off socket write permission to external code. +* Add support for the abstract socket namespace under Linux + +Bug fixes: +* Fix tiny memory leak in read_packet +* Fix some fd leaks in _xcb_open_*() + +Release 1.1 (2007-11-04) +======================== + +This release requires xcb-proto 1.1, due to the addition of the +extension-multiword attribute to the XML schema. + +This release contains several important bug fixes, summarized below. It +also contains a patch much like Novell's libxcb-sloppy-lock.diff. +Rationale from the commit message follows. The patch and this rationale +were authored by Jamey Sharp , with agreement from +Josh Triplett . + + I strongly opposed proposals like this one for a long time. + Originally I had a very good reason: libX11, when compiled to use + XCB, would crash soon after a locking correctness violation, so it + was better to have an informative assert failure than a mystifying + crash soon after. + + It took some time for me to realize that I'd changed the libX11 + implementation (for unrelated reasons) so that it could survive most + invalid locking situations, as long as it wasn't actually being used + from multiple threads concurrently. + + The other thing that has changed is that most of the code with + incorrect locking has now been fixed. The value of the assert is + accordingly lower. + + However, remaining broken callers do need to be fixed. That's why + libXCB will still noisily print a stacktrace (if possible) on each + assertion failure, even when assert isn't actually invoked to + abort() the program; and that's why aborting is still default. This + environment variable is provided only for use as a temporary + workaround for broken applications. + +Enhancements: +* Print a backtrace, if possible, on locking assertion failures. +* Skip abort() on locking assertions if LIBXCB_ALLOW_SLOPPY_LOCK is set. +* xcb_poll_for_event: Return already-read events before reading again. +* Output a configuration summary at the end of ./configure. + +Bug fixes: +* Don't hold the xlib-xcb lock while sleeping: that allows deadlock. +* Allow unix: style display names again. +* Bug #9119: test xcb_popcount +* Fix unit tests for FreeBSD +* NetBSD doesn't have AI_ADDRCONFIG: use it only if it's available. +* Require libXau >= 0.99.2; earlier versions have a broken .pc file +* Use substitition variables in xcb-xinerama.pc.in +* Update autogen.sh to one that does objdir != srcdir +* Add tools/* and autogen.sh to EXTRA_DIST. +* Doxygen can now be fully disabled if desired. + +Documentation improvements: +* Many fixes and updates to the tutorial. +* Iterators, requests, and replies get partial Doxygen documentation. + + +Release 1.0 (2006-11-23) +======================== + +The "Thanksgiving" release: We feel thankful to have it released. Five years +have passed since XCB's initial commit on September 3rd, 2001: + + +* Support IPv6. XCB now supports displays with IPv6 addresses, with or without + enclosing square brackets, or with hosts which resolve to IPv6 addresses, by + using getaddrinfo instead of gethostbyname, and by including support for + authentication for such connections. This allows such displays as "::1:1.1". + +* XCB now uses the libpthread-stubs, to properly support optional use of + pthreads even on platforms which do not have all the necessary pthread stubs + in libc or otherwise available by default. + +* Switch from the old AM_PATH_CHECK macro to pkg-config. check 0.9.4 is now + required to build XCB's unit tests. The version that we were requiring was + not actually new enough to let our unit tests compile, and the AM_PATH_CHECK + macro is now considered deprecated. We know that versions of check using + pkg-config are new enough to work, and the check dependency was optional + anyway, so we've dropped support for older versions. + +* Provide a xcb_prefetch_maximum_request_length counterpart to + xcb_get_maximum_request_length. + +* Fix Bug #5958: zero out padding bytes in requests. + +* Change xcb_connect to pass the display number to _xcb_get_auth_info, which + passes it to get_authptr. This allows get_authptr to stop hacking the + display number out of the sockaddrs of various address families, such as + port - X_TCP_PORT, or the number after the last X in the UNIX socket path. + +* Remove --with-opt and --with-debug options from configure.ac; configure + supports the use of custom CFLAGS, so please use that instead. + +* Reove support for the tag in protocol descriptions, since they + no longer use it, and since new protocol descriptions should not need it + either. + +* xcb-proto has no libraries or headers, so don't use XCBPROTO_CFLAGS or + XCBPROTO_LIBS. + +* XCB builds which use xdmcp now include it in Requires.private, to support + static linking. + +* Replace "long" with uint32_t when used for a 32-bit quantity + +* Various enhancements to the generation of documentation with Doxygen: + * Check for doxygen in configure.ac + * Fix some Doxygen warnings. + * Install documentation. + * Handle out-of-tree builds, with srcdir != builddir. xcb.doxygen now gets + generated from xcb.doxygen.in, so that it can use top_builddir and + top_srcdir to find source and to output documentation. + * Fill in PROJECT_NUMBER from @VERSION@, now that we have it readily + available via autoconf. + + +Release 1.0 RC3 (2006-11-02) +============================ + +Note: Version 0.9.4 of the test suite tool "check" provides a broken +version of the AM_PATH_CHECK macro, which causes autoconf to fail due to +insufficient quoting on the macro names it prints in its deprecation +message. We have written a patch to fix this problem, available at: + +Version 0.9.4-2 of the Debian package for check includes this patch. +Users of other distributions who want to re-autotool libxcb will need to +apply this patch, use an older version of check, or wait for a fixed +upstream version. This bug does not affect users who use the distributed +tarballs and do not re-autotool. + +* Add library support for xcb-xinerama, using new protocol description + from xcb-proto. +* In the generated protocol code, define and use constants for opcode + numbers rather than hard-coding them. +* In the API conversion script, match only XCB-namespaced XID generators + when converting to xcb_generate_id. +* Quit treating xproto specially in Makefile.am: handle it like all the + extensions. +* Generate Doxygen documentation comments in the protocol stubs, and + provide a Doxygen config file for building HTML documentation for XCB. +* Add note to xcbxlib.h that nothing except Xlib/XCB should use it. +* Extend test suite to test xcb_parse_display with NULL argument and + display in $DISPLAY. + + +Release 1.0 RC2 (2006-10-07) +============================ + +API changes +----------- + +In our announcement of XCB 1.0 RC1, we proposed two API changes for +community feedback: + + We would greatly appreciate API review in this final release + candidate period. We've had some limited feedback that our attempts + to impose static type safety on XIDs in C pose more a hindrance than + a help, so we would appreciate discussion over whether this + constitutes a "serious issue with the API". Some question also + remains of whether xcb_poll_for_event should have the out-parameter + 'error', now that XCB has a more uniform mechanism for reporting + connection errors. Speak now on these points or leave us alone. ;-) + +Since we've received feedback agreeing with our proposed changes, and no +objections or requests to keep the existing API, we made both changes +and bumped the soname to libxcb.so.1.0.0 in preparation for the release +of XCB 1.0. + +* Remove XID wrapper structures and replace them with uint32_t typedefs. + XID union types like xcb_drawable_t and xcb_fontable_t also become + uint32_t typedefs. The API conversion script now replaces xcb_*_new + with calls directly to xcb_generate_id. This change makes + xcb_generate_id part of the client API rather than the extension API, + so move xcb_generate_id from xcbext.h to xcb.h. + +* Remove the 'int *error' out-parameter for xcb_poll_for_event. + xcb_poll_for_event now shuts down the xcb_connection_t on fatal + errors; use xcb_connection_has_error to check. + +The Xlib-specific API in libxcb-xlib also changed: + +* Stop exposing the XCB IO lock for Xlib's benefit, by removing + xcb_get_io_lock from the Xlib-specific XCB API; instead, libxcb-xlib + now provides xcb_xlib_lock and xcb_xlib_unlock. + +Code generation changes +----------------------- + +* The code generator no longer implicitly imports xproto for extensions. + xcb-proto 1.0 RC2 includes the corresponding change to explicitly + import xproto in extensions that need it + +* The generated protocol headers now declare "struct foo", "union foo" + or "enum foo", not just the typedef "foo" of an unnamed + struct/union/enum type. + +Bug Fixes +--------- + +* Make Plan 7 'checked' requests work correctly. + +Documentation improvements +-------------------------- + +* Document xcb_generate_id. + +* Tutorial enhancements. + + +Release 1.0 RC1 (2006-09-25) +============================ + +The Great XCB Renaming +---------------------- + +Rename API to follow a new naming convention: + +* XCB_CONSTANTS_UPPERCASE_WITH_UNDERSCORES +* xcb_functions_lowercase_with_underscores +* xcb_types_lowercase_with_underscores_and_suffix_t +* expand all abbreviations like "req", "rep", and "iter" + +Word boundaries for the names in the protocol descriptions fall: + +* Wherever the protocol descriptions already have an underscore +* Between a lowercase letter and a subsequent uppercase letter +* Before the last uppercase letter in a string of uppercase letters + followed by a lowercase letter (such as in LSBFirst between LSB and + First) +* Before and after a string of digits (with exceptions for sized types + like xcb_char2b_t and xcb_glx_float32_t to match the stdint.h + convention) + +Also fix up some particular naming issues: + +* Rename shape_op and shape_kind to drop the "shape_" prefix, since + otherwise these types end up as xcb_shape_shape_{op,kind}_t. +* Remove leading underscores from enums in the GLX protocol description, + previously needed to ensure a word separator, but now redundant. + +This renaming breaks code written for the previous API naming +convention. The scripts in XCB's tools directory will convert code +written for the old API to use the new API; they work well enough that +we used them to convert the non-program-generated code in XCB, and when +run on the old program-generated code, they almost exactly reproduce the +new program-generated code (modulo whitespace and bugs in the old code +generator). + +Authors: Vincent Torri, Thomas Hunger, Josh Triplett + +In addition to the API renaming, the library SONAMEs have changed to +libxcb.so and libxcb-extname.so. The library major version remains at 0, +to become version 1 before 1.0 is released; the SONAME lowercasing means +that this will not conflict with XCB 0.9 libraries. + +The header files have moved from /usr/include/X11/XCB/ to +/usr/include/xcb/. The XML-XCB protocol descriptions have moved to +/usr/share/xcb, with extension descriptions no longer relegated to an +extensions/ subdirectory. The API conversion script api_conv.pl will fix +references to the header files, and packages using pkg-config will +automatically use the new library names. + +Error handling Plan 7 +--------------------- + +All request functions now come in an "unchecked" and "checked" variant. +The checked variant allows callers to handle errors inline where they +obtain the reply, or by calling xcb_request_check for requests with no +reply. The unchecked variant uses the event queue for errors. Requests +with replies default to checked, because the caller must already make a +function call to retrieve the reply and can see the error at that time; +the unchecked variant uses the suffix _unchecked. Requests without +replies default to unchecked, because the caller will not necessarily +expect to handle a response, and the checked variant uses the suffix +_checked. + +Connection error handling +------------------------- + +Fatal connection errors now put the xcb_connection_t object into an +error state, at which point all further operations on that connection +will fail. Callers can use the new xcb_connection_has_error function to +check for this state in a connection. Functions that return a +connection, such as the xcb_connect function, may instead return an +xcb_connection_t already in an error state. + +In the future we expect to add additional API for getting more +information about the error condition that caused the connection to get +into an error state. + +Smaller API changes +------------------- + +All functions that have been marked 'deprecated' up to now have been +removed for this release. After XCB 1.0 is released, functions marked +'deprecated' will be preserved until the end of time to maintain +compatibility. + +XCB no longer provides a sync function. Most callers of this function +should use xcb_flush instead, which usually provides the intended +functionality and does not require a round-trip to the server. If you +really need this functionality, either use xcb_get_input_focus like sync +used to do, or use the xcb_aux_sync function from the xcb-aux library in +xcb-util. However, note that we do not consider the libraries in +xcb-util remotely stable yet. + +XCB no longer provides xcb_[extension_name]_init functions for each +extension. These functions previously caused XCB to issue and process a +QueryExtension request. Callers should now directly call +xcb_get_extension_data on the xcb_[extension_name]_id, or use +xcb_prefetch_extension_data if they do not need to force a round-trip +immediately. + +The compatibility functions in xcbxlib.h, provided solely for use by +Xlib/XCB, now exist in a separate library libxcb-xlib. We don't want to +have to change the libxcb soname if we later change or remove the Xlib +compatibility functions, and nothing except Xlib/XCB should ever use +them. (Applications which use Xlib/XCB do not need this library either; +Xlib/XCB only uses it internally.) + +The descriptions of several extensions have been updated to match the +latest versions implemented in the X.org X server. + +GIT Repository split +-------------------- + +Previously, several XCB-related projects all existed under the umbrella +of a single monolithic GIT repository with per-project subdirectories. +We have split this repository into individual per-project repositories. + +Josh Triplett and Jamey Sharp wrote a tool called git-split to +accomplish this repository split. git-split reconstructs the history of +a sub-project previously stored in a subdirectory of a larger +repository. It constructs new commit objects based on the existing tree +objects for the subtree in each commit, and discards commits which do +not affect the history of the sub-project, as well as merges made +unnecessary due to these discarded commits. + +We would like to acknowledge the work of the gobby team in creating a +collaborative editor which greatly aided the development of git-split +(as well as these release notes). + +Build and implementation fixes +------------------------------ + +XCB no longer needs proto/x11 from X.org; the XCB header xproto.h +provides the definitions from X.h, named according to XCB conventions. + +XCB should now build with non-GNU implementations of Make. + +XCB properly handles 32-bit wrap of sequence numbers, and thus now +supports issuing more than 2**32 requests in one connection. + +Fixed bugs #7001, #7261. diff --git a/libxcb/configure.ac b/libxcb/configure.ac index ef71ad886..173755c2a 100644 --- a/libxcb/configure.ac +++ b/libxcb/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ(2.57) AC_INIT([libxcb], - 1.6, + 1.7, [xcb@lists.freedesktop.org]) AC_CONFIG_SRCDIR([xcb.pc.in]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) -- cgit v1.2.3