ChangeLog | 119 ++++++++++++++++++++++++++++++++++++++++ configure.ac | 2 debian/changelog | 14 ++++ debian/compat | 2 debian/control | 20 +++--- debian/rules | 101 +++++---------------------------- debian/upstream/signing-key.asc | 23 +++++++ debian/watch | 1 src/XExtInt.c | 2 src/XGMotion.c | 2 src/XGetCPtr.c | 2 src/XGetDCtl.c | 2 src/XGetFCtl.c | 2 src/XGetKMap.c | 2 src/XGetMMap.c | 2 src/XGetProp.c | 2 src/XGetVers.c | 28 +++------ src/XIAllowEvents.c | 4 - src/XIGrabDevice.c | 11 +++ src/XIHierarchy.c | 16 +++-- src/XIProperties.c | 3 - src/XIQueryDevice.c | 3 - src/XIQueryVersion.c | 8 ++ src/XISelEv.c | 7 +- src/XIint.h | 1 src/XListDProp.c | 2 src/XOpenDev.c | 2 src/XQueryDv.c | 2 28 files changed, 242 insertions(+), 143 deletions(-)
New commits: commit d03206b9f8d5dfcbac8451fe3f70f1b30f0c9af0 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Mon Sep 14 14:38:42 2015 +0200 Bump standards version to 3.9.6. diff --git a/debian/changelog b/debian/changelog index 4979ce0..3df5403 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,7 @@ libxi (2:1.7.5-1) UNRELEASED; urgency=medium * Remove obsolete XC- prefix from Package-Type field. * Remove unused ${shlibs:Depends} from libxi6-dbg and libxi-dev. * Add upstream url. + * Bump standards version to 3.9.6. -- Andreas Boll <andreas.boll....@gmail.com> Thu, 10 Sep 2015 13:59:46 +0200 diff --git a/debian/control b/debian/control index acd4e57..53e8ae1 100644 --- a/debian/control +++ b/debian/control @@ -25,7 +25,7 @@ Build-Depends: xorg-sgml-doctools (>= 1:1.8), xsltproc, w3m, -Standards-Version: 3.9.4 +Standards-Version: 3.9.6 Vcs-Git: https://anonscm.debian.org/git/pkg-xorg/lib/libxi.git Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/lib/libxi.git Homepage: http://www.x.org/ commit 274eee9e83eca59c397452e1645924a3965a06bd Author: Andreas Boll <andreas.boll....@gmail.com> Date: Mon Sep 14 14:37:51 2015 +0200 Add upstream url. diff --git a/debian/changelog b/debian/changelog index 7b977c8..4979ce0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,7 @@ libxi (2:1.7.5-1) UNRELEASED; urgency=medium * Fix Vcs-* fields. * Remove obsolete XC- prefix from Package-Type field. * Remove unused ${shlibs:Depends} from libxi6-dbg and libxi-dev. + * Add upstream url. -- Andreas Boll <andreas.boll....@gmail.com> Thu, 10 Sep 2015 13:59:46 +0200 diff --git a/debian/control b/debian/control index c9800a2..acd4e57 100644 --- a/debian/control +++ b/debian/control @@ -28,6 +28,7 @@ Build-Depends: Standards-Version: 3.9.4 Vcs-Git: https://anonscm.debian.org/git/pkg-xorg/lib/libxi.git Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/lib/libxi.git +Homepage: http://www.x.org/ Package: libxi6 Section: libs commit 906ade72408ec36e1635ae1b225ac0a713f0fca3 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Mon Sep 14 14:34:06 2015 +0200 Remove unused ${shlibs:Depends} from libxi6-dbg and libxi-dev. Fixes: dpkg-gencontrol: warning: Depends field of package libxi6-dbg: unknown substitution variable ${shlibs:Depends} dpkg-gencontrol: warning: Depends field of package libxi-dev: unknown substitution variable ${shlibs:Depends} diff --git a/debian/changelog b/debian/changelog index 24b5756..7b977c8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,7 @@ libxi (2:1.7.5-1) UNRELEASED; urgency=medium * Let uscan verify tarball signatures. * Fix Vcs-* fields. * Remove obsolete XC- prefix from Package-Type field. + * Remove unused ${shlibs:Depends} from libxi6-dbg and libxi-dev. -- Andreas Boll <andreas.boll....@gmail.com> Thu, 10 Sep 2015 13:59:46 +0200 diff --git a/debian/control b/debian/control index 5e92e36..c9800a2 100644 --- a/debian/control +++ b/debian/control @@ -61,7 +61,7 @@ Package: libxi6-dbg Section: debug Architecture: any Priority: extra -Depends: ${shlibs:Depends}, ${misc:Depends}, libxi6 (= ${binary:Version}) +Depends: ${misc:Depends}, libxi6 (= ${binary:Version}) Multi-Arch: same Description: X11 Input extension library (debug package) libXi provides an X Window System client interface to the XINPUT @@ -84,7 +84,6 @@ Package: libxi-dev Section: libdevel Architecture: any Depends: - ${shlibs:Depends}, ${misc:Depends}, libxi6 (= ${binary:Version}), libx11-dev, commit d5af8683b482c61780089518f9c2f64bf15a2f41 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Mon Sep 14 14:13:04 2015 +0200 Remove obsolete XC- prefix from Package-Type field. diff --git a/debian/changelog b/debian/changelog index 5aa9787..24b5756 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ libxi (2:1.7.5-1) UNRELEASED; urgency=medium * Fix lintian error: pre-depends-directly-on-multiarch-support libxi6. * Let uscan verify tarball signatures. * Fix Vcs-* fields. + * Remove obsolete XC- prefix from Package-Type field. -- Andreas Boll <andreas.boll....@gmail.com> Thu, 10 Sep 2015 13:59:46 +0200 diff --git a/debian/control b/debian/control index 005a566..5e92e36 100644 --- a/debian/control +++ b/debian/control @@ -50,7 +50,7 @@ Description: X11 Input extension library git://anongit.freedesktop.org/git/xorg/lib/libXi Package: libxi6-udeb -XC-Package-Type: udeb +Package-Type: udeb Section: debian-installer Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} commit 9bdb202bca70e6d6056ade8bbae708f0898892b7 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Mon Sep 14 14:12:05 2015 +0200 Fix Vcs-* fields. diff --git a/debian/changelog b/debian/changelog index bf20636..5aa9787 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ libxi (2:1.7.5-1) UNRELEASED; urgency=medium * Switch to dh with the autoreconf and quilt addons. * Fix lintian error: pre-depends-directly-on-multiarch-support libxi6. * Let uscan verify tarball signatures. + * Fix Vcs-* fields. -- Andreas Boll <andreas.boll....@gmail.com> Thu, 10 Sep 2015 13:59:46 +0200 diff --git a/debian/control b/debian/control index aed6e26..005a566 100644 --- a/debian/control +++ b/debian/control @@ -26,8 +26,8 @@ Build-Depends: xsltproc, w3m, Standards-Version: 3.9.4 -Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libxi -Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libxi.git +Vcs-Git: https://anonscm.debian.org/git/pkg-xorg/lib/libxi.git +Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/lib/libxi.git Package: libxi6 Section: libs commit a94028fae1d4ea1938e9539aa787f578ab50a9a7 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Fri Sep 11 11:49:39 2015 +0200 Let uscan verify tarball signatures. diff --git a/debian/changelog b/debian/changelog index 72ed5a4..bf20636 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ libxi (2:1.7.5-1) UNRELEASED; urgency=medium * New upstream release. * Switch to dh with the autoreconf and quilt addons. * Fix lintian error: pre-depends-directly-on-multiarch-support libxi6. + * Let uscan verify tarball signatures. -- Andreas Boll <andreas.boll....@gmail.com> Thu, 10 Sep 2015 13:59:46 +0200 diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc new file mode 100644 index 0000000..767d86a --- /dev/null +++ b/debian/upstream/signing-key.asc @@ -0,0 +1,23 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQGiBD8b0wYRBACph9kRJmP+4+JGsCgFlFoy4vFO0DCG+jmkQN0n1wdInt/N/UtA +sZToO72AUmfmYizA+IEbzBrx0UnUo3w3BDmHxUWf/akZiPUz9AA/YFY4xC3MY2OK +VN2Jz6YSce4zJ5jd2ZRobHm4HuIf/8yqSCcsv7FNfrLaTNIFRs5gYYsqZwCgwmkp +RSLRc8WAnHrTWNQDaEFM2rUEAKTjrTjMN8+KGd0BxNX7HiTSqQP++nXNwAYs1oWB +Yt82YHj9SvRCqCzD1pzJQivYnlNoWDza1VeMnfdAvkdia8z4lYbO/RunXZJvra3Z +VDm+izq+uwUAyvFuEYnNz09VSqwXKT6+XW0Xtz2vHq52r6DS6mK8cGJHZ5OhrRjq +UEYxA/9STh+QfA98xtNoRcf52E/46r7IpCj440oRVc9lMfxQZrLGQNqp7sPdIhGQ +CCo2NUII5hkhdAG71kpbfSXU4Sh32p1cU1KYCAkDFfb49bKuAs+Pff8v6FGZxTdd +AinPZr4BbsYJatk818aTCnu0+s7L8jL5GPfeyuyEMKwzVBx2mLQpUGV0ZXIgSHV0 +dGVyZXIgKFdoby1UKSA8b2ZmaWNlQHdoby10Lm5ldD6IWQQTEQIAGQUCPxvTBgQL +BwMCAxUCAwMWAgECHgECF4AACgkQ4jt+cLRn8L/0RACfWo3KTMUg+uPRqA6RXxk0 +4CWjXaMAoJeIxOpZLB3RBltPnSi7PyVQIkHFuQENBD8b0wgQBACTnqOYOWYVR8O1 +D73J6nbdAeZCbXrUkyXIuyqBOdKmX/0QJmSs7Wfsa+hPfDhj6ai0Gs2C8Qg/0Pzk +86b4p9DLkf0M6RaYjUtCJBpS59xrsV6nz6xZzQa4RRdf1YJmw2tia1MMXzxbwQU2 +bKpYEm8NsGaBURMGd02EvsMN2wI2uwADBQP/e9MjVr/85XDzAlUBN8HwYW5szTyP +8ZVcQOqOmNebkTWGLvkPrBdXmxpzrWjxPolO1WcWQjUL0bN/rbdqefT65iVHJHJZ +/cpTtgGlCPhL5JTA50ltd0I13CABYWLFmswonXES/6tcglf4rr3Nri2sOrY5HggP +ipEzOo5vdKOow/qIRgQYEQIABgUCPxvTCAAKCRDiO35wtGfwv68jAKCDvL2gkrg1 +4NfV7rNc057K1nL2GgCeKApWRgGVzaOkAp0P5tQulaDD6zM= +=7uBX +-----END PGP PUBLIC KEY BLOCK----- diff --git a/debian/watch b/debian/watch index 9a3d00e..919d93a 100644 --- a/debian/watch +++ b/debian/watch @@ -1,3 +1,4 @@ #git=git://anongit.freedesktop.org/xorg/lib/libXi version=3 +opts=pgpsigurlmangle=s/$/.sig/ \ http://xorg.freedesktop.org/releases/individual/lib/ libXi-(.*)\.tar\.gz commit 56048bb6fa4c145a73b356143dda2a588131863b Author: Andreas Boll <andreas.boll....@gmail.com> Date: Fri Sep 11 11:49:39 2015 +0200 Fix lintian error: pre-depends-directly-on-multiarch-support libxi6. diff --git a/debian/changelog b/debian/changelog index 452d6c2..72ed5a4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ libxi (2:1.7.5-1) UNRELEASED; urgency=medium * New upstream release. * Switch to dh with the autoreconf and quilt addons. + * Fix lintian error: pre-depends-directly-on-multiarch-support libxi6. -- Andreas Boll <andreas.boll....@gmail.com> Thu, 10 Sep 2015 13:59:46 +0200 diff --git a/debian/control b/debian/control index 81a79dc..aed6e26 100644 --- a/debian/control +++ b/debian/control @@ -33,7 +33,7 @@ Package: libxi6 Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} -Pre-Depends: multiarch-support +Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same Description: X11 Input extension library libXi provides an X Window System client interface to the XINPUT commit c5223931e4f5a41096ad753a42f0005813faca27 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Fri Sep 11 11:49:39 2015 +0200 Switch to dh with the autoreconf and quilt addons. diff --git a/debian/changelog b/debian/changelog index 3026ef1..452d6c2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ libxi (2:1.7.5-1) UNRELEASED; urgency=medium * New upstream release. + * Switch to dh with the autoreconf and quilt addons. -- Andreas Boll <andreas.boll....@gmail.com> Thu, 10 Sep 2015 13:59:46 +0200 diff --git a/debian/compat b/debian/compat index 7f8f011..ec63514 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -7 +9 diff --git a/debian/control b/debian/control index e947000..81a79dc 100644 --- a/debian/control +++ b/debian/control @@ -4,9 +4,9 @@ Priority: optional Maintainer: Debian X Strike Force <debian-x@lists.debian.org> Uploaders: Drew Parsons <dpars...@debian.org>, Cyril Brulebois <k...@debian.org> Build-Depends: - debhelper (>= 8.1.3), -# dpkg-buildflags --export=configure - dpkg-dev (>= 1.16.1), + debhelper (>= 9), + dh-autoreconf, + quilt, x11proto-core-dev (>= 7.0.13), x11proto-xext-dev (>= 7.0.3), x11proto-input-dev (>= 2.2.99.1), diff --git a/debian/rules b/debian/rules index 40fb02a..ab458bf 100755 --- a/debian/rules +++ b/debian/rules @@ -10,96 +10,25 @@ # set this to the name of the main shlib's binary package PACKAGE = libxi6 -include debian/xsfbs/xsfbs.mk +.PHONY: build +build: + dh build --with quilt,autoreconf --builddirectory=build/ --parallel -ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) - NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) - MAKEFLAGS += -j$(NUMJOBS) -endif +%: + dh $@ --with quilt,autoreconf --builddirectory=build/ --parallel -DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) -DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) - confflags += --build=$(DEB_HOST_GNU_TYPE) -else - confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) -endif -confflags += $(shell DEB_CFLAGS_MAINT_APPEND=-Wall dpkg-buildflags --export=configure) +override_dh_auto_configure: + dh_auto_configure -- \ + --disable-silent-rules \ + --with-xmlto \ + --without-fop -configure: $(STAMP_DIR)/patch - autoreconf -vfi +override_dh_install: + dh_install --fail-missing --exclude=libXi.la --exclude .db --exclude .xml -build/config.status: configure - mkdir -p build - cd build && \ - ../configure --prefix=/usr --mandir=\$${prefix}/share/man \ - --infodir=\$${prefix}/share/info \ - --disable-silent-rules \ - --with-xmlto \ - --without-fop \ - --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ - $(confflags) - -build: build-indep build-arch -build-indep: -build-arch: build-stamp -.PHONY: build build-indep build-arch - -build-stamp: build/config.status - dh_testdir - cd build && $(MAKE) - - touch build-stamp - -clean: xsfclean - dh_testdir - rm -f build-stamp - rm -f config.cache config.log config.status - rm -f */config.cache */config.log */config.status - rm -f conftest* */conftest* - rm -rf autom4te.cache */autom4te.cache - rm -rf build - find -name Makefile.in -delete - rm -f INSTALL compile config.guess config.sub configure src/config.h.in - rm -f depcomp install-sh ltmain.sh missing aclocal.m4 mkinstalldirs - dh_clean - -install: build - dh_testdir - dh_testroot - dh_prep - dh_installdirs - - cd build && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - - dh_installdocs - find debian/tmp -name '*.xml' -delete - find debian/tmp -name '*.db' -delete - dh_install --fail-missing --exclude=libXi.la - dh_installman - dh_installchangelogs - dh_link +override_dh_strip: dh_strip -p$(PACKAGE) --dbg-package=$(PACKAGE)-dbg dh_strip -N$(PACKAGE) - dh_compress - dh_fixperms - dh_makeshlibs -V'libxi6 (>= 2:1.6.99.1)' --add-udeb=$(PACKAGE)-udeb -- -c4 - dh_shlibdeps - dh_installdeb - dh_gencontrol - dh_md5sums - dh_builddeb -# Build architecture-independent files here. -binary-indep: build install -# Nothing to do - -binary: binary-indep binary-arch -.PHONY: clean binary-indep binary-arch binary install +override_dh_makeshlibs: + dh_makeshlibs -V'libxi6 (>= 2:1.6.99.1)' --add-udeb=$(PACKAGE)-udeb -- -c4 commit f87a26869dbfb6a6a4cb9579e14a32cc13b828a3 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Thu Sep 10 14:00:53 2015 +0200 Bump changelogs. diff --git a/ChangeLog b/ChangeLog index 4874e59..c5d3b95 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,122 @@ +commit f180dff710dc54d00e0e26b84de053151f8f207e +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Thu Sep 10 01:16:19 2015 +1000 + + libXi 1.7.5 + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 05c86e53c0bae30e58b32b94e191c8720990918a +Author: Cosimo Cecchi <cosi...@gnome.org> +Date: Tue Feb 24 07:49:34 2015 +1000 + + Fix version check in _XIAllowEvents + + Commit 5810d0797160a97012664ffe719a59e1b288a525 changed _XIAllowEvents() to + use _XiCheckVersion() instead of _XiCheckExtInit() to avoid a double display + unlock, but it failed to correctly check for the version, since we should set + have_XI22 to True for every version greater or equal to 2.2. + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit c648441036cf5ffc5225cd484e2c906d374f0a4b +Author: Michal Srb <m...@suse.com> +Date: Mon Nov 3 12:43:40 2014 +0200 + + XIGrabDevice: Unlock display in error path. + + Signed-off-by: Michal Srb <m...@suse.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 29c77457ad86966ae2204b865fb8b437269063c4 +Author: Michal Srb <m...@suse.com> +Date: Sat Nov 1 20:00:57 2014 +0200 + + Refactor XGetExtensionVersion. + + _XiGetExtensionVersion was called from XGetExtensionVersion and from + _XiCheckExtInit. When called from _XiCheckExtInit, nothing accounted for the + fact that it can return ((XExtensionVersion *) NoSuchExtension) in case of + error. Also it recursively calls _XiCheckExtInit potentionally causing multiple + unlocks if _XiCheckExtInit fails. + -> Remove it and call directly _XiGetExtensionVersionRequest and only call + _XiCheckExtInit only from XGetExtensionVersion. + + Signed-off-by: Michal Srb <m...@suse.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 5810d0797160a97012664ffe719a59e1b288a525 +Author: Michal Srb <m...@suse.com> +Date: Sat Nov 1 20:00:56 2014 +0200 + + Fix logic in _XIAllowEvents and prevent double unlock. + + Replacing the second _XiCheckExtInit with _XiCheckVersion prevents possible + double unlock as _XiCheckExtInit actually unlocks the display when it returns + -1. + + Signed-off-by: Michal Srb <m...@suse.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit f699770e7c92da1dbf16892fde83438f0b79c979 +Author: Michal Srb <m...@suse.com> +Date: Sat Nov 1 20:00:54 2014 +0200 + + XIGetClientPointer: Return False on error. + + Not NoSuchExtension which is 1 = True! + + Signed-off-by: Michal Srb <m...@suse.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit dc1f8c6ec1ba8135afa185c8e8360c1ed90bf96c +Author: Michal Srb <m...@suse.com> +Date: Sat Nov 1 20:00:53 2014 +0200 + + Do not return NoSuchExtension casted to pointer as an error. + + Several functions were returning NoSuchExtension casted to a pointer in case of + an error. Often in parallel with returning NULL in case of another error. It is + undocumented and certainly wrong. + + Signed-off-by: Michal Srb <m...@suse.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 83261c52a17543437882e2863b7f06a92c9039f8 +Author: Michal Srb <m...@suse.com> +Date: Sat Nov 1 20:00:52 2014 +0200 + + XIChangeHierarchy: Add missing unlock. + + When num_changes <= 0 or Xmalloc fails, the display has to be unlocked. + + Signed-off-by: Michal Srb <m...@suse.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 22ae8d4f26e92b17e1ce8239a38481933d6f1ca7 +Author: Michal Srb <m...@suse.com> +Date: Sat Nov 1 20:00:51 2014 +0200 + + Fix double unlock when _XiCheckExtInit return -1. + + _XiCheckExtInit unlocks the display if it fails and returns -1. Most callers + account for it properly, but few didn't. + + Signed-off-by: Michal Srb <m...@suse.com> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 71a42145b678be623e30bd5bf55833a04f14376f +Author: Julien Cristau <jcris...@debian.org> +Date: Mon Oct 27 19:00:36 2014 +0100 + + Advance the request buffer by the right amount in XIChangeHierarchy + + c->length is in 4-byte units, dptr is a char *, so we need to advance + dptr by 4 * length to get the position of the next HierarchyChangeInfo. + + Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> + Signed-off-by: Julien Cristau <jcris...@debian.org> + commit 8c255b30f3a4ed8bf67e6bb76df47cbd480735f8 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Jul 18 16:45:51 2014 +1000 diff --git a/debian/changelog b/debian/changelog index bc8a5cf..3026ef1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +libxi (2:1.7.5-1) UNRELEASED; urgency=medium + + * New upstream release. + + -- Andreas Boll <andreas.boll....@gmail.com> Thu, 10 Sep 2015 13:59:46 +0200 + libxi (2:1.7.4-1) unstable; urgency=low * New upstream release. commit f180dff710dc54d00e0e26b84de053151f8f207e Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Sep 10 01:16:19 2015 +1000 libXi 1.7.5 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index db70cef..9b40c4d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libXi], [1.7.4], +AC_INIT([libXi], [1.7.5], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([src/config.h]) commit 05c86e53c0bae30e58b32b94e191c8720990918a Author: Cosimo Cecchi <cosi...@gnome.org> Date: Tue Feb 24 07:49:34 2015 +1000 Fix version check in _XIAllowEvents Commit 5810d0797160a97012664ffe719a59e1b288a525 changed _XIAllowEvents() to use _XiCheckVersion() instead of _XiCheckExtInit() to avoid a double display unlock, but it failed to correctly check for the version, since we should set have_XI22 to True for every version greater or equal to 2.2. Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/XIAllowEvents.c b/src/XIAllowEvents.c index 52c17ab..e7be099 100644 --- a/src/XIAllowEvents.c +++ b/src/XIAllowEvents.c @@ -50,7 +50,7 @@ _XIAllowEvents(Display *dpy, int deviceid, int event_mode, Time time, if (_XiCheckExtInit(dpy, XInput_2_0, extinfo) == -1) return (NoSuchExtension); - if (_XiCheckVersion(extinfo, XInput_2_2) == 0) + if (_XiCheckVersion(extinfo, XInput_2_2) >= 0) have_XI22 = True; if (have_XI22) commit c648441036cf5ffc5225cd484e2c906d374f0a4b Author: Michal Srb <m...@suse.com> Date: Mon Nov 3 12:43:40 2014 +0200 XIGrabDevice: Unlock display in error path. Signed-off-by: Michal Srb <m...@suse.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/XIGrabDevice.c b/src/XIGrabDevice.c index a8c5697..22f4ea1 100644 --- a/src/XIGrabDevice.c +++ b/src/XIGrabDevice.c @@ -53,14 +53,20 @@ XIGrabDevice(Display* dpy, int deviceid, Window grab_window, Time time, if (mask->mask_len > INT_MAX - 3 || (mask->mask_len + 3)/4 >= 0xffff) - return BadValue; + { + reply.status = BadValue; + goto out; + } /* mask->mask_len is in bytes, but we need 4-byte units on the wire, * and they need to be padded with 0 */ len = (mask->mask_len + 3)/4; buff = calloc(4, len); if (!buff) - return BadAlloc; + { + reply.status = BadAlloc; + goto out; + } GetReq(XIGrabDevice, req); req->reqType = extinfo->codes->major_opcode; @@ -83,6 +89,7 @@ XIGrabDevice(Display* dpy, int deviceid, Window grab_window, Time time, if (_XReply(dpy, (xReply *)&reply, 0, xTrue) == 0) reply.status = GrabSuccess; +out: UnlockDisplay(dpy); SyncHandle(); commit 29c77457ad86966ae2204b865fb8b437269063c4 Author: Michal Srb <m...@suse.com> Date: Sat Nov 1 20:00:57 2014 +0200 Refactor XGetExtensionVersion. _XiGetExtensionVersion was called from XGetExtensionVersion and from _XiCheckExtInit. When called from _XiCheckExtInit, nothing accounted for the fact that it can return ((XExtensionVersion *) NoSuchExtension) in case of error. Also it recursively calls _XiCheckExtInit potentionally causing multiple unlocks if _XiCheckExtInit fails. -> Remove it and call directly _XiGetExtensionVersionRequest and only call _XiCheckExtInit only from XGetExtensionVersion. Signed-off-by: Michal Srb <m...@suse.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/XExtInt.c b/src/XExtInt.c index d3c6b7c..672d69a 100644 --- a/src/XExtInt.c +++ b/src/XExtInt.c @@ -380,7 +380,7 @@ _XiCheckExtInit( return (-1); } ((XInputData *) info->data)->vers = - _XiGetExtensionVersion(dpy, "XInputExtension", info); + _XiGetExtensionVersionRequest(dpy, "XInputExtension", info->codes->major_opcode); } if (_XiCheckVersion(info, version_index) < 0) { diff --git a/src/XGetVers.c b/src/XGetVers.c index 0751b98..f7e22e6 100644 --- a/src/XGetVers.c +++ b/src/XGetVers.c @@ -68,12 +68,16 @@ XGetExtensionVersion(register Display * dpy, _Xconst char *name) XExtDisplayInfo *info = XInput_find_display(dpy); LockDisplay(dpy); - ext = _XiGetExtensionVersion(dpy, name, info); - if (ext != (XExtensionVersion *) NoSuchExtension) { - UnlockDisplay(dpy); - SyncHandle(); - } - return (ext); + + if (_XiCheckExtInit(dpy, Dont_Check, info) == -1) + return NULL; + + ext = _XiGetExtensionVersionRequest(dpy, name, info->codes->major_opcode); + + UnlockDisplay(dpy); + SyncHandle(); + + return ext; } _X_HIDDEN XExtensionVersion* @@ -91,7 +95,7 @@ _XiGetExtensionVersionRequest(Display *dpy, _Xconst char *name, int xi_opcode) _XSend(dpy, name, (long)req->nbytes); if (!_XReply(dpy, (xReply *) & rep, 0, xTrue)) { - return (XExtensionVersion *) NULL; + return NULL; } ext = (XExtensionVersion *) Xmalloc(sizeof(XExtensionVersion)); @@ -105,13 +109,3 @@ _XiGetExtensionVersionRequest(Display *dpy, _Xconst char *name, int xi_opcode) return ext; } - -_X_HIDDEN XExtensionVersion * -_XiGetExtensionVersion(register Display * dpy, _Xconst char *name, - XExtDisplayInfo *info) -{ - if (_XiCheckExtInit(dpy, Dont_Check, info) == -1) - return ((XExtensionVersion *) NoSuchExtension); - - return _XiGetExtensionVersionRequest(dpy, name, info->codes->major_opcode); -} diff --git a/src/XIint.h b/src/XIint.h index 99f3652..9479a79 100644 --- a/src/XIint.h +++ b/src/XIint.h @@ -29,7 +29,6 @@ extern XExtDisplayInfo *XInput_find_display(Display *); extern int _XiCheckExtInit(Display *, int, XExtDisplayInfo *); extern int _XiCheckVersion(XExtDisplayInfo *info, int version_index); -extern XExtensionVersion *_XiGetExtensionVersion(Display *, _Xconst char *, XExtDisplayInfo *); extern XExtensionVersion* _XiGetExtensionVersionRequest(Display *dpy, _Xconst char *name, int xi_opcode); extern Status _xiQueryVersion(Display *dpy, int*, int*, XExtDisplayInfo *); commit 5810d0797160a97012664ffe719a59e1b288a525 Author: Michal Srb <m...@suse.com> Date: Sat Nov 1 20:00:56 2014 +0200 Fix logic in _XIAllowEvents and prevent double unlock. Replacing the second _XiCheckExtInit with _XiCheckVersion prevents possible double unlock as _XiCheckExtInit actually unlocks the display when it returns -1. Signed-off-by: Michal Srb <m...@suse.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/XIAllowEvents.c b/src/XIAllowEvents.c index 2468fce..52c17ab 100644 --- a/src/XIAllowEvents.c +++ b/src/XIAllowEvents.c @@ -40,7 +40,7 @@ static Status _XIAllowEvents(Display *dpy, int deviceid, int event_mode, Time time, unsigned int touchid, Window grab_window) { - Bool have_XI22 = True; + Bool have_XI22 = False; xXIAllowEventsReq *req; xXI2_2AllowEventsReq *req_XI22; @@ -50,7 +50,7 @@ _XIAllowEvents(Display *dpy, int deviceid, int event_mode, Time time, if (_XiCheckExtInit(dpy, XInput_2_0, extinfo) == -1) return (NoSuchExtension); - if (_XiCheckExtInit(dpy, XInput_2_2, extinfo) == 0) + if (_XiCheckVersion(extinfo, XInput_2_2) == 0) have_XI22 = True; if (have_XI22) commit f699770e7c92da1dbf16892fde83438f0b79c979 Author: Michal Srb <m...@suse.com> Date: Sat Nov 1 20:00:54 2014 +0200 XIGetClientPointer: Return False on error. Not NoSuchExtension which is 1 = True! Signed-off-by: Michal Srb <m...@suse.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/XGetCPtr.c b/src/XGetCPtr.c index a6a44b7..59a27d3 100644 --- a/src/XGetCPtr.c +++ b/src/XGetCPtr.c @@ -49,7 +49,7 @@ XIGetClientPointer(Display* dpy, Window win, int *deviceid) LockDisplay(dpy); if (_XiCheckExtInit(dpy, Dont_Check, info) == -1) - return (NoSuchExtension); + return False; GetReq(XIGetClientPointer, req); req->reqType = info->codes->major_opcode; commit dc1f8c6ec1ba8135afa185c8e8360c1ed90bf96c Author: Michal Srb <m...@suse.com> Date: Sat Nov 1 20:00:53 2014 +0200 Do not return NoSuchExtension casted to pointer as an error. Several functions were returning NoSuchExtension casted to a pointer in case of an error. Often in parallel with returning NULL in case of another error. It is undocumented and certainly wrong. Signed-off-by: Michal Srb <m...@suse.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/XGMotion.c b/src/XGMotion.c index a4c75b6..7785843 100644 --- a/src/XGMotion.c +++ b/src/XGMotion.c @@ -81,7 +81,7 @@ XGetDeviceMotionEvents( LockDisplay(dpy); if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return ((XDeviceTimeCoord *) NoSuchExtension); + return NULL; GetReq(GetDeviceMotionEvents, req); req->reqType = info->codes->major_opcode; diff --git a/src/XGetDCtl.c b/src/XGetDCtl.c index b576aa5..c5d3b53 100644 --- a/src/XGetDCtl.c +++ b/src/XGetDCtl.c @@ -79,7 +79,7 @@ XGetDeviceControl( LockDisplay(dpy); if (_XiCheckExtInit(dpy, XInput_Add_XChangeDeviceControl, info) == -1) - return ((XDeviceControl *) NoSuchExtension); + return NULL; GetReq(GetDeviceControl, req); req->reqType = info->codes->major_opcode; diff --git a/src/XGetFCtl.c b/src/XGetFCtl.c index 2d71fab..7fd6d0e 100644 --- a/src/XGetFCtl.c +++ b/src/XGetFCtl.c @@ -79,7 +79,7 @@ XGetFeedbackControl( LockDisplay(dpy); if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return ((XFeedbackState *) NoSuchExtension); + return NULL; GetReq(GetFeedbackControl, req); req->reqType = info->codes->major_opcode; diff --git a/src/XGetKMap.c b/src/XGetKMap.c index 00dde06..0540ce4 100644 --- a/src/XGetKMap.c +++ b/src/XGetKMap.c @@ -78,7 +78,7 @@ XGetDeviceKeyMapping(register Display * dpy, XDevice * dev, LockDisplay(dpy); if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return ((KeySym *) NoSuchExtension); + return NULL; GetReq(GetDeviceKeyMapping, req); req->reqType = info->codes->major_opcode; diff --git a/src/XGetMMap.c b/src/XGetMMap.c index ce10c2d..246698c 100644 --- a/src/XGetMMap.c +++ b/src/XGetMMap.c @@ -73,7 +73,7 @@ XGetDeviceModifierMapping( LockDisplay(dpy); if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return ((XModifierKeymap *) NoSuchExtension); + return NULL; GetReq(GetDeviceModifierMapping, req); req->reqType = info->codes->major_opcode; diff --git a/src/XGetProp.c b/src/XGetProp.c index 8c69ef2..a3fa558 100644 --- a/src/XGetProp.c +++ b/src/XGetProp.c @@ -75,7 +75,7 @@ XGetDeviceDontPropagateList( LockDisplay(dpy); if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return ((XEventClass *) NoSuchExtension); + return NULL; GetReq(GetDeviceDontPropagateList, req); req->reqType = info->codes->major_opcode; diff --git a/src/XOpenDev.c b/src/XOpenDev.c index e784f8b..029dec2 100644 --- a/src/XOpenDev.c +++ b/src/XOpenDev.c @@ -73,7 +73,7 @@ XOpenDevice( LockDisplay(dpy); if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return ((XDevice *) NoSuchExtension); + return NULL; GetReq(OpenDevice, req); req->reqType = info->codes->major_opcode; diff --git a/src/XQueryDv.c b/src/XQueryDv.c index 3836777..de1c0e5 100644 --- a/src/XQueryDv.c +++ b/src/XQueryDv.c @@ -78,7 +78,7 @@ XQueryDeviceState( LockDisplay(dpy); if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return ((XDeviceState *) NoSuchExtension); + return NULL; GetReq(QueryDeviceState, req); req->reqType = info->codes->major_opcode; commit 83261c52a17543437882e2863b7f06a92c9039f8 Author: Michal Srb <m...@suse.com> Date: Sat Nov 1 20:00:52 2014 +0200 XIChangeHierarchy: Add missing unlock. When num_changes <= 0 or Xmalloc fails, the display has to be unlocked. Signed-off-by: Michal Srb <m...@suse.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/XIHierarchy.c b/src/XIHierarchy.c index 3d2b4f2..441fec0 100644 --- a/src/XIHierarchy.c +++ b/src/XIHierarchy.c @@ -49,14 +49,14 @@ XIChangeHierarchy(Display* dpy, xXIChangeHierarchyReq *req; XExtDisplayInfo *info = XInput_find_display(dpy); char *data = NULL, *dptr; - int dlen = 0, i; + int dlen = 0, i, ret = Success; LockDisplay(dpy); if (_XiCheckExtInit(dpy, XInput_2_0, info) == -1) return (NoSuchExtension); if (num_changes <= 0) - return Success; + goto out; GetReq(XIChangeHierarchy, req);