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]

Reply via email to