[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

libxcb: Changes to 'debian/unstable'



 Makefile.am                   |   10 
 NEWS                          |   23 +
 check-pc-requires             |   70 ++++
 configure.ac                  |  165 ++++-----
 debian/changelog              |   21 +
 debian/control                |   20 -
 debian/libxcb-xkb1.symbols    |   12 
 debian/libxcb-xprint0.symbols |    4 
 debian/libxcb1.symbols        |    4 
 debian/rules                  |    2 
 doc/Makefile.am               |    6 
 doc/tutorial/index.html       |   24 -
 m4/xcb.m4                     |   89 -----
 man/.gitignore                |    1 
 man/Makefile.am               |   18 +
 man/xcb-examples.man          |   59 +++
 man/xcb-requests.man          |  165 +++++++++
 src/Makefile.am               |   19 -
 src/c_client.py               |  704 ++++++++++++++++++------------------------
 src/man/.gitignore            |    5 
 src/man/xcb-examples.3        |   59 ---
 src/man/xcb-requests.3        |  165 ---------
 src/xcb.h                     |   47 ++
 src/xcb_auth.c                |   76 ++--
 src/xcb_conn.c                |   26 +
 src/xcb_in.c                  |  101 +++++-
 src/xcb_out.c                 |   65 ++-
 src/xcb_util.c                |  144 +++++---
 src/xcb_windefs.h             |    4 
 src/xcbext.h                  |  161 +++++++++
 src/xcbint.h                  |    6 
 xcb-present.pc.in             |    2 
 xcb-randr.pc.in               |    2 
 xcb-xinput.pc.in              |    2 
 34 files changed, 1303 insertions(+), 978 deletions(-)

New commits:
commit 3185ee51ee29c003ee5c185167eb786be19126be
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 14:47:18 2015 +0200

    Bump standards version to 3.9.6.

diff --git a/debian/changelog b/debian/changelog
index 793b0f7..305977d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -15,6 +15,7 @@ libxcb (1.11.1-1) UNRELEASED; urgency=medium
   * Remove obsolete Breaks/Conflicts/Replaces from pre-squeeze (Fixes
     Lintian warning: breaks-without-version libxcb-xlib0).
   * Remove obsolete XC- prefix from Package-Type field.
+  * Bump standards version to 3.9.6.
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/control b/debian/control
index 3138e46..5cdd7db 100644
--- a/debian/control
+++ b/debian/control
@@ -23,7 +23,7 @@ Build-Depends-Indep:
 # libxcb-doc
  doxygen,
  graphviz,
-Standards-Version: 3.9.2
+Standards-Version: 3.9.6
 Homepage: http://xcb.freedesktop.org
 Vcs-Git: https://anonscm.debian.org/git/pkg-xorg/lib/libxcb.git
 Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/lib/libxcb.git

commit 0097ad1c42a492b2b6730aa9f23af8b2720bdcc8
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 14:28:28 2015 +0200

    Remove obsolete XC- prefix from Package-Type field.

diff --git a/debian/changelog b/debian/changelog
index 039b72a..793b0f7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -14,6 +14,7 @@ libxcb (1.11.1-1) UNRELEASED; urgency=medium
     versioned-debhelper-build-depends 9).
   * Remove obsolete Breaks/Conflicts/Replaces from pre-squeeze (Fixes
     Lintian warning: breaks-without-version libxcb-xlib0).
+  * Remove obsolete XC- prefix from Package-Type field.
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/control b/debian/control
index 40fcded..3138e46 100644
--- a/debian/control
+++ b/debian/control
@@ -52,7 +52,7 @@ Description: X C Binding
     machine-parsable protocol descriptions
 
 Package: libxcb1-udeb
-XC-Package-Type: udeb
+Package-Type: udeb
 Section: debian-installer
 Architecture: any
 Depends: ${misc:Depends}, ${shlibs:Depends}

commit 8c2b59b89fff750dc3600939351430fbf8948eda
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 14:27:45 2015 +0200

    Remove obsolete Breaks/Conflicts/Replaces from pre-squeeze
    
    Fixes Lintian warning: breaks-without-version libxcb-xlib0

diff --git a/debian/changelog b/debian/changelog
index 0c408f9..039b72a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,8 @@ libxcb (1.11.1-1) UNRELEASED; urgency=medium
   * Update Vcs-* fields.
   * Bump debhelper build-dep to 9 (Fixes Lintian warning: package-needs-
     versioned-debhelper-build-depends 9).
+  * Remove obsolete Breaks/Conflicts/Replaces from pre-squeeze (Fixes
+    Lintian warning: breaks-without-version libxcb-xlib0).
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/control b/debian/control
index 696674d..40fcded 100644
--- a/debian/control
+++ b/debian/control
@@ -33,7 +33,6 @@ Section: libs
 Architecture: any
 Depends: ${misc:Depends}, ${shlibs:Depends}
 Breaks:
