Hello community,

here is the log from the commit of package libmtp for openSUSE:Factory checked 
in at 2011-12-31 17:19:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libmtp (Old)
 and      /work/SRC/openSUSE:Factory/.libmtp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libmtp", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libmtp/libmtp.changes    2011-09-23 
02:09:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libmtp.new/libmtp.changes       2011-12-31 
17:19:40.000000000 +0100
@@ -1,0 +2,11 @@
+Thu Dec 29 11:46:54 UTC 2011 - [email protected]
+
+- add support for Galaxy Nexus
+
+-------------------------------------------------------------------
+Wed Dec 21 21:30:49 UTC 2011 - [email protected]
+
+- updated to 1.1.1
+  * device updates
+
+-------------------------------------------------------------------

Old:
----
  libmtp-1.1.0.tar.gz

New:
----
  add-galaxy-nexus-support.diff
  libmtp-1.1.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libmtp.spec ++++++
--- /var/tmp/diff_new_pack.awdklZ/_old  2011-12-31 17:19:41.000000000 +0100
+++ /var/tmp/diff_new_pack.awdklZ/_new  2011-12-31 17:19:41.000000000 +0100
@@ -15,20 +15,20 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
-
 %define debug_package_requires libmtp9 = %{version}-%{release}
 
 Name:           libmtp
 Url:            http://sf.net/projects/libmtp
-BuildRequires:  doxygen pkg-config
+BuildRequires:  doxygen
 BuildRequires:  libusb-devel
+BuildRequires:  pkg-config
+Summary:        Commandline utilities for access to MTP Players
 License:        LGPL-2.1+
 Group:          Productivity/Multimedia/Sound/Players
-AutoReqProv:    on
-Summary:        Commandline utilities for access to MTP Players
-Version:        1.1.0
-Release:        7
-Source0:        %name-%version.tar.gz
+Version:        1.1.1
+Release:        0
+Source0:        
http://downloads.sourceforge.net/project/libmtp/libmtp/%{version}/libmtp-%{version}.tar.gz
+Patch0:         add-galaxy-nexus-support.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
@@ -51,7 +51,6 @@
     Marcus Meissner <[email protected]>
 
 %package -n libmtp9
-License:        LGPL-2.1+
 Summary:        Library for accessing MTP Players
 Group:          Productivity/Multimedia/Sound/Players
 
@@ -75,12 +74,10 @@
     Marcus Meissner <[email protected]>
 
 %package -n mtp-tools
-License:        LGPL-2.1+
 Summary:        Commandline utilities for access to MTP Players
 Group:          Productivity/Multimedia/Sound/Players
 
 %package devel
-License:        LGPL-2.1+
 Summary:        Development files for access to MTP Player library
 Group:          Development/Libraries/Other
 Requires:       libmtp9 = %version
@@ -120,6 +117,7 @@
 
 %prep
 %setup -q
+%patch0 -p0
 
 %build
 %configure --disable-static --enable-doxygen
@@ -152,7 +150,7 @@
 %dir /lib/udev
 /lib/udev/mtp-probe
 %dir /lib/udev/rules.d
-%config /lib/udev/rules.d/39-libmtp.rules
+%config /lib/udev/rules.d/69-libmtp.rules
 
 %files devel
 %defattr(-, root, root)

++++++ add-galaxy-nexus-support.diff ++++++
--- src/music-players.h
+++ src/music-players.h 2011-12-29 12:39:15.813619378 +0100
@@ -277,6 +277,9 @@
   { "Samsung", 0x04e8, "GT-B2710/Xcover 271", 0x68af,
       DEVICE_FLAG_UNLOAD_DRIVER |
       DEVICE_FLAG_PLAYLIST_SPL_V1 },
+  { "Samsung", 0x04e8, "GT-I9250 Galaxy Nexus", 0x685c,
+      DEVICE_FLAG_UNLOAD_DRIVER |
+      DEVICE_FLAG_PLAYLIST_SPL_V2 },
   // From anonymous Sourceforge user
   { "Samsung", 0x04e8, "GT-S5230", 0xe20c, DEVICE_FLAG_NONE },
 
++++++ libmtp-1.1.0.tar.gz -> libmtp-1.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/configure new/libmtp-1.1.1/configure
--- old/libmtp-1.1.0/configure  2011-09-19 09:49:21.000000000 +0200
+++ new/libmtp-1.1.1/configure  2011-10-22 15:02:59.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libmtp 1.1.0.
+# Generated by GNU Autoconf 2.68 for libmtp 1.1.1.
 #
 # Report bugs to <[email protected]>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='libmtp'
 PACKAGE_TARNAME='libmtp'
