From: Pino Toscano Date: Sat, 27 Jun 2026 05:23:57 +0000 (+0200) Subject: [PATCH] KFileSystemType: add custom determineFileSystemTypeImpl for Hurd X-Git-Tag: archive/raspbian/6.26.0-2+rpi1^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=da912c3b139554d60a8af20b5b677843513767c8;p=kf6-kcoreaddons.git [PATCH] KFileSystemType: add custom determineFileSystemTypeImpl for Hurd Add a specific implementation of determineFileSystemTypeImpl for GNU/Hurd, checking the proper values for the filesystem type/magic (rather than the Linux values). This avoids the need to guard Linux bits in the Linux implementation, so those checks are dropped now. Gbp-Pq: Name upstream_KFileSystemType-add-custom-determineFileSystemTypeIm.patch --- diff --git a/src/lib/io/kfilesystemtype.cpp b/src/lib/io/kfilesystemtype.cpp index 2ce069b..8f406d7 100644 --- a/src/lib/io/kfilesystemtype.cpp +++ b/src/lib/io/kfilesystemtype.cpp @@ -74,13 +74,11 @@ KFileSystemType::Type determineFileSystemTypeImpl(const QByteArray &path) return kde_typeFromName(buf.f_fstypename); } -#elif defined(Q_OS_LINUX) || defined(Q_OS_HURD) +#elif defined(Q_OS_LINUX) #include -#ifdef Q_OS_LINUX #include // A lot of the filesystem superblock MAGIC numbers #include -#endif // Add known missig magics // Can use https://github.com/systemd/systemd/blob/main/src/basic/missing_magic.h @@ -120,7 +118,6 @@ KFileSystemType::Type determineFileSystemTypeImpl(const QByteArray &path) #define AUTOFSNG_SUPER_MAGIC 0x7d92b1a0 #endif -#ifdef Q_OS_HURD #ifndef NFS_SUPER_MAGIC #define NFS_SUPER_MAGIC 0x00006969 #endif @@ -136,7 +133,6 @@ KFileSystemType::Type determineFileSystemTypeImpl(const QByteArray &path) #ifndef RAMFS_MAGIC #define RAMFS_MAGIC 0x858458F6 #endif -#endif KFileSystemType::Type probeFuseBlkType(const QByteArray &path) { @@ -248,6 +244,30 @@ KFileSystemType::Type determineFileSystemTypeImpl(const QByteArray &path) return kde_typeFromName(buf.f_basetype); #endif } + +#elif defined(Q_OS_HURD) +#include +#include + +static KFileSystemType::Type determineFileSystemTypeImpl(const QByteArray &path) +{ + struct statfs buf; + if (statfs(path.constData(), &buf) != 0) { + return KFileSystemType::Unknown; + } + + switch (buf.f_type) { + case FSTYPE_NFS: + case FSTYPE_AFS: + return KFileSystemType::Nfs; + case FSTYPE_MSLOSS: + return KFileSystemType::Fat; + case FSTYPE_MEMFS: + return KFileSystemType::Ramfs; + default: + return KFileSystemType::Other; + } +} #endif #else KFileSystemType::Type determineFileSystemTypeImpl(const QByteArray &path)