diff --git a/.gitignore b/.gitignore index 52092a7..d7b37f2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1 @@ -libXi-1.4.0.tar.bz2 -/libXi-1.4.1.tar.bz2 -/libXi-1.4.2.tar.bz2 -/libXi-1.4.3.tar.bz2 +/libXi-1.*.tar.xz diff --git a/0001-Handle-unknown-device-classes.patch b/0001-Handle-unknown-device-classes.patch deleted file mode 100644 index b9cae1c..0000000 --- a/0001-Handle-unknown-device-classes.patch +++ /dev/null @@ -1,176 +0,0 @@ -From 635c2c029b1e73311c3f650bcaf7eeb9e782134b Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Wed, 17 Aug 2011 15:20:48 +1000 -Subject: [PATCH] Handle unknown device classes. - -If the server sends an unknown device class in response to an XIQueryDevice -call, no memory is allocated for these classes but we still write type -and sourceid as well as setting to->classes[i]. The latter causes multiple -classes to point to the same memory field. - -Move the common code of assigning these three into the respective class type -handlers so to automatically skip any unknown classes. - -Signed-off-by: Peter Hutterer ---- - src/XExtInt.c | 30 +++++++++++++++++++++--------- - src/XIQueryDevice.c | 4 ++-- - 2 files changed, 23 insertions(+), 11 deletions(-) - -diff --git a/src/XExtInt.c b/src/XExtInt.c -index 86a780e..9e1ad19 100644 ---- a/src/XExtInt.c -+++ b/src/XExtInt.c -@@ -98,7 +98,7 @@ extern int _XiGetDevicePresenceNotifyEvent( - Display * /* dpy */ - ); - --int copy_classes(XIDeviceInfo *to, xXIAnyInfo* from, int nclasses); -+int copy_classes(XIDeviceInfo *to, xXIAnyInfo* from, int *nclasses); - int size_classes(xXIAnyInfo* from, int nclasses); - - static XExtensionInfo *xinput_info; -@@ -1448,30 +1448,29 @@ size_classes(xXIAnyInfo* from, int nclasses) - * |______________________^ - */ - _X_HIDDEN int --copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int nclasses) -+copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int *nclasses) - { - XIAnyClassInfo *any_lib; - xXIAnyInfo *any_wire; - void *ptr_lib; - char *ptr_wire; - int i, len; -+ int cls_idx = 0; - - if (!to->classes) - return -1; - - ptr_wire = (char*)from; - ptr_lib = to->classes; -- to->classes = next_block(&ptr_lib, nclasses * sizeof(XIAnyClassInfo*)); -+ to->classes = next_block(&ptr_lib, *nclasses * sizeof(XIAnyClassInfo*)); -+ memset(to->classes, 0, sizeof(*nclasses * sizeof(XIAnyClassInfo*))); - len = 0; /* count wire length */ - -- for (i = 0; i < nclasses; i++) -+ for (i = 0; i < *nclasses; i++) - { - any_lib = (XIAnyClassInfo*)ptr_lib; - any_wire = (xXIAnyInfo*)ptr_wire; - -- to->classes[i] = any_lib; -- any_lib->type = any_wire->type; -- any_lib->sourceid = any_wire->sourceid; - switch(any_wire->type) - { - case XIButtonClass: -@@ -1485,6 +1484,8 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int nclasses) - cls_lib = next_block(&ptr_lib, sizeof(XIButtonClassInfo)); - cls_wire = (xXIButtonInfo*)any_wire; - -+ cls_lib->type = cls_wire->type; -+ cls_lib->sourceid = cls_wire->sourceid; - cls_lib->num_buttons = cls_wire->num_buttons; - size = ((((cls_wire->num_buttons + 7)/8) + 3)/4); - cls_lib->state.mask_len = size * 4; -@@ -1499,6 +1500,7 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int nclasses) - for (j = 0; j < cls_lib->num_buttons; j++) - cls_lib->labels[j] = *atoms++; - -+ to->classes[cls_idx++] = any_lib; - break; - } - case XIKeyClass: -@@ -1509,12 +1511,15 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int nclasses) - cls_lib = next_block(&ptr_lib, sizeof(XIKeyClassInfo)); - cls_wire = (xXIKeyInfo*)any_wire; - -+ cls_lib->type = cls_wire->type; -+ cls_lib->sourceid = cls_wire->sourceid; - cls_lib->num_keycodes = cls_wire->num_keycodes; - cls_lib->keycodes = next_block(&ptr_lib, - cls_lib->num_keycodes * sizeof(int)); - memcpy(cls_lib->keycodes, &cls_wire[1], - cls_lib->num_keycodes); - -+ to->classes[cls_idx++] = any_lib; - break; - } - case XIValuatorClass: -@@ -1525,6 +1530,8 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int nclasses) - cls_lib = next_block(&ptr_lib, sizeof(XIValuatorClassInfo)); - cls_wire = (xXIValuatorInfo*)any_wire; - -+ cls_lib->type = cls_wire->type; -+ cls_lib->sourceid = cls_wire->sourceid; - cls_lib->number = cls_wire->number; - cls_lib->label = cls_wire->label; - cls_lib->resolution = cls_wire->resolution; -@@ -1534,12 +1541,16 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int nclasses) - /* FIXME: fractional parts */ - cls_lib->mode = cls_wire->mode; - -+ to->classes[cls_idx++] = any_lib; - } - break; - } - len += any_wire->length * 4; - ptr_wire += any_wire->length * 4; - } -+ -+ /* we may have skipped unknown classes, reset nclasses */ -+ *nclasses = cls_idx; - return len; - } - -@@ -1550,6 +1561,7 @@ wireToDeviceChangedEvent(xXIDeviceChangedEvent *in, XGenericEventCookie *cookie) - XIDeviceChangedEvent *out; - XIDeviceInfo info; - int len; -+ int nclasses = in->num_classes; - - len = size_classes((xXIAnyInfo*)&in[1], in->num_classes); - -@@ -1564,13 +1576,13 @@ wireToDeviceChangedEvent(xXIDeviceChangedEvent *in, XGenericEventCookie *cookie) - out->deviceid = in->deviceid; - out->sourceid = in->sourceid; - out->reason = in->reason; -- out->num_classes = in->num_classes; - - out->classes = (XIAnyClassInfo**)&out[1]; - - info.classes = out->classes; - -- copy_classes(&info, (xXIAnyInfo*)&in[1], in->num_classes); -+ copy_classes(&info, (xXIAnyInfo*)&in[1], &nclasses); -+ out->num_classes = nclasses; - - return 1; - } -diff --git a/src/XIQueryDevice.c b/src/XIQueryDevice.c -index 4e2f392..c22aee1 100644 ---- a/src/XIQueryDevice.c -+++ b/src/XIQueryDevice.c -@@ -29,7 +29,7 @@ - #include - #include "XIint.h" - --extern int copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int nclasses); -+extern int copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int *nclasses); - extern int size_classes(xXIAnyInfo* from, int nclasses); - - XIDeviceInfo* -@@ -87,7 +87,7 @@ XIQueryDevice(Display *dpy, int deviceid, int *ndevices_return) - ptr += ((wire->name_len + 3)/4) * 4; - - lib->classes = Xmalloc(size_classes((xXIAnyInfo*)ptr, lib->num_classes)); -- ptr += copy_classes(lib, (xXIAnyInfo*)ptr, lib->num_classes); -+ ptr += copy_classes(lib, (xXIAnyInfo*)ptr, &lib->num_classes); - } - - Xfree(buf); --- -1.7.6.4 - diff --git a/commitid b/commitid index 6621481..0090725 100644 --- a/commitid +++ b/commitid @@ -1 +1 @@ -2ce629c30745fc4027d2a95745bf21e8d8c7b893 +661c45ca17c434dbd342a46fd3fb813852ae0ca9 diff --git a/libXi.spec b/libXi.spec index e590018..2b472ea 100644 --- a/libXi.spec +++ b/libXi.spec @@ -1,34 +1,37 @@ -%define tarball libXi -#define gitdate 20090825 +%global tarball libXi +#global gitdate 20130524 +%global gitversion 661c45ca1 Summary: X.Org X11 libXi runtime library Name: libXi -Version: 1.4.3 -Release: 3%{?dist} -License: MIT -Group: System Environment/Libraries +Version: 1.8.2 +Release: 3%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +License: MIT-open-group AND SMLNJ AND MIT URL: http://www.x.org -Source0: ftp://ftp.x.org/pub/individual/lib/%{name}-%{version}.tar.bz2 -#Source0: %{tarball}-%{gitdate}.tar.bz2 +%if 0%{?gitdate} +Source0: %{tarball}-%{gitdate}.tar.bz2 Source1: make-git-snapshot.sh +%else +Source0: https://www.x.org/pub/individual/lib/%{name}-%{version}.tar.xz +%endif -Patch01: 0001-Handle-unknown-device-classes.patch - +BuildRequires: make BuildRequires: autoconf automake libtool BuildRequires: xorg-x11-util-macros BuildRequires: xorg-x11-proto-devel -BuildRequires: pkgconfig(inputproto) >= 1.9.99.902 -BuildRequires: libX11-devel >= 1.2.99 -BuildRequires: libXext-devel +BuildRequires: pkgconfig(inputproto) >= 2.3.99.1 +BuildRequires: libX11-devel >= 1.5.99.902 +BuildRequires: libXext-devel libXfixes-devel BuildRequires: xmlto asciidoc >= 8.4.5 +Requires: libX11 >= 1.5.99.902 + %description X.Org X11 libXi runtime library %package devel Summary: X.Org X11 libXi development package -Group: Development/Libraries Requires: %{name} = %{version}-%{release} # required by xi.pc Requires: xorg-x11-proto-devel @@ -38,19 +41,12 @@ Requires: pkgconfig X.Org X11 libXi development package %prep -%setup -q -#setup -q -n %{tarball}-%{gitdate} -%patch01 -p1 - -# Disable static library creation by default. -%define with_static 0 +%setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}} %build autoreconf -v --install || exit 1 %configure --disable-specs \ -%if ! %{with_static} - --disable-static -%endif + --disable-static make %{?_smp_mflags} @@ -62,31 +58,220 @@ make install DESTDIR=$RPM_BUILD_ROOT # We intentionally don't ship *.la files rm -f $RPM_BUILD_ROOT%{_libdir}/*.la -%clean -rm -rf $RPM_BUILD_ROOT - -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%ldconfig_post +%ldconfig_postun %files -%defattr(-,root,root,-) %doc COPYING %{_libdir}/libXi.so.6 %{_libdir}/libXi.so.6.1.0 %files devel -%defattr(-,root,root,-) -%if %{with_static} -%{_libdir}/libXi.a -%endif %{_includedir}/X11/extensions/XInput.h %{_includedir}/X11/extensions/XInput2.h %{_libdir}/libXi.so %{_libdir}/pkgconfig/xi.pc -#%dir %{_mandir}/man3x %{_mandir}/man3/*.3* %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 1.8.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jan 17 2025 Fedora Release Engineering - 1.8.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Sep 05 2024 Peter Hutterer - 1.8.2-1 +- libXi 1.8.2 + +* Thu Jul 18 2024 Fedora Release Engineering - 1.8.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 1.8.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 1.8.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Sep 06 2023 Benjamin Tissoires - 1.8.1-3 +- SPDX migration + +* Thu Jul 20 2023 Fedora Release Engineering - 1.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu May 04 2023 Peter Hutterer - 1.8.1-1 +- libXi 1.8.1 + +* Thu Jan 19 2023 Fedora Release Engineering - 1.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 1.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 1.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Sep 16 2021 Peter Hutterer - 1.8-1 +- libXi 1.8 + +* Thu Jul 22 2021 Fedora Release Engineering - 1.7.10-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 1.7.10-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Nov 5 11:25:48 AEST 2020 Peter Hutterer - 1.7.10-5 +- Add BuildRequires for make + +* Tue Jul 28 2020 Fedora Release Engineering - 1.7.10-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jan 29 2020 Fedora Release Engineering - 1.7.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 1.7.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jun 19 2019 Adam Jackson - 1.7.10-1 +- libXi 1.7.10 + +* Fri Feb 01 2019 Fedora Release Engineering - 1.7.9-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 1.7.9-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 29 2018 Adam Jackson - 1.7.9-7 +- Use ldconfig scriptlet macros + +* Fri Feb 09 2018 Igor Gnatenko - 1.7.9-6 +- Escape macros in %%changelog + +* Wed Feb 07 2018 Fedora Release Engineering - 1.7.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 1.7.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.7.9-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 1.7.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Jan 23 2017 Peter Hutterer 1.7.9-1 +- libXi 1.7.9 + +* Tue Oct 25 2016 Peter Hutterer 1.7.8-2 +- libXi 1.7.8 + +* Thu Oct 13 2016 Peter Hutterer 1.7.7-2 +- Fix crash when calling XListInputDevices on devices without classes + +* Wed Oct 05 2016 Benjamin Tissoires 1.7.7-1 +- libXi 1.7.7 +- fixes CVE-2016-7945, CVE-2016-7946 + +* Fri Mar 25 2016 Benjamin Tissoires +- Fix release string: %%{dist} -> %%{?dist} + +* Thu Feb 04 2016 Fedora Release Engineering - 1.7.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jan 28 2016 Peter Hutterer +- Remove unnecessary defattr + +* Tue Jan 05 2016 Peter Hutterer +- Drop the optional disable-static, it's been disabled for years now. + +* Tue Dec 22 2015 Peter Hutterer 1.7.6-1 +- libXi 1.7.6 +- drop unused mandir creation + +* Thu Sep 10 2015 Peter Hutterer 1.7.5-1 +- libXi 1.7.5 + +* Wed Jun 17 2015 Fedora Release Engineering - 1.7.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 1.7.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jul 18 2014 Peter Hutterer 1.7.4-1 +- libXi 1.7.4 + +* Thu Jul 10 2014 Peter Hutterer 1.7.3-1 +- libXi 1.7.3 + +* Sat Jun 07 2014 Fedora Release Engineering - 1.7.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 1.7.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 03 2013 Peter Hutterer 1.7.2-1 +- libXi 1.7.2 + +* Thu Jun 27 2013 Peter Hutterer 1.7.1.901-1 +- libXi 1.7.1.901 + +* Mon May 27 2013 Peter Hutterer - 1.7.1-5.20130524git661c45ca1 +- Require libX11 1.6RC2 for _XEatDataWords + +* Fri May 24 2013 Peter Hutterer 1.7.1-4.20130524git661c45ca1 +- Udpate to git snapshot to fix CVEs listed below +- CVE-2013-1984 +- CVE-2013-1995 +- CVE-2013-1998 + +* Tue May 21 2013 Peter Hutterer 1.7.1-3 +- fix sequence number copy - the cookie already had (a potentially + different) sequence number copied (#965347) + +* Fri May 17 2013 Peter Hutterer 1.7.1-2 +- copy the sequence number into XI2 events + +* Fri Apr 05 2013 Peter Hutterer 1.7.1-1 +- libXi 1.7.1 + +* Thu Mar 07 2013 Peter Hutterer 1.7-1 +- libXi 1.7 + +* Thu Feb 14 2013 Fedora Release Engineering - 1.6.99.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Jan 08 2013 Adam Jackson 1.6.99.1-1 +- libXi 1.6.99.1 + +* Thu Jul 19 2012 Fedora Release Engineering - 1.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu May 03 2012 Peter Hutterer 1.6.1-1 +- libXi 1.6.1 + +* Thu Mar 08 2012 Peter Hutterer 1.6.0-1 +- libXi 1.6 + +* Wed Feb 15 2012 Peter Hutterer 1.5.99.3-1 +- libXi 1.5.99.3 + +* Mon Feb 06 2012 Peter Hutterer 1.5.99.2-4 +- Add requires for libX11 to avoid mismatches when updating + +* Fri Jan 27 2012 Peter Hutterer 1.5.99.2-3 +- Bump libX11-devel requirement up to what configure actually wants + +* Fri Jan 13 2012 Fedora Release Engineering - 1.5.99.2-2.20111222gitae0187c87 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Dec 22 2011 Peter Hutterer 1.5.99.2-1.20111222.gitae0187c87 +- 1.5.99.2 from git + +* Wed Dec 21 2011 Peter Hutterer 1.5.0-1 +- libXi 1.5.0 + +* Wed Nov 09 2011 Peter Hutterer 1.4.99.1-1 +- Update to 1.4.99.1 (with XI 2.1 support) + * Tue Oct 11 2011 Peter Hutterer 1.4.3-3 - Fix 0001-Handle-unknown-device-classes.patch: missing prototype change for copy_classes in XIQueryDevice caused parameter corruption (#744960) @@ -161,7 +346,7 @@ rm -rf $RPM_BUILD_ROOT - Update to today's git master * Thu Feb 26 2009 Peter Hutterer - 1.2.1-1 -- libXi 1.2.1 +- libXi 1.2.1 * Wed Feb 25 2009 Fedora Release Engineering - 1.2.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild diff --git a/sources b/sources index 1ddbb16..4f3bb54 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -792e8a7ddc7175911d69f823d38eaff6 libXi-1.4.3.tar.bz2 +SHA512 (libXi-1.8.2.tar.xz) = 6348aae8f595217e26f348184dd594d83af800949f649bfd11b6aef7387faa5624ed18551fe2c3a38c8deab9d7473f72fd7e3e8472cff3ff30d4bb3fb2e6dc31