openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
March 2018
- 1 participants
- 2685 discussions
Hello community,
here is the log from the commit of package gstreamer-plugins-bad for openSUSE:Factory checked in at 2018-03-29 11:48:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-bad (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-bad.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-bad"
Thu Mar 29 11:48:44 2018 rev:75 rq:591019 version:1.12.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer-plugins-bad/gstreamer-plugins-bad.changes 2018-03-06 10:44:25.678483510 +0100
+++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-bad.new/gstreamer-plugins-bad.changes 2018-03-29 11:48:46.381165276 +0200
@@ -1,0 +2,8 @@
+Fri Mar 23 14:00:06 UTC 2018 - fcrozat(a)suse.com
+
+- Move BuildRequires pkgconfig(dvdnav/dvdread) to BUILD_ORIG
+ section. It is only needed when building BUILD_ORIG package,
+ which is not the case for official builds for openSUSE Leap,
+ Tumbleweed or SLE.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-bad.spec ++++++
--- /var/tmp/diff_new_pack.EIeqgz/_old 2018-03-29 11:48:47.361129972 +0200
+++ /var/tmp/diff_new_pack.EIeqgz/_new 2018-03-29 11:48:47.361129972 +0200
@@ -28,7 +28,7 @@
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: GPL-2.0-or-later AND LGPL-2.1-or-later
Group: Productivity/Multimedia/Other
-URL: http://gstreamer.freedesktop.org/
+Url: http://gstreamer.freedesktop.org/
Source: https://gstreamer.freedesktop.org/src/gst-plugins-bad/%{_name}-%{version}.t…
Source2: gstreamer-plugins-bad.appdata.xml
Source99: baselibs.conf
@@ -63,8 +63,6 @@
BuildRequires: pkgconfig(bzip2)
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(dirac) >= 0.10
-BuildRequires: pkgconfig(dvdnav) >= 4.1.2
-BuildRequires: pkgconfig(dvdread) >= 4.1.2
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(gio-2.0) >= 2.25.0
BuildRequires: pkgconfig(gl)
@@ -153,6 +151,8 @@
BuildRequires: faac-devel
BuildRequires: faad2-devel
BuildRequires: libdca-devel
+BuildRequires: pkgconfig(dvdnav) >= 4.1.2
+BuildRequires: pkgconfig(dvdread) >= 4.1.2
BuildRequires: pkgconfig(fdk-aac) >= 0.1.4
BuildRequires: pkgconfig(libde265) >= 0.9
BuildRequires: pkgconfig(libmodplug)
1
0
Hello community,
here is the log from the commit of package spectacle for openSUSE:Factory checked in at 2018-03-29 11:48:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/spectacle (Old)
and /work/SRC/openSUSE:Factory/.spectacle.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "spectacle"
Thu Mar 29 11:48:39 2018 rev:28 rq:590867 version:17.12.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/spectacle/spectacle.changes 2018-03-20 21:42:27.320360422 +0100
+++ /work/SRC/openSUSE:Factory/.spectacle.new/spectacle.changes 2018-03-29 11:48:41.385345258 +0200
@@ -1,0 +2,7 @@
+Sat Mar 24 18:23:53 UTC 2018 - fabian(a)ritter-vogt.de
+
+- Add patch to fix taking screenshots on wayland without the wayland
+ platform plugin:
+ * 0001-Decide-to-use-the-wayland-backend-by-looking-at-XDG_.patch
+
+-------------------------------------------------------------------
New:
----
0001-Decide-to-use-the-wayland-backend-by-looking-at-XDG_.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ spectacle.spec ++++++
--- /var/tmp/diff_new_pack.Zed9y4/_old 2018-03-29 11:48:41.961324507 +0200
+++ /var/tmp/diff_new_pack.Zed9y4/_new 2018-03-29 11:48:41.965324363 +0200
@@ -29,6 +29,8 @@
Group: Productivity/Graphics/Other
Url: http://www.kde.org
Source0: %{name}-%{version}.tar.xz
+# PATCH-FIX-UPSTREAM https://phabricator.kde.org/D11655
+Patch1: 0001-Decide-to-use-the-wayland-backend-by-looking-at-XDG_.patch
BuildRequires: extra-cmake-modules
BuildRequires: kconfig-devel
BuildRequires: kcoreaddons-devel
@@ -87,6 +89,7 @@
%prep
%setup -q
+%autopatch -p1
%build
%cmake_kf5 -d build
++++++ 0001-Decide-to-use-the-wayland-backend-by-looking-at-XDG_.patch ++++++
>From 3dad76703cbc5810202f41642c84d32ca7b50933 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian(a)ritter-vogt.de>
Date: Sat, 24 Mar 2018 19:21:43 +0100
Subject: [PATCH] Decide to use the wayland backend by looking at
XDG_SESSION_TYPE
Summary:
With plasma-workspace master, QT_QPA_PLATFORM is no longer set,
so spectacle runs with the xcb platform plugin.
Test Plan: Installed, can take screenshots on wayland again.
Reviewers: #spectacle, graesslin
Differential Revision: https://phabricator.kde.org/D11655
---
src/SpectacleCore.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/SpectacleCore.cpp b/src/SpectacleCore.cpp
index cf3f06e..99fdbd9 100644
--- a/src/SpectacleCore.cpp
+++ b/src/SpectacleCore.cpp
@@ -59,14 +59,14 @@ SpectacleCore::SpectacleCore(StartMode startMode, ImageGrabber::GrabMode grabMod
setFilename(saveFileName);
}
+ if (qstrcmp(qgetenv("XDG_SESSION_TYPE"), "wayland") == 0) {
+ mImageGrabber = new KWinWaylandImageGrabber;
+ }
#ifdef XCB_FOUND
- if (KWindowSystem::isPlatformX11()) {
+ if (!mImageGrabber && KWindowSystem::isPlatformX11()) {
mImageGrabber = new X11ImageGrabber;
}
#endif
- if (!mImageGrabber && KWindowSystem::isPlatformWayland()) {
- mImageGrabber = new KWinWaylandImageGrabber;
- }
if (!mImageGrabber) {
mImageGrabber = new DummyImageGrabber;
--
2.16.2
1
0
Hello community,
here is the log from the commit of package sddm for openSUSE:Factory checked in at 2018-03-29 11:48:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sddm (Old)
and /work/SRC/openSUSE:Factory/.sddm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sddm"
Thu Mar 29 11:48:31 2018 rev:32 rq:590866 version:0.17.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/sddm/sddm.changes 2018-03-24 16:08:51.445605417 +0100
+++ /work/SRC/openSUSE:Factory/.sddm.new/sddm.changes 2018-03-29 11:48:35.261565879 +0200
@@ -1,0 +2,7 @@
+Sat Mar 24 13:55:06 UTC 2018 - fabian(a)ritter-vogt.de
+
+- Don't add a suffix for wayland sessions anymore, for symmetry with
+ gdm and lightdm:
+ * 0001-Remove-suffix-for-Wayland-session.patch
+
+-------------------------------------------------------------------
New:
----
0001-Remove-suffix-for-Wayland-session.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sddm.spec ++++++
--- /var/tmp/diff_new_pack.rpqFVP/_old 2018-03-29 11:48:36.085536194 +0200
+++ /var/tmp/diff_new_pack.rpqFVP/_new 2018-03-29 11:48:36.089536050 +0200
@@ -32,6 +32,8 @@
Patch2: 0001-greeter-Use-Qt-command-line-parser.patch
Patch3: 0001-Fix-platform-detection-for-EnableHiDPI.patch
Patch4: 0001-Fix-build-with-Qt-5.10-Use-QString-instead-of-QLatin.patch
+# Not merged yet: https://github.com/sddm/sddm/pull/997
+Patch50: 0001-Remove-suffix-for-Wayland-session.patch
# Patch100-?: PATCH-FIX-OPENSUSE
# Use openSUSE pam config
Patch100: proper_pam.diff
++++++ 0001-Remove-suffix-for-Wayland-session.patch ++++++
>From aa342153bf3bd88a7af5dc6c454cb4c9d16f95ee Mon Sep 17 00:00:00 2001
From: Pier Luigi Fiorini <pierluigi.fiorini(a)liri.io>
Date: Tue, 20 Mar 2018 18:22:39 +0100
Subject: [PATCH] Remove suffix for Wayland session
Some desktops like GNOME specify which windowing system is in use
with the Name entry of their desktop file.
For Wayland-only desktops such as Liri this information is
redundant and so is for X11-only window managers.
Do not append the Wayland suffix and let desktops handle it
themeselves.
[ChangeLog][Greeter] Remove suffix for Wayland sessions
---
src/common/Session.cpp | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/common/Session.cpp b/src/common/Session.cpp
index 4812d67..a2be266 100644
--- a/src/common/Session.cpp
+++ b/src/common/Session.cpp
@@ -161,12 +161,8 @@ namespace SDDM {
if (current_section != QLatin1String("Desktop Entry"))
continue; // We are only interested in the "Desktop Entry" section
- if (line.startsWith(QLatin1String("Name="))) {
- if (type == WaylandSession)
- m_displayName = QObject::tr("%1 (Wayland)").arg(line.mid(5));
- else
- m_displayName = line.mid(5);
- }
+ if (line.startsWith(QLatin1String("Name=")))
+ m_displayName = line.mid(5);
if (line.startsWith(QLatin1String("Comment=")))
m_comment = line.mid(8);
if (line.startsWith(QLatin1String("Exec=")))
--
2.16.2
1
0
29 Mar '18
Hello community,
here is the log from the commit of package obs-service-format_spec_file for openSUSE:Factory checked in at 2018-03-29 11:48:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-format_spec_file (Old)
and /work/SRC/openSUSE:Factory/.obs-service-format_spec_file.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "obs-service-format_spec_file"
Thu Mar 29 11:48:25 2018 rev:73 rq:590861 version:20180306
Changes:
--------
--- /work/SRC/openSUSE:Factory/obs-service-format_spec_file/obs-service-format_spec_file.changes 2018-02-21 14:06:06.277783342 +0100
+++ /work/SRC/openSUSE:Factory/.obs-service-format_spec_file.new/obs-service-format_spec_file.changes 2018-03-29 11:48:29.161785640 +0200
@@ -1,0 +2,6 @@
+Tue Mar 6 09:28:42 UTC 2018 - coolo(a)suse.com
+
+- Update to version 20180306:
+ + do not patch URL nor Url
+
+-------------------------------------------------------------------
Old:
----
obs-service-format_spec_file-20180215.tar.bz2
New:
----
obs-service-format_spec_file-20180306.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ obs-service-format_spec_file.spec ++++++
--- /var/tmp/diff_new_pack.WvHb0Z/_old 2018-03-29 11:48:29.933757828 +0200
+++ /var/tmp/diff_new_pack.WvHb0Z/_new 2018-03-29 11:48:29.937757684 +0200
@@ -17,7 +17,7 @@
Name: obs-service-format_spec_file
-Version: 20180215
+Version: 20180306
Release: 0
Summary: An OBS source service: reformats a spec file to SUSE standard
License: GPL-2.0-only
++++++ debian.dsc ++++++
--- /var/tmp/diff_new_pack.WvHb0Z/_old 2018-03-29 11:48:29.977756243 +0200
+++ /var/tmp/diff_new_pack.WvHb0Z/_new 2018-03-29 11:48:29.977756243 +0200
@@ -1,6 +1,6 @@
Format: 1.0
Source: obs-service-format-spec-file
-Version: 20180215
+Version: 20180306
Binary: obs-service-format-spec-file
Maintainer: Adrian Schroeter <adrian(a)suse.de>
Architecture: all
++++++ obs-service-format_spec_file-20180215.tar.bz2 -> obs-service-format_spec_file-20180306.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-service-format_spec_file-20180215/patch_license new/obs-service-format_spec_file-20180306/patch_license
--- old/obs-service-format_spec_file-20180215/patch_license 2018-02-15 12:05:12.000000000 +0100
+++ new/obs-service-format_spec_file-20180306/patch_license 2018-03-06 10:20:47.000000000 +0100
@@ -82,6 +82,8 @@
{
my ($tag) = @_;
+ return $tag if $tag =~ m/Url|URL/;
+
$tag = lc($tag);
$tag =~ s/docdir/DocDir/i;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-service-format_spec_file-20180215/prepare_spec new/obs-service-format_spec_file-20180306/prepare_spec
--- old/obs-service-format_spec_file-20180215/prepare_spec 2018-02-15 12:05:12.000000000 +0100
+++ new/obs-service-format_spec_file-20180306/prepare_spec 2018-03-06 10:20:47.000000000 +0100
@@ -80,6 +80,8 @@
sub capitalize_case($) {
my ($tag) = @_;
+ return $tag if $tag =~ m/Url|URL/;
+
$tag = lc($tag);
$tag =~ s/docdir/DocDir/i;
1
0
Hello community,
here is the log from the commit of package libmtp for openSUSE:Factory checked in at 2018-03-29 11:48:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libmtp (Old)
and /work/SRC/openSUSE:Factory/.libmtp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libmtp"
Thu Mar 29 11:48:19 2018 rev:77 rq:590840 version:1.1.15
Changes:
--------
--- /work/SRC/openSUSE:Factory/libmtp/libmtp.changes 2017-10-07 17:46:18.470797574 +0200
+++ /work/SRC/openSUSE:Factory/.libmtp.new/libmtp.changes 2018-03-29 11:48:23.617985373 +0200
@@ -1,0 +2,10 @@
+Sat Mar 24 17:35:38 UTC 2018 - meissner(a)suse.com
+
+- updated to 1.1.15 release
+ - lots of new USB ids
+ - copy and move object implemented
+ - 64bit file bugfixes
+ - bugfixes
+
+
+-------------------------------------------------------------------
Old:
----
libmtp-1.1.14.tar.gz
libmtp-1.1.14.tar.gz.asc
New:
----
libmtp-1.1.15.tar.gz
libmtp-1.1.15.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libmtp.spec ++++++
--- /var/tmp/diff_new_pack.vQSSCF/_old 2018-03-29 11:48:24.261962172 +0200
+++ /var/tmp/diff_new_pack.vQSSCF/_new 2018-03-29 11:48:24.265962028 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libmtp
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -26,7 +26,7 @@
Summary: Commandline utilities for access to MTP Players
License: LGPL-2.1+
Group: Productivity/Multimedia/Sound/Players
-Version: 1.1.14
+Version: 1.1.15
Release: 0
%define sonum 9
Source0: http://downloads.sourceforge.net/project/%{name}/%{name}/%{version}/%{name}…
++++++ libmtp-1.1.14.tar.gz -> libmtp-1.1.15.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/configure new/libmtp-1.1.15/configure
--- old/libmtp-1.1.14/configure 2017-10-01 21:25:43.000000000 +0200
+++ new/libmtp-1.1.15/configure 2018-03-24 12:04:12.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libmtp 1.1.14.
+# Generated by GNU Autoconf 2.69 for libmtp 1.1.15.
#
# Report bugs to <libmtp-discuss(a)lists.sourceforge.net>.
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='libmtp'
PACKAGE_TARNAME='libmtp'
-PACKAGE_VERSION='1.1.14'
-PACKAGE_STRING='libmtp 1.1.14'
+PACKAGE_VERSION='1.1.15'
+PACKAGE_STRING='libmtp 1.1.15'
PACKAGE_BUGREPORT='libmtp-discuss(a)lists.sourceforge.net'
PACKAGE_URL=''
@@ -1360,7 +1360,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.14 to adapt to many kinds of systems.
+\`configure' configures libmtp 1.1.15 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1430,7 +1430,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libmtp 1.1.14:";;
+ short | recursive ) echo "Configuration of libmtp 1.1.15:";;
esac
cat <<\_ACEOF
@@ -1562,7 +1562,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libmtp configure 1.1.14
+libmtp configure 1.1.15
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2042,7 +2042,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.14, which was
+It was created by libmtp $as_me 1.1.15, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2906,7 +2906,7 @@
# Define the identity of the package.
PACKAGE='libmtp'
- VERSION='1.1.14'
+ VERSION='1.1.15'
cat >>confdefs.h <<_ACEOF
@@ -16633,7 +16633,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.14, which was
+This file was extended by libmtp $as_me 1.1.15, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16699,7 +16699,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.14
+libmtp config.status 1.1.15
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/configure.ac new/libmtp-1.1.15/configure.ac
--- old/libmtp-1.1.14/configure.ac 2017-10-01 21:25:34.000000000 +0200
+++ new/libmtp-1.1.15/configure.ac 2018-03-24 12:04:03.000000000 +0100
@@ -1,6 +1,6 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
-AC_INIT([libmtp], [1.1.14], [libmtp-discuss(a)lists.sourceforge.net]
+AC_INIT([libmtp], [1.1.15], [libmtp-discuss(a)lists.sourceforge.net]
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_SRCDIR([src/libmtp.c])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/doc/Makefile.in new/libmtp-1.1.15/doc/Makefile.in
--- old/libmtp-1.1.14/doc/Makefile.in 2017-10-01 21:25:42.000000000 +0200
+++ new/libmtp-1.1.15/doc/Makefile.in 2018-03-24 12:04:11.000000000 +0100
@@ -370,9 +370,9 @@
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+@HAVE_DOXYGEN_FALSE@clean-local:
@HAVE_DOXYGEN_FALSE@install-data-local:
@HAVE_DOXYGEN_FALSE@uninstall-local:
-@HAVE_DOXYGEN_FALSE@clean-local:
clean: clean-am
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/libmtp.pc new/libmtp-1.1.15/libmtp.pc
--- old/libmtp-1.1.14/libmtp.pc 2017-10-01 21:25:58.000000000 +0200
+++ new/libmtp-1.1.15/libmtp.pc 2018-03-24 12:04:21.000000000 +0100
@@ -7,7 +7,7 @@
Name: libmtp
Description: libmtp is a library for accessing Media Transfer Protocol devices
-Version: 1.1.14
+Version: 1.1.15
Requires.private: libusb-1.0
Conflicts:
Libs: -L${libdir} -lmtp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/src/Makefile.am new/libmtp-1.1.15/src/Makefile.am
--- old/libmtp-1.1.14/src/Makefile.am 2015-10-07 09:43:18.000000000 +0200
+++ new/libmtp-1.1.15/src/Makefile.am 2018-03-17 09:22:25.000000000 +0100
@@ -47,8 +47,8 @@
# increment AGE, Otherwise AGE is reset to 0. If CURRENT has changed,
# REVISION is set to 0, otherwise REVISION is incremented.
# ---------------------------------------------------------------------------
-CURRENT=12
-AGE=3
+CURRENT=13
+AGE=4
REVISION=0
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.14/src/Makefile.in new/libmtp-1.1.15/src/Makefile.in
--- old/libmtp-1.1.14/src/Makefile.in 2017-10-01 21:25:42.000000000 +0200
+++ new/libmtp-1.1.15/src/Makefile.in 2018-03-24 12:04:11.000000000 +0100
@@ -390,8 +390,8 @@
# increment AGE, Otherwise AGE is reset to 0. If CURRENT has changed,
# REVISION is set to 0, otherwise REVISION is incremented.
# ---------------------------------------------------------------------------
-CURRENT = 12
-AGE = 3
+CURRENT = 13
+AGE = 4
REVISION = 0
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.14/src/libmtp.c new/libmtp-1.1.15/src/libmtp.c
--- old/libmtp-1.1.14/src/libmtp.c 2017-06-10 16:35:54.000000000 +0200
+++ new/libmtp-1.1.15/src/libmtp.c 2018-03-24 08:08:07.000000000 +0100
@@ -2220,6 +2220,8 @@
case PTP_EC_DevicePropChanged:
LIBMTP_INFO("Received event PTP_EC_DevicePropChanged in session %u\n", session_id);
/* TODO: update device properties */
+ *event = LIBMTP_EVENT_DEVICE_PROPERTY_CHANGED;
+ *out1 = param1;
break;
case PTP_EC_ObjectInfoChanged:
LIBMTP_INFO("Received event PTP_EC_ObjectInfoChanged in session %u\n", session_id);
@@ -4042,6 +4044,12 @@
PTP_OC_ANDROID_BeginEditObject) &&
ptp_operation_issupported(device->params,
PTP_OC_ANDROID_EndEditObject));
+ case LIBMTP_DEVICECAP_MoveObject:
+ return ptp_operation_issupported(device->params,
+ PTP_OC_MoveObject);
+ case LIBMTP_DEVICECAP_CopyObject:
+ return ptp_operation_issupported(device->params,
+ PTP_OC_CopyObject);
/*
* Handle other capabilities here, this is also a good place to
* blacklist some advanced operations on specific devices if need
@@ -4237,6 +4245,10 @@
file->parent_id = ob->oi.ParentObject;
file->storage_id = ob->oi.StorageID;
+ if (ob->oi.Filename != NULL) {
+ file->filename = strdup(ob->oi.Filename);
+ }
+
// Set the filetype
file->filetype = map_ptp_type_to_libmtp_type(ob->oi.ObjectFormat);
@@ -4250,7 +4262,7 @@
*/
if (file->filetype == LIBMTP_FILETYPE_UNKNOWN) {
if ((FLAG_IRIVER_OGG_ALZHEIMER(ptp_usb) ||
- FLAG_OGG_IS_UNKNOWN(ptp_usb)) &&
+ FLAG_OGG_IS_UNKNOWN(ptp_usb)) &&
has_ogg_extension(file->filename)) {
file->filetype = LIBMTP_FILETYPE_OGG;
}
@@ -4265,9 +4277,6 @@
// We only have 32-bit file size here; later we use the PTP_OPC_ObjectSize property
file->filesize = ob->oi.ObjectCompressedSize;
- if (ob->oi.Filename != NULL) {
- file->filename = strdup(ob->oi.Filename);
- }
// This is a unique ID so we can keep track of the file.
file->item_id = ob->oid;
@@ -5249,26 +5258,28 @@
uint16_t ret;
PTPParams *params = (PTPParams *) device->params;
PTP_USB *ptp_usb = (PTP_USB*) device->usbinfo;
- PTPObject *ob;
- ret = ptp_object_want (params, id, PTPOBJECT_OBJECTINFO_LOADED, &ob);
- if (ret != PTP_RC_OK) {
+ LIBMTP_file_t *mtpfile = LIBMTP_Get_Filemetadata(device, id);
+ if (mtpfile == NULL) {
add_error_to_errorstack(device, LIBMTP_ERROR_GENERAL, "LIBMTP_Get_File_To_File_Descriptor(): Could not get object info.");
return -1;
}
- if (ob->oi.ObjectFormat == PTP_OFC_Association) {
+ if (mtpfile->filetype == LIBMTP_FILETYPE_FOLDER) {
add_error_to_errorstack(device, LIBMTP_ERROR_GENERAL, "LIBMTP_Get_File_To_File_Descriptor(): Bad object format.");
return -1;
}
// Callbacks
ptp_usb->callback_active = 1;
- ptp_usb->current_transfer_total = ob->oi.ObjectCompressedSize+
+ ptp_usb->current_transfer_total = mtpfile->filesize +
PTP_USB_BULK_HDR_LEN+sizeof(uint32_t); // Request length, one parameter
ptp_usb->current_transfer_complete = 0;
ptp_usb->current_transfer_callback = callback;
ptp_usb->current_transfer_callback_data = data;
+ // Don't need mtpfile anymore
+ LIBMTP_destroy_file_t(mtpfile);
+
ret = ptp_getobject_tofd(params, id, fd);
ptp_usb->callback_active = 0;
@@ -5311,29 +5322,31 @@
LIBMTP_progressfunc_t const callback,
void const * const data)
{
- PTPObject *ob;
uint16_t ret;
PTPParams *params = (PTPParams *) device->params;
PTP_USB *ptp_usb = (PTP_USB*) device->usbinfo;
- ret = ptp_object_want (params, id, PTPOBJECT_OBJECTINFO_LOADED, &ob);
- if (ret != PTP_RC_OK) {
+ LIBMTP_file_t *mtpfile = LIBMTP_Get_Filemetadata(device, id);
+ if (mtpfile == NULL) {
add_error_to_errorstack(device, LIBMTP_ERROR_GENERAL, "LIBMTP_Get_File_To_File_Descriptor(): Could not get object info.");
return -1;
}
- if (ob->oi.ObjectFormat == PTP_OFC_Association) {
+ if (mtpfile->filetype == LIBMTP_FILETYPE_FOLDER) {
add_error_to_errorstack(device, LIBMTP_ERROR_GENERAL, "LIBMTP_Get_File_To_File_Descriptor(): Bad object format.");
return -1;
}
// Callbacks
ptp_usb->callback_active = 1;
- ptp_usb->current_transfer_total = ob->oi.ObjectCompressedSize+
+ ptp_usb->current_transfer_total = mtpfile->filesize +
PTP_USB_BULK_HDR_LEN+sizeof(uint32_t); // Request length, one parameter
ptp_usb->current_transfer_complete = 0;
ptp_usb->current_transfer_callback = callback;
ptp_usb->current_transfer_callback_data = data;
+ // Don't need mtpfile anymore
+ LIBMTP_destroy_file_t(mtpfile);
+
MTPDataHandler mtp_handler;
mtp_handler.getfunc = NULL;
mtp_handler.putfunc = put_func;
@@ -6786,6 +6799,79 @@
}
/**
+ * The function moves an object from one location on a device to another
+ * location.
+ *
+ * The semantics of moving a folder are not defined in the spec, but it
+ * appears to do the right thing when tested (but devices that implement
+ * this operation are rare).
+ *
+ * Note that moving an object may take a significant amount of time,
+ * particularly if being moved between storages. MTP does not provide
+ * any kind of progress mechanism, so the operation will simply block
+ * for the duration.
+ *
+ * @param device a pointer to the device where the object exists.
+ * @param object_id the object to move.
+ * @param storage_id the id of the destination storage.
+ * @param parent_id the id of the destination parent object (folder).
+ * If the destination is the root of the storage, pass '0'.
+ * @return 0 on success, any other value means failure.
+ */
+int LIBMTP_Move_Object(LIBMTP_mtpdevice_t *device,
+ uint32_t object_id,
+ uint32_t storage_id,
+ uint32_t parent_id)
+{
+ uint16_t ret;
+ PTPParams *params = (PTPParams *) device->params;
+
+ ret = ptp_moveobject(params, object_id, storage_id, parent_id);
+ if (ret != PTP_RC_OK) {
+ add_ptp_error_to_errorstack(device, ret, "LIBMTP_Move_Object(): could not move object.");
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
+ * The function copies an object from one location on a device to another
+ * location.
+ *
+ * The semantics of copying a folder are not defined in the spec, but it
+ * appears to do the right thing when tested (but devices that implement
+ * this operation are rare).
+ *
+ * Note that copying an object may take a significant amount of time.
+ * MTP does not provide any kind of progress mechanism, so the operation
+ * will simply block for the duration.
+ *
+ * @param device a pointer to the device where the object exists.
+ * @param object_id the object to copy.
+ * @param storage_id the id of the destination storage.
+ * @param parent_id the id of the destination parent object (folder).
+ * If the destination is the root of the storage, pass '0'.
+ * @return 0 on success, any other value means failure.
+ */
+int LIBMTP_Copy_Object(LIBMTP_mtpdevice_t *device,
+ uint32_t object_id,
+ uint32_t storage_id,
+ uint32_t parent_id)
+{
+ uint16_t ret;
+ PTPParams *params = (PTPParams *) device->params;
+
+ ret = ptp_copyobject(params, object_id, storage_id, parent_id);
+ if (ret != PTP_RC_OK) {
+ add_ptp_error_to_errorstack(device, ret, "LIBMTP_Copy_Object(): could not copy object.");
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
* Internal function to update an object filename property.
*/
static int set_object_filename(LIBMTP_mtpdevice_t *device,
@@ -8987,8 +9073,19 @@
uint64_t offset, uint32_t maxbytes,
unsigned char **data, unsigned int *size)
{
- PTPParams *params = (PTPParams *) device->params;
- uint16_t ret;
+ PTPParams *params = (PTPParams *) device->params;
+ uint16_t ret;
+ LIBMTP_file_t *mtpfile = LIBMTP_Get_Filemetadata(device, id);
+
+ /* Some devices do not like reading over the end and hang instead of progressing */
+ if (offset >= mtpfile->filesize) {
+ *size = 0;
+ LIBMTP_destroy_file_t (mtpfile);
+ return 0;
+ }
+ if (offset + maxbytes > mtpfile->filesize) {
+ maxbytes = mtpfile->filesize - offset;
+ }
if (!ptp_operation_issupported(params, PTP_OC_ANDROID_GetPartialObject64)) {
if (!ptp_operation_issupported(params, PTP_OC_GetPartialObject)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/src/libmtp.h new/libmtp-1.1.15/src/libmtp.h
--- old/libmtp-1.1.14/src/libmtp.h 2017-10-01 21:25:57.000000000 +0200
+++ new/libmtp-1.1.15/src/libmtp.h 2018-03-24 12:04:21.000000000 +0100
@@ -29,8 +29,8 @@
#ifndef LIBMTP_H_INCLUSION_GUARD
#define LIBMTP_H_INCLUSION_GUARD
-#define LIBMTP_VERSION 1.1.14
-#define LIBMTP_VERSION_STRING "1.1.14"
+#define LIBMTP_VERSION 1.1.15
+#define LIBMTP_VERSION_STRING "1.1.15"
/* This handles MSVC pecularities */
#ifdef _MSC_VER
@@ -426,6 +426,16 @@
* @see LIBMTP_TruncateObject()
*/
LIBMTP_DEVICECAP_EditObjects,
+ /**
+ * This capability tells whether you can call the function to
+ * move an object, @see LIBMTP_MoveObject()
+ */
+ LIBMTP_DEVICECAP_MoveObject,
+ /**
+ * This capability tells whether you can call the function to
+ * copy an object, @see LIBMTP_CopyObject()
+ */
+ LIBMTP_DEVICECAP_CopyObject,
} LIBMTP_devicecap_t;
/**
@@ -800,6 +810,7 @@
LIBMTP_EVENT_STORE_REMOVED,
LIBMTP_EVENT_OBJECT_ADDED,
LIBMTP_EVENT_OBJECT_REMOVED,
+ LIBMTP_EVENT_DEVICE_PROPERTY_CHANGED,
};
typedef enum LIBMTP_event_enum LIBMTP_event_t;
@@ -1038,6 +1049,8 @@
* @{
*/
int LIBMTP_Delete_Object(LIBMTP_mtpdevice_t *, uint32_t);
+int LIBMTP_Move_Object(LIBMTP_mtpdevice_t *, uint32_t, uint32_t, uint32_t);
+int LIBMTP_Copy_Object(LIBMTP_mtpdevice_t *, uint32_t, uint32_t, uint32_t);
int LIBMTP_Set_Object_Filename(LIBMTP_mtpdevice_t *, uint32_t , char *);
int LIBMTP_GetPartialObject(LIBMTP_mtpdevice_t *, uint32_t const,
uint64_t, uint32_t,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/src/libmtp.h.in new/libmtp-1.1.15/src/libmtp.h.in
--- old/libmtp-1.1.14/src/libmtp.h.in 2017-06-10 16:36:53.000000000 +0200
+++ new/libmtp-1.1.15/src/libmtp.h.in 2018-03-24 08:08:07.000000000 +0100
@@ -426,6 +426,16 @@
* @see LIBMTP_TruncateObject()
*/
LIBMTP_DEVICECAP_EditObjects,
+ /**
+ * This capability tells whether you can call the function to
+ * move an object, @see LIBMTP_MoveObject()
+ */
+ LIBMTP_DEVICECAP_MoveObject,
+ /**
+ * This capability tells whether you can call the function to
+ * copy an object, @see LIBMTP_CopyObject()
+ */
+ LIBMTP_DEVICECAP_CopyObject,
} LIBMTP_devicecap_t;
/**
@@ -800,6 +810,7 @@
LIBMTP_EVENT_STORE_REMOVED,
LIBMTP_EVENT_OBJECT_ADDED,
LIBMTP_EVENT_OBJECT_REMOVED,
+ LIBMTP_EVENT_DEVICE_PROPERTY_CHANGED,
};
typedef enum LIBMTP_event_enum LIBMTP_event_t;
@@ -1038,6 +1049,8 @@
* @{
*/
int LIBMTP_Delete_Object(LIBMTP_mtpdevice_t *, uint32_t);
+int LIBMTP_Move_Object(LIBMTP_mtpdevice_t *, uint32_t, uint32_t, uint32_t);
+int LIBMTP_Copy_Object(LIBMTP_mtpdevice_t *, uint32_t, uint32_t, uint32_t);
int LIBMTP_Set_Object_Filename(LIBMTP_mtpdevice_t *, uint32_t , char *);
int LIBMTP_GetPartialObject(LIBMTP_mtpdevice_t *, uint32_t const,
uint64_t, uint32_t,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/src/libmtp.sym new/libmtp-1.1.15/src/libmtp.sym
--- old/libmtp-1.1.14/src/libmtp.sym 2017-06-10 16:07:29.000000000 +0200
+++ new/libmtp-1.1.15/src/libmtp.sym 2018-03-17 09:21:17.000000000 +0100
@@ -94,6 +94,8 @@
LIBMTP_Create_New_Album
LIBMTP_Update_Album
LIBMTP_Delete_Object
+LIBMTP_Move_Object
+LIBMTP_Copy_Object
LIBMTP_Set_File_Name
LIBMTP_Set_Folder_Name
LIBMTP_Set_Track_Name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/src/libopenusb1-glue.c new/libmtp-1.1.15/src/libopenusb1-glue.c
--- old/libmtp-1.1.14/src/libopenusb1-glue.c 2017-10-01 21:48:58.000000000 +0200
+++ new/libmtp-1.1.15/src/libopenusb1-glue.c 2017-10-06 13:54:29.000000000 +0200
@@ -1213,7 +1213,7 @@
unsigned long packet_size;
PTP_USB *ptp_usb = (PTP_USB *) params->data;
- packet_size = ptp_usb->inep_maxpacket;
+ packet_size = ptp_usb->outep_maxpacket;
LIBMTP_USB_DEBUG("SEND DATA PHASE\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/src/libusb-glue.c new/libmtp-1.1.15/src/libusb-glue.c
--- old/libmtp-1.1.14/src/libusb-glue.c 2017-10-01 21:49:13.000000000 +0200
+++ new/libmtp-1.1.15/src/libusb-glue.c 2017-10-06 13:54:11.000000000 +0200
@@ -1205,7 +1205,7 @@
unsigned long packet_size;
PTP_USB *ptp_usb = (PTP_USB *) params->data;
- packet_size = ptp_usb->inep_maxpacket;
+ packet_size = ptp_usb->outep_maxpacket;
LIBMTP_USB_DEBUG("SEND DATA PHASE\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/src/libusb1-glue.c new/libmtp-1.1.15/src/libusb1-glue.c
--- old/libmtp-1.1.14/src/libusb1-glue.c 2017-10-01 21:49:09.000000000 +0200
+++ new/libmtp-1.1.15/src/libusb1-glue.c 2017-10-19 07:29:48.000000000 +0200
@@ -1924,17 +1924,11 @@
libusb_kernel_driver_active(device_handle, ptp_usb->interface)
) {
if (LIBUSB_SUCCESS != libusb_detach_kernel_driver(device_handle, ptp_usb->interface)) {
- perror("libusb_detach_kernel_driver() failed, continuing anyway...");
+ perror("libusb_detach_kernel_driver() failed, continuing anyway...");
}
}
- usbresult = libusb_claim_interface(device_handle, ptp_usb->interface);
- if (usbresult != 0) {
- fprintf(stderr, "error returned by libusb_claim_interface() = %d", usbresult);
- return -1;
- }
-
/*
* Check if the config is set to something else than what we want
* to use. Only set the configuration if we absolutely have to.
@@ -1970,6 +1964,12 @@
}
}
+ usbresult = libusb_claim_interface(device_handle, ptp_usb->interface);
+ if (usbresult != 0) {
+ fprintf(stderr, "error returned by libusb_claim_interface() = %d", usbresult);
+ return -1;
+ }
+
/*
* If the altsetting is set to something different than we want, switch
* it.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/src/music-players.h new/libmtp-1.1.15/src/music-players.h
--- old/libmtp-1.1.14/src/music-players.h 2017-09-26 06:48:53.000000000 +0200
+++ new/libmtp-1.1.15/src/music-players.h 2018-03-24 11:08:04.000000000 +0100
@@ -4,7 +4,7 @@
*
* Copyright (C) 2005-2007 Richard A. Low <richard(a)wentnet.com>
* Copyright (C) 2005-2013 Linus Walleij <triad(a)df.lth.se>
- * Copyright (C) 2006-2007,2015-2017 Marcus Meissner <marcus(a)jet.franken.de>
+ * Copyright (C) 2006-2007,2015-2018 Marcus Meissner <marcus(a)jet.franken.de>
* Copyright (C) 2007 Ted Bullock
* Copyright (C) 2012 Sony Mobile Communications AB
*
@@ -628,6 +628,9 @@
/* Reported by Jocelyn Mayer <l_indien(a)magic.fr> */
{ "Acer", 0x0502, "Iconia One 10", 0x3841,
DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/bugs/1733/ */
+ { "Acer", 0x0502, "Liquid Zest 4G", 0x38a5,
+ DEVICE_FLAGS_ANDROID_BUGS },
/* Mia */
{ "Acer", 0x0502, "Liquid Zest Plus", 0x38bb,
DEVICE_FLAGS_ANDROID_BUGS },
@@ -846,6 +849,10 @@
{ "iRiver", 0x4102, "E30", 0x1167,
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
DEVICE_FLAG_OGG_IS_UNKNOWN },
+ /* https://sourceforge.net/p/libmtp/bugs/1766/ */
+ { "iRiver", 0x4102, "AK380", 0x1195,
+ DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
+ DEVICE_FLAG_OGG_IS_UNKNOWN },
/* https://sourceforge.net/p/libmtp/bugs/1634/
* copying flags from above */
{ "iRiver", 0x4102, "AK70", 0x1200,
@@ -1894,16 +1901,28 @@
DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria X MTP", 0x01e0,
DEVICE_FLAG_NONE },
+ /* https://sourceforge.net/p/libmtp/feature-requests/251/ */
+ { "SONY", 0x0fce, "XPeria SOV33", 0x01e1,
+ DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria XZ MTP", 0x01e7,
DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria X Compact MTP", 0x01e8,
DEVICE_FLAG_NONE },
+ /* https://sourceforge.net/p/libmtp/feature-requests/252/ */
+ { "SONY", 0x0fce, "XPeria G3123", 0x01eb,
+ DEVICE_FLAG_NONE },
/* https://sourceforge.net/p/libmtp/support-requests/247/ */
{ "SONY", 0x0fce, "XPeria XZ", 0x01ed,
DEVICE_FLAG_NONE },
/* https://sourceforge.net/p/libmtp/support-requests/251/ */
{ "SONY", 0x0fce, "XPeria XZ Premium", 0x01f1,
DEVICE_FLAG_NONE },
+ /* Nicholas O'Connor <lavacano(a)lavacano.net> on libmtp-discuss */
+ { "SONY", 0x0fce, "XPeria XZ1", 0x01f3,
+ DEVICE_FLAG_NONE },
+ /* https://sourceforge.net/p/libmtp/support-requests/252/ */
+ { "SONY", 0x0fce, "XPeria XZ1 Compact", 0x01f4,
+ DEVICE_FLAG_NONE },
/*
@@ -2015,14 +2034,22 @@
DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria X MTP+CDROM", 0x41e0,
DEVICE_FLAG_NONE },
+ { "SONY", 0x0fce, "XPeria SOV33 MTP+CDROM", 0x41e1,
+ DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria XZ MTP+CDROM", 0x41e7,
DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria X Compact MTP+CDROM", 0x41e8,
DEVICE_FLAG_NONE },
+ { "SONY", 0x0fce, "XPeria G3123 MTP+CDROM", 0x41eb,
+ DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria XZ CDROM", 0x41ed,
DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria XZ Premium MTP+CDROM", 0x41f1,
DEVICE_FLAG_NONE },
+ { "SONY", 0x0fce, "XPeria XZ1 MTP+CDROM", 0x41f3,
+ DEVICE_FLAG_NONE },
+ { "SONY", 0x0fce, "XPeria XZ1 Compact MTP+CDROM", 0x41f4,
+ DEVICE_FLAG_NONE },
/*
* MTP+ADB personalities of MTP devices (see above)
@@ -2157,14 +2184,22 @@
DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria X MTP+ADB", 0x51e0,
DEVICE_FLAG_NONE },
+ { "SONY", 0x0fce, "XPeria SOV33 MTP+ADB", 0x51e1,
+ DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria XZ MTP+ADB", 0x51e7,
DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria X Compact MTP+ADB", 0x51e8,
DEVICE_FLAG_NONE },
+ { "SONY", 0x0fce, "XPeria G3123 MTP+ADB", 0x51eb,
+ DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria XZ ADB", 0x51ed,
DEVICE_FLAG_NONE },
{ "SONY", 0x0fce, "XPeria XZ Premium MTP+ADB", 0x51f1,
DEVICE_FLAG_NONE },
+ { "SONY", 0x0fce, "XPeria XZ1 ADB", 0x51f3,
+ DEVICE_FLAG_NONE },
+ { "SONY", 0x0fce, "XPeria XZ1 Compact MTP+ADB", 0x51f4,
+ DEVICE_FLAG_NONE },
/*
* MTP+UMS modes
@@ -2678,6 +2713,9 @@
/* https://sourceforge.net/p/libmtp/bugs/1364/ */
{ "Asus", 0x0b05, "Zenfone 2 ZE551ML (MTP)", 0x5f03,
DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/feature-requests/255/ */
+ { "Asus", 0x0b05, "Zenfone V (MTP)", 0x610f,
+ DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1642/ */
{ "Asus", 0x0b05, "ME581CL", 0x7770,
DEVICE_FLAGS_ANDROID_BUGS },
@@ -2771,8 +2809,11 @@
/* https://sourceforge.net/p/libmtp/bugs/1250/ */
{ "Lenovo", 0x17ef, "A5500-F", 0x772b,
DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/bugs/1742/ */
+ { "Lenovo", 0x17ef, "A7600-F", 0x7730,
+ DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1391/ */
- { "Lenovo", 0x17ef, "A7600-F", 0x7731,
+ { "Lenovo", 0x17ef, "A7600-F 2nd", 0x7731,
DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1291/ */
{ "Lenovo", 0x17ef, "A3500-F", 0x7737,
@@ -2797,6 +2838,9 @@
/* https://sourceforge.net/p/libmtp/feature-requests/125/ */
{ "Lenovo", 0x17ef, "Vibe Z2", 0x77ea,
DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/feature-requests/253/ */
+ { "Lenovo", 0x17ef, "A7000-A Smartphone", 0x7882,
+ DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1360/ */
{ "Lenovo", 0x17ef, "K3 Note", 0x7883,
DEVICE_FLAGS_ANDROID_BUGS },
@@ -2852,15 +2896,27 @@
/* https://sourceforge.net/p/libmtp/support-requests/242/ */
{ "Lenovo", 0x17ef, "Tab 3 10 Plus", 0x79de,
DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/bugs/1755/ */
+ { "Lenovo", 0x17ef, "TB3-850M ", 0x79de,
+ DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1624/ */
{ "Lenovo", 0x17ef, "B Smartphone", 0x7a18,
DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/bugs/1738/ */
+ { "Lenovo", 0x17ef, "K6 Power", 0x7a2a,
+ DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1679/ */
{ "Lenovo", 0x17ef, "C2", 0x7a36,
DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/support-requests/248/ */
{ "Lenovo", 0x17ef, "P2c72", 0x7a36,
DEVICE_FLAGS_ANDROID_BUGS },
+ /* Marcus parents */
+ { "Lenovo", 0x17ef, "Tab 10", 0x7a50,
+ DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/bugs/1736/ */
+ { "Lenovo", 0x17ef, "P1060X", 0x9039,
+ DEVICE_FLAGS_ANDROID_BUGS },
/*
* Huawei
@@ -2885,6 +2941,9 @@
/* https://sourceforge.net/p/libmtp/feature-requests/173/ */
{ "Huawei", 0x12d1, "P9 Plus", 0x107e,
DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/support-requests/259/ */
+ { "Huawei", 0x12d1, "Y5 2017", 0x107f,
+ DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1361/ */
{ "Huawei", 0x12d1, "Ascend P8", 0x1082,
DEVICE_FLAGS_ANDROID_BUGS },
@@ -2911,6 +2970,9 @@
*/
{ "Huawei", 0x12d1, "CUN-U29", 0x2608,
DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/support-requests/257/ */
+ { "Huawei", 0x12d1, "LUA-L02", 0x260b,
+ DEVICE_FLAGS_ANDROID_BUGS },
{ "Huawei", 0x12d1, "Mediapad (mode 0)", 0x360f,
DEVICE_FLAGS_ANDROID_BUGS },
// Reported by Bearsh <bearsh(a)users.sourceforge.net>
@@ -2928,6 +2990,8 @@
/* https://sourceforge.net/p/libmtp/bugs/672/ */
{ "ZTE", 0x19d2, "Grand X In", 0x0343, DEVICE_FLAGS_ANDROID_BUGS },
{ "ZTE", 0x19d2, "V985", 0x0383, DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/bugs/1745/ */
+ { "ZTE", 0x19d2, "Blade L3", 0x2008, DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1328/ */
{ "ZTE", 0x19d2, "V5", 0xffce, DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1646/ */
@@ -3075,6 +3139,9 @@
DEVICE_FLAGS_ANDROID_BUGS },
{ "HTC", 0x0bb4, "HTC One M8 (MTP)", 0x0f25,
DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/feature-requests/245/ */
+ { "HTC", 0x0bb4, "HTC One U11 (MTP)", 0x0f26,
+ DEVICE_FLAGS_ANDROID_BUGS },
{ "HTC", 0x0bb4, "HTC One M8 (MTP+ADB)", 0x061a,
DEVICE_FLAGS_ANDROID_BUGS },
{ "HTC", 0x0bb4, "HTC One M8 (MTP+UMS)", 0x0fb5,
@@ -3124,6 +3191,8 @@
* NEC
*/
{ "NEC", 0x0409, "FOMA N01A", 0x0242, DEVICE_FLAG_NONE },
+ /* https://sourceforge.net/p/libmtp/bugs/1724/ */
+ { "Casio", 0x0409, "GzOne Commando C771", 0x02ed, DEVICE_FLAG_NONE },
{ "NEC", 0x0409, "Casio C811", 0x0326, DEVICE_FLAG_NONE },
{ "NEC", 0x0409, "Casio CA-201L", 0x0432, DEVICE_FLAG_NONE },
@@ -3214,7 +3283,7 @@
{ "Amazon", 0x1949, "Kindle Fire 5", 0x0222,
DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1718/ */
- { "Amazon", 0x1949, "Kindle Fire 8", 0x0261,
+ { "Amazon", 0x1949, "Kindle Fire 8 (2nd ID)", 0x0261,
DEVICE_FLAGS_ANDROID_BUGS },
{ "Amazon", 0x1949, "Fire Phone", 0x0800,
DEVICE_FLAGS_ANDROID_BUGS },
@@ -3516,6 +3585,8 @@
/* https://sourceforge.net/p/libmtp/bugs/1292/ */
{ "Prestigio", 0x29e4, "5505 DUO ", 0x1103, DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/support-requests/260/ */
+ { "MediaTek", 0x29e4, "5508 DUO", 0x1201, DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1243/ */
{ "Prestigio", 0x29e4, "5504 DUO ", 0x1203, DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/feature-requests/141/ */
@@ -3555,8 +3626,12 @@
{ "Caterpillar", 0x04b7, "Cat S50 (2nd ID)", 0x88aa, DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1603/ */
{ "Caterpillar", 0x04b7, "Cat S40", 0x88b0, DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/support-requests/253/ */
+ { "Caterpillar", 0x04b7, "Cat S30", 0x88b9, DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/feature-requests/176/ */
{ "Caterpillar", 0x04b7, "Cat S60", 0x88c0, DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/bugs/1757/ */
+ { "Caterpillar", 0x04b7, "Cat S41", 0x88c6, DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/682/ */
{ "Pegatron", 0x1d4d, "Chagall (ADB)", 0x5035, DEVICE_FLAGS_ANDROID_BUGS },
@@ -3600,6 +3675,9 @@
*/
{ "YU Yureka", 0x1ebf, "Vodafone smart turbo 4", 0x7f29, DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/feature-requests/249/ */
+ { "Coolpad", 0x1ebf, "801ES", 0x7029, DEVICE_FLAGS_ANDROID_BUGS },
+
/* https://sourceforge.net/p/libmtp/bugs/1314/ */
{ "BenQ", 0x1d45, "F5", 0x459d, DEVICE_FLAGS_ANDROID_BUGS },
@@ -3634,10 +3712,13 @@
{ "GoPro" , 0x2672, "HERO+", 0x0021, DEVICE_FLAG_NONE },
{ "GoPro" , 0x2672, "HERO5 Black", 0x0027, DEVICE_FLAG_NONE },
{ "GoPro" , 0x2672, "HERO5 Session", 0x0029, DEVICE_FLAG_NONE },
+ { "GoPro" , 0x2672, "HERO6 Black", 0x0037, DEVICE_FLAG_NONE },
/* https://sourceforge.net/p/libmtp/bugs/1490/ */
{ "Marshall" , 0x2ad9, "London", 0x000b, DEVICE_FLAG_NONE },
+ /* https://sourceforge.net/p/libmtp/feature-requests/257/ */
+ { "Fairphone" , 0x2ae5, "Fairphone 2 (ID2)", 0x6764, DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/support-requests/202/ */
{ "Fairphone" , 0x2ae5, "Fairphone 2", 0xf003, DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/support-requests/214/ */
@@ -3675,6 +3756,8 @@
/* https://sourceforge.net/p/libmtp/bugs/1716/ */
{ "Letv" , 0x2b0e, "Le Max2", 0x1840, DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/bugs/1768/ */
+ { "Letv" , 0x2b0e, "Le Max2 (ID2)", 0x1844, DEVICE_FLAGS_ANDROID_BUGS },
/* https://sourceforge.net/p/libmtp/bugs/1606/ */
{ "TP-Link" , 0x2357, "Neffos C5 (MTP)", 0x0314, DEVICE_FLAGS_ANDROID_BUGS },
@@ -3694,6 +3777,20 @@
/* https://sourceforge.net/p/libmtp/bugs/1663/ */
{ "Nextbit" , 0x2c3f, "Robin", 0x0001, DEVICE_FLAGS_ANDROID_BUGS },
+
+ /* https://sourceforge.net/p/libmtp/feature-requests/240/ */
+ { "Spreadtrum" , 0x1782, "STK Storm 2e Pluz", 0x4002, DEVICE_FLAGS_ANDROID_BUGS },
+
+ /* https://sourceforge.net/p/libmtp/support-requests/258/ */
+ { "Essential Phone" , 0x2e17, "PH-1a", 0xc030, DEVICE_FLAGS_ANDROID_BUGS },
+ /* https://sourceforge.net/p/libmtp/feature-requests/242/ */
+ { "Essential Phone" , 0x2e17, "PH-1", 0xc033, DEVICE_FLAGS_ANDROID_BUGS },
+
+ /* https://sourceforge.net/p/libmtp/feature-requests/247/ */
+ { "VEGA" , 0x10a9, "R3", 0x1105, DEVICE_FLAGS_ANDROID_BUGS },
+
+ /* https://sourceforge.net/p/libmtp/bugs/1764/ */
+ { "O&P Innovations" , 0x0746, "XDP-100R", 0xa003, DEVICE_FLAGS_ANDROID_BUGS },
/*
* Other strange stuff.
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/src/ptp.c new/libmtp-1.1.15/src/ptp.c
--- old/libmtp-1.1.14/src/ptp.c 2017-07-27 17:19:37.000000000 +0200
+++ new/libmtp-1.1.15/src/ptp.c 2018-03-17 09:19:02.000000000 +0100
@@ -1550,6 +1550,53 @@
}
/**
+ * ptp_moveobject:
+ * params: PTPParams*
+ * handle - source ObjectHandle
+ * storage - destination StorageID
+ * parent - destination parent ObjectHandle
+ *
+ * Move an object to a new location under the specified parent.
+ * Note that unlike most calls, 0 must be passed for the parent if the destination
+ * is the Storage root.
+ *
+ * Return values: Some PTP_RC_* code.
+ **/
+uint16_t
+ptp_moveobject (PTPParams* params, uint32_t handle, uint32_t storage, uint32_t parent)
+{
+ PTPContainer ptp;
+
+ PTP_CNT_INIT(ptp, PTP_OC_MoveObject, handle, storage, parent);
+ CHECK_PTP_RC(ptp_transaction(params, &ptp, PTP_DP_NODATA, 0, NULL, NULL));
+ /* If the object is cached and could be removed, cleanse cache. */
+ ptp_remove_object_from_cache(params, handle);
+ return PTP_RC_OK;
+}
+
+/**
+ * ptp_copyobject:
+ * params: PTPParams*
+ * handle - source ObjectHandle
+ * storage - destination StorageID
+ * parent - destination parent ObjectHandle
+ *
+ * Copy an object to a new location under the specified parent.
+ * Note that unlike most calls, 0 must be passed for the parent if the destination
+ * is the Storage root.
+ *
+ * Return values: Some PTP_RC_* code.
+ **/
+uint16_t
+ptp_copyobject (PTPParams* params, uint32_t handle, uint32_t storage, uint32_t parent)
+{
+ PTPContainer ptp;
+
+ PTP_CNT_INIT(ptp, PTP_OC_CopyObject, handle, storage, parent);
+ return ptp_transaction(params, &ptp, PTP_DP_NODATA, 0, NULL, NULL);
+}
+
+/**
* ptp_sendobjectinfo:
* params: PTPParams*
* uint32_t* store - destination StorageID on Responder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmtp-1.1.14/src/ptp.h new/libmtp-1.1.15/src/ptp.h
--- old/libmtp-1.1.14/src/ptp.h 2017-07-27 17:20:04.000000000 +0200
+++ new/libmtp-1.1.15/src/ptp.h 2018-03-17 09:19:02.000000000 +0100
@@ -2676,6 +2676,12 @@
uint16_t ptp_deleteobject (PTPParams* params, uint32_t handle,
uint32_t ofc);
+uint16_t ptp_moveobject (PTPParams* params, uint32_t handle,
+ uint32_t storage, uint32_t parent);
+
+uint16_t ptp_copyobject (PTPParams* params, uint32_t handle,
+ uint32_t storage, uint32_t parent);
+
uint16_t ptp_sendobjectinfo (PTPParams* params, uint32_t* store,
uint32_t* parenthandle, uint32_t* handle,
PTPObjectInfo* objectinfo);
1
0
Hello community,
here is the log from the commit of package python-setuptools_scm for openSUSE:Factory checked in at 2018-03-29 11:48:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-setuptools_scm (Old)
and /work/SRC/openSUSE:Factory/.python-setuptools_scm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-setuptools_scm"
Thu Mar 29 11:48:14 2018 rev:12 rq:590817 version:1.17.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-setuptools_scm/python-setuptools_scm.changes 2018-03-12 12:05:36.808589878 +0100
+++ /work/SRC/openSUSE:Factory/.python-setuptools_scm.new/python-setuptools_scm.changes 2018-03-29 11:48:15.834265812 +0200
@@ -1,0 +2,28 @@
+Fri Mar 23 23:59:40 UTC 2018 - arun(a)gmx.de
+
+- update to version 1.17.0:
+ * fix regression in git support - use a function to ensure it works
+ in egg isntalled mode
+ * actually fail if file finding fails in order to see broken setups
+ instead of generating broken dists (thanks Mehdi ABAAKOUK for both)
+
+- changes from version 1.16.2:
+ * fix regression in handling git export ignores (thanks Mehdi
+ ABAAKOUK)
+
+- changes from version 1.16.1:
+ * fix regression in support for old setuptools versions (thanks
+ Marco Clemencic)
+
+- changes from version 1.16.0:
+ * drop support for eol python versions
+ * #214 - fix missuse in surogate-escape api
+ * add the node-and-timestamp local version sheme
+ * respect git export ignores
+ * avoid shlex.split on windows
+ * fix #218 - better handling of mercurial edge-cases with tag
+ commits being considered as the tagged commit
+ * fix #223 - remove the dependency on the interal SetupttoolsVersion
+ as it was removed after long-standing deprecation
+
+-------------------------------------------------------------------
@@ -9,0 +38,11 @@
+
+-------------------------------------------------------------------
+Sun Jan 28 18:50:36 UTC 2018 - arun(a)gmx.de
+
+- specfile:
+ * update copyright year
+
+- update to version 1.15.7:
+ * Fix #174 with #207: Re-use samefile backport as developed in
+ jaraco.windows, and only use the backport where samefile is not
+ available.
Old:
----
setuptools_scm-1.15.6.tar.gz
New:
----
setuptools_scm-1.17.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-setuptools_scm.spec ++++++
--- /var/tmp/diff_new_pack.Pbz7LN/_old 2018-03-29 11:48:16.378246213 +0200
+++ /var/tmp/diff_new_pack.Pbz7LN/_new 2018-03-29 11:48:16.378246213 +0200
@@ -19,7 +19,7 @@
%bcond_with test
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-setuptools_scm
-Version: 1.15.6
+Version: 1.17.0
Release: 0
Summary: Manage your versions by scm tags
License: MIT
++++++ setuptools_scm-1.15.6.tar.gz -> setuptools_scm-1.17.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/.gitignore new/setuptools_scm-1.17.0/.gitignore
--- old/setuptools_scm-1.15.6/.gitignore 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/.gitignore 2018-03-20 11:15:19.000000000 +0100
@@ -6,6 +6,9 @@
## Directory-based project format:
.idea/
+### Other editors
+.*.swp
+
### Python template
# Byte-compiled / optimized
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/.travis.yml new/setuptools_scm-1.17.0/.travis.yml
--- old/setuptools_scm-1.15.6/.travis.yml 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/.travis.yml 2018-03-20 11:15:19.000000000 +0100
@@ -1,21 +1,20 @@
language: python
sudo: false
python:
-- '2.6'
- '2.7'
-- '3.3'
- '3.4'
- '3.5'
- '3.6'
+#- '3.7'
env:
- TOXENV=py-test
matrix:
include:
- - python: '2.7'
- env: TOXENV=flake8
- python: '3.5'
env: TOXENV=flake8
+ - python: '3.5'
+ env: TOXENV=check_readme
- python: '2.7'
env: SELFINSTALL=1
- python: '3.5'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/CHANGELOG.rst new/setuptools_scm-1.17.0/CHANGELOG.rst
--- old/setuptools_scm-1.15.6/CHANGELOG.rst 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/CHANGELOG.rst 2018-03-20 11:15:19.000000000 +0100
@@ -1,3 +1,44 @@
+v1.17.0
+========
+
+* fix regression in git support - use a function to ensure it works in egg isntalled mode
+* actually fail if file finding fails in order to see broken setups instead of generating broken dists
+
+ (thanks Mehdi ABAAKOUK for both)
+
+
+v1.16.2
+========
+
+* fix regression in handling git export ignores
+ (thanks Mehdi ABAAKOUK)
+
+v1.16.1
+=======
+
+* fix regression in support for old setuptools versions
+ (thanks Marco Clemencic)
+
+
+v1.16.0
+=======
+
+* drop support for eol python versions
+* #214 - fix missuse in surogate-escape api
+* add the node-and-timestamp local version sheme
+* respect git export ignores
+* avoid shlex.split on windows
+* fix #218 - better handling of mercurial edge-cases with tag commits
+ being considered as the tagged commit
+* fix #223 - remove the dependency on the interal SetupttoolsVersion
+ as it was removed after long-standing deprecation
+
+v1.15.7
+======
+
+* Fix #174 with #207: Re-use samefile backport as developed in
+ jaraco.windows, and only use the backport where samefile is
+ not available.
v1.15.6
=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/PKG-INFO new/setuptools_scm-1.17.0/PKG-INFO
--- old/setuptools_scm-1.15.6/PKG-INFO 2017-06-15 21:24:45.000000000 +0200
+++ new/setuptools_scm-1.17.0/PKG-INFO 2018-03-20 11:15:44.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: setuptools_scm
-Version: 1.15.6
+Version: 1.17.0
Summary: the blessed package to manage your versions by scm tags
Home-page: https://github.com/pypa/setuptools_scm/
Author: Ronny Pfannschmidt
@@ -62,14 +62,14 @@
try:
__version__ = get_distribution(__name__).version
except DistributionNotFound:
- # package is not installed
- pass
+ # package is not installed
+ pass
Programmatic usage
------------------
- In order to use ``setuptools_scm`` from code that one directory deeper
+ In order to use ``setuptools_scm`` from code that is one directory deeper
than the project's root, you can use:
.. code:: python
@@ -314,10 +314,9 @@
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
@@ -325,3 +324,4 @@
Classifier: Topic :: Software Development :: Version Control
Classifier: Topic :: System :: Software Distribution
Classifier: Topic :: Utilities
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/README.rst new/setuptools_scm-1.17.0/README.rst
--- old/setuptools_scm-1.15.6/README.rst 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/README.rst 2018-03-20 11:15:19.000000000 +0100
@@ -54,14 +54,14 @@
try:
__version__ = get_distribution(__name__).version
except DistributionNotFound:
- # package is not installed
- pass
+ # package is not installed
+ pass
Programmatic usage
------------------
-In order to use ``setuptools_scm`` from code that one directory deeper
+In order to use ``setuptools_scm`` from code that is one directory deeper
than the project's root, you can use:
.. code:: python
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/appveyor.yml new/setuptools_scm-1.17.0/appveyor.yml
--- old/setuptools_scm-1.15.6/appveyor.yml 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/appveyor.yml 2018-03-20 11:15:19.000000000 +0100
@@ -6,12 +6,6 @@
- PYTHON: "C:\\Python27-x64"
TOX_ENV: "py-test"
- - PYTHON: "C:\\Python33"
- TOX_ENV: "py-test"
-
- - PYTHON: "C:\\Python33-x64"
- TOX_ENV: "py-test"
-
- PYTHON: "C:\\Python34"
TOX_ENV: "py-test"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setup.cfg new/setuptools_scm-1.17.0/setup.cfg
--- old/setuptools_scm-1.15.6/setup.cfg 2017-06-15 21:24:45.000000000 +0200
+++ new/setuptools_scm-1.17.0/setup.cfg 2018-03-20 11:15:44.000000000 +0100
@@ -13,5 +13,4 @@
[egg_info]
tag_build =
tag_date = 0
-tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setup.py new/setuptools_scm-1.17.0/setup.py
--- old/setuptools_scm-1.15.6/setup.py 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/setup.py 2018-03-20 11:15:19.000000000 +0100
@@ -82,7 +82,7 @@
[setuptools_scm.files_command]
.hg = setuptools_scm.hg:FILES_COMMAND
- .git = setuptools_scm.git:FILES_COMMAND
+ .git = setuptools_scm.git:list_files_in_archive
[setuptools_scm.version_scheme]
guess-next-dev = setuptools_scm.version:guess_next_dev_version
@@ -90,6 +90,8 @@
[setuptools_scm.local_scheme]
node-and-date = setuptools_scm.version:get_local_node_and_date
+ node-and-timestamp = \
+ setuptools_scm.version:get_local_node_and_timestamp
dirty-tag = setuptools_scm.version:get_local_dirty_tag
""",
classifiers=[
@@ -97,10 +99,9 @@
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python',
+ 'Programming Language :: Python :: 2',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
@@ -109,6 +110,7 @@
'Topic :: System :: Software Distribution',
'Topic :: Utilities',
],
+ python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setuptools_scm/git.py new/setuptools_scm-1.17.0/setuptools_scm/git.py
--- old/setuptools_scm-1.15.6/setuptools_scm/git.py 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/setuptools_scm/git.py 2018-03-20 11:15:19.000000000 +0100
@@ -1,14 +1,19 @@
from .utils import do_ex, trace, has_command
from .version import meta
-from os.path import abspath, normcase, realpath, isfile, join
+
+from os.path import isfile, join
+import subprocess
+import tarfile
import warnings
-FILES_COMMAND = 'git ls-files'
-DEFAULT_DESCRIBE = 'git describe --dirty --tags --long --match *.*'
+try:
+ from os.path import samefile
+except ImportError:
+ from .win_py31_compat import samefile
-def _normalized(path):
- return normcase(abspath(realpath(path)))
+
+DEFAULT_DESCRIBE = 'git describe --dirty --tags --long --match *.*'
class GitWorkdir(object):
@@ -25,7 +30,7 @@
if ret:
return
trace('real root', real_wd)
- if _normalized(real_wd) != _normalized(wd):
+ if not samefile(real_wd, wd):
return
return cls(real_wd)
@@ -114,3 +119,13 @@
return meta(tag, distance=number, node=node, dirty=dirty)
else:
return meta(tag, node=node, dirty=dirty)
+
+
+def list_files_in_archive(path):
+ """List the files that 'git archive' generates.
+ """
+ cmd = ['git', 'archive', 'HEAD']
+ proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, cwd=path)
+ tf = tarfile.open(fileobj=proc.stdout, mode='r|*')
+ return [member.name for member in tf.getmembers()
+ if member.type != tarfile.DIRTYPE]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setuptools_scm/hg.py new/setuptools_scm-1.17.0/setuptools_scm/hg.py
--- old/setuptools_scm-1.15.6/setuptools_scm/hg.py 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/setuptools_scm/hg.py 2018-03-20 11:15:19.000000000 +0100
@@ -8,8 +8,14 @@
def _hg_tagdist_normalize_tagcommit(root, tag, dist, node):
dirty = node.endswith('+')
node = 'h' + node.strip('+')
- revset = ("(branch(.) and tag({tag!r})::. and file('re:^(?!\.hgtags).*$')"
- " - tag({tag!r}))").format(tag=tag)
+
+ # Detect changes since the specified tag
+ revset = ("(branch(.)" # look for revisions in this branch only
+ " and tag({tag!r})::." # after the last tag
+ # ignore commits that only modify .hgtags and nothing else:
+ " and (merge() or file('re:^(?!\.hgtags).*$'))"
+ " and not tag({tag!r}))" # ignore the tagged commit itself
+ ).format(tag=tag)
if tag != '0.0':
commits = do(['hg', 'log', '-r', revset, '--template', '{node|short}'],
root)
@@ -25,11 +31,11 @@
def parse(root):
if not has_command('hg'):
return
- l = do('hg id -i -t', root).split()
- if not l:
+ identity_data = do('hg id -i -t', root).split()
+ if not identity_data:
return
- node = l.pop(0)
- tags = tags_to_versions(l)
+ node = identity_data.pop(0)
+ tags = tags_to_versions(identity_data)
# filter tip in degraded mode on old setuptools
tags = [x for x in tags if x != 'tip']
dirty = node[-1] == '+'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setuptools_scm/integration.py new/setuptools_scm-1.17.0/setuptools_scm/integration.py
--- old/setuptools_scm-1.15.6/setuptools_scm/integration.py 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/setuptools_scm/integration.py 2018-03-20 11:15:19.000000000 +0100
@@ -36,10 +36,8 @@
else:
return command(path)
except Exception:
- import traceback
print("File Finder Failed for %s" % ep)
- traceback.print_exc()
- return []
+ raise
else:
return []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setuptools_scm/utils.py new/setuptools_scm-1.17.0/setuptools_scm/utils.py
--- old/setuptools_scm-1.15.6/setuptools_scm/utils.py 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/setuptools_scm/utils.py 2018-03-20 11:15:19.000000000 +0100
@@ -12,6 +12,8 @@
DEBUG = bool(os.environ.get("SETUPTOOLS_SCM_DEBUG"))
+IS_WINDOWS = platform.system() == 'Windows'
+PY2 = sys.version_info < (3,)
def trace(*k):
@@ -24,7 +26,7 @@
if isinstance(str_or_bytes, str):
return str_or_bytes.strip()
else:
- return str_or_bytes.decode('utf-8', 'surogate_escape').strip()
+ return str_or_bytes.decode('utf-8', 'surrogateescape').strip()
def _always_strings(env_dict):
@@ -32,9 +34,7 @@
On Windows and Python 2, environment dictionaries must be strings
and not unicode.
"""
- is_windows = platform.system == 'Windows'
- PY2 = sys.version_info < (3,)
- if is_windows or PY2:
+ if IS_WINDOWS or PY2:
env_dict.update(
(key, str(value))
for (key, value) in env_dict.items()
@@ -61,7 +61,7 @@
def do_ex(cmd, cwd='.'):
trace('cmd', repr(cmd))
- if not isinstance(cmd, (list, tuple)):
+ if os.name == "posix" and not isinstance(cmd, (list, tuple)):
cmd = shlex.split(cmd)
p = _popen_pipes(cmd, cwd)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setuptools_scm/version.py new/setuptools_scm-1.17.0/setuptools_scm/version.py
--- old/setuptools_scm-1.15.6/setuptools_scm/version.py 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/setuptools_scm/version.py 2018-03-20 11:15:19.000000000 +0100
@@ -7,28 +7,36 @@
from pkg_resources import iter_entry_points
from distutils import log
+from pkg_resources import parse_version
-try:
- from pkg_resources import parse_version, SetuptoolsVersion
-except ImportError as e:
- parse_version = SetuptoolsVersion = None
+
+def _get_version_class():
+ modern_version = parse_version("1.0")
+ if isinstance(modern_version, tuple):
+ return None
+ else:
+ return type(modern_version)
+
+
+VERSION_CLASS = _get_version_class()
def _warn_if_setuptools_outdated():
- if parse_version is None:
+ if VERSION_CLASS is None:
log.warn("your setuptools is too old (<12)")
log.warn("setuptools_scm functionality is degraded")
def callable_or_entrypoint(group, callable_or_name):
trace('ep', (group, callable_or_name))
- if isinstance(callable_or_name, str):
- for ep in iter_entry_points(group, callable_or_name):
- trace("ep found:", ep.name)
- return ep.load()
- else:
+
+ if callable(callable_or_name):
return callable_or_name
+ for ep in iter_entry_points(group, callable_or_name):
+ trace("ep found:", ep.name)
+ return ep.load()
+
def tag_to_version(tag):
trace('tag', tag)
@@ -39,11 +47,11 @@
# also required for old versions of setuptools
version = tag.rsplit('-', 1)[-1].lstrip('v')
- if parse_version is None:
+ if VERSION_CLASS is None:
return version
version = parse_version(version)
trace('version', repr(version))
- if isinstance(version, SetuptoolsVersion):
+ if isinstance(version, VERSION_CLASS):
return version
@@ -91,7 +99,7 @@
def _parse_tag(tag, preformatted):
if preformatted:
return tag
- if SetuptoolsVersion is None or not isinstance(tag, SetuptoolsVersion):
+ if VERSION_CLASS is None or not isinstance(tag, VERSION_CLASS):
tag = tag_to_version(tag)
return tag
@@ -143,6 +151,20 @@
return version.format_choice("+{node}", "+{node}.d{time:%Y%m%d}")
+def get_local_node_and_timestamp(version, fmt='%Y%m%d%H%M%S'):
+ if version.exact or version.node is None:
+ return version.format_choice("",
+ "+d{time:"
+ + "{fmt}".format(fmt=fmt)
+ + "}")
+ else:
+ return version.format_choice("+{node}",
+ "+{node}"
+ + ".d{time:"
+ + "{fmt}".format(fmt=fmt)
+ + "}")
+
+
def get_local_dirty_tag(version):
return version.format_choice('', '+dirty')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setuptools_scm/win_py31_compat.py new/setuptools_scm-1.17.0/setuptools_scm/win_py31_compat.py
--- old/setuptools_scm-1.15.6/setuptools_scm/win_py31_compat.py 1970-01-01 01:00:00.000000000 +0100
+++ new/setuptools_scm-1.17.0/setuptools_scm/win_py31_compat.py 2018-03-20 11:15:19.000000000 +0100
@@ -0,0 +1,214 @@
+"""
+Backport of os.path.samefile for Python prior to 3.2
+on Windows from jaraco.windows 3.8.
+
+DON'T EDIT THIS FILE!
+
+Instead, file tickets and PR's with `jaraco.windows
+<https://github.com/jaraco/jaraco.windows>`_ and request
+a port to setuptools_scm.
+"""
+
+import os
+import nt
+import posixpath
+import ctypes.wintypes
+import sys
+import __builtin__ as builtins
+
+
+##
+# From jaraco.windows.error
+
+def format_system_message(errno):
+ """
+ Call FormatMessage with a system error number to retrieve
+ the descriptive error message.
+ """
+ # first some flags used by FormatMessageW
+ ALLOCATE_BUFFER = 0x100
+ FROM_SYSTEM = 0x1000
+
+ # Let FormatMessageW allocate the buffer (we'll free it below)
+ # Also, let it know we want a system error message.
+ flags = ALLOCATE_BUFFER | FROM_SYSTEM
+ source = None
+ message_id = errno
+ language_id = 0
+ result_buffer = ctypes.wintypes.LPWSTR()
+ buffer_size = 0
+ arguments = None
+ bytes = ctypes.windll.kernel32.FormatMessageW(
+ flags,
+ source,
+ message_id,
+ language_id,
+ ctypes.byref(result_buffer),
+ buffer_size,
+ arguments,
+ )
+ # note the following will cause an infinite loop if GetLastError
+ # repeatedly returns an error that cannot be formatted, although
+ # this should not happen.
+ handle_nonzero_success(bytes)
+ message = result_buffer.value
+ ctypes.windll.kernel32.LocalFree(result_buffer)
+ return message
+
+
+class WindowsError(builtins.WindowsError):
+ """
+ More info about errors at
+ http://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspx
+ """
+
+ def __init__(self, value=None):
+ if value is None:
+ value = ctypes.windll.kernel32.GetLastError()
+ strerror = format_system_message(value)
+ if sys.version_info > (3, 3):
+ args = 0, strerror, None, value
+ else:
+ args = value, strerror
+ super(WindowsError, self).__init__(*args)
+
+ @property
+ def message(self):
+ return self.strerror
+
+ @property
+ def code(self):
+ return self.winerror
+
+ def __str__(self):
+ return self.message
+
+ def __repr__(self):
+ return '{self.__class__.__name__}({self.winerror})'.format(**vars())
+
+
+def handle_nonzero_success(result):
+ if result == 0:
+ raise WindowsError()
+
+
+##
+# From jaraco.windows.api.filesystem
+
+FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000
+FILE_FLAG_BACKUP_SEMANTICS = 0x2000000
+OPEN_EXISTING = 3
+FILE_ATTRIBUTE_NORMAL = 0x80
+FILE_READ_ATTRIBUTES = 0x80
+INVALID_HANDLE_VALUE = ctypes.wintypes.HANDLE(-1).value
+
+
+class BY_HANDLE_FILE_INFORMATION(ctypes.Structure):
+ _fields_ = [
+ ('file_attributes', ctypes.wintypes.DWORD),
+ ('creation_time', ctypes.wintypes.FILETIME),
+ ('last_access_time', ctypes.wintypes.FILETIME),
+ ('last_write_time', ctypes.wintypes.FILETIME),
+ ('volume_serial_number', ctypes.wintypes.DWORD),
+ ('file_size_high', ctypes.wintypes.DWORD),
+ ('file_size_low', ctypes.wintypes.DWORD),
+ ('number_of_links', ctypes.wintypes.DWORD),
+ ('file_index_high', ctypes.wintypes.DWORD),
+ ('file_index_low', ctypes.wintypes.DWORD),
+ ]
+
+ @property
+ def file_size(self):
+ return (self.file_size_high << 32) + self.file_size_low
+
+ @property
+ def file_index(self):
+ return (self.file_index_high << 32) + self.file_index_low
+
+
+class SECURITY_ATTRIBUTES(ctypes.Structure):
+ _fields_ = (
+ ('length', ctypes.wintypes.DWORD),
+ ('p_security_descriptor', ctypes.wintypes.LPVOID),
+ ('inherit_handle', ctypes.wintypes.BOOLEAN),
+ )
+
+
+LPSECURITY_ATTRIBUTES = ctypes.POINTER(SECURITY_ATTRIBUTES)
+
+
+CreateFile = ctypes.windll.kernel32.CreateFileW
+CreateFile.argtypes = (
+ ctypes.wintypes.LPWSTR,
+ ctypes.wintypes.DWORD,
+ ctypes.wintypes.DWORD,
+ LPSECURITY_ATTRIBUTES,
+ ctypes.wintypes.DWORD,
+ ctypes.wintypes.DWORD,
+ ctypes.wintypes.HANDLE,
+)
+CreateFile.restype = ctypes.wintypes.HANDLE
+
+GetFileInformationByHandle = ctypes.windll.kernel32.GetFileInformationByHandle
+GetFileInformationByHandle.restype = ctypes.wintypes.BOOL
+GetFileInformationByHandle.argtypes = (
+ ctypes.wintypes.HANDLE,
+ ctypes.POINTER(BY_HANDLE_FILE_INFORMATION),
+)
+
+
+##
+# From jaraco.windows.filesystem
+
+def compat_stat(path):
+ """
+ Generate stat as found on Python 3.2 and later.
+ """
+ stat = os.stat(path)
+ info = get_file_info(path)
+ # rewrite st_ino, st_dev, and st_nlink based on file info
+ return nt.stat_result(
+ (stat.st_mode,) +
+ (info.file_index, info.volume_serial_number, info.number_of_links) +
+ stat[4:]
+ )
+
+
+def samefile(f1, f2):
+ """
+ Backport of samefile from Python 3.2 with support for Windows.
+ """
+ return posixpath.samestat(compat_stat(f1), compat_stat(f2))
+
+
+def get_file_info(path):
+ # open the file the same way CPython does in posixmodule.c
+ desired_access = FILE_READ_ATTRIBUTES
+ share_mode = 0
+ security_attributes = None
+ creation_disposition = OPEN_EXISTING
+ flags_and_attributes = (
+ FILE_ATTRIBUTE_NORMAL |
+ FILE_FLAG_BACKUP_SEMANTICS |
+ FILE_FLAG_OPEN_REPARSE_POINT
+ )
+ template_file = None
+
+ handle = CreateFile(
+ path,
+ desired_access,
+ share_mode,
+ security_attributes,
+ creation_disposition,
+ flags_and_attributes,
+ template_file,
+ )
+
+ if handle == INVALID_HANDLE_VALUE:
+ raise WindowsError()
+
+ info = BY_HANDLE_FILE_INFORMATION()
+ res = GetFileInformationByHandle(handle, info)
+ handle_nonzero_success(res)
+
+ return info
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setuptools_scm.egg-info/PKG-INFO new/setuptools_scm-1.17.0/setuptools_scm.egg-info/PKG-INFO
--- old/setuptools_scm-1.15.6/setuptools_scm.egg-info/PKG-INFO 2017-06-15 21:24:45.000000000 +0200
+++ new/setuptools_scm-1.17.0/setuptools_scm.egg-info/PKG-INFO 2018-03-20 11:15:44.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: setuptools-scm
-Version: 1.15.6
+Version: 1.17.0
Summary: the blessed package to manage your versions by scm tags
Home-page: https://github.com/pypa/setuptools_scm/
Author: Ronny Pfannschmidt
@@ -62,14 +62,14 @@
try:
__version__ = get_distribution(__name__).version
except DistributionNotFound:
- # package is not installed
- pass
+ # package is not installed
+ pass
Programmatic usage
------------------
- In order to use ``setuptools_scm`` from code that one directory deeper
+ In order to use ``setuptools_scm`` from code that is one directory deeper
than the project's root, you can use:
.. code:: python
@@ -314,10 +314,9 @@
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
@@ -325,3 +324,4 @@
Classifier: Topic :: Software Development :: Version Control
Classifier: Topic :: System :: Software Distribution
Classifier: Topic :: Utilities
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setuptools_scm.egg-info/SOURCES.txt new/setuptools_scm-1.17.0/setuptools_scm.egg-info/SOURCES.txt
--- old/setuptools_scm-1.15.6/setuptools_scm.egg-info/SOURCES.txt 2017-06-15 21:24:45.000000000 +0200
+++ new/setuptools_scm-1.17.0/setuptools_scm.egg-info/SOURCES.txt 2018-03-20 11:15:44.000000000 +0100
@@ -17,6 +17,7 @@
setuptools_scm/integration.py
setuptools_scm/utils.py
setuptools_scm/version.py
+setuptools_scm/win_py31_compat.py
setuptools_scm.egg-info/PKG-INFO
setuptools_scm.egg-info/SOURCES.txt
setuptools_scm.egg-info/dependency_links.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/setuptools_scm.egg-info/entry_points.txt new/setuptools_scm-1.17.0/setuptools_scm.egg-info/entry_points.txt
--- old/setuptools_scm-1.15.6/setuptools_scm.egg-info/entry_points.txt 2017-06-15 21:24:45.000000000 +0200
+++ new/setuptools_scm-1.17.0/setuptools_scm.egg-info/entry_points.txt 2018-03-20 11:15:44.000000000 +0100
@@ -16,7 +16,7 @@
[setuptools_scm.files_command]
.hg = setuptools_scm.hg:FILES_COMMAND
- .git = setuptools_scm.git:FILES_COMMAND
+ .git = setuptools_scm.git:list_files_in_archive
[setuptools_scm.version_scheme]
guess-next-dev = setuptools_scm.version:guess_next_dev_version
@@ -24,5 +24,6 @@
[setuptools_scm.local_scheme]
node-and-date = setuptools_scm.version:get_local_node_and_date
+ node-and-timestamp = setuptools_scm.version:get_local_node_and_timestamp
dirty-tag = setuptools_scm.version:get_local_dirty_tag
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/testing/test_functions.py new/setuptools_scm-1.17.0/testing/test_functions.py
--- old/setuptools_scm-1.15.6/testing/test_functions.py 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/testing/test_functions.py 2018-03-20 11:15:19.000000000 +0100
@@ -1,9 +1,12 @@
import pytest
+import sys
import pkg_resources
from setuptools_scm import dump_version, get_version, PRETEND_KEY
from setuptools_scm.version import guess_next_version, meta, format_version
from setuptools_scm.utils import has_command
+PY3 = sys.version_info > (2,)
+
class MockTime(object):
def __format__(self, *k):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/testing/test_git.py new/setuptools_scm-1.17.0/testing/test_git.py
--- old/setuptools_scm-1.15.6/testing/test_git.py 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/testing/test_git.py 2018-03-20 11:15:19.000000000 +0100
@@ -39,6 +39,12 @@
assert wd.version.startswith('0.2')
+(a)pytest.mark.issue(179)
+def test_unicode_version_scheme(wd):
+ scheme = b'guess-next-dev'.decode('ascii')
+ assert wd.get_version(version_scheme=scheme)
+
+
@pytest.mark.issue(108)
@pytest.mark.issue(109)
def test_git_worktree(wd):
@@ -106,3 +112,24 @@
wd.commit_testfile()
wd('git tag newstyle-development-started')
assert wd.version.startswith('0.1.dev1+g')
+
+
+def test_git_archive_export_ignore(wd):
+ wd.write('test1.txt', 'test')
+ wd.write('test2.txt', 'test')
+ wd.write('.git/info/attributes',
+ # Explicitly include test1.txt so that the test is not affected by
+ # a potentially global gitattributes file on the test machine.
+ '/test1.txt -export-ignore\n/test2.txt export-ignore')
+ wd('git add test1.txt test2.txt')
+ wd.commit()
+ assert integration.find_files(str(wd.cwd)) == ['test1.txt']
+
+
+(a)pytest.mark.issue(228)
+def test_git_archive_subdirectory(wd):
+ wd('mkdir foobar')
+ wd.write('foobar/test1.txt', 'test')
+ wd('git add foobar')
+ wd.commit()
+ assert integration.find_files(str(wd.cwd)) == ['foobar/test1.txt']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/testing/test_mercurial.py new/setuptools_scm-1.17.0/testing/test_mercurial.py
--- old/setuptools_scm-1.15.6/testing/test_mercurial.py 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/testing/test_mercurial.py 2018-03-20 11:15:19.000000000 +0100
@@ -108,3 +108,47 @@
def test_parse_no_worktree(tmpdir):
ret = parse(str(tmpdir))
assert ret is None
+
+
+(a)pytest.fixture
+def version_1_0(wd):
+ wd('hg branch default')
+ wd.commit_testfile()
+ wd('hg tag 1.0 -u test -d "0 0"')
+ return wd
+
+
+(a)pytest.fixture
+def pre_merge_commit_after_tag(wd, version_1_0):
+ wd('hg branch testbranch')
+ wd.write('branchfile', 'branchtext')
+ wd(wd.add_command)
+ wd.commit()
+ wd('hg update default')
+ wd('hg merge testbranch')
+ return wd
+
+
+(a)pytest.mark.usefixtures("pre_merge_commit_after_tag")
+def test_version_bump_before_merge_commit(wd):
+ assert wd.version.startswith('1.1.dev1+')
+
+
+(a)pytest.mark.issue(219)
+(a)pytest.mark.usefixtures("pre_merge_commit_after_tag")
+def test_version_bump_from_merge_commit(wd):
+ wd.commit()
+ assert wd.version.startswith('1.1.dev3+') # issue 219
+
+
+(a)pytest.mark.usefixtures("version_1_0")
+def test_version_bump_from_commit_including_hgtag_mods(wd):
+ """ Test the case where a commit includes changes to .hgtags and other files
+ """
+ with wd.cwd.join('.hgtags').open('a') as tagfile:
+ tagfile.write('0 0\n')
+ wd.write('branchfile', 'branchtext')
+ wd(wd.add_command)
+ assert wd.version.startswith('1.1.dev1+') # bump from dirty version
+ wd.commit() # commits both the testfile _and_ .hgtags
+ assert wd.version.startswith('1.1.dev2+')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools_scm-1.15.6/tox.ini new/setuptools_scm-1.17.0/tox.ini
--- old/setuptools_scm-1.15.6/tox.ini 2017-06-15 21:24:23.000000000 +0200
+++ new/setuptools_scm-1.17.0/tox.ini 2018-03-20 11:15:19.000000000 +0100
@@ -1,5 +1,5 @@
[tox]
-envlist=py{27,34}-test,flake8
+envlist=py{27,34,35,36,37}-test,flake8,check_readme
[flake8]
max-complexity = 10
@@ -18,7 +18,7 @@
flake8
mccabe
commands =
- flake8 setuptools_scm/ testing/ setup.py
+ flake8 setuptools_scm/ testing/ setup.py --exclude=setuptools_scm/win_py31_compat.py
[testenv:check_readme]
skip_install=True
1
0
Hello community,
here is the log from the commit of package vim for openSUSE:Factory checked in at 2018-03-29 11:48:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vim (Old)
and /work/SRC/openSUSE:Factory/.vim.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vim"
Thu Mar 29 11:48:05 2018 rev:208 rq:590762 version:8.0.1568
Changes:
--------
--- /work/SRC/openSUSE:Factory/vim/vim.changes 2018-03-12 12:08:54.725496020 +0100
+++ /work/SRC/openSUSE:Factory/.vim.new/vim.changes 2018-03-29 11:48:08.322536457 +0200
@@ -1,0 +2,6 @@
+Fri Mar 23 12:15:38 UTC 2018 - lnussel(a)suse.de
+
+- instead of explicitly unsetting mouse, remove it from the defaults in the
+ first place (boo#1079185, vim-8.0.1568-defaults.patch)
+
+-------------------------------------------------------------------
New:
----
vim-8.0.1568-defaults.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vim.spec ++++++
--- /var/tmp/diff_new_pack.w6yWTN/_old 2018-03-29 11:48:11.198432839 +0200
+++ /var/tmp/diff_new_pack.w6yWTN/_new 2018-03-29 11:48:11.202432695 +0200
@@ -60,6 +60,7 @@
Patch23: vim-8.0-ttytype-test.patch
Patch24: disable-unreliable-tests.patch
Patch100: vim73-no-static-libpython.patch
+Patch101: vim-8.0.1568-defaults.patch
BuildRequires: autoconf
BuildRequires: db-devel
BuildRequires: fdupes
@@ -165,6 +166,7 @@
%patch23 -p1
%patch24 -p1
%patch100 -p1
+%patch101 -p1
cp %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE8} %{SOURCE10} .
# Unreliable tests
++++++ suse.vimrc ++++++
--- /var/tmp/diff_new_pack.w6yWTN/_old 2018-03-29 11:48:11.330428083 +0200
+++ /var/tmp/diff_new_pack.w6yWTN/_new 2018-03-29 11:48:11.334427939 +0200
@@ -70,9 +70,6 @@
" allow backspacing over everything in insert mode
set backspace=indent,eol,start
-" Fix cut-n-paste bsc#1079185
-set mouse=
-
" Complete longest common string, then each full match
" enable this for bash compatible behaviour
" set wildmode=longest,full
++++++ vim-8.0.1568-defaults.patch ++++++
Index: vim-8.0.1568/runtime/defaults.vim
===================================================================
--- vim-8.0.1568.orig/runtime/defaults.vim
+++ vim-8.0.1568/runtime/defaults.vim
@@ -75,9 +75,11 @@ inoremap <C-U> <C-G>u<C-U>
" In many terminal emulators the mouse works just fine. By enabling it you
" can position the cursor, Visually select and scroll with the mouse.
-if has('mouse')
- set mouse=a
-endif
+" disabled in (open)SUSE to make copy&paste work as most people
+" expect it bsc#1079185
+"if has('mouse')
+" set mouse=a
+"endif
" Switch syntax highlighting on when the terminal has colors or when using the
" GUI (which always has colors).
1
0
Hello community,
here is the log from the commit of package python-configparser for openSUSE:Factory checked in at 2018-03-29 11:48:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-configparser (Old)
and /work/SRC/openSUSE:Factory/.python-configparser.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-configparser"
Thu Mar 29 11:48:01 2018 rev:5 rq:590724 version:3.5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-configparser/python-configparser.changes 2017-08-10 14:00:17.352241473 +0200
+++ /work/SRC/openSUSE:Factory/.python-configparser.new/python-configparser.changes 2018-03-29 11:48:02.842733896 +0200
@@ -1,0 +2,7 @@
+Fri Mar 23 15:14:48 UTC 2018 - toddrme2178(a)gmail.com
+
+- Switch to singlespec package
+- Build for python3 < 3.5
+- Make structure consistent with other backports packages
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-configparser.spec ++++++
--- /var/tmp/diff_new_pack.u60Nsg/_old 2018-03-29 11:48:03.430712711 +0200
+++ /var/tmp/diff_new_pack.u60Nsg/_new 2018-03-29 11:48:03.434712567 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-configparser
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2016, Martin Hauke <mardnh(a)gmx.de>
#
# All modifications and additions to the file contributed by third parties
@@ -17,6 +17,7 @@
#
+%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-configparser
Version: 3.5.0
Release: 0
@@ -24,14 +25,20 @@
License: MIT
Group: Development/Languages/Python
Url: http://docs.python.org/3/library/configparser.html
-Source: https://pypi.io/packages/source/c/configparser/configparser-%{version}.tar.…
+Source: https://files.pythonhosted.org/packages/source/c/configparser/configparser-…
+BuildRequires: %{python_module backports}
+BuildRequires: %{python_module devel}
+BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
-BuildRequires: python-devel
-BuildRequires: python-setuptools
+BuildRequires: python-rpm-macros
Requires: python-backports
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
-Provides: python2-configparser = %{version}
+
+%if %{python3_version_nodots} >= 35
+%define skip_python3 1
+%endif
+
+%python_subpackages
%description
The ancient ConfigParser module available in the standard library 2.x has
@@ -42,16 +49,16 @@
%setup -q -n configparser-%{version}
%build
-python setup.py build
+%python_build
%install
-python setup.py install --prefix=%{_prefix} --root=%{buildroot}
+%python_install
+%python_expand %fdupes %{buildroot}%{$python_sitelib}/backports/configparser/
-%files
+%files %{python_files}
%defattr(-,root,root,-)
%doc README.rst
-%{python_sitelib}/configparser.py*
-%dir %{python_sitelib}/backports/
+%python2_only %{python_sitelib}/configparser.py*
%{python_sitelib}/backports/configparser/
%{python_sitelib}/configparser-%{version}-py*.egg-info
%{python_sitelib}/configparser-%{version}-py*-nspkg.pth
1
0
Hello community,
here is the log from the commit of package python-configparser2 for openSUSE:Factory checked in at 2018-03-29 11:47:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-configparser2 (Old)
and /work/SRC/openSUSE:Factory/.python-configparser2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-configparser2"
Thu Mar 29 11:47:55 2018 rev:3 rq:590721 version:4.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-configparser2/python-configparser2.changes 2017-08-10 14:00:45.440287914 +0200
+++ /work/SRC/openSUSE:Factory/.python-configparser2.new/python-configparser2.changes 2018-03-29 11:47:57.082941427 +0200
@@ -1,0 +2,5 @@
+Fri Mar 23 15:12:42 UTC 2018 - toddrme2178(a)gmail.com
+
+- Various cleanups and fixes
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-configparser2.spec ++++++
--- /var/tmp/diff_new_pack.OwwiwV/_old 2018-03-29 11:47:58.782880176 +0200
+++ /var/tmp/diff_new_pack.OwwiwV/_new 2018-03-29 11:47:58.786880032 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-configparser2
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2016, Martin Hauke <mardnh(a)gmx.de>
#
# All modifications and additions to the file contributed by third parties
@@ -26,6 +26,7 @@
Group: Development/Languages/Python
Url: http://docs.python.org/3/library/configparser.html
Source: https://files.pythonhosted.org/packages/source/c/configparser2/configparser…
+BuildRequires: %{python_module backports}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
@@ -58,7 +59,6 @@
%defattr(-,root,root,-)
%doc README.rst
%python2_only %{python_sitelib}/configparser2.py*
-%dir %{python_sitelib}/backports/
%{python_sitelib}/backports/configparser2/
%{python_sitelib}/configparser2-%{version}-py*.egg-info
%{python_sitelib}/configparser2-%{version}-py*-nspkg.pth
1
0
29 Mar '18
Hello community,
here is the log from the commit of package python-backports.unittest_mock for openSUSE:Factory checked in at 2018-03-29 11:47:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-backports.unittest_mock (Old)
and /work/SRC/openSUSE:Factory/.python-backports.unittest_mock.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-backports.unittest_mock"
Thu Mar 29 11:47:49 2018 rev:4 rq:590716 version:1.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-backports.unittest_mock/python-backports.unittest_mock.changes 2017-08-10 13:42:28.978653207 +0200
+++ /work/SRC/openSUSE:Factory/.python-backports.unittest_mock.new/python-backports.unittest_mock.changes 2018-03-29 11:47:51.135155735 +0200
@@ -1,0 +2,7 @@
+Fri Mar 23 14:35:36 UTC 2018 - toddrme2178(a)gmail.com
+
+- Switch to singlespec package
+- Build for python3 < 3.3
+- Make structure consistent with other backports packages
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-backports.unittest_mock.spec ++++++
--- /var/tmp/diff_new_pack.fuNqyd/_old 2018-03-29 11:47:52.191117687 +0200
+++ /var/tmp/diff_new_pack.fuNqyd/_new 2018-03-29 11:47:52.195117543 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-backports.unittest_mock
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,6 +16,7 @@
#
+%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-backports.unittest_mock
Version: 1.3
Release: 0
@@ -24,7 +25,16 @@
Group: Development/Languages/Python
Url: https://github.com/jaraco/backports.unittest_mock
Source: https://files.pythonhosted.org/packages/source/b/backports.unittest_mock/ba…
-BuildRequires: python
+BuildRequires: %{python_module devel}
+BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module setuptools_scm}
+BuildRequires: fdupes
+BuildRequires: python-rpm-macros
+# SECTION test requirements
+BuildRequires: %{python_module mock}
+BuildRequires: %{python_module pytest}
+BuildRequires: %{python_module pytest-runner}
+# /SECTION
# NOTE:
# %%{python_sitelib}/backports is a namespace package, and so under python 2 it must have a proper namespace __init__.py
# python-backports provides this __init__.py to prevent backports packages from conflicting.
@@ -32,17 +42,17 @@
# https://pypi.python.org/pypi/backports/
# https://www.python.org/dev/peps/pep-0420/%23namespace-packages-today
# If you need to link, the python-backports package is built as a subpackage of python-configparser
-BuildRequires: python-backports
-BuildRequires: python-mock
-BuildRequires: python-pytest
-BuildRequires: python-pytest-runner
-BuildRequires: python-setuptools
-BuildRequires: python-setuptools_scm
+BuildRequires: %{python_module backports}
Requires: python-backports
Requires: python-mock
-Provides: python2-backports.unittest_mock = %{version}
BuildArch: noarch
+%if %{python3_version_nodots} >= 33
+%define skip_python3 1
+%endif
+
+%python_subpackages
+
%description
Provides a function "install()" which makes the "mock" module
available as "unittest.mock" on Python 3.2 and earlier.
@@ -54,17 +64,25 @@
rm -rf backports.unittest_mock.egg-info
%build
-python2 setup.py build
+%python_build
%install
-python2 setup.py install \
- --root=%{buildroot} --prefix=%{_prefix}
+%python_install
+%python_expand rm %{buildroot}%{$python_sitelib}/backports/__init__.py*
+%python_expand rm -rf %{buildroot}%{$python_sitelib}/backports/__pycache__/
+%python_expand %fdupes %{buildroot}%{$python_sitelib}/backports/unittest_mock/
%check
-PYTHONPATH=%{buildroot}%{python_sitelib} python2 %{_bindir}/py.test -v
-rm %{buildroot}%{python_sitelib}/backports/__init__.py*
+mv backports backports_temp
+%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitelib}
+ln -s %{$python_sitelib}/backports/__init__.py %{buildroot}%{$python_sitelib}/backports/
+py.test-%{$python_bin_suffix} -v
+rm -r %{buildroot}%{$python_sitelib}/backports/__init__.py*
+rm -rf %{buildroot}%{$python_sitelib}/backports/__pycache__/
+}
+mv backports_temp backports
-%files
+%files %{python_files}
%defattr(-,root,root)
%doc CHANGES.rst README.rst
%{python_sitelib}/backports/unittest_mock/
1
0