libxi: Changes to 'debian-unstable'
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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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.dev@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 <dparsons@debian.org>, Cyril Brulebois <kibi@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.dev@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.hutterer@who-t.net>
+Date: Thu Sep 10 01:16:19 2015 +1000
+
+ libXi 1.7.5
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 05c86e53c0bae30e58b32b94e191c8720990918a
+Author: Cosimo Cecchi <cosimoc@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.hutterer@who-t.net>
+
+commit c648441036cf5ffc5225cd484e2c906d374f0a4b
+Author: Michal Srb <msrb@suse.com>
+Date: Mon Nov 3 12:43:40 2014 +0200
+
+ XIGrabDevice: Unlock display in error path.
+
+ Signed-off-by: Michal Srb <msrb@suse.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 29c77457ad86966ae2204b865fb8b437269063c4
+Author: Michal Srb <msrb@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 <msrb@suse.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 5810d0797160a97012664ffe719a59e1b288a525
+Author: Michal Srb <msrb@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 <msrb@suse.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit f699770e7c92da1dbf16892fde83438f0b79c979
+Author: Michal Srb <msrb@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 <msrb@suse.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit dc1f8c6ec1ba8135afa185c8e8360c1ed90bf96c
+Author: Michal Srb <msrb@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 <msrb@suse.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 83261c52a17543437882e2863b7f06a92c9039f8
+Author: Michal Srb <msrb@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 <msrb@suse.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 22ae8d4f26e92b17e1ce8239a38481933d6f1ca7
+Author: Michal Srb <msrb@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 <msrb@suse.com>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 71a42145b678be623e30bd5bf55833a04f14376f
+Author: Julien Cristau <jcristau@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.hutterer@who-t.net>
+ Signed-off-by: Julien Cristau <jcristau@debian.org>
+
commit 8c255b30f3a4ed8bf67e6bb76df47cbd480735f8
Author: Peter Hutterer <peter.hutterer@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.dev@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.hutterer@who-t.net>
Date: Thu Sep 10 01:16:19 2015 +1000
libXi 1.7.5
Signed-off-by: Peter Hutterer <peter.hutterer@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 <cosimoc@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.hutterer@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 <msrb@suse.com>
Date: Mon Nov 3 12:43:40 2014 +0200
XIGrabDevice: Unlock display in error path.
Signed-off-by: Michal Srb <msrb@suse.com>
Signed-off-by: Peter Hutterer <peter.hutterer@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 <msrb@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 <msrb@suse.com>
Signed-off-by: Peter Hutterer <peter.hutterer@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 <msrb@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 <msrb@suse.com>
Signed-off-by: Peter Hutterer <peter.hutterer@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 <msrb@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 <msrb@suse.com>
Signed-off-by: Peter Hutterer <peter.hutterer@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 <msrb@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 <msrb@suse.com>
Signed-off-by: Peter Hutterer <peter.hutterer@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 <msrb@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 <msrb@suse.com>
Signed-off-by: Peter Hutterer <peter.hutterer@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);
Reply to: