Hello community, here is the log from the commit of package libXi6.1131 for openSUSE:12.1:Update checked in at 2012-12-05 13:56:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.1:Update/libXi6.1131 (Old) and /work/SRC/openSUSE:12.1:Update/.libXi6.1131.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libXi6.1131", Maintainer is "" Changes: -------- New Changes file: --- /dev/null 2012-11-30 12:21:47.308011256 +0100 +++ /work/SRC/openSUSE:12.1:Update/.libXi6.1131.new/libXi6.changes 2012-12-05 13:56:48.000000000 +0100 @@ -0,0 +1,41 @@ +------------------------------------------------------------------- +Thu Nov 22 09:51:20 UTC 2012 - [email protected] + +- Add libXi-unknown-device-class.patch to fix bnc#782101 + backport from upstream + +------------------------------------------------------------------- +Wed Nov 3 04:46:01 UTC 2010 - [email protected] + +- update to release 1.4.0 + * This version doesn't add new features but has seen numerous + packaging cleanups and a number of miscellaneous fixes. + +------------------------------------------------------------------- +Sat Sep 4 16:21:10 UTC 2010 - [email protected] + +- update to release 1.3.1 + A few minor build system cleanups but I've cherry-picked only + those that didn't require a macros update for this version. The + requirements are thus the same as for 1.3.0. + A couple of random other fixes, most notably two display lock + fixes. The other fix that's quite prominent is the + initialization of the extension with a server-specific number of + events. Previously, libXi 1.3 running against a non-XI2 enabled + server would result in mishandling of events (pending extension + initialization order). +- update to release 1.3.2 + Brown paper bag release. Just one commit, fixing up a erroneous + conflict resolution that resulted in an inverted condition for + the asciidoc/xmlto checks and an error when building man pages. + +------------------------------------------------------------------- +Fri Apr 2 17:28:57 CEST 2010 - [email protected] + +- use real version number instead of the one from X.Org + +------------------------------------------------------------------- +Sat Jan 16 05:11:17 CET 2010 - [email protected] + +- created package + New: ---- baselibs.conf libXi-1.4.0.tar.bz2 libXi-unknown-device-class.patch libXi6.changes libXi6.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libXi6.spec ++++++ # # spec file for package libXi6 # # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: libXi6 BuildRequires: fdupes BuildRequires: pkgconfig BuildRequires: xorg-x11-libX11-devel BuildRequires: xorg-x11-libXau-devel BuildRequires: xorg-x11-libXdmcp-devel BuildRequires: xorg-x11-libXext-devel BuildRequires: xorg-x11-proto-devel BuildRequires: xorg-x11-xtrans-devel Url: http://xorg.freedesktop.org/ Version: 1.4.0 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build Provides: xorg-x11-libs:/usr/X11R6/%{_lib}/libXi.so.6 Summary: X.Org Xi library License: MIT Group: System/Libraries Source: libXi-%{version}.tar.bz2 Source2: baselibs.conf Patch0: libXi-unknown-device-class.patch %description This package contains the X.Org Xi library. Authors: -------- Bob Scheifler C. Kantarjiev D. Converse, D. Lemke D. Tonogai Dave Carver Dave Wiggens David Wiggens Ian Elliot J Fulton Jeff Vroom Jeffrey Friedberg Jim Gettys Jonathan Corbet Kaleb S. Keithley Keith Packard Kieron Drake Larry Seiler Peter Daifuku R. Mor R. Tice Rob Lembree Tim Glauert %package devel Summary: Include Files and Libraries mandatory for Development Group: Development/Libraries/X11 Provides: xorg-x11-devel:/usr/X11R6/%{_lib}/libXi.so Requires: %{name} = %{version} Requires: xorg-x11-libX11-devel Requires: xorg-x11-libXau-devel Requires: xorg-x11-libXdmcp-devel Requires: xorg-x11-proto-devel Requires: xorg-x11-xtrans-devel %description devel This package contains all necessary include files and libraries needed to develop applications that require these. Authors: -------- Bob Scheifler C. Kantarjiev D. Converse, D. Lemke D. Tonogai Dave Carver Dave Wiggens David Wiggens Ian Elliot J Fulton Jeff Vroom Jeffrey Friedberg Jim Gettys Jonathan Corbet Kaleb S. Keithley Keith Packard Kieron Drake Larry Seiler Peter Daifuku R. Mor R. Tice Rob Lembree Tim Glauert %prep %setup -q -n libXi-%{version} %patch0 -p1 %build #autoreconf -fi export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \ %configure \ %if %suse_version > 1110 --disable-static \ %endif --with-pic %{__make} %{?jobs:-j%jobs} %install make install DESTDIR=$RPM_BUILD_ROOT %if %suse_version > 1110 %{__rm} -f %{buildroot}%{_libdir}/*.la %endif %fdupes -s $RPM_BUILD_ROOT/%_mandir %clean rm -rf "$RPM_BUILD_ROOT" %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root) %{_libdir}/*.so.* %files devel %defattr(-,root,root) %doc /usr/share/doc/* /usr/include/X11/extensions/XInput.h /usr/include/X11/extensions/XInput2.h %{_libdir}/*.so %{_libdir}/pkgconfig/*.pc %if %suse_version <= 1110 %{_libdir}/*.a %{_libdir}/*.la %endif %{_mandir}/man3/* %changelog ++++++ baselibs.conf ++++++ libXi6 libXi6-devel ++++++ libXi-unknown-device-class.patch ++++++ diff -Npur libXi-old/src/XExtInt.c libXi-new/src/XExtInt.c --- libXi-old/src/XExtInt.c 2012-11-22 17:38:07.326166335 +0800 +++ libXi-new/src/XExtInt.c 2012-11-22 17:49:15.740209629 +0800 @@ -98,7 +98,7 @@ extern int _XiGetDevicePresenceNotifyEve 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; @@ -1442,30 +1442,29 @@ size_classes(xXIAnyInfo* from, int nclas * |______________________^ */ _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: @@ -1478,6 +1477,8 @@ copy_classes(XIDeviceInfo* to, xXIAnyInf 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; cls_lib->state.mask_len = ((((cls_wire->num_buttons + 7)/8) + 3)/4) * 4; cls_lib->state.mask = next_block(&ptr_lib, cls_lib->state.mask_len); @@ -1489,6 +1490,7 @@ copy_classes(XIDeviceInfo* to, xXIAnyInf for (j = 0; j < cls_lib->num_buttons; j++) cls_lib->labels[j] = *atoms++; + to->classes[cls_idx++] = any_lib; break; } case XIKeyClass: @@ -1499,12 +1501,15 @@ copy_classes(XIDeviceInfo* to, xXIAnyInf 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: @@ -1515,6 +1520,8 @@ copy_classes(XIDeviceInfo* to, xXIAnyInf 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; @@ -1523,13 +1530,15 @@ copy_classes(XIDeviceInfo* to, xXIAnyInf cls_lib->value = cls_wire->value.integral; /* 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; } @@ -1540,6 +1549,7 @@ wireToDeviceChangedEvent(xXIDeviceChange XIDeviceChangedEvent *out; XIDeviceInfo info; int len; + int nclasses = in->num_classes; len = size_classes((xXIAnyInfo*)&in[1], in->num_classes); @@ -1553,13 +1563,13 @@ wireToDeviceChangedEvent(xXIDeviceChange 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 -Npur libXi-old/src/XIQueryDevice.c libXi-new/src/XIQueryDevice.c --- libXi-old/src/XIQueryDevice.c 2012-11-22 17:38:29.988132522 +0800 +++ libXi-new/src/XIQueryDevice.c 2012-11-22 17:39:22.528054520 +0800 @@ -29,7 +29,7 @@ #include <X11/extensions/extutil.h> #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 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); -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
