Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package android-file-transfer-linux for
openSUSE:Factory checked in at 2026-10-24 22:04:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/android-file-transfer-linux (Old)
and /work/SRC/openSUSE:Factory/.android-file-transfer-linux.new.2252680
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "android-file-transfer-linux"
Sat Oct 24 22:04:19 2026 rev:6 rq:1392104 version:4.6
Changes:
--------
---
/work/SRC/openSUSE:Factory/android-file-transfer-linux/android-file-transfer-linux.changes
2025-11-24 14:14:06.689695421 +0100
+++
/work/SRC/openSUSE:Factory/.android-file-transfer-linux.new.2252680/android-file-transfer-linux.changes
2026-10-24 22:05:53.442785978 +0200
@@ -1,0 +2,13 @@
+Fri Oct 23 15:21:03 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 4.6:
+ * Fix double-counting files and folders on upload
+ * Fix reading and writing files the user has no permission for
+ * CLI: ignore device friendly name and battery level when the
+ device advertises but won't return them
+ * macOS: link IOKit and CoreFoundation into the shared library,
+ default its install rpath, and make the deployment target a
+ cache variable
+ * Python example: use InquirerPy and add pyproject.toml
+
+-------------------------------------------------------------------
Old:
----
android-file-transfer-linux-4.5.tar.gz
New:
----
android-file-transfer-linux-4.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ android-file-transfer-linux.spec ++++++
--- /var/tmp/diff_new_pack.uQqV7z/_old 2026-10-24 22:05:54.470829481 +0200
+++ /var/tmp/diff_new_pack.uQqV7z/_new 2026-10-24 22:05:54.471829524 +0200
@@ -1,7 +1,7 @@
#
# spec file for package android-file-transfer-linux
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,15 @@
Name: android-file-transfer-linux
-Summary: Android file fransfer for Linux
-Version: 4.5
+Version: 4.6
Release: 0
+Summary: Android file fransfer for Linux
+License: LGPL-2.1-only
URL: https://github.com/whoozle/android-file-transfer-linux
Source0: %{name}-%{version}.tar.gz
-License: LGPL-2.1-only
BuildRequires: cmake
BuildRequires: hicolor-icon-theme
+BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: cmake(Qt6LinguistTools)
BuildRequires: cmake(Qt6NetworkAuth)
++++++ _service ++++++
--- /var/tmp/diff_new_pack.uQqV7z/_old 2026-10-24 22:05:54.524831766 +0200
+++ /var/tmp/diff_new_pack.uQqV7z/_new 2026-10-24 22:05:54.534832190 +0200
@@ -5,7 +5,7 @@
<param
name="url">https://github.com/whoozle/android-file-transfer-linux</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
- <!-- <param name="revision">master</param> -->
+ <param name="revision">v4.6</param>
<!-- <param name="versionprefix">4.5.0</param> -->
<!-- <param name="versionformat">%ci.%h</param> -->
<param name="changesgenerate">enable</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.uQqV7z/_old 2026-10-24 22:05:54.587834433 +0200
+++ /var/tmp/diff_new_pack.uQqV7z/_new 2026-10-24 22:05:54.591834602 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/whoozle/android-file-transfer-linux</param>
- <param
name="changesrevision">d5c18820c2bae0656043ca127f4b05b756ea1479</param></service></servicedata>
+ <param
name="changesrevision">712dce6ea71793f6f8454e8ce75a0fd4ea553226</param></service></servicedata>
(No newline at EOF)
++++++ android-file-transfer-linux-4.5.tar.gz ->
android-file-transfer-linux-4.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/android-file-transfer-linux-4.5/CMakeLists.txt
new/android-file-transfer-linux-4.6/CMakeLists.txt
--- old/android-file-transfer-linux-4.5/CMakeLists.txt 2025-05-15
00:28:05.000000000 +0200
+++ new/android-file-transfer-linux-4.6/CMakeLists.txt 2026-10-08
15:21:42.000000000 +0200
@@ -25,7 +25,7 @@
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(USB_BACKEND_DARWIN TRUE)
- set(CMAKE_OSX_DEPLOYMENT_TARGET 10.13)
+ set(CMAKE_OSX_DEPLOYMENT_TARGET 10.13 CACHE STRING "Minimum OS X
deployment version")
find_program(OTOOL_BIN otool)
endif()
@@ -102,6 +102,10 @@
option(BUILD_QT_UI "Build reference Qt application" ON)
option(BUILD_SHARED_LIB "Build shared library" OFF)
+if (BUILD_SHARED_LIB AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT
CMAKE_INSTALL_RPATH)
+ # CMake drops the build tree rpath on install; let installed
executables find libmtp-ng.dylib in ../lib
+ set(CMAKE_INSTALL_RPATH "@loader_path/../lib${LIB_SUFFIX}")
+endif()
option(USB_BACKEND_LIBUSB "Use libusb-1.0" OFF)
if (USB_BACKEND_LIBUSB)
@@ -167,6 +171,7 @@
find_library(CORE_LIBRARY CoreFoundation)
find_library(IOKIT_LIBRARY IOKit)
list(APPEND MTP_LIBRARIES ${IOKIT_LIBRARY} ${CORE_LIBRARY})
+ list(APPEND MTP_SHARED_LIBRARIES ${IOKIT_LIBRARY} ${CORE_LIBRARY})
list(APPEND SOURCES
mtp/backend/darwin/usb/Context.cpp
mtp/backend/darwin/usb/Device.cpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/android-file-transfer-linux-4.5/cli/Session.cpp
new/android-file-transfer-linux-4.6/cli/Session.cpp
--- old/android-file-transfer-linux-4.5/cli/Session.cpp 2025-05-15
00:28:05.000000000 +0200
+++ new/android-file-transfer-linux-4.6/cli/Session.cpp 2026-10-08
15:21:42.000000000 +0200
@@ -76,7 +76,8 @@
_showEvents(false),
_showPrompt(showPrompt),
_terminalWidth(80),
- _batterySupported(false)
+ _batterySupported(false),
+ _deviceFriendlyNameSupported(false)
{
using namespace mtp;
using namespace std::placeholders;
@@ -333,14 +334,24 @@
std::stringstream ss;
ss << _gdi.Manufacturer << " " << _gdi.Model;
if (_deviceFriendlyNameSupported) {
- auto name =
_session->GetDeviceStringProperty(mtp::DeviceProperty::DeviceFriendlyName);
- if (!name.empty())
- ss << " / " << name;
+ try {
+ auto name =
_session->GetDeviceStringProperty(mtp::DeviceProperty::DeviceFriendlyName);
+ if (!name.empty())
+ ss << " / " << name;
+ } catch (const std::exception &ex) {
+ mtp::debug("failed to get device
friendly name: ", ex.what());
+ _deviceFriendlyNameSupported = false;
+ }
}
if (_batterySupported)
{
- auto level =
_session->GetDeviceIntegerProperty(mtp::DeviceProperty::BatteryLevel);
- ss << " [" << level << "%]";
+ try {
+ auto level =
_session->GetDeviceIntegerProperty(mtp::DeviceProperty::BatteryLevel);
+ ss << " [" << level << "%]";
+ } catch (const std::exception &ex) {
+ mtp::debug("failed to get battery
level: ", ex.what());
+ _batterySupported = false;
+ }
}
if (!_csName.empty())
ss << ":" << _csName;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/android-file-transfer-linux-4.5/pyproject.toml
new/android-file-transfer-linux-4.6/pyproject.toml
--- old/android-file-transfer-linux-4.5/pyproject.toml 1970-01-01
01:00:00.000000000 +0100
+++ new/android-file-transfer-linux-4.6/pyproject.toml 2026-10-08
15:21:42.000000000 +0200
@@ -0,0 +1,17 @@
+[project]
+name = "android-file-transfer-linux"
+version = "4.6"
+
+[build-system]
+requires = ["scikit-build-core", "pybind11"]
+build-backend = "scikit_build_core.build"
+
+[tool.scikit-build]
+build.targets = ["aftl"]
+install.components = ["aftl"]
+# Rely only on CMake install.
+wheel.packages = []
+
+[tool.scikit-build.cmake.define]
+BUILD_FUSE = false
+BUILD_QT_UI = false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/android-file-transfer-linux-4.5/python/CMakeLists.txt
new/android-file-transfer-linux-4.6/python/CMakeLists.txt
--- old/android-file-transfer-linux-4.5/python/CMakeLists.txt 2025-05-15
00:28:05.000000000 +0200
+++ new/android-file-transfer-linux-4.6/python/CMakeLists.txt 2026-10-08
15:21:42.000000000 +0200
@@ -4,3 +4,7 @@
pybind11_add_module(aftl aftl.cpp)
target_link_libraries(aftl PRIVATE ${LIB_NAME})
+# Use destination `.` to place `.so` file in `site-packages`, then it can be
`import aftl`.
+# Set component to only install this target `.so` file.
+# See `pyproject.toml`.
+install(TARGETS aftl DESTINATION . COMPONENT aftl)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/android-file-transfer-linux-4.5/python/example/menu.py
new/android-file-transfer-linux-4.6/python/example/menu.py
--- old/android-file-transfer-linux-4.5/python/example/menu.py 2025-05-15
00:28:05.000000000 +0200
+++ new/android-file-transfer-linux-4.6/python/example/menu.py 2026-10-08
15:21:42.000000000 +0200
@@ -5,7 +5,7 @@
hierarchical prompt usage example
"""
from __future__ import print_function, unicode_literals
-from PyInquirer import style_from_dict, Token, prompt, Separator
+from InquirerPy import prompt, separator
import aftl
@@ -52,7 +52,7 @@
'message': 'Object Action (press h for help)',
'choices': [
{ 'key': 'b', 'name': 'Back', 'value': 'back' },
- Separator(),
+ separator.Separator(),
{ 'key': 'd', 'name': 'Download', 'value': 'download' },
]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/android-file-transfer-linux-4.5/python/example/requirements.txt
new/android-file-transfer-linux-4.6/python/example/requirements.txt
--- old/android-file-transfer-linux-4.5/python/example/requirements.txt
2025-05-15 00:28:05.000000000 +0200
+++ new/android-file-transfer-linux-4.6/python/example/requirements.txt
2026-10-08 15:21:42.000000000 +0200
@@ -1 +1 @@
-pyinquirer
+InquirerPy ~= 0.3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/android-file-transfer-linux-4.5/qt/fileuploader.cpp
new/android-file-transfer-linux-4.6/qt/fileuploader.cpp
--- old/android-file-transfer-linux-4.5/qt/fileuploader.cpp 2025-05-15
00:28:05.000000000 +0200
+++ new/android-file-transfer-linux-4.6/qt/fileuploader.cpp 2026-10-08
15:21:42.000000000 +0200
@@ -119,7 +119,6 @@
else if (fi.isDir())
{
commands.push_back(new
MakeDirectory(next));
- files.push_back(next);
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/android-file-transfer-linux-4.5/qt/qtobjectstream.h
new/android-file-transfer-linux-4.6/qt/qtobjectstream.h
--- old/android-file-transfer-linux-4.5/qt/qtobjectstream.h 2025-05-15
00:28:05.000000000 +0200
+++ new/android-file-transfer-linux-4.6/qt/qtobjectstream.h 2026-10-08
15:21:42.000000000 +0200
@@ -35,14 +35,15 @@
QFile _file;
qint64 _size;
int _progress;
+ bool _valid;
public:
QtObjectInputStream(const QString &file) : _file(file),
_size(_file.size()), _progress(-1) {
- _file.open(QFile::ReadOnly);
+ _valid = _file.open(QFile::ReadOnly);
}
bool Valid() const
- { return _file.isOpen(); }
+ { return _valid; }
virtual mtp::u64 GetSize() const
{ return _size; }
@@ -74,13 +75,14 @@
private:
QFile _file;
qint64 _size;
+ bool _valid;
public:
QtObjectOutputStream(const QString &file): _file(file)
- { _file.open(QFile::WriteOnly | QFile::Truncate); }
+ { _valid = _file.open(QFile::WriteOnly | QFile::Truncate); }
bool Valid() const
- { return _file.isOpen(); }
+ { return _valid; }
virtual size_t Write(const mtp::u8 *data, size_t size)
{