Update sysutils/kio-fuse to latest upstream release

kio-fuse does some FUSE magic to pass remote KIO paths (e.g. when
browsing SMB or ftp from Dolphin) to non-KIO-aware applications
(e.g. opening a text file with vi). This 5.0.0 release has been
out for a while and is functionally equivalent to the previous
one; now, however, there's real release tarballs and everything.

Existing patches have been re-built for this release and then
submitted upstream, which is why they now have git-hashes.
This commit is contained in:
Adriaan de Groot 2021-02-12 16:41:05 +00:00
parent 86a149c126
commit 2bd43c1c11
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=565031
6 changed files with 63 additions and 36 deletions

View file

@ -1,9 +1,9 @@
# $FreeBSD$
PORTNAME= kio-fuse
DISTVERSIONPREFIX= v
DISTVERSION= 4.95.0
DISTVERSION= 5.0.0
CATEGORIES= sysutils kde
MASTER_SITES= KDE/stable/${PORTNAME}/${DISTVERSION}
MAINTAINER= kde@FreeBSD.org
COMMENT= FUSE Interface for KIO
@ -11,12 +11,10 @@ COMMENT= FUSE Interface for KIO
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/LICENSES/GPL-3.0-or-later.txt
USES= cmake compiler:c++11-lang fuse:3 kde:5 pkgconfig qt:5
USES= cmake compiler:c++11-lang fuse:3 kde:5 pkgconfig qt:5 tar:xz
USE_KDE= config coreaddons kio service
USE_QT= concurrent core dbus network \
buildtools_build qmake_build
USE_GITHUB= yes
GH_ACCOUNT= kde
PLIST_FILES= lib/libexec/kio-fuse \
share/dbus-1/services/org.kde.KIOFuse.service

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1590496835
SHA256 (kde-kio-fuse-v4.95.0_GH0.tar.gz) = 803b4bff364dec9854d760e003031afd7c6cf816b2a9fad013aab8a4535db4a7
SIZE (kde-kio-fuse-v4.95.0_GH0.tar.gz) = 50928
TIMESTAMP = 1613124184
SHA256 (kio-fuse-5.0.0.tar.xz) = 308ec02dce2fe9004ada9fdc13f49d243bdab98a24e997f2aae818bb27f08721
SIZE (kio-fuse-5.0.0.tar.xz) = 46672

View file

@ -1,16 +0,0 @@
Don't install the systemd exceptions file; we have our own (on-reboot)
cleanup of temp mounts which wouldn't be affected.
--- CMakeLists.txt.orig 2020-05-17 18:36:57 UTC
+++ CMakeLists.txt
@@ -57,7 +57,9 @@ target_include_directories(kio-fuse PRIVATE ${FUSE3_IN
target_compile_definitions(kio-fuse PRIVATE FUSE_USE_VERSION=31 ${FUSE3_CFLAGS_OTHER})
target_link_libraries(kio-fuse PRIVATE Qt5::Core KF5::KIOCore ${FUSE3_LIBRARIES} ${FUSE3_LDFLAGS})
install(TARGETS kio-fuse DESTINATION ${KDE_INSTALL_FULL_LIBEXECDIR})
-install(FILES kio-fuse-tmpfiles.conf DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/tmpfiles.d)
+if(LINUX)
+ install(FILES kio-fuse-tmpfiles.conf DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/tmpfiles.d)
+endif()
kdbusaddons_generate_dbus_service_file("kio-fuse -f" org.kde.KIOFuse ${KDE_INSTALL_FULL_LIBEXECDIR})
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)

View file

@ -0,0 +1,25 @@
diff --git kiofusevfs.cpp kiofusevfs.cpp
index 875da6f..b9c449f 100644
--- kiofusevfs.cpp
+++ kiofusevfs.cpp
@@ -2401,7 +2401,19 @@ int KIOFuseVFS::kioErrorToFuseError(const int kioError) {
case KIO::ERR_CANNOT_RENAME_PARTIAL : return EIO;
case KIO::ERR_NEED_PASSWD : return EACCES;
case KIO::ERR_CANNOT_SYMLINK : return EIO;
- case KIO::ERR_NO_CONTENT : return ENODATA;
+ case KIO::ERR_NO_CONTENT :
+#ifdef ENODATA
+ /* ENODATA is defined by GNU libc, and C++ tr1 seems to have
+ * it as well, as does Boost: these consistently define it
+ * to the value 9919. There is no guarantee the underlying
+ * FUSE implementation understands that if ENODATA doesn't
+ * exist in libc, though -- in that case, fall back to
+ * the more generic EIO.
+ */
+ return ENODATA;
+#else
+ return EIO;
+#endif
case KIO::ERR_DISK_FULL : return ENOSPC;
case KIO::ERR_IDENTICAL_FILES : return EEXIST;
case KIO::ERR_SLAVE_DEFINED : return EIO;

View file

@ -0,0 +1,32 @@
diff --git CMakeLists.txt CMakeLists.txt
index cceec6c..4e97588 100644
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -59,7 +59,11 @@ target_include_directories(kio-fuse PRIVATE ${FUSE3_INCLUDE_DIRS})
target_compile_definitions(kio-fuse PRIVATE FUSE_USE_VERSION=31 ${FUSE3_CFLAGS_OTHER})
target_link_libraries(kio-fuse PRIVATE Qt5::Core KF5::KIOCore ${FUSE3_LIBRARIES} ${FUSE3_LDFLAGS})
install(TARGETS kio-fuse DESTINATION ${KDE_INSTALL_FULL_LIBEXECDIR})
-install(FILES kio-fuse-tmpfiles.conf DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/tmpfiles.d)
+if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ # We could argue that this needs a separate "if(LINUX_WITH_TMPFILES_D)".
+ # or a "if(LINUX_WITH_SYSTEMD)".
+ install(FILES kio-fuse-tmpfiles.conf DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/tmpfiles.d)
+endif()
# Once KF5 5.73 is required
#
@@ -80,7 +84,12 @@ SystemdService=kio-fuse.service
")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.KIOFuse.service DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR})
-configure_file(kio-fuse.service.in ${CMAKE_CURRENT_BINARY_DIR}/kio-fuse.service)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kio-fuse.service DESTINATION ${SYSTEMD_USER_UNIT_INSTALL_DIR})
+if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ # We could argue that this needs a separate "if(LINUX_WITH_SYSTEMD)",
+ # but the ECM macro (see above) is expected to do the right thing
+ # when KF5 5.73 is required.
+ configure_file(kio-fuse.service.in ${CMAKE_CURRENT_BINARY_DIR}/kio-fuse.service)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kio-fuse.service DESTINATION ${SYSTEMD_USER_UNIT_INSTALL_DIR})
+endif()
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)

View file

@ -1,12 +0,0 @@
--- kiofusevfs.cpp.orig 2020-06-05 16:51:15 UTC
+++ kiofusevfs.cpp
@@ -2320,7 +2320,9 @@ int KIOFuseVFS::kioErrorToFuseError(const int kioError
case KIO::ERR_CANNOT_RENAME_PARTIAL : return EIO;
case KIO::ERR_NEED_PASSWD : return EACCES;
case KIO::ERR_CANNOT_SYMLINK : return EIO;
+#ifdef ENODATA
case KIO::ERR_NO_CONTENT : return ENODATA;
+#endif
case KIO::ERR_DISK_FULL : return ENOSPC;
case KIO::ERR_IDENTICAL_FILES : return EEXIST;
case KIO::ERR_SLAVE_DEFINED : return EIO;