Update to libxcb 1.14 and xcb-proto 1.14. ok tb@
This commit is contained in:
parent
0d451cc2e3
commit
0ed5a7f139
138
dist/libxcb/ChangeLog
vendored
138
dist/libxcb/ChangeLog
vendored
@ -1,3 +1,141 @@
|
||||
commit 4b40b44cb6d088b6ffa2fb5cf3ad8f12da588cef
|
||||
Author: Matt Turner <mattst88@gmail.com>
|
||||
Date: Sat Feb 22 12:10:53 2020 -0800
|
||||
|
||||
Release libxcb 1.14
|
||||
|
||||
Signed-off-by: Matt Turner <mattst88@gmail.com>
|
||||
|
||||
commit 78c492deaa7ae3aad0b0eeb4b126bb291cc637a7
|
||||
Author: Matt Turner <mattst88@gmail.com>
|
||||
Date: Sat Feb 22 12:19:58 2020 -0800
|
||||
|
||||
Build xz tarballs instead of bzip2
|
||||
|
||||
Signed-off-by: Matt Turner <mattst88@gmail.com>
|
||||
|
||||
commit 8f7e4c4e9fc6ee6b5b5498a7d8af79150be0d26a
|
||||
Author: Matt Turner <mattst88@gmail.com>
|
||||
Date: Sat Feb 22 11:24:11 2020 -0800
|
||||
|
||||
configure.ac: Depend on pthread-stubs only on not-Linux
|
||||
|
||||
Signed-off-by: Matt Turner <mattst88@gmail.com>
|
||||
|
||||
commit f9f4b00aad69ff36e81c63089b1b16660eaca900
|
||||
Author: Sam Varshavchik <mrsam@courier-mta.com>
|
||||
Date: Sat Jan 4 10:43:59 2020 -0500
|
||||
|
||||
Implement xcb_total_read() and xcb_total_written().
|
||||
|
||||
Returns raw byte counts that have been read or written to the
|
||||
xcb_connection_t.
|
||||
|
||||
I found it very useful when developing a high level widget toolkit, to
|
||||
track down inefficient/sub-optimum code that generates a lot of X
|
||||
protocol traffic.
|
||||
|
||||
Signed-off-by: Sam Varshavchik <mrsam@courier-mta.com>
|
||||
|
||||
commit 59e271e15bcecf0c461cd5c6c59081fb86b96c22
|
||||
Author: A. Wilcox <AWilcox@Wilcox-Tech.com>
|
||||
Date: Mon Dec 23 21:49:29 2019 -0600
|
||||
|
||||
tests: Support Check 0.13.0 API
|
||||
|
||||
[mattst88]: Keep compatibility with old API via preprocessor
|
||||
|
||||
Fixes: #43
|
||||
|
||||
commit 21324989b7e121c008a2c4fdf98547541cbf7b83
|
||||
Author: Martin Dørum <martid0311@gmail.com>
|
||||
Date: Sun May 19 16:05:08 2019 +0200
|
||||
|
||||
Handle EINTR from recvmsg in _xcb_in_read
|
||||
|
||||
I have a GTK application which occasionally crashes with an "interrupted
|
||||
system call" g_message from gdk. After a lot of debugging, I've found
|
||||
that the call to recvmsg in _xcb_in_read occasionally fails with EINTR,
|
||||
and instead of retrying the system call, xcb would just shut down the
|
||||
connection.
|
||||
|
||||
This change makes _xcb_in_read treat EINTR the same as it would treat
|
||||
EAGAIN; it returns 1 and libX11 ends up calling xcb_poll_for_event
|
||||
again (from what I have understood).
|
||||
|
||||
I have spoken with a few people who think recvmsg failing with EINTR in
|
||||
this case shouldn't ever happen, and I don't know enough to agree or
|
||||
disagree with that. In case anyone wants to dig further and try to
|
||||
figure out why the recvmsg call sometimes fails with EINTR, here's the
|
||||
backtrace from inside of _xcb_in_read where that happened:
|
||||
|
||||
Thread 1 "beanbar" hit Breakpoint 1, _xcb_in_read (c=c@entry=0x55ecbe4aba80) at xcb_in.c:1059
|
||||
1059 fprintf(stderr, "Hello World am %s:%i, errno is %s\n", __FILE__, __LINE__, strerror(errno));
|
||||
(gdb) bt
|
||||
0 0x00007fa48fa48639 in _xcb_in_read (c=c@entry=0x55ecbe4aba80) at xcb_in.c:1059
|
||||
1 0x00007fa48fa489d8 in poll_for_next_event (c=0x55ecbe4aba80, queued=queued@entry=0) at xcb_in.c:352
|
||||
2 0x00007fa48fa48a3d in poll_for_next_event (queued=0, c=<optimized out>) at xcb_in.c:722
|
||||
3 0x00007fa48fa48a3d in xcb_poll_for_event (c=<optimized out>) at xcb_in.c:722
|
||||
4 0x00007fa4908d1b7e in poll_for_event (dpy=dpy@entry=0x55ecbe4a9730, queued_only=queued_only@entry=0) at xcb_io.c:245
|
||||
5 0x00007fa4908d1cf0 in poll_for_response (dpy=dpy@entry=0x55ecbe4a9730) at xcb_io.c:303
|
||||
6 0x00007fa4908d1fed in _XEventsQueued (mode=2, dpy=0x55ecbe4a9730) at xcb_io.c:363
|
||||
7 0x00007fa4908d1fed in _XEventsQueued (dpy=dpy@entry=0x55ecbe4a9730, mode=mode@entry=2) at xcb_io.c:344
|
||||
8 0x00007fa4908c3d47 in XPending (dpy=0x55ecbe4a9730) at Pending.c:55
|
||||
9 0x00007fa493cadbc7 in () at /usr/lib/libgdk-3.so.0
|
||||
10 0x00007fa49234d08a in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0
|
||||
11 0x00007fa49234d6e6 in () at /usr/lib/libglib-2.0.so.0
|
||||
12 0x00007fa49234d8ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
|
||||
13 0x00007fa4938b920e in g_application_run () at /usr/lib/libgio-2.0.so.0
|
||||
14 0x000055ecbc820af4 in main (argc=1, argv=0x7ffd06238098) at src/main.c:190
|
||||
|
||||
Signed-off-by: Martin Dørum <martid0311@gmail.com>
|
||||
|
||||
commit 656c08c5429a3cf53e7abd7fc56cd3c3a79c0f64
|
||||
Author: Jon Turney <jon.turney@dronecode.org.uk>
|
||||
Date: Sun Sep 14 00:05:27 2014 +0100
|
||||
|
||||
Include time.h before using time()
|
||||
|
||||
Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
|
||||
|
||||
commit be1745c8eb00defcb31d336ccc142de056e92bd8
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sun Feb 17 12:06:10 2019 -0800
|
||||
|
||||
Add README.md to EXTRA_DIST
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 58f37377c851960cbf21fac1caf38ab1e66c7d6c
|
||||
Author: Eduardo Sánchez Muñoz <esm@eduardosm.net>
|
||||
Date: Sun Feb 17 13:33:12 2019 +0100
|
||||
|
||||
Add "ge.*" to src/.gitignore
|
||||
|
||||
commit 7bac366953005233fc3c8736e6f1cd5798e65e28
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Feb 16 13:41:28 2019 -0800
|
||||
|
||||
Update README for gitlab migration
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 02ff3eadf48e6affe3b59ef688312b4dab538e8b
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Feb 16 13:20:45 2019 -0800
|
||||
|
||||
Update configure.ac bug URL for gitlab migration
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 542befe40a3a7c6a5d1dcb7f38fb9eb261b96b24
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Mon Jan 7 14:42:53 2019 -0800
|
||||
|
||||
c_client: fix "adress" typo
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 8287ebd7b752c33b0cabc4982606fe4831106f7e
|
||||
Author: Uli Schlachter <psychon@znc.in>
|
||||
Date: Thu Sep 27 14:04:17 2018 +0200
|
||||
|
1
dist/libxcb/Makefile.am
vendored
1
dist/libxcb/Makefile.am
vendored
@ -99,6 +99,7 @@ tools/README \
|
||||
tools/api_conv.pl \
|
||||
tools/constants \
|
||||
autogen.sh \
|
||||
README.md \
|
||||
$(TESTS)
|
||||
|
||||
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
||||
|
7
dist/libxcb/NEWS
vendored
7
dist/libxcb/NEWS
vendored
@ -1,3 +1,10 @@
|
||||
Release 1.14 (2020-02-22)
|
||||
=========================
|
||||
* Add xcb_total_read() and xcb_total_written() API
|
||||
* Support check >= 0.13 API (for make check)
|
||||
* Bug fix to handle EINTR from recvmsg
|
||||
* Only require pthread-stubs on non-Linux platforms
|
||||
|
||||
Release 1.13.1 (2018-09-27)
|
||||
===========================
|
||||
* Don't flag extra reply in xcb_take_socket
|
||||
|
25
dist/libxcb/README → dist/libxcb/README.md
vendored
25
dist/libxcb/README → dist/libxcb/README.md
vendored
@ -2,7 +2,7 @@ About libxcb
|
||||
============
|
||||
|
||||
libxcb provides an interface to the X Window System protocol, which
|
||||
replaces the current Xlib interface. It has several advantages over
|
||||
replaces the traditional Xlib interface. It has several advantages over
|
||||
Xlib, including:
|
||||
- size: small, simple library, and lower memory footprint
|
||||
- latency hiding: batch several requests and wait for the replies later
|
||||
@ -10,27 +10,32 @@ Xlib, including:
|
||||
- proven thread support: transparently access XCB from multiple threads
|
||||
- easy extension implementation: interfaces auto-generated from XML-XCB
|
||||
|
||||
Xlib can also use XCB as a transport layer, allowing software to make
|
||||
Xlib also uses XCB as a transport layer, allowing software to make
|
||||
requests and receive responses with both, which eases porting to XCB.
|
||||
However, client programs, libraries, and toolkits will gain the most
|
||||
benefit from a native XCB port.
|
||||
|
||||
More information about xcb is available from our website:
|
||||
|
||||
Please report any issues you find to the freedesktop.org bug tracker,
|
||||
at:
|
||||
https://xcb.freedesktop.org/
|
||||
|
||||
<https://bugs.freedesktop.org/enter_bug.cgi?product=XCB>
|
||||
Please report any issues you find to the freedesktop.org bug tracker at:
|
||||
|
||||
https://gitlab.freedesktop.org/xorg/lib/libxcb/issues
|
||||
|
||||
Discussion about XCB occurs on the XCB mailing list:
|
||||
|
||||
<mailto:xcb at lists.freedesktop.org>
|
||||
<http://lists.freedesktop.org/mailman/listinfo/xcb>
|
||||
https://lists.freedesktop.org/mailman/listinfo/xcb
|
||||
|
||||
You can obtain the latest development versions of XCB using GIT from
|
||||
the libxcb code repository at:
|
||||
|
||||
https://gitlab.freedesktop.org/xorg/lib/libxcb
|
||||
|
||||
You can obtain the latest development versions of XCB using GIT.
|
||||
For anonymous checkouts, use:
|
||||
|
||||
git clone git://anongit.freedesktop.org/git/xcb/libxcb
|
||||
git clone https://gitlab.freedesktop.org/xorg/lib/libxcb.git
|
||||
|
||||
For developers, use:
|
||||
|
||||
git clone git+ssh://git.freedesktop.org/git/xcb/libxcb
|
||||
git clone git@gitlab.freedesktop.org:xorg/lib/libxcb.git
|
14
dist/libxcb/configure.ac
vendored
14
dist/libxcb/configure.ac
vendored
@ -2,8 +2,8 @@ dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
# Initialize Autoconf
|
||||
AC_PREREQ([2.60])
|
||||
AC_INIT([libxcb],[1.13.1],
|
||||
[https://bugs.freedesktop.org/enter_bug.cgi?product=xcb],
|
||||
AC_INIT([libxcb],[1.14],
|
||||
[https://gitlab.freedesktop.org/xorg/lib/libxcb/issues],
|
||||
[libxcb])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
@ -11,7 +11,7 @@ AC_CONFIG_SRCDIR([xcb.pc.in])
|
||||
AC_CONFIG_HEADERS([src/config.h])
|
||||
|
||||
# Initialize Automake
|
||||
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||
AM_INIT_AUTOMAKE([foreign dist-xz])
|
||||
AM_PATH_PYTHON([2.6])
|
||||
|
||||
# Set common system defines for POSIX extensions, such as _GNU_SOURCE
|
||||
@ -50,8 +50,12 @@ fi
|
||||
AC_SUBST(HTML_CHECK_RESULT)
|
||||
|
||||
# Checks for pkg-config packages
|
||||
PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.13)
|
||||
NEEDED="pthread-stubs xau >= 0.99.2"
|
||||
PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.14)
|
||||
NEEDED="xau >= 0.99.2"
|
||||
case $host_os in
|
||||
linux*) ;;
|
||||
*) NEEDED="$NEEDED pthread-stubs" ;;
|
||||
esac
|
||||
PKG_CHECK_MODULES(NEEDED, $NEEDED)
|
||||
|
||||
have_xdmcp="no"
|
||||
|
56
dist/libxcb/m4/libtool.m4
vendored
56
dist/libxcb/m4/libtool.m4
vendored
@ -728,6 +728,7 @@ _LT_CONFIG_SAVE_COMMANDS([
|
||||
cat <<_LT_EOF >> "$cfgfile"
|
||||
#! $SHELL
|
||||
# Generated automatically by $as_me ($PACKAGE) $VERSION
|
||||
# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
|
||||
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
|
||||
|
||||
# Provide generalized library-building support services.
|
||||
@ -1416,10 +1417,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
|
||||
x86_64-*linux*)
|
||||
LD="${LD-ld} -m elf_x86_64"
|
||||
;;
|
||||
powerpcle-*linux*)
|
||||
powerpcle-*linux*|powerpc64le-*linux*)
|
||||
LD="${LD-ld} -m elf64lppc"
|
||||
;;
|
||||
powerpc-*linux*)
|
||||
powerpc-*linux*|powerpc64-*linux*)
|
||||
LD="${LD-ld} -m elf64ppc"
|
||||
;;
|
||||
s390*-*linux*|s390*-*tpf*)
|
||||
@ -1707,6 +1708,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
|
||||
lt_cv_sys_max_cmd_len=8192;
|
||||
;;
|
||||
|
||||
mint*)
|
||||
# On MiNT this can take a long time and run out of memory.
|
||||
lt_cv_sys_max_cmd_len=8192;
|
||||
;;
|
||||
|
||||
amigaos*)
|
||||
# On AmigaOS with pdksh, this test takes hours, literally.
|
||||
# So we just punt and use a minimum line length of 8192.
|
||||
@ -2635,11 +2641,11 @@ darwin* | rhapsody*)
|
||||
version_type=darwin
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
|
||||
library_names_spec='$libname$release$versuffix$shared_ext $libname$release$major$shared_ext $libname$shared_ext'
|
||||
soname_spec='$libname$release$major$shared_ext'
|
||||
shlibpath_overrides_runpath=yes
|
||||
shlibpath_var=DYLD_LIBRARY_PATH
|
||||
shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
|
||||
shrext_cmds='`test .$module = .yes && echo .bundle || echo .dylib`'
|
||||
m4_if([$1], [],[
|
||||
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
|
||||
sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
|
||||
@ -2665,7 +2671,14 @@ freebsd* | dragonfly*)
|
||||
*) objformat=elf ;;
|
||||
esac
|
||||
fi
|
||||
version_type=freebsd-$objformat
|
||||
# Handle Gentoo/FreeBSD as it was Linux
|
||||
case $host_vendor in
|
||||
gentoo)
|
||||
version_type=linux ;;
|
||||
*)
|
||||
version_type=freebsd-$objformat ;;
|
||||
esac
|
||||
|
||||
case $version_type in
|
||||
freebsd-elf*)
|
||||
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
|
||||
@ -2677,6 +2690,12 @@ freebsd* | dragonfly*)
|
||||
library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
|
||||
need_version=yes
|
||||
;;
|
||||
linux)
|
||||
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
|
||||
soname_spec='${libname}${release}${shared_ext}$major'
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
;;
|
||||
esac
|
||||
shlibpath_var=LD_LIBRARY_PATH
|
||||
case $host_os in
|
||||
@ -2886,18 +2905,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
|
||||
dynamic_linker='GNU/Linux ld.so'
|
||||
;;
|
||||
|
||||
netbsdelf*-gnu)
|
||||
version_type=linux
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
|
||||
soname_spec='${libname}${release}${shared_ext}$major'
|
||||
shlibpath_var=LD_LIBRARY_PATH
|
||||
shlibpath_overrides_runpath=no
|
||||
hardcode_into_libs=yes
|
||||
dynamic_linker='NetBSD ld.elf_so'
|
||||
;;
|
||||
|
||||
netbsd*)
|
||||
version_type=sunos
|
||||
need_lib_prefix=no
|
||||
@ -3557,7 +3564,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
netbsd* | netbsdelf*-gnu)
|
||||
netbsd*)
|
||||
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
|
||||
lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
|
||||
else
|
||||
@ -4435,7 +4442,7 @@ m4_if([$1], [CXX], [
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
netbsd* | netbsdelf*-gnu)
|
||||
netbsd*)
|
||||
;;
|
||||
*qnx* | *nto*)
|
||||
# QNX uses GNU C++, but need to define -shared option too, otherwise
|
||||
@ -4947,9 +4954,6 @@ m4_if([$1], [CXX], [
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
linux* | k*bsd*-gnu | gnu*)
|
||||
_LT_TAGVAR(link_all_deplibs, $1)=no
|
||||
;;
|
||||
*)
|
||||
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
|
||||
;;
|
||||
@ -5012,9 +5016,6 @@ dnl Note also adjust exclude_expsyms for C++ above.
|
||||
openbsd* | bitrig*)
|
||||
with_gnu_ld=no
|
||||
;;
|
||||
linux* | k*bsd*-gnu | gnu*)
|
||||
_LT_TAGVAR(link_all_deplibs, $1)=no
|
||||
;;
|
||||
esac
|
||||
|
||||
_LT_TAGVAR(ld_shlibs, $1)=yes
|
||||
@ -5269,7 +5270,7 @@ _LT_EOF
|
||||
fi
|
||||
;;
|
||||
|
||||
netbsd* | netbsdelf*-gnu)
|
||||
netbsd*)
|
||||
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
|
||||
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
|
||||
wlarc=
|
||||
@ -5790,7 +5791,6 @@ _LT_EOF
|
||||
if test yes = "$lt_cv_irix_exported_symbol"; then
|
||||
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
|
||||
fi
|
||||
_LT_TAGVAR(link_all_deplibs, $1)=no
|
||||
else
|
||||
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
|
||||
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
|
||||
@ -5812,7 +5812,7 @@ _LT_EOF
|
||||
esac
|
||||
;;
|
||||
|
||||
netbsd* | netbsdelf*-gnu)
|
||||
netbsd*)
|
||||
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
|
||||
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
|
||||
else
|
||||
|
2
dist/libxcb/src/c_client.py
vendored
2
dist/libxcb/src/c_client.py
vendored
@ -1933,7 +1933,7 @@ def _c_accessors_list(self, field):
|
||||
else:
|
||||
# use the accessor to get the start of the list, then
|
||||
# compute the length of it by subtracting it from
|
||||
# the adress of the first byte after the end of the
|
||||
# the address of the first byte after the end of the
|
||||
# request
|
||||
after_end_of_request = '(((char*)R) + R->length * 4)'
|
||||
start_of_list = '%s(R)' % (field.c_accessor_name)
|
||||
|
29
dist/libxcb/src/xcb.h
vendored
29
dist/libxcb/src/xcb.h
vendored
@ -599,6 +599,35 @@ xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *display, xcb
|
||||
uint32_t xcb_generate_id(xcb_connection_t *c);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Obtain number of bytes read from the connection.
|
||||
* @param c The connection
|
||||
* @return Number of bytes read from the server.
|
||||
*
|
||||
* Returns cumulative number of bytes received from the connection.
|
||||
*
|
||||
* This retrieves the total number of bytes read from this connection,
|
||||
* to be used for diagnostic/monitoring/informative purposes.
|
||||
*/
|
||||
|
||||
uint64_t
|
||||
xcb_total_read(xcb_connection_t *c);
|
||||
|
||||
/**
|
||||
*
|
||||
* @brief Obtain number of bytes written to the connection.
|
||||
* @param c The connection
|
||||
* @return Number of bytes written to the server.
|
||||
*
|
||||
* Returns cumulative number of bytes sent to the connection.
|
||||
*
|
||||
* This retrieves the total number of bytes written to this connection,
|
||||
* to be used for diagnostic/monitoring/informative purposes.
|
||||
*/
|
||||
|
||||
uint64_t
|
||||
xcb_total_written(xcb_connection_t *c);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
1
dist/libxcb/src/xcb_auth.c
vendored
1
dist/libxcb/src/xcb_auth.c
vendored
@ -34,6 +34,7 @@
|
||||
#include <sys/param.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifdef __INTERIX
|
||||
/* _don't_ ask. interix has INADDR_LOOPBACK in here. */
|
||||
|
28
dist/libxcb/src/xcb_conn.c
vendored
28
dist/libxcb/src/xcb_conn.c
vendored
@ -287,6 +287,7 @@ static int write_vec(xcb_connection_t *c, struct iovec **vector, int *count)
|
||||
return 0;
|
||||
}
|
||||
|
||||
c->out.total_written += n;
|
||||
for(; *count; --*count, ++*vector)
|
||||
{
|
||||
int cur = (*vector)->iov_len;
|
||||
@ -528,3 +529,30 @@ int _xcb_conn_wait(xcb_connection_t *c, pthread_cond_t *cond, struct iovec **vec
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
uint64_t xcb_total_read(xcb_connection_t *c)
|
||||
{
|
||||
uint64_t n;
|
||||
|
||||
if (xcb_connection_has_error(c))
|
||||
return 0;
|
||||
|
||||
pthread_mutex_lock(&c->iolock);
|
||||
n = c->in.total_read;
|
||||
pthread_mutex_unlock(&c->iolock);
|
||||
return n;
|
||||
}
|
||||
|
||||
uint64_t xcb_total_written(xcb_connection_t *c)
|
||||
{
|
||||
uint64_t n;
|
||||
|
||||
if (xcb_connection_has_error(c))
|
||||
return 0;
|
||||
|
||||
pthread_mutex_lock(&c->iolock);
|
||||
n = c->out.total_written;
|
||||
pthread_mutex_unlock(&c->iolock);
|
||||
|
||||
return n;
|
||||
}
|
||||
|
3
dist/libxcb/src/xcb_in.c
vendored
3
dist/libxcb/src/xcb_in.c
vendored
@ -1025,6 +1025,7 @@ int _xcb_in_read(xcb_connection_t *c)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
c->in.total_read += n;
|
||||
c->in.queue_len += n;
|
||||
}
|
||||
while(read_packet(c))
|
||||
@ -1051,7 +1052,7 @@ int _xcb_in_read(xcb_connection_t *c)
|
||||
}
|
||||
#endif
|
||||
#ifndef _WIN32
|
||||
if((n > 0) || (n < 0 && errno == EAGAIN))
|
||||
if((n > 0) || (n < 0 && (errno == EAGAIN || errno == EINTR)))
|
||||
#else
|
||||
if((n > 0) || (n < 0 && WSAGetLastError() == WSAEWOULDBLOCK))
|
||||
#endif /* !_WIN32 */
|
||||
|
2
dist/libxcb/src/xcbint.h
vendored
2
dist/libxcb/src/xcbint.h
vendored
@ -103,6 +103,7 @@ typedef struct _xcb_out {
|
||||
|
||||
uint64_t request;
|
||||
uint64_t request_written;
|
||||
uint64_t total_written;
|
||||
|
||||
pthread_mutex_t reqlenlock;
|
||||
enum lazy_reply_tag maximum_request_length_tag;
|
||||
@ -135,6 +136,7 @@ typedef struct _xcb_in {
|
||||
uint64_t request_expected;
|
||||
uint64_t request_read;
|
||||
uint64_t request_completed;
|
||||
uint64_t total_read;
|
||||
struct reply_list *current_reply;
|
||||
struct reply_list **current_reply_tail;
|
||||
|
||||
|
9
dist/libxcb/tests/check_all.c
vendored
9
dist/libxcb/tests/check_all.c
vendored
@ -1,10 +1,19 @@
|
||||
#include <stdlib.h>
|
||||
#include "check_suites.h"
|
||||
|
||||
#if CHECK_MAJOR_VERSION == 0 && CHECK_MINOR_VERSION < 13
|
||||
void suite_add_test(Suite *s, TFun tf, const char *name)
|
||||
#else
|
||||
void suite_add_test(Suite *s, const TTest *tt, const char *name)
|
||||
#endif
|
||||
{
|
||||
TCase *tc = tcase_create(name);
|
||||
|
||||
#if CHECK_MAJOR_VERSION == 0 && CHECK_MINOR_VERSION < 13
|
||||
tcase_add_test(tc, tf);
|
||||
#else
|
||||
tcase_add_test(tc, tt);
|
||||
#endif
|
||||
suite_add_tcase(s, tc);
|
||||
}
|
||||
|
||||
|
4
dist/libxcb/tests/check_suites.h
vendored
4
dist/libxcb/tests/check_suites.h
vendored
@ -1,4 +1,8 @@
|
||||
#include <check.h>
|
||||
|
||||
#if CHECK_MAJOR_VERSION == 0 && CHECK_MINOR_VERSION < 13
|
||||
void suite_add_test(Suite *s, TFun tf, const char *name);
|
||||
#else
|
||||
void suite_add_test(Suite *s, const TTest *tt, const char *name);
|
||||
#endif
|
||||
Suite *public_suite(void);
|
||||
|
@ -1,2 +1,2 @@
|
||||
major=1
|
||||
minor=1
|
||||
major=2
|
||||
minor=0
|
||||
|
@ -1,2 +1,2 @@
|
||||
major=4
|
||||
minor=0
|
||||
minor=1
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $OpenBSD: Makefile,v 1.11 2018/10/04 20:17:48 matthieu Exp $
|
||||
# $OpenBSD: Makefile,v 1.12 2020/05/16 08:49:00 matthieu Exp $
|
||||
|
||||
# This Makefile is used to generate the sources files with xcbgen
|
||||
# The x11/py-xcbgen package needs to be installed
|
||||
@ -6,7 +6,7 @@
|
||||
DATADIR= ${X11BASE}/share
|
||||
PYTHON= python${PYTHON_VERSION}
|
||||
|
||||
MANOPTIONS= -c 'libxcb 1.13.1' -l 'X Version 11' -s 3
|
||||
MANOPTIONS= -c 'libxcb 1.14' -l 'X Version 11' -s 3
|
||||
|
||||
SRCS= \
|
||||
bigreq.c \
|
||||
|
@ -797,7 +797,7 @@ xcb_screensaver_unset_attributes (xcb_connection_t *c,
|
||||
|
||||
xcb_void_cookie_t
|
||||
xcb_screensaver_suspend_checked (xcb_connection_t *c,
|
||||
uint8_t suspend)
|
||||
uint32_t suspend)
|
||||
{
|
||||
static const xcb_protocol_request_t xcb_req = {
|
||||
.count = 2,
|
||||
@ -811,7 +811,6 @@ xcb_screensaver_suspend_checked (xcb_connection_t *c,
|
||||
xcb_screensaver_suspend_request_t xcb_out;
|
||||
|
||||
xcb_out.suspend = suspend;
|
||||
memset(xcb_out.pad0, 0, 3);
|
||||
|
||||
xcb_parts[2].iov_base = (char *) &xcb_out;
|
||||
xcb_parts[2].iov_len = sizeof(xcb_out);
|
||||
@ -824,7 +823,7 @@ xcb_screensaver_suspend_checked (xcb_connection_t *c,
|
||||
|
||||
xcb_void_cookie_t
|
||||
xcb_screensaver_suspend (xcb_connection_t *c,
|
||||
uint8_t suspend)
|
||||
uint32_t suspend)
|
||||
{
|
||||
static const xcb_protocol_request_t xcb_req = {
|
||||
.count = 2,
|
||||
@ -838,7 +837,6 @@ xcb_screensaver_suspend (xcb_connection_t *c,
|
||||
xcb_screensaver_suspend_request_t xcb_out;
|
||||
|
||||
xcb_out.suspend = suspend;
|
||||
memset(xcb_out.pad0, 0, 3);
|
||||
|
||||
xcb_parts[2].iov_base = (char *) &xcb_out;
|
||||
xcb_parts[2].iov_len = sizeof(xcb_out);
|
||||
|
@ -193,8 +193,7 @@ typedef struct xcb_screensaver_suspend_request_t {
|
||||
uint8_t major_opcode;
|
||||
uint8_t minor_opcode;
|
||||
uint16_t length;
|
||||
uint8_t suspend;
|
||||
uint8_t pad0[3];
|
||||
uint32_t suspend;
|
||||
} xcb_screensaver_suspend_request_t;
|
||||
|
||||
/** Opcode for xcb_screensaver_notify. */
|
||||
@ -492,7 +491,7 @@ xcb_screensaver_unset_attributes (xcb_connection_t *c,
|
||||
*/
|
||||
xcb_void_cookie_t
|
||||
xcb_screensaver_suspend_checked (xcb_connection_t *c,
|
||||
uint8_t suspend);
|
||||
uint32_t suspend);
|
||||
|
||||
/**
|
||||
*
|
||||
@ -504,7 +503,7 @@ xcb_screensaver_suspend_checked (xcb_connection_t *c,
|
||||
*/
|
||||
xcb_void_cookie_t
|
||||
xcb_screensaver_suspend (xcb_connection_t *c,
|
||||
uint8_t suspend);
|
||||
uint32_t suspend);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -3,4 +3,4 @@ SUBDIRS = src xcbgen
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = xcb-proto.pc
|
||||
|
||||
EXTRA_DIST=doc xcb-proto.pc.in autogen.sh
|
||||
EXTRA_DIST=doc xcb-proto.pc.in autogen.sh README.md
|
||||
|
@ -1,3 +1,9 @@
|
||||
Release 1.14 (2020-02-22)
|
||||
=========================
|
||||
* Fix size computation of imported lists
|
||||
* Allow access to the original type in the XML
|
||||
* Add sysroot prefix to pkgconfig file (Fixes #9)
|
||||
|
||||
Release 1.13 (2018-02-28)
|
||||
=========================
|
||||
* dri3: Add multi-plane/modifier protocol for v1.2
|
||||
|
@ -27,21 +27,23 @@ there is a file named 'local.pth' in /usr/lib/python2.5/site-packages,
|
||||
which contains '/usr/local/lib/python2.5/site-packages'. Note that
|
||||
this is only necessary on machines where XCB is being built.
|
||||
|
||||
Please report any issues you find to the freedesktop.org bug tracker,
|
||||
at:
|
||||
Please report any issues you find to the freedesktop.org bug tracker at:
|
||||
|
||||
<https://bugs.freedesktop.org/enter_bug.cgi?product=XCB>
|
||||
https://gitlab.freedesktop.org/xorg/proto/xcbproto/issues
|
||||
|
||||
Discussion about XCB occurs on the XCB mailing list:
|
||||
|
||||
<mailto:xcb at lists.freedesktop.org>
|
||||
<http://lists.freedesktop.org/mailman/listinfo/xcb>
|
||||
https://lists.freedesktop.org/mailman/listinfo/xcb
|
||||
|
||||
You can obtain the latest development versions of xcb-proto using GIT from
|
||||
the xcbproto code repository at:
|
||||
|
||||
https://gitlab.freedesktop.org/xorg/proto/xcbproto
|
||||
|
||||
You can obtain the latest development versions of XCB using GIT.
|
||||
For anonymous checkouts, use:
|
||||
|
||||
git clone git://anongit.freedesktop.org/git/xcb/proto
|
||||
git clone https://gitlab.freedesktop.org/xorg/proto/xcbproto.git
|
||||
|
||||
For developers, use:
|
||||
|
||||
git clone git+ssh://git.freedesktop.org/git/xcb/proto
|
||||
git clone git@gitlab.freedesktop.org:xorg/proto/xcbproto.git
|
@ -3,10 +3,10 @@
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT([XCB Proto],
|
||||
1.13,
|
||||
1.14,
|
||||
[xcb@lists.freedesktop.org])
|
||||
AC_CONFIG_SRCDIR([xcb-proto.pc.in])
|
||||
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||
AM_INIT_AUTOMAKE([foreign dist-xz])
|
||||
|
||||
AC_PATH_PROG(XMLLINT, xmllint, no)
|
||||
AM_CONDITIONAL(HAVE_XMLLINT, test "x$XMLLINT" != "xno")
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/bin/sh
|
||||
# py-compile - Compile a Python program
|
||||
|
||||
scriptversion=2016-01-11.22; # UTC
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
|
||||
# Copyright (C) 2000-2017 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2000-2018 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -16,7 +16,7 @@ scriptversion=2016-01-11.22; # UTC
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@ -162,7 +162,7 @@ sys.stdout.write('\n')" 2>/dev/null || :
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
|
@ -168,8 +168,7 @@ Draft Standard Version 1.1
|
||||
|
||||
<!-- version 1.1 -->
|
||||
<request name="Suspend" opcode="5">
|
||||
<field type="BOOL" name="suspend" />
|
||||
<pad bytes="3" />
|
||||
<field type="CARD32" name="suspend" />
|
||||
</request>
|
||||
|
||||
<!-- Events -->
|
||||
|
@ -3,8 +3,8 @@ exec_prefix=@exec_prefix@
|
||||
datarootdir=@datarootdir@
|
||||
datadir=@datadir@
|
||||
libdir=@libdir@
|
||||
xcbincludedir=@xcbincludedir@
|
||||
pythondir=@pythondir@
|
||||
xcbincludedir=${pc_sysrootdir}@xcbincludedir@
|
||||
pythondir=${pc_sysrootdir}@pythondir@
|
||||
|
||||
Name: XCB Proto
|
||||
Description: X protocol descriptions for XCB
|
||||
|
@ -100,12 +100,12 @@ class Module(object):
|
||||
self.add_type('INT16', '', ('int16_t',), tint16)
|
||||
self.add_type('INT32', '', ('int32_t',), tint32)
|
||||
self.add_type('INT64', '', ('int64_t',), tint64)
|
||||
self.add_type('BYTE', '', ('uint8_t',), tcard8)
|
||||
self.add_type('BOOL', '', ('uint8_t',), tcard8)
|
||||
self.add_type('BYTE', '', ('uint8_t',), tbyte)
|
||||
self.add_type('BOOL', '', ('uint8_t',), tbool)
|
||||
self.add_type('char', '', ('char',), tchar)
|
||||
self.add_type('float', '', ('float',), tfloat)
|
||||
self.add_type('double', '', ('double',), tdouble)
|
||||
self.add_type('void', '', ('void',), tcard8)
|
||||
self.add_type('void', '', ('void',), tvoid)
|
||||
|
||||
# This goes out and parses the rest of the XML
|
||||
def register(self):
|
||||
|
@ -192,12 +192,12 @@ class SimpleType(PrimitiveType):
|
||||
Any type which is typedef'ed to cardinal will be one of these.
|
||||
|
||||
Public fields added:
|
||||
none
|
||||
xml_type is the original string describing the type in the XML
|
||||
'''
|
||||
def __init__(self, name, size):
|
||||
def __init__(self, name, size, xml_type=None):
|
||||
PrimitiveType.__init__(self, name, size)
|
||||
self.is_simple = True
|
||||
|
||||
self.xml_type = xml_type
|
||||
|
||||
def resolve(self, module):
|
||||
self.resolved = True
|
||||
@ -206,24 +206,27 @@ class SimpleType(PrimitiveType):
|
||||
|
||||
|
||||
# Cardinal datatype globals. See module __init__ method.
|
||||
tcard8 = SimpleType(('uint8_t',), 1)
|
||||
tcard16 = SimpleType(('uint16_t',), 2)
|
||||
tcard32 = SimpleType(('uint32_t',), 4)
|
||||
tcard64 = SimpleType(('uint64_t',), 8)
|
||||
tint8 = SimpleType(('int8_t',), 1)
|
||||
tint16 = SimpleType(('int16_t',), 2)
|
||||
tint32 = SimpleType(('int32_t',), 4)
|
||||
tint64 = SimpleType(('int64_t',), 8)
|
||||
tchar = SimpleType(('char',), 1)
|
||||
tfloat = SimpleType(('float',), 4)
|
||||
tdouble = SimpleType(('double',), 8)
|
||||
tcard8 = SimpleType(('uint8_t',), 1, 'CARD8')
|
||||
tcard16 = SimpleType(('uint16_t',), 2, 'CARD16')
|
||||
tcard32 = SimpleType(('uint32_t',), 4, 'CARD32')
|
||||
tcard64 = SimpleType(('uint64_t',), 8, 'CARD64')
|
||||
tint8 = SimpleType(('int8_t',), 1, 'INT8')
|
||||
tint16 = SimpleType(('int16_t',), 2, 'INT16')
|
||||
tint32 = SimpleType(('int32_t',), 4, 'INT32')
|
||||
tint64 = SimpleType(('int64_t',), 8, 'INT64')
|
||||
tchar = SimpleType(('char',), 1, 'char')
|
||||
tfloat = SimpleType(('float',), 4, 'float')
|
||||
tdouble = SimpleType(('double',), 8, 'double')
|
||||
tbyte = SimpleType(('uint8_t',), 1, 'BYTE')
|
||||
tbool = SimpleType(('uint8_t',), 1, 'BOOL')
|
||||
tvoid = SimpleType(('uint8_t',), 1, 'void')
|
||||
|
||||
class FileDescriptor(SimpleType):
|
||||
'''
|
||||
Derived class which represents a file descriptor.
|
||||
'''
|
||||
def __init__(self):
|
||||
SimpleType.__init__(self, ('int'), 4)
|
||||
SimpleType.__init__(self, ('int'), 4, 'fd')
|
||||
self.is_fd = True
|
||||
|
||||
def fixed_size(self):
|
||||
@ -240,7 +243,7 @@ class Enum(SimpleType):
|
||||
bits contains a list of (name, bitnum) tuples. items only appear if specified as a bit. bitnum is a number.
|
||||
'''
|
||||
def __init__(self, name, elt):
|
||||
SimpleType.__init__(self, name, 4)
|
||||
SimpleType.__init__(self, name, 4, 'enum')
|
||||
self.values = []
|
||||
self.bits = []
|
||||
self.doc = None
|
||||
@ -333,6 +336,9 @@ class ListType(Type):
|
||||
self.member.resolve(module)
|
||||
self.expr.resolve(module, self.parents)
|
||||
|
||||
# resolve() could have changed the size (ComplexType starts with size 0)
|
||||
self.size = self.member.size if self.member.fixed_size() else None
|
||||
|
||||
self.required_start_align = self.member.required_start_align
|
||||
|
||||
# Find my length field again. We need the actual Field object in the expr.
|
||||
@ -506,7 +512,6 @@ class ComplexType(Type):
|
||||
self.nmemb = 1
|
||||
self.size = 0
|
||||
self.lenfield_parent = [self]
|
||||
self.fds = []
|
||||
|
||||
# get required_start_alignment
|
||||
required_start_align_element = elt.find("required_start_align")
|
||||
|
Loading…
Reference in New Issue
Block a user