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]