-PACKAGE_VERSION='1.1.0'
-PACKAGE_STRING='libmtp 1.1.0'
+PACKAGE_VERSION='1.1.1'
+PACKAGE_STRING='libmtp 1.1.1'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1313,7 +1313,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libmtp 1.1.0 to adapt to many kinds of systems.
+\`configure' configures libmtp 1.1.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1383,7 +1383,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libmtp 1.1.0:";;
+     short | recursive ) echo "Configuration of libmtp 1.1.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1415,7 +1415,7 @@
   --without-libiconv-prefix     don't search for libiconv in includedir and 
libdir
   --with-udev=DIR         directory where udev is installed
                           [default=/lib/udev]
-  --with-udev-rules=NAME  file name for udev rules [default=39-libmtp.rules]
+  --with-udev-rules=NAME  file name for udev rules [default=69-libmtp.rules]
   --with-udev-group=GROUP file group for device nodes [default: none
                           specified]]
   --with-udev-mode=GROUP  file mode for device nodes [default: none
@@ -1497,7 +1497,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libmtp configure 1.1.0
+libmtp configure 1.1.1
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1977,7 +1977,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libmtp $as_me 1.1.0, which was
+It was created by libmtp $as_me 1.1.1, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -2793,7 +2793,7 @@
 
 # Define the identity of the package.
  PACKAGE='libmtp'
- VERSION='1.1.0'
+ VERSION='1.1.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2843,12 +2843,6 @@
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext 
$LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext 
$LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program 
name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
@@ -10664,10 +10658,14 @@
   # before this can be enabled.
   hardcode_into_libs=yes
 
+  # Add ABI-specific directories to the system library path.
+  sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 
2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < 
/etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ 
/g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -12603,11 +12601,14 @@
 
 
 
-# Optionally set name of udev rules file
-# priority is 39, so it will be loaded before libgphoto2 and the
-# manual list usb-media-players.rules.
+# Optionally set name of udev rules file, default
+# priority is 69, to appear before 70-acl.rules which handles
+# access control to the devices. We try to let all other userspace
+# libusb-based device handlers take precedence since libmtp may
+# attempt to autoprobe the devices.
+#
 # Later rules can then use the identifiers for its processing.
-UDEV_RULES=39-libmtp.rules
+UDEV_RULES=69-libmtp.rules
 
 # Check whether --with-udev-rules was given.
 if test "${with_udev_rules+set}" = set; then :
@@ -13696,7 +13697,7 @@
          s/.*/./; q'`
 if test "$ac_dir" != "src/_stdint.h" && test "$ac_dir" != .; then
   # The file is in a subdirectory.
-  test ! -d "$ac_dir" && as_dir="$ac_dir"; as_fn_mkdir_p
+  test ! -d "$ac_dir" && (as_dir="$ac_dir"; as_fn_mkdir_p)
 fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint8_t in stdint.h" >&5
@@ -13864,7 +13865,7 @@
          s/.*/./; q'`
 if test "$ac_dir" != "src/gphoto2-endian.h" && test "$ac_dir" != .; then
   # The file is in a subdirectory.
-  test ! -d "$ac_dir" && as_dir="$ac_dir"; as_fn_mkdir_p
+  test ! -d "$ac_dir" && (as_dir="$ac_dir"; as_fn_mkdir_p)
 fi
 
 # We're only interested in the target CPU, but it's not always set
@@ -15195,7 +15196,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libmtp $as_me 1.1.0, which was
+This file was extended by libmtp $as_me 1.1.1, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15261,7 +15262,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libmtp config.status 1.1.0
+libmtp config.status 1.1.1
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/configure.ac 
new/libmtp-1.1.1/configure.ac
--- old/libmtp-1.1.0/configure.ac       2011-09-19 09:48:33.000000000 +0200
+++ new/libmtp-1.1.1/configure.ac       2011-10-22 15:02:27.000000000 +0200
@@ -1,13 +1,12 @@
 # Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.52)
-AC_INIT([libmtp], [1.1.0], [[email protected]])
+AC_INIT([libmtp], [1.1.1], [[email protected]])
 AC_CONFIG_MACRO_DIR([m4])
 AM_INIT_AUTOMAKE([foreign])
 AC_CONFIG_SRCDIR([src/libmtp.c])
 AM_CONFIG_HEADER(config.h)
 
 # Checks for programs.
-AC_LANG(C)
 AC_PROG_CC
 AC_PROG_INSTALL
 AC_PROG_LN_S
@@ -23,14 +22,17 @@
     [UDEV="${withval}"], [])
 AC_SUBST(UDEV)
 
-# Optionally set name of udev rules file
-# priority is 39, so it will be loaded before libgphoto2 and the
-# manual list usb-media-players.rules.
+# Optionally set name of udev rules file, default
+# priority is 69, to appear before 70-acl.rules which handles
+# access control to the devices. We try to let all other userspace
+# libusb-based device handlers take precedence since libmtp may
+# attempt to autoprobe the devices.
+#
 # Later rules can then use the identifiers for its processing.
-UDEV_RULES=39-libmtp.rules
+UDEV_RULES=69-libmtp.rules
 AC_ARG_WITH(udev-rules,
     AC_HELP_STRING([--with-udev-rules=NAME],
-    [file name for udev rules [default=39-libmtp.rules]]),
+    [file name for udev rules [default=69-libmtp.rules]]),
     [UDEV_RULES="${withval}"], [])
 AC_SUBST(UDEV_RULES)
 
@@ -157,7 +159,7 @@
 AX_NEED_STDINT_H([src/_stdint.h])
 
 # Create a header file containing NetBSD-style byte swapping macros.
-# This m4 macros has caused severe pain, I am considering creating a 
+# This m4 macros has caused severe pain, I am considering creating a
 # hard-coded byte swapper that will be eternally portable.
 AC_NEED_BYTEORDER_H(src/gphoto2-endian.h)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/libmtp.pc new/libmtp-1.1.1/libmtp.pc
--- old/libmtp-1.1.0/libmtp.pc  2011-09-19 09:49:49.000000000 +0200
+++ new/libmtp-1.1.1/libmtp.pc  2011-10-22 15:03:14.000000000 +0200
@@ -7,7 +7,7 @@
 
 Name: libmtp
 Description: libmtp is a library for accessing Media Transfer Protocol devices
-Version: 1.1.0
+Version: 1.1.1
 Requires: libusb
 Conflicts:
 Libs: -L${libdir} -lmtp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/ltmain.sh new/libmtp-1.1.1/ltmain.sh
--- old/libmtp-1.1.0/ltmain.sh  2011-04-19 17:30:33.000000000 +0200
+++ new/libmtp-1.1.1/ltmain.sh  2011-10-22 15:02:56.000000000 +0200
@@ -136,15 +136,15 @@
 
 : ${CP="cp -f"}
 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${EGREP="grep -E"}
-: ${FGREP="grep -F"}
-: ${GREP="grep"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
 : ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="sed"}
+: ${SED="/bin/sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/m4/byteorder.m4 
new/libmtp-1.1.1/m4/byteorder.m4
--- old/libmtp-1.1.0/m4/byteorder.m4    2011-01-10 14:05:45.000000000 +0100
+++ new/libmtp-1.1.1/m4/byteorder.m4    2011-10-22 00:25:25.000000000 +0200
@@ -35,7 +35,7 @@
 ac_dir=`AS_DIRNAME(["$1"])`
 if test "$ac_dir" != "$1" && test "$ac_dir" != .; then
   # The file is in a subdirectory.
-  test ! -d "$ac_dir" && AS_MKDIR_P(["$ac_dir"])
+  test ! -d "$ac_dir" && (AS_MKDIR_P(["$ac_dir"]))
 fi
 
 # We're only interested in the target CPU, but it's not always set
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/m4/libtool.m4 
new/libmtp-1.1.1/m4/libtool.m4
--- old/libmtp-1.1.0/m4/libtool.m4      2011-04-19 17:30:33.000000000 +0200
+++ new/libmtp-1.1.1/m4/libtool.m4      2011-10-22 15:02:56.000000000 +0200
@@ -2610,10 +2610,14 @@
   # before this can be enabled.
   hardcode_into_libs=yes
 
+  # Add ABI-specific directories to the system library path.
+  sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 
2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < 
/etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ 
/g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/m4/stdint.m4 
new/libmtp-1.1.1/m4/stdint.m4
--- old/libmtp-1.1.0/m4/stdint.m4       2011-01-10 14:05:45.000000000 +0100
+++ new/libmtp-1.1.1/m4/stdint.m4       2011-10-22 00:25:18.000000000 +0200
@@ -34,7 +34,7 @@
 ac_dir=`AS_DIRNAME(["$1"])`
 if test "$ac_dir" != "$1" && test "$ac_dir" != .; then
   # The file is in a subdirectory.
-  test ! -d "$ac_dir" && AS_MKDIR_P(["$ac_dir"])
+  test ! -d "$ac_dir" && (AS_MKDIR_P(["$ac_dir"]))
 fi
 
 AX_CHECK_DEFINED_TYPE(uint8_t,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/src/Makefile.am 
new/libmtp-1.1.1/src/Makefile.am
--- old/libmtp-1.1.0/src/Makefile.am    2011-09-19 09:48:33.000000000 +0200
+++ new/libmtp-1.1.1/src/Makefile.am    2011-10-22 15:02:44.000000000 +0200
@@ -30,7 +30,7 @@
 # ---------------------------------------------------------------------------
 CURRENT=9
 AGE=0
-REVISION=0
+REVISION=1
 SOVERSION=$(CURRENT):$(REVISION):$(AGE)
 LT_CURRENT_MINUS_AGE=`expr $(CURRENT) - $(AGE)`
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/src/Makefile.in 
new/libmtp-1.1.1/src/Makefile.in
--- old/libmtp-1.1.0/src/Makefile.in    2011-09-19 09:49:19.000000000 +0200
+++ new/libmtp-1.1.1/src/Makefile.in    2011-10-22 15:02:59.000000000 +0200
@@ -258,7 +258,7 @@
 # ---------------------------------------------------------------------------
 CURRENT = 9
 AGE = 0
-REVISION = 0
+REVISION = 1
 SOVERSION = $(CURRENT):$(REVISION):$(AGE)
 LT_CURRENT_MINUS_AGE = `expr $(CURRENT) - $(AGE)`
 @COMPILE_MINGW32_TRUE@W32_LIBS = -lws2_32
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/src/device-flags.h 
new/libmtp-1.1.1/src/device-flags.h
--- old/libmtp-1.1.0/src/device-flags.h 2011-04-19 17:26:08.000000000 +0200
+++ new/libmtp-1.1.1/src/device-flags.h 2011-10-21 23:59:31.000000000 +0200
@@ -266,3 +266,13 @@
  * like this, so it's not done by default.
  */
 #define DEVICE_FLAG_FORCE_RESET_ON_CLOSE       0x10000000
+/**
+ * All these bug flags need to be set on Android devices,
+ * they claim to support MTP operations they actually
+ * cannot handle. These are auto-assigned to devices reporting
+ * "android.com" in their device extension descriptor.
+ */
+#define DEVICE_FLAGS_ANDROID_BUGS \
+  (DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | \
+   DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST | \
+   DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/src/gphoto2-endian.h 
new/libmtp-1.1.1/src/gphoto2-endian.h
--- old/libmtp-1.1.0/src/gphoto2-endian.h       2011-09-19 09:49:44.000000000 
+0200
+++ new/libmtp-1.1.1/src/gphoto2-endian.h       2011-10-22 15:03:13.000000000 
+0200
@@ -1,5 +1,5 @@
 /* This file is generated automatically by configure */
-/* It is valid only for the system type powerpc64-unknown-linux-gnu */
+/* It is valid only for the system type x86_64-unknown-linux-gnu */
 
 #ifndef __BYTEORDER_H
 #define __BYTEORDER_H
@@ -47,38 +47,43 @@
 #define BE32TOH(x) (x) = be32toh(x)
 #define BE16TOH(x) (x) = be16toh(x)
 
-/* Define our own extended byte swapping macros for big-endian machines */
+/* On little endian machines, these macros are null */
 #ifndef htole16
-# define htole16(x)      swap16(x)
+# define htole16(x)      (x)
 #endif
 #ifndef htole32
-# define htole32(x)      swap32(x)
+# define htole32(x)      (x)
+#endif
+#ifndef htole64
+# define htole64(x)      (x)
 #endif
 #ifndef le16toh
-# define le16toh(x)      swap16(x)
+# define le16toh(x)      (x)
 #endif
 #ifndef le32toh
-# define le32toh(x)      swap32(x)
+# define le32toh(x)      (x)
 #endif
 #ifndef le64toh
-# define le64toh(x)      swap64(x)
+# define le64toh(x)      (x)
 #endif
 
+#define HTOLE16(x)      (void) (x)
+#define HTOLE32(x)      (void) (x)
+#define HTOLE64(x)      (void) (x)
+#define LE16TOH(x)      (void) (x)
+#define LE32TOH(x)      (void) (x)
+#define LE64TOH(x)      (void) (x)
+
+/* These don't have standard aliases */
 #ifndef htobe64
-# define htobe64(x)      (x)
+# define htobe64(x)      swap64(x)
 #endif
 #ifndef be64toh
-# define be64toh(x)      (x)
+# define be64toh(x)      swap64(x)
 #endif
 
-#define HTOLE16(x)      (x) = htole16(x)
-#define HTOLE32(x)      (x) = htole32(x)
-#define LE16TOH(x)      (x) = le16toh(x)
-#define LE32TOH(x)      (x) = le32toh(x)
-#define LE64TOH(x)      (x) = le64toh(x)
-
-#define HTOBE64(x)      (void) (x)
-#define BE64TOH(x)      (void) (x)
+#define HTOBE64(x)      (x) = htobe64(x)
+#define BE64TOH(x)      (x) = be64toh(x)
 
 /* Define the C99 standard length-specific integer types */
 #include <_stdint.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/src/libmtp.c 
new/libmtp-1.1.1/src/libmtp.c
--- old/libmtp-1.1.0/src/libmtp.c       2011-04-19 17:26:08.000000000 +0200
+++ new/libmtp-1.1.1/src/libmtp.c       2011-10-22 00:00:25.000000000 +0200
@@ -1704,6 +1704,12 @@
 
   /* descriptors are divided by semicolons */
   while (end < strlen(desc)) {
+    /* Skip past initial whitespace */
+    while (desc[start] == ' ' && end < strlen(desc)) {
+      start++;
+      end++;
+    }
+    /* Detect extension */
     while (desc[end] != ';' && end < strlen(desc))
       end++;
     if (end < strlen(desc)) {
@@ -1872,6 +1878,26 @@
                              current_params->deviceinfo.VendorExtensionDesc);
 
   /*
+   * Android has a number of bugs, force-assign these bug flags
+   * if Android is encountered.
+   */
+  {
+    LIBMTP_device_extension_t *tmpext = mtp_device->extensions;
+
+    while (tmpext != NULL) {
+      /*
+       * If it is fixed in later versions, test on tmpext->major, tmpext->minor
+       */
+      if (!strcmp(tmpext->name, "android.com")) {
+       LIBMTP_INFO("Android device detected, assigning default bug flags\n");
+       ptp_usb->rawdevice.device_entry.device_flags |=
+         DEVICE_FLAGS_ANDROID_BUGS;
+      }
+      tmpext = tmpext->next;
+    }
+  }
+
+  /*
    * If the OGG or FLAC filetypes are flagged as "unknown", check
    * if the firmware has been updated to actually support it.
    */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/src/libmtp.h 
new/libmtp-1.1.1/src/libmtp.h
--- old/libmtp-1.1.0/src/libmtp.h       2011-09-19 09:49:47.000000000 +0200
+++ new/libmtp-1.1.1/src/libmtp.h       2011-10-22 15:03:13.000000000 +0200
@@ -29,8 +29,8 @@
 #ifndef LIBMTP_H_INCLUSION_GUARD
 #define LIBMTP_H_INCLUSION_GUARD
 
-#define LIBMTP_VERSION 1.1.0
-#define LIBMTP_VERSION_STRING "1.1.0"
+#define LIBMTP_VERSION 1.1.1
+#define LIBMTP_VERSION_STRING "1.1.1"
 
 /* This handles MSVC pecularities */
 #ifdef _MSC_VER
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/src/music-players.h 
new/libmtp-1.1.1/src/music-players.h
--- old/libmtp-1.1.0/src/music-players.h        2011-09-19 09:48:33.000000000 
+0200
+++ new/libmtp-1.1.1/src/music-players.h        2011-10-22 00:35:17.000000000 
+0200
@@ -354,10 +354,12 @@
   // From Anonymous SourceForge User
   { "Philips", 0x0471, "GoGear Ariaz", 0x20b9,
       DEVICE_FLAG_UNLOAD_DRIVER },
+  // From Anonymous SourceForge User
+  { "Philips", 0x0471, "GoGear Vibe/02", 0x20e5,
+      DEVICE_FLAG_UNLOAD_DRIVER },
   // from XNJB user
   { "Philips", 0x0471, "PSA235", 0x7e01, DEVICE_FLAG_NONE },
 
-
   /*
    * Acer
    */
@@ -365,7 +367,8 @@
   { "Acer", 0x0502, "Iconia TAB A500 v1", 0x3325, DEVICE_FLAG_NONE },
   // Reported by: Franck VDL <[email protected]>
   { "Acer", 0x0502, "Iconia TAB A500 v2", 0x3341, DEVICE_FLAG_NONE },
-
+  // Reported by: Arvin Schnell <[email protected]>
+  { "Acer", 0x0502, "Iconia TAB A100", 0x3349, DEVICE_FLAG_NONE },
 
   /*
    * SanDisk
@@ -470,7 +473,12 @@
     DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
     DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS |
     DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED},
-
+  // Reported by [email protected]
+  { "SanDisk", 0x0781, "Sansa Clip Zip", 0x74e4,
+    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
+    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
+    DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS |
+    DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED},
 
   /*
    * iRiver
@@ -587,6 +595,8 @@
    * Dell
    */
   { "Dell, Inc", 0x413c, "DJ Itty", 0x4500, DEVICE_FLAG_NONE },
+  /* Reported by: JR */
+  { "Dell, Inc", 0x413c, "Dell Streak 7", 0xb10b, DEVICE_FLAGS_ANDROID_BUGS },
 
   /*
    * Toshiba
@@ -771,6 +781,9 @@
   // this flag atleast is needed
   { "Nokia", 0x0421, "5800 XpressMusic v2", 0x0155,
       DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
+  // Yet another version... I think
+  { "Nokia", 0x0421, "5800 XpressMusic v3", 0x0159,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
   // From an anonymous SourceForge user
   // Not verified to be MTP
   { "Nokia", 0x0421, "E63", 0x0179, DEVICE_FLAG_NONE },
@@ -802,8 +815,12 @@
   { "Nokia", 0x0421, "N8", 0x02fe, DEVICE_FLAG_NONE },
   // From: Lan Liu at Nokia <[email protected]>
   { "Nokia", 0x0421, "N8 (Ovi mode)", 0x0302, DEVICE_FLAG_NONE },
+  // From: Martijn Hoogendoorn <[email protected]>
+  { "Nokia", 0x0421, "E7", 0x0334, DEVICE_FLAG_NONE },
   // From: Raul Metsma <[email protected]>
-  { "Nokia", 0x0421, "E7", 0x0335, DEVICE_FLAG_NONE },
+  { "Nokia", 0x0421, "E7 (Ovi mode)", 0x0335, DEVICE_FLAG_NONE },
+  // Reported by Anonymous SourceForge user
+  { "Nokia", 0x0421, "N950", 0x03d2, DEVICE_FLAG_NONE },
   // From: 
http://nds2.nokia.com/files/support/global/phones/software/Nokia_3250_WMP10_driver.inf
   { "Nokia", 0x0421, "3250 Mobile Phone", 0x0462, DEVICE_FLAG_NONE },
   // From 
http://nds2.nokia.com/files/support/global/phones/software/Nokia_N93_WMP10_Driver.inf
@@ -1137,6 +1154,14 @@
       DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
       DEVICE_FLAG_UNIQUE_FILENAMES |
       DEVICE_FLAG_FORCE_RESET_ON_CLOSE },
+  // Reported by anonymous SourceForge user
+  { "Sony", 0x054c, "Walkman NWZ-W252B", 0x04bb,
+      DEVICE_FLAG_UNLOAD_DRIVER |
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
+      DEVICE_FLAG_UNIQUE_FILENAMES |
+      DEVICE_FLAG_FORCE_RESET_ON_CLOSE },
+  // Suspect this device has strong DRM features
+  // See https://answers.launchpad.net/ubuntu/+source/libmtp/+question/149587
   { "Sony", 0x054c, "Walkman NWZ-B153F", 0x04be,
       DEVICE_FLAG_UNLOAD_DRIVER |
       DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
@@ -1166,49 +1191,79 @@
    * for now.
    */
   // Reported by Thomas Schweitzer <[email protected]>
-  { "SonyEricsson", 0x0fce, "K550i", 0xe000, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "K550i", 0xe000,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by Øyvind Stegard <[email protected]>
-  { "SonyEricsson", 0x0fce, "K850i", 0x0075, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "K850i", 0x0075,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by Michael Eriksson
-  { "SonyEricsson", 0x0fce, "W910", 0x0076, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "W910", 0x0076,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by Zack <[email protected]>
-  { "SonyEricsson", 0x0fce, "W890i", 0x00b3, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "W890i", 0x00b3,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by robert dot ahlskog at gmail
-  { "SonyEricsson", 0x0fce, "W760i", 0x00c6, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "W760i", 0x00c6,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by Linus Åkesson <[email protected]>
-  { "SonyEricsson", 0x0fce, "C902", 0x00d4, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "C902", 0x00d4,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by an anonymous SourceForge user
-  { "SonyEricsson", 0x0fce, "C702", 0x00d9, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "C702", 0x00d9,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by Christian Zuckschwerdt <[email protected]>
-  { "SonyEricsson", 0x0fce, "W980", 0x00da, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "W980", 0x00da,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by David Taylor <[email protected]>
-  { "SonyEricsson", 0x0fce, "C905", 0x00ef, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "C905", 0x00ef,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by David House <[email protected]>
   { "SonyEricsson", 0x0fce, "W595", 0x00f3,
-      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL | 
DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST },
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
+      DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST },
   // Reported by Mattias Evensson <[email protected]>
-  { "SonyEricsson", 0x0fce, "W902", 0x00f5, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "W902", 0x00f5,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by Sarunas <[email protected]>
   // Doesn't need any flags according to reporter
-  { "SonyEricsson", 0x0fce, "T700", 0x00fb, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
+  { "SonyEricsson", 0x0fce, "T700", 0x00fb,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
   // Reported by Stéphane Pontier <[email protected]>
-  { "SonyEricsson", 0x0fce, "W705/W715", 0x0105, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "W705/W715", 0x0105,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by Håkan Kvist
-  { "SonyEricsson", 0x0fce, "W995", 0x0112, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "W995", 0x0112,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by anonymous SourceForge user
-  { "SonyEricsson", 0x0fce, "U5", 0x0133, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST 
},
+  { "SonyEricsson", 0x0fce, "U5", 0x0133,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by Flo <[email protected]>
-  { "SonyEricsson", 0x0fce, "U8i", 0x013a, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "U8i", 0x013a,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by xirotyu <[email protected]>
-  { "SonyEricsson", 0x0fce,  "j10i2 (Elm)", 0x0144, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce,  "j10i2 (Elm)", 0x0144,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  // Reported by Serge Chirik <[email protected]>
+  { "SonyEricsson", 0x0fce,  "j108i (Cedar)", 0x014e,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by Jonas Salling <>
   // Erroneous MTP implementation seems to be from Aricent, returns
   // broken transaction ID.
-  { "SonyEricsson", 0x0fce, "LT15i (Xperia arc)", 0x14f, 
DEVICE_FLAG_IGNORE_HEADER_ERRORS },
+  { "SonyEricsson", 0x0fce, "LT15i (Xperia arc)", 0x14f,
+      DEVICE_FLAG_IGNORE_HEADER_ERRORS },
+  // Reported by Eamonn Webster <[email protected]>
+  // Guessing on the ignore errors flag
+  { "SonyEricsson", 0x0fce, "Xperia Neo", 0x0156,
+      DEVICE_FLAG_IGNORE_HEADER_ERRORS },
+  // Reported by <[email protected]>
+  { "SonyEricsson", 0x0fce, "ST18a", 0x161,
+      DEVICE_FLAG_IGNORE_HEADER_ERRORS },
   // Reported by Jonas Nyrén <[email protected]>
-  { "SonyEricsson", 0x0fce, "W302", 0x10c8, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce, "W302", 0x10c8,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
   // Reported by Anonymous Sourceforge user
-  { "SonyEricsson", 0x0fce,  "j10i (Elm)", 0xd144, 
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
+  { "SonyEricsson", 0x0fce,  "j10i (Elm)", 0xd144,
+      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
 
 
 
@@ -1249,21 +1304,22 @@
   // Reported by Google Inc's Yavor Goulishev <[email protected]>
   // Android 3.0 MTP stack seems to announce that it supports the
   // list operations, but they do not work?
-  { "Motorola", 0x22b8, "Xoom (ID 1)", 0x70a8,
-      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
-      DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST |
-      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
+  { "Motorola", 0x22b8, "Xoom (ID 1)", 0x70a8, DEVICE_FLAGS_ANDROID_BUGS },
+
+  /*
+   * Google
+   * These guys lend their Vendor ID to anyone who comes down the
+   * road to produce an Android tablet it seems... The Vendor ID
+   * was originally used for Nexus phones
+   */
+  { "Google Inc (for Sony)", 0x18d1, "S1", 0x05b3,
+      DEVICE_FLAGS_ANDROID_BUGS },
   // WiFi-only version of Xoom
   // See: http://bugzilla.gnome.org/show_bug.cgi?id=647506
-  { "Motorola", 0x18d1, "Xoom (MZ604)", 0x70a8,
-      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
-      DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST |
-      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
-  { "Motorola", 0x22b8, "Xoom (ID 2)", 0x70a9,
-      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
-      DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST |
-      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
-
+  { "Google Inc (for Motorola)", 0x18d1, "Xoom (MZ604)", 0x70a8,
+      DEVICE_FLAGS_ANDROID_BUGS },
+  { "Google Inc (for Motorola)", 0x22b8, "Xoom (ID 2)", 0x70a9,
+      DEVICE_FLAGS_ANDROID_BUGS },
   /*
    * Media Keg
    */
@@ -1376,6 +1432,15 @@
   { "Asus", 0x0b05, "TF101 Eeepad Transformer", 0x4e0f, DEVICE_FLAG_NONE },
   { "Asus", 0x0b05, "FT101 Eeepad Transformer", 0x4e1f, DEVICE_FLAG_NONE },
 
+
+  /*
+   * Lenovo
+   */
+  // Reported by anonymous sourceforge user
+  // Adding Android default bug flags since it appears to be an Android
+  { "Lenovo", 0x17ef, "Lenovo ThinkPad Tablet", 0x741c,
+      DEVICE_FLAGS_ANDROID_BUGS },
+
   /*
    * Other strange stuff.
    */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libmtp-1.1.0/util/mtp-hotplug.c 
new/libmtp-1.1.1/util/mtp-hotplug.c
--- old/libmtp-1.1.0/util/mtp-hotplug.c 2011-09-19 09:48:33.000000000 +0200
+++ new/libmtp-1.1.1/util/mtp-hotplug.c 2011-10-22 21:15:27.000000000 +0200
@@ -140,6 +140,12 @@
       printf("SUBSYSTEM==\"usb\", GOTO=\"libmtp_usb_rules\"\n"
             "GOTO=\"libmtp_rules_end\"\n\n"
             "LABEL=\"libmtp_usb_rules\"\n\n");
+      printf("# Some sensitive devices we surely don\'t wanna probe, color 
instruments\n");
+      printf("ATTR{idVendor}==\"0670\", GOTO=\"libmtp_rules_end\"\n");
+      printf("ATTR{idVendor}==\"0765\", GOTO=\"libmtp_rules_end\"\n");
+      printf("ATTR{idVendor}==\"085c\", GOTO=\"libmtp_rules_end\"\n");
+      printf("ATTR{idVendor}==\"0971\", GOTO=\"libmtp_rules_end\"\n");
+      printf("\n");
       break;
     case style_udev_old:
       printf("# UDEV-style hotplug map for libmtp\n");
@@ -242,7 +248,7 @@
      * every USB device that is either PTP or vendor specific
      */
     printf("\n# Autoprobe vendor-specific, communication and PTP devices\n");
-    printf("ENV{ID_MTP_DEVICE}!=\"1\", ATTR{bDeviceClass}==\"00|02|06|ef|ff\", 
PROGRAM=\"%smtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}\", 
RESULT==\"1\", %s", mtp_probe_dir, action);
+    printf("ENV{ID_MTP_DEVICE}!=\"1\", ENV{MTP_NO_PROBE}!=\"1\", 
ENV{COLOR_MEASUREMENT_DEVICE}!=\"1\", ENV{libsane_matched}!=\"yes\", 
ATTR{bDeviceClass}==\"00|02|06|ef|ff\", PROGRAM=\"%smtp-probe /sys$env{DEVPATH} 
$attr{busnum} $attr{devnum}\", RESULT==\"1\", %s", mtp_probe_dir, action);
     if (udev_group != NULL) printf(", GROUP=\"%s\"", udev_group);
     if (udev_mode != NULL) printf(", MODE=\"%s\"", udev_mode);
     printf("\n");

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to