- libxcb-xlib0,
  alsa-utils (<< 1.0.24.2-5),
 Pre-Depends: ${misc:Pre-Depends}
 Multi-Arch: same
@@ -65,8 +64,6 @@ Section: libdevel
 Architecture: any
 Multi-Arch: same
 Depends: ${misc:Depends}, libxcb1 (= ${binary:Version}), libpthread-stubs0-dev, libxau-dev (>= 1:1.0.0-1), libxdmcp-dev (>= 1:1.0.0-1)
-Conflicts: libxcb0-dev
-Replaces: libxcb0-dev
 Suggests: libxcb-doc
 Description: X C Binding, development files
  This package contains the header and library files needed to build software

commit 87ae72b1e865852fa773f53f38153dc5db3e1ff1
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 14:04:58 2015 +0200

    Bump debhelper build-dep to 9
    
    Fixes Lintian warning: package-needs-versioned-debhelper-build-depends 9

diff --git a/debian/changelog b/debian/changelog
index fd9b697..0c408f9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,8 @@ libxcb (1.11.1-1) UNRELEASED; urgency=medium
   * Bump shlibs.
   * Change maintainer to Debian X Strike Force.
   * Update Vcs-* fields.
+  * Bump debhelper build-dep to 9 (Fixes Lintian warning: package-needs-
+    versioned-debhelper-build-depends 9).
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/control b/debian/control
index 73d0b12..696674d 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,7 @@ Build-Depends:
  xcb-proto (>= 1.11),
  xcb-proto (<< 2.0),
  libpthread-stubs0-dev (>= 0.1),
- debhelper (>= 8.9.4~),
+ debhelper (>= 9),
  pkg-config,
  xutils-dev,
  xsltproc (>= 1.1.19),

commit 93a03487f0aa5cc2951a0c32dce4c2b552bcef5e
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 13:58:51 2015 +0200

    Update Vcs-* fields.

diff --git a/debian/changelog b/debian/changelog
index e373a83..fd9b697 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,7 @@ libxcb (1.11.1-1) UNRELEASED; urgency=medium
     code, no users found via Debian Code Search).
   * Bump shlibs.
   * Change maintainer to Debian X Strike Force.
+  * Update Vcs-* fields.
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/control b/debian/control
index 33526fa..73d0b12 100644
--- a/debian/control
+++ b/debian/control
@@ -25,8 +25,8 @@ Build-Depends-Indep:
  graphviz,
 Standards-Version: 3.9.2
 Homepage: http://xcb.freedesktop.org
-Vcs-Git: git://git.debian.org/git/collab-maint/libxcb
-Vcs-Browser: http://git.debian.org/?p=collab-maint/libxcb.git
+Vcs-Git: https://anonscm.debian.org/git/pkg-xorg/lib/libxcb.git
+Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/lib/libxcb.git
 
 Package: libxcb1
 Section: libs

commit d4ce589a9a6d5c13573f32047568bf3970c82b9f
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 13:57:23 2015 +0200

    Change maintainer to Debian X Strike Force.

diff --git a/debian/changelog b/debian/changelog
index 056b601..e373a83 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,7 @@ libxcb (1.11.1-1) UNRELEASED; urgency=medium
   * Removes some symbols from libxcb-xkb1.symbols (previously wrong generated
     code, no users found via Debian Code Search).
   * Bump shlibs.
+  * Change maintainer to Debian X Strike Force.
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/control b/debian/control
index bf1007e..33526fa 100644
--- a/debian/control
+++ b/debian/control
@@ -1,7 +1,7 @@
 Source: libxcb
 Priority: optional
 Section: libdevel
-Maintainer: XCB Developers <xcb@lists.freedesktop.org>
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
 Uploaders: Josh Triplett <josh@freedesktop.org>, Julien Danjou <acid@debian.org>
 Build-Depends:
  libxau-dev (>= 1:1.0.5-2),

commit 0771575b378be49ef1b41ce71ec7838c71f35f94
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 13:56:32 2015 +0200

    Bump shlibs.

diff --git a/debian/changelog b/debian/changelog
index fedacde..056b601 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,7 @@ libxcb (1.11.1-1) UNRELEASED; urgency=medium
     symbols.
   * Removes some symbols from libxcb-xkb1.symbols (previously wrong generated
     code, no users found via Debian Code Search).
+  * Bump shlibs.
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/rules b/debian/rules
index 3c18717..0750f3a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -23,7 +23,7 @@ override_dh_strip:
 	dh_strip -s --remaining-packages
 
 override_dh_makeshlibs:
-	dh_makeshlibs -plibxcb1 --add-udeb=libxcb1-udeb -V'libxcb1 (>= 1.10)' -- -c4
+	dh_makeshlibs -plibxcb1 --add-udeb=libxcb1-udeb -V'libxcb1 (>= 1.11.1)' -- -c4
 	dh_makeshlibs -Nlibxcb1 -V -- -c4
 
 override_dh_installdocs: debian/copyright.debian COPYING

commit c12d54df9945aba1c7d0402d118c3360ecceff1a
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 13:54:26 2015 +0200

    Removes some symbols from libxcb-xkb1.symbols
    
    - previously wrong generated code
    - no users found via Debian Code Search

diff --git a/debian/changelog b/debian/changelog
index 40fcc77..fedacde 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,8 @@ libxcb (1.11.1-1) UNRELEASED; urgency=medium
   * Bump xcb-proto and python-xcbgen build-deps to 1.11.
   * Update libxcb1.symbols and liblibxcb-xprint0.symbols with new
     symbols.
+  * Removes some symbols from libxcb-xkb1.symbols (previously wrong generated
+    code, no users found via Debian Code Search).
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/libxcb-xkb1.symbols b/debian/libxcb-xkb1.symbols
index d435426..f5ca386 100644
--- a/debian/libxcb-xkb1.symbols
+++ b/debian/libxcb-xkb1.symbols
@@ -151,18 +151,6 @@ libxcb-xkb.so.1 libxcb-xkb1 #MINVER#
  xcb_xkb_get_map_map_acts_rtrn_count@Base 0
  xcb_xkb_get_map_map_acts_rtrn_count_end@Base 0
  xcb_xkb_get_map_map_acts_rtrn_count_length@Base 0
- xcb_xkb_get_map_map_alignment_pad@Base 0
- xcb_xkb_get_map_map_alignment_pad_2@Base 0
- xcb_xkb_get_map_map_alignment_pad_2_end@Base 0
- xcb_xkb_get_map_map_alignment_pad_2_length@Base 0
- xcb_xkb_get_map_map_alignment_pad_3@Base 0
- xcb_xkb_get_map_map_alignment_pad_3_end@Base 0
- xcb_xkb_get_map_map_alignment_pad_3_length@Base 0
- xcb_xkb_get_map_map_alignment_pad_4@Base 0
- xcb_xkb_get_map_map_alignment_pad_4_end@Base 0
- xcb_xkb_get_map_map_alignment_pad_4_length@Base 0
- xcb_xkb_get_map_map_alignment_pad_end@Base 0
- xcb_xkb_get_map_map_alignment_pad_length@Base 0
  xcb_xkb_get_map_map_behaviors_rtrn@Base 0
  xcb_xkb_get_map_map_behaviors_rtrn_iterator@Base 0
  xcb_xkb_get_map_map_behaviors_rtrn_length@Base 0

commit 8d16ace001dccb84aed76102f67494bc1155bbba
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 13:52:14 2015 +0200

    Update libxcb1.symbols and liblibxcb-xprint0.symbols with new symbols.

diff --git a/debian/changelog b/debian/changelog
index aaf00ef..40fcc77 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,8 @@ libxcb (1.11.1-1) UNRELEASED; urgency=medium
   * New upstream release (Closes: #778307).
   * Add build-dep on xutils-dev.
   * Bump xcb-proto and python-xcbgen build-deps to 1.11.
+  * Update libxcb1.symbols and liblibxcb-xprint0.symbols with new
+    symbols.
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/libxcb-xprint0.symbols b/debian/libxcb-xprint0.symbols
index 26c9c1f..c61b9d1 100644
--- a/debian/libxcb-xprint0.symbols
+++ b/debian/libxcb-xprint0.symbols
@@ -14,7 +14,11 @@ libxcb-xprint.so.0 libxcb-xprint0 #MINVER#
  xcb_x_print_print_end_page@Base 0
  xcb_x_print_print_end_page_checked@Base 0
  xcb_x_print_print_get_attributes@Base 0
+ xcb_x_print_print_get_attributes_attributes@Base 1.11.1
+ xcb_x_print_print_get_attributes_attributes_end@Base 1.11.1
+ xcb_x_print_print_get_attributes_attributes_length@Base 1.11.1
  xcb_x_print_print_get_attributes_reply@Base 0
+ xcb_x_print_print_get_attributes_sizeof@Base 1.11.1
  xcb_x_print_print_get_attributes_unchecked@Base 0
  xcb_x_print_print_get_context@Base 0
  xcb_x_print_print_get_context_reply@Base 0
diff --git a/debian/libxcb1.symbols b/debian/libxcb1.symbols
index 1ae1f8d..1af8af9 100644
--- a/debian/libxcb1.symbols
+++ b/debian/libxcb1.symbols
@@ -122,6 +122,7 @@ libxcb.so.1 libxcb1 #MINVER#
  xcb_destroy_subwindows_checked@Base 0
  xcb_destroy_window@Base 0
  xcb_destroy_window_checked@Base 0
+ xcb_discard_reply64@Base 1.11.1
  xcb_discard_reply@Base 1.6
  xcb_disconnect@Base 0
  xcb_drawable_end@Base 0
@@ -333,6 +334,7 @@ libxcb.so.1 libxcb1 #MINVER#
  xcb_point_next@Base 0
  xcb_poll_for_event@Base 0
  xcb_poll_for_queued_event@Base 1.8
+ xcb_poll_for_reply64@Base 1.11.1
  xcb_poll_for_reply@Base 0
  xcb_poll_for_special_event@Base 1.9.2
  xcb_poly_arc@Base 0
@@ -432,6 +434,7 @@ libxcb.so.1 libxcb1 #MINVER#
  xcb_send_event@Base 0
  xcb_send_event_checked@Base 0
  xcb_send_fd@Base 1.9.2
+ xcb_send_request64@Base 1.11.1
  xcb_send_request@Base 0
  xcb_set_access_control@Base 0
  xcb_set_access_control_checked@Base 0
@@ -535,6 +538,7 @@ libxcb.so.1 libxcb1 #MINVER#
  xcb_visualtype_end@Base 0
  xcb_visualtype_next@Base 0
  xcb_wait_for_event@Base 0
+ xcb_wait_for_reply64@Base 1.11.1
  xcb_wait_for_reply@Base 0
  xcb_wait_for_special_event@Base 1.9.2
  xcb_warp_pointer@Base 0

commit d4febcde47666223de85c0718943abbff786e756
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 12:03:43 2015 +0200

    Bump xcb-proto and python-xcbgen build-deps to 1.11.

diff --git a/debian/changelog b/debian/changelog
index 94523e6..aaf00ef 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ libxcb (1.11.1-1) UNRELEASED; urgency=medium
 
   * New upstream release (Closes: #778307).
   * Add build-dep on xutils-dev.
+  * Bump xcb-proto and python-xcbgen build-deps to 1.11.
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/control b/debian/control
index 0485fc7..bf1007e 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,7 @@ Uploaders: Josh Triplett <josh@freedesktop.org>, Julien Danjou <acid@debian.org>
 Build-Depends:
  libxau-dev (>= 1:1.0.5-2),
  libxdmcp-dev (>= 1:1.0.3-2),
- xcb-proto (>= 1.10),
+ xcb-proto (>= 1.11),
  xcb-proto (<< 2.0),
  libpthread-stubs0-dev (>= 0.1),
  debhelper (>= 8.9.4~),
@@ -14,7 +14,7 @@ Build-Depends:
  xutils-dev,
  xsltproc (>= 1.1.19),
  check (>= 0.9.4-2),
- python-xcbgen (>= 1.10),
+ python-xcbgen (>= 1.11),
  libtool,
  automake,
  python,

commit 86db7e6e6fdb43eccdd8c729059f66e294da11e6
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 11:57:17 2015 +0200

    Add build-dep on xutils-dev.

diff --git a/debian/changelog b/debian/changelog
index 2aeedaf..94523e6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 libxcb (1.11.1-1) UNRELEASED; urgency=medium
 
   * New upstream release (Closes: #778307).
+  * Add build-dep on xutils-dev.
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
 
diff --git a/debian/control b/debian/control
index 0412b54..0485fc7 100644
--- a/debian/control
+++ b/debian/control
@@ -11,6 +11,7 @@ Build-Depends:
  libpthread-stubs0-dev (>= 0.1),
  debhelper (>= 8.9.4~),
  pkg-config,
+ xutils-dev,
  xsltproc (>= 1.1.19),
  check (>= 0.9.4-2),
  python-xcbgen (>= 1.10),

commit fdb11791a750f52944f35701756107e14b727fc2
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Wed Sep 16 11:40:25 2015 +0200

    Bump changelog

diff --git a/debian/changelog b/debian/changelog
index bc30931..2aeedaf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libxcb (1.11.1-1) UNRELEASED; urgency=medium
+
+  * New upstream release (Closes: #778307).
+
+ -- Andreas Boll <andreas.boll.dev@gmail.com>  Wed, 16 Sep 2015 11:39:30 +0200
+
 libxcb (1.10-3) unstable; urgency=medium
 
   * Add missing dependencies to libxcb-present-dev.  Thanks, Michel Dänzer!

commit 7cf5ac145b7b1858ea8d3df178c99c5b00750d37
Author: Uli Schlachter <psychon@znc.in>
Date:   Sun Sep 6 12:39:19 2015 +0200

    Release libxcb 1.11.1

diff --git a/NEWS b/NEWS
index 00285c2..aee79ed 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+Release 1.11.1 (2015-09-06)
+===========================
+* Expose 64-bit sequence numbers for XLib
+* Fix some hangs related to xcb_wait_for_special_event()
+
 Release 1.11 (2014-08-01)
 =========================
 * Force structures with 64-bit fields to be packed
diff --git a/configure.ac b/configure.ac
index eb4a971..8a14a96 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([libxcb],[1.11],
+AC_INIT([libxcb],[1.11.1],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xcb],
         [libxcb])
 AC_CONFIG_AUX_DIR([build-aux])

commit 00903d4d6a32d498bd5d1eb8b7b733b133bc9692
Author: Uli Schlachter <psychon@znc.in>
Date:   Fri Jun 12 15:13:05 2015 +0200

    Fix a thread hang with xcb_wait_for_special_event()
    
    Consider the following:
    
    - Two threads are calling xcb_wait_for_special_event() and xcb_wait_for_reply()
      concurrently.
    - The thread doing xcb_wait_for_reply() wins the race and poll()s the socket for
      readability.
    - The other thread will be put to sleep on the special_event_cond of the special
      event (this is done in _xcb_conn_wait() via the argument
      xcb_wait_for_special_event() gives it).
    - The first thread gets its reply, but does not yet receive any special event.
    
    In this case, the first thread will return to its caller. On its way out, it
    will call _xcb_in_wake_up_next_reader(), but that function cannot wake up
    anything since so far it did not handle xcb_wait_for_special_event().
    
    Thus, the first thread stays blocked on the condition variable and no thread
    tries to read from the socket.
    
    A test case demonstrating this problem is available at the bug report.
    
    Fix this similar to how we handle this with xcb_wait_for_reply():
    
    The function wait_for_reply() adds an entry into a linked list of threads that
    wait for a reply. Via this list, _xcb_in_wake_up_next_reader() can wake up this
    thread so that it can call _xcb_conn_wait() again and then poll()s the socket.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84252
    Signed-off-by: Uli Schlachter <psychon@znc.in>
    Tested-by: Michel Dänzer <michel.daenzer@amd.com>

diff --git a/src/xcb_in.c b/src/xcb_in.c
index 322bed8..bab4bc7 100644
--- a/src/xcb_in.c
+++ b/src/xcb_in.c
@@ -97,6 +97,11 @@ typedef struct reader_list {
     struct reader_list *next;
 } reader_list;
 
+typedef struct special_list {
+    xcb_special_event_t *se;
+    struct special_list *next;
+} special_list;
+
 static void remove_finished_readers(reader_list **prev_reader, uint64_t completed)
 {
     while(*prev_reader && XCB_SEQUENCE_COMPARE((*prev_reader)->request, <=, completed))
@@ -475,6 +480,26 @@ static void remove_reader(reader_list **prev_reader, reader_list *reader)
         }
 }
 
+static void insert_special(special_list **prev_special, special_list *special, xcb_special_event_t *se)
+{
+    special->se = se;
+    special->next = *prev_special;
+    *prev_special = special;
+}
+
+static void remove_special(special_list **prev_special, special_list *special)
+{
+    while(*prev_special)
+    {
+        if(*prev_special == special)
+        {
+            *prev_special = (*prev_special)->next;
+            break;
+        }
+        prev_special = &(*prev_special)->next;
+    }
+}
+
 static void *wait_for_reply(xcb_connection_t *c, uint64_t request, xcb_generic_error_t **e)
 {
     void *ret = 0;
@@ -750,17 +775,22 @@ xcb_generic_event_t *xcb_poll_for_special_event(xcb_connection_t *c,
 xcb_generic_event_t *xcb_wait_for_special_event(xcb_connection_t *c,
                                                 xcb_special_event_t *se)
 {
+    special_list special;
     xcb_generic_event_t *event;
 
     if(c->has_error)
         return 0;
     pthread_mutex_lock(&c->iolock);
 
+    insert_special(&c->in.special_waiters, &special, se);
+
     /* get_special_event returns 0 on empty list. */
     while(!(event = get_special_event(c, se)))
         if(!_xcb_conn_wait(c, &se->special_event_cond, 0, 0))
             break;
 
+    remove_special(&c->in.special_waiters, &special);
+
     _xcb_in_wake_up_next_reader(c);
     pthread_mutex_unlock(&c->iolock);
     return event;
@@ -889,6 +919,8 @@ void _xcb_in_wake_up_next_reader(xcb_connection_t *c)
     int pthreadret;
     if(c->in.readers)
         pthreadret = pthread_cond_signal(c->in.readers->data);
+    else if(c->in.special_waiters)
+        pthreadret = pthread_cond_signal(&c->in.special_waiters->se->special_event_cond);
     else
         pthreadret = pthread_cond_signal(&c->in.event_cond);
     assert(pthreadret == 0);
diff --git a/src/xcbint.h b/src/xcbint.h
index f89deba..acce646 100644
--- a/src/xcbint.h
+++ b/src/xcbint.h
@@ -142,6 +142,7 @@ typedef struct _xcb_in {
     struct event_list *events;
     struct event_list **events_tail;
     struct reader_list *readers;
+    struct special_list *special_waiters;
 
     struct pending_reply *pending_replies;
     struct pending_reply **pending_replies_tail;

commit a31c295870f2812cb2ce4cff351e2c0a3b144661
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Mon Jun 1 11:04:18 2015 +0900

    Call _xcb_wake_up_next_reader from xcb_wait_for_special_event
    
    All functions calling _xcb_conn_wait() must make sure that waiting
    readers are woken up when we read a reply or event that they are waiting
    for. xcb_wait_for_special_event() did not do so. This adds the missing
    call to_xcb_in_wake_up_next_reader().
    
    Fixes deadlock when waiting for a special event and concurrently
    processing the display connection queue in another thread.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84252
    Tested-by: Thomas Daede <bztdlinux@gmail.com>
    Tested-by: Clément Guérin <geecko.dev@free.fr>
    Reviewed-by: Uli Schlachter <psychon@znc.in>
    Signed-off-by: Michel Dänzer <michel@daenzer.net>
    Signed-off-by: Uli Schlachter <psychon@znc.in>

diff --git a/src/xcb_in.c b/src/xcb_in.c
index 623a0a8..322bed8 100644
--- a/src/xcb_in.c
+++ b/src/xcb_in.c
@@ -761,6 +761,7 @@ xcb_generic_event_t *xcb_wait_for_special_event(xcb_connection_t *c,
         if(!_xcb_conn_wait(c, &se->special_event_cond, 0, 0))
             break;
 
+    _xcb_in_wake_up_next_reader(c);
     pthread_mutex_unlock(&c->iolock);
     return event;
 }

commit 0ba6fe9b4eaa70383cd2ee066dfb3f1e67efeb83
Author: Christian Linhart <chris@demorecorder.com>
Date:   Wed Apr 29 09:11:37 2015 +0200

    expose 64-bit sequence numbers for XLib
    
    While XCB uses 64-bit sequence number internally, it only exposes
    "unsigned int" so that, on 32-bit architecture, Xlib based applications
    may see their sequence number wrap which causes the connection to the X
    server to be lost.
    
    Expose 64-bit sequence number from XCB API so that Xlib and others can
    use it even on 32-bit environment.
    
    This implies the following API addition:
    
      xcb_send_request64()
      xcb_discard_reply64()
      xcb_wait_for_reply64()
      xcb_poll_for_reply64()
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71338
    
    Reviewed-by: Uli Schlachter <psychon@znc.in>
    Signed-off-by: Christian Linhart <chris@demorecorder.com>
    Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>

diff --git a/src/xcb.h b/src/xcb.h
index 23fe74e..86eb1bc 100644
--- a/src/xcb.h
+++ b/src/xcb.h
@@ -378,6 +378,26 @@ xcb_generic_error_t *xcb_request_check(xcb_connection_t *c, xcb_void_cookie_t co
  */
 void xcb_discard_reply(xcb_connection_t *c, unsigned int sequence);
 
+/**
+ * @brief Discards the reply for a request, given by a 64bit sequence number
+ * @param c: The connection to the X server.
+ * @param sequence: 64-bit sequence number as returned by xcb_send_request64().
+ *
+ * Discards the reply for a request. Additionally, any error generated
+ * by the request is also discarded (unless it was an _unchecked request
+ * and the error has already arrived).
+ *
+ * This function will not block even if the reply is not yet available.
+ *
+ * Note that the sequence really does have to come from xcb_send_request64();
+ * the cookie sequence number is defined as "unsigned" int and therefore
+ * not 64-bit on all platforms.
+ * This function is not designed to operate on socket-handoff replies.
+ *
+ * Unlike its xcb_discard_reply() counterpart, the given sequence number is not
+ * automatically "widened" to 64-bit.
+ */
+void xcb_discard_reply64(xcb_connection_t *c, uint64_t sequence);
 
 /* xcb_ext.c */
 
diff --git a/src/xcb_in.c b/src/xcb_in.c
index ad870c1..623a0a8 100644
--- a/src/xcb_in.c
+++ b/src/xcb_in.c
@@ -523,6 +523,20 @@ void *xcb_wait_for_reply(xcb_connection_t *c, unsigned int request, xcb_generic_
     return ret;
 }
 
+void *xcb_wait_for_reply64(xcb_connection_t *c, uint64_t request, xcb_generic_error_t **e)
+{
+    void *ret;
+    if(e)
+        *e = 0;
+    if(c->has_error)
+        return 0;
+
+    pthread_mutex_lock(&c->iolock);
+    ret = wait_for_reply(c, request, e);
+    pthread_mutex_unlock(&c->iolock);
+    return ret;
+}
+
 int *xcb_get_reply_fds(xcb_connection_t *c, void *reply, size_t reply_size)
 {
     return (int *) (&((char *) reply)[reply_size]);
@@ -595,6 +609,20 @@ void xcb_discard_reply(xcb_connection_t *c, unsigned int sequence)
     pthread_mutex_unlock(&c->iolock);
 }
 
+void xcb_discard_reply64(xcb_connection_t *c, uint64_t sequence)
+{
+    if(c->has_error)
+        return;
+
+    /* If an error occurred when issuing the request, fail immediately. */
+    if(!sequence)
+        return;
+
+    pthread_mutex_lock(&c->iolock);
+    discard_reply(c, sequence);
+    pthread_mutex_unlock(&c->iolock);
+}
+
 int xcb_poll_for_reply(xcb_connection_t *c, unsigned int request, void **reply, xcb_generic_error_t **error)
 {
     int ret;
@@ -612,6 +640,23 @@ int xcb_poll_for_reply(xcb_connection_t *c, unsigned int request, void **reply,
     return ret;
 }
 
+int xcb_poll_for_reply64(xcb_connection_t *c, uint64_t request, void **reply, xcb_generic_error_t **error)
+{
+    int ret;
+    if(c->has_error)
+    {
+        *reply = 0;
+        if(error)
+            *error = 0;
+        return 1; /* would not block */
+    }
+    assert(reply != 0);
+    pthread_mutex_lock(&c->iolock);
+    ret = poll_for_reply(c, request, reply, error);
+    pthread_mutex_unlock(&c->iolock);
+    return ret;
+}
+
 xcb_generic_event_t *xcb_wait_for_event(xcb_connection_t *c)
 {
     xcb_generic_event_t *ret;
diff --git a/src/xcb_out.c b/src/xcb_out.c
index dc42954..8cc5be8 100644
--- a/src/xcb_out.c
+++ b/src/xcb_out.c
@@ -177,7 +177,7 @@ uint32_t xcb_get_maximum_request_length(xcb_connection_t *c)
     return c->out.maximum_request_length.value;
 }
 
-unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *req)
+uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *req)
 {
     uint64_t request;
     uint32_t prefix[2];
@@ -286,6 +286,12 @@ unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vect
     return request;
 }
 
+/* request number are actually uint64_t internally but keep API compat with unsigned int */
+unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *req)
+{
+    return xcb_send_request64(c, flags, vector, req);
+}
+
 void
 xcb_send_fd(xcb_connection_t *c, int fd)
 {
diff --git a/src/xcbext.h b/src/xcbext.h
index 7587513..b2575f7 100644
--- a/src/xcbext.h
+++ b/src/xcbext.h
@@ -83,6 +83,30 @@ enum xcb_send_request_flags_t {
 unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *request);
 
 /**
+ * @brief Send a request to the server, with 64-bit sequence number returned.
+ * @param c: The connection to the X server.
+ * @param flags: A combination of flags from the xcb_send_request_flags_t enumeration.
+ * @param vector: Data to send; must have two iovecs before start for internal use.
+ * @param request: Information about the request to be sent.
+ * @return The request's sequence number on success, 0 otherwise.
+ *
+ * This function sends a new request to the X server. The data of the request is
+ * given as an array of @c iovecs in the @p vector argument. The length of that
+ * array and the neccessary management information are given in the @p request
+ * argument.
+ *
+ * When this function returns, the request might or might not be sent already.
+ * Use xcb_flush() to make sure that it really was sent.
+ *
+ * Please note that this function is not the prefered way for sending requests.
+ * It's better to use the generated wrapper functions.
+ *
+ * Please note that xcb might use index -1 and -2 of the @p vector array internally,
+ * so they must be valid!
+ */
+uint64_t xcb_send_request64(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *request);
+
+/**
  * @brief Send a file descriptor to the server in the next call to xcb_send_request.
  * @param c: The connection to the X server.
  * @param fd: The file descriptor to send.
@@ -162,6 +186,21 @@ int xcb_writev(xcb_connection_t *c, struct iovec *vector, int count, uint64_t re
 void *xcb_wait_for_reply(xcb_connection_t *c, unsigned int request, xcb_generic_error_t **e);
 
 /**
+ * @brief Wait for the reply of a given request, with 64-bit sequence number
+ * @param c: The connection to the X server.
+ * @param request: 64-bit sequence number of the request as returned by xcb_send_request64().
+ * @param e: Location to store errors in, or NULL. Ignored for unchecked requests.
+ *
+ * Returns the reply to the given request or returns null in the event of
+ * errors. Blocks until the reply or error for the request arrives, or an I/O
+ * error occurs.
+ *
+ * Unlike its xcb_wait_for_reply() counterpart, the given sequence number is not
+ * automatically "widened" to 64-bit.
+ */
+void *xcb_wait_for_reply64(xcb_connection_t *c, uint64_t request, xcb_generic_error_t **e);
+
+/**
  * @brief Poll for the reply of a given request.
  * @param c: The connection to the X server.
  * @param request: Sequence number of the request as returned by xcb_send_request().
@@ -174,6 +213,21 @@ void *xcb_wait_for_reply(xcb_connection_t *c, unsigned int request, xcb_generic_
 int xcb_poll_for_reply(xcb_connection_t *c, unsigned int request, void **reply, xcb_generic_error_t **error);
 
 /**
+ * @brief Poll for the reply of a given request, with 64-bit sequence number.
+ * @param c: The connection to the X server.
+ * @param request: 64-bit sequence number of the request as returned by xcb_send_request().
+ * @param reply: Location to store the reply in, must not be NULL.
+ * @param e: Location to store errors in, or NULL. Ignored for unchecked requests.
+ * @return 1 when the reply to the request was returned, else 0.
+ *
+ * Checks if the reply to the given request already received. Does not block.
+ *
+ * Unlike its xcb_poll_for_reply() counterpart, the given sequence number is not
+ * automatically "widened" to 64-bit.
+ */
+int xcb_poll_for_reply64(xcb_connection_t *c, uint64_t request, void **reply, xcb_generic_error_t **error);
+
+/**
  * @brief Don't use this, only needed by the generated code.
  * @param c: The connection to the X server.
  * @param reply: A reply that was received from the server

commit d1e8ec96fca4862f37ec9f0e9407bb989c4c161a
Author: Uli Schlachter <psychon@znc.in>
Date:   Fri Aug 1 15:56:52 2014 +0200

    Release libxcb 1.11

diff --git a/NEWS b/NEWS
index 0152bcb..00285c2 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,21 @@
+Release 1.11 (2014-08-01)
+=========================
+* Force structures with 64-bit fields to be packed
+* Add support for <pad align="n">
+* Use X.org's build machinery from xorg-macros
+* Fix leak with xcb_disconnect() and connections in an error state
+* Make xcb_disconnect(NULL) safe
+* Use less #include statements in generated code
+* Automatically validate the Requires lines in our .pc.in files
+* Fix a race that resulted in a failed assertion
+* Improve launchd secure socket support
+* Improve API documentation
+* Remove trailing whitespaces
+* c_client.py: prefix all monkey-patched fields with c_
+* c_client.py: make the man page output deterministic
+* c_client.py: remove useless generated comments
+* xcb.h: add 'struct' before xcb_setup_t, xcb_query_extension_reply_t
+
 Release 1.10 (2013-12-22)
 =========================
 * Bump libxcb-xkb SONAME due to ABI break introduced in 1.9.2
diff --git a/configure.ac b/configure.ac
index 4aba894..eb4a971 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([libxcb],[1.10],
+AC_INIT([libxcb],[1.11],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xcb],
         [libxcb])
 AC_CONFIG_AUX_DIR([build-aux])

commit c5c6cfa4d2a27d0f9e139a1856d866433b6046bc
Author: Uli Schlachter <psychon@znc.in>
Date:   Fri Aug 1 16:03:24 2014 +0200

    Bump xcb-proto requirement to 1.11
    
    This is needed for the new direct_imports field that we need from xcb-proto.
    
    Signed-off-by: Uli Schlachter <psychon@znc.in>

diff --git a/configure.ac b/configure.ac
index 68c3b2f..4aba894 100644
--- a/configure.ac
+++ b/configure.ac
@@ -50,7 +50,7 @@ fi
 AC_SUBST(HTML_CHECK_RESULT)
 
 # Checks for pkg-config packages
-PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.10)
+PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.11)
 NEEDED="pthread-stubs xau >= 0.99.2"
 PKG_CHECK_MODULES(NEEDED, $NEEDED)
 

commit 70ea5da64b34336bb0916f6c325545cb50746159
Author: Alexander Mezin <mezin.alexander@gmail.com>
Date:   Sun Jun 29 17:33:48 2014 +0700

    xcb.h: add 'struct' before xcb_setup_t, xcb_query_extension_reply_t
    
    These structs are typedef'ed in xproto.h, so in xcb.h these types
    (without 'struct') are actually undefined.
    
    GCC reports this as error when building precompiled header.
    
    Signed-off-by: Alexander Mezin <mezin.alexander@gmail.com>
    Reviewed-by: Peter Harris <pharris@opentext.com>

diff --git a/src/xcb.h b/src/xcb.h
index 0bf59d0..23fe74e 100644
--- a/src/xcb.h


Reply to: