Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package seadrive-fuse for openSUSE:Factory checked in at 2026-01-22 15:13:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/seadrive-fuse (Old) and /work/SRC/openSUSE:Factory/.seadrive-fuse.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "seadrive-fuse" Thu Jan 22 15:13:33 2026 rev:8 rq:1328284 version:3.0.18 Changes: -------- --- /work/SRC/openSUSE:Factory/seadrive-fuse/seadrive-fuse.changes 2025-12-25 19:57:59.748096586 +0100 +++ /work/SRC/openSUSE:Factory/.seadrive-fuse.new.1928/seadrive-fuse.changes 2026-01-22 15:13:36.596814915 +0100 @@ -1,0 +2,5 @@ +Tue Jan 13 13:05:16 UTC 2026 - Paolo Stivanin <[email protected]> + +- Add fuse3.patch + +------------------------------------------------------------------- New: ---- fuse3.patch ----------(New B)---------- New: - Add fuse3.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ seadrive-fuse.spec ++++++ --- /var/tmp/diff_new_pack.dA5hJp/_old 2026-01-22 15:13:37.296844087 +0100 +++ /var/tmp/diff_new_pack.dA5hJp/_new 2026-01-22 15:13:37.300844253 +0100 @@ -1,7 +1,7 @@ # # spec file for package seadrive-fuse # -# 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 @@ -23,11 +23,12 @@ License: GPL-2.0-only URL: https://github.com/haiwen/seadrive-fuse/ Source0: https://github.com/haiwen/seadrive-fuse/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0: fuse3.patch BuildRequires: argon2-devel BuildRequires: autoconf BuildRequires: automake BuildRequires: fdupes -BuildRequires: fuse-devel >= 2.7.3 +BuildRequires: fuse3-devel >= 3.0.0 BuildRequires: intltool BuildRequires: libsearpc-devel BuildRequires: libtool ++++++ fuse3.patch ++++++ commit f646ef885f969b15ce59911e5b9b7e16b047da05 Author: Paolo Stivanin <[email protected]> Date: Tue Jan 13 13:56:28 2026 +0100 Port to fuse3 diff --git a/README.md b/README.md index 8be6fc9..f2af371 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ SeaDrive daemon with FUSE interface # Building ## Ubuntu Linux ``` -sudo apt-get install autoconf automake libtool libevent-dev libcurl4-openssl-dev libgtk2.0-dev uuid-dev intltool libsqlite3-dev valac libjansson-dev libssl-dev +sudo apt-get install autoconf automake libtool libevent-dev libcurl4-openssl-dev libgtk2.0-dev uuid-dev intltool libsqlite3-dev valac libjansson-dev libssl-dev libfuse3-dev ``` First, you shoud get the latest source of [libsearpc](https://github.com/haiwen/libsearpc) with `v3.2-latest` tag and [seadrive-fuse](https://github.com/haiwen/seadrive-fuse). diff --git a/configure.ac b/configure.ac index 3860ee5..7129f83 100644 --- a/configure.ac +++ b/configure.ac @@ -154,7 +154,7 @@ GLIB_REQUIRED=2.16.0 SEARPC_REQUIRED=1.0 JANSSON_REQUIRED=2.2.1 CURL_REQUIRED=7.17 -FUSE_REQUIRED=2.7.3 +FUSE_REQUIRED=3.0.0 ZLIB_REQUIRED=1.2.0 WS_REQUIRED=4.0.20 GNUTLS_REQUIRED=3.3.0 @@ -208,7 +208,7 @@ AC_SUBST(ZLIB_CFLAGS) AC_SUBST(ZLIB_LIBS) if test "${blinux}" = "true" -o "$bmac" = "true"; then - PKG_CHECK_MODULES(FUSE, [fuse >= $FUSE_REQUIRED]) + PKG_CHECK_MODULES(FUSE, [fuse3 >= $FUSE_REQUIRED]) AC_SUBST(FUSE_CFLAGS) AC_SUBST(FUSE_LIBS) fi diff --git a/src/fuse-ops.c b/src/fuse-ops.c index afd4936..cb5d4e5 100644 --- a/src/fuse-ops.c +++ b/src/fuse-ops.c @@ -2,8 +2,8 @@ #if defined __linux__ || defined __APPLE__ -#define FUSE_USE_VERSION 26 -#include <fuse.h> +#define FUSE_USE_VERSION 30 +#include <fuse3/fuse.h> #ifdef __APPLE__ #include <libproc.h> @@ -297,7 +297,7 @@ path_comps_free (FusePathComps *comps) account_info_free (comps->account_info); } -static void +static void G_GNUC_UNUSED notify_fs_op_error (const char *type, const char *path) { json_t *msg = json_object(); @@ -327,8 +327,9 @@ get_category_dir_mtime (const char *server, const char *user, RepoType type) } int -seadrive_fuse_getattr(const char *path, struct stat *stbuf) +seadrive_fuse_getattr(const char *path, struct stat *stbuf, struct fuse_file_info *fi) { + (void)fi; FusePathComps comps; int ret = 0; uid_t uid; @@ -438,7 +439,7 @@ readdir_root_accounts (void *buf, fuse_fill_dir_t filler) } for (ptr = accounts; ptr; ptr = ptr->next) { account = ptr->data; - filler (buf, account->name, NULL, 0); + filler (buf, account->name, NULL, 0, 0); } g_list_free_full (accounts, (GDestroyNotify)seaf_account_free); @@ -459,10 +460,10 @@ readdir_root (AccountInfo *account, void *buf, fuse_fill_dir_t filler) type_str = ptr->data; #ifdef __APPLE__ dname_nfd = g_utf8_normalize (type_str, -1, G_NORMALIZE_NFD); - filler (buf, dname_nfd, NULL, 0); + filler (buf, dname_nfd, NULL, 0, 0); g_free (dname_nfd); #else - filler (buf, type_str, NULL, 0); + filler (buf, type_str, NULL, 0, 0); #endif } @@ -498,10 +499,10 @@ readdir_category (AccountInfo *account, RepoType type, void *buf, fuse_fill_dir_ dname = g_path_get_basename (info->display_name); #ifdef __APPLE__ dname_nfd = g_utf8_normalize (dname, -1, G_NORMALIZE_NFD); - filler (buf, dname_nfd, NULL, 0); + filler (buf, dname_nfd, NULL, 0, 0); g_free (dname_nfd); #else - filler (buf, dname, NULL, 0); + filler (buf, dname, NULL, 0, 0); #endif g_free (dname); @@ -550,7 +551,7 @@ readdir_repo (const char *repo_id, const char *path, void *buf, fuse_fill_dir_t if (seaf_repo_manager_is_path_invisible (seaf->repo_mgr, repo_id, dname)) { continue; } - filler (buf, dname, NULL, 0); + filler (buf, dname, NULL, 0, 0); } g_hash_table_destroy (dirents); @@ -562,8 +563,10 @@ out: int seadrive_fuse_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, - struct fuse_file_info *info) + struct fuse_file_info *info, + enum fuse_readdir_flags flags) { + (void)flags; FusePathComps comps; int ret = 0; @@ -572,8 +575,8 @@ seadrive_fuse_readdir(const char *path, void *buf, if (!seaf->started) return 0; - filler(buf, ".", NULL, 0); - filler(buf, "..", NULL, 0); + filler(buf, ".", NULL, 0, 0); + filler(buf, "..", NULL, 0, 0); memset (&comps, 0, sizeof(comps)); @@ -1225,8 +1228,11 @@ out: return ret; } -int seadrive_fuse_rename (const char *oldpath, const char *newpath) +int seadrive_fuse_rename (const char *oldpath, const char *newpath, unsigned int flags) { + if (flags != 0) + return -EINVAL; + FusePathComps comps1, comps2; int ret = 0; @@ -1556,8 +1562,9 @@ int seadrive_fuse_release (const char *path, struct fuse_file_info *info) } int -seadrive_fuse_truncate (const char *path, off_t length) +seadrive_fuse_truncate (const char *path, off_t length, struct fuse_file_info *fi) { + (void)fi; FusePathComps comps; char *repo_id, *file_path; FileCacheStat st; @@ -1697,8 +1704,9 @@ seadrive_fuse_statfs (const char *path, struct statvfs *buf) } int -seadrive_fuse_chmod (const char *path, mode_t mode) +seadrive_fuse_chmod (const char *path, mode_t mode, struct fuse_file_info *fi) { + (void)fi; FusePathComps comps; seaf_debug ("chmod %s called. mode = %o.\n", path, mode); @@ -1713,8 +1721,9 @@ seadrive_fuse_chmod (const char *path, mode_t mode) } int -seadrive_fuse_utimens (const char *path, const struct timespec tv[2]) +seadrive_fuse_utimens (const char *path, const struct timespec tv[2], struct fuse_file_info *fi) { + (void)fi; RepoTreeStat tree_st; char *repo_id = NULL, *file_path = NULL; SeafRepo *repo = NULL; diff --git a/src/fuse-ops.h b/src/fuse-ops.h index 22339a4..3dc90d9 100644 --- a/src/fuse-ops.h +++ b/src/fuse-ops.h @@ -3,13 +3,17 @@ #if defined __linux__ || defined __APPLE__ -#include <fuse.h> +#ifndef FUSE_USE_VERSION +#define FUSE_USE_VERSION 30 +#endif +#include <fuse3/fuse.h> -int seadrive_fuse_getattr(const char *path, struct stat *stbuf); +int seadrive_fuse_getattr(const char *path, struct stat *stbuf, struct fuse_file_info *fi); int seadrive_fuse_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, - struct fuse_file_info *info); + struct fuse_file_info *info, + enum fuse_readdir_flags flags); int seadrive_fuse_mknod (const char *path, mode_t mode, dev_t dev); @@ -19,7 +23,7 @@ int seadrive_fuse_unlink (const char *path); int seadrive_fuse_rmdir (const char *path); -int seadrive_fuse_rename (const char *oldpath, const char *newpath); +int seadrive_fuse_rename (const char *oldpath, const char *newpath, unsigned int flags); int seadrive_fuse_open (const char *path, struct fuse_file_info *info); @@ -31,13 +35,13 @@ int seadrive_fuse_write (const char *path, const char *buf, size_t size, int seadrive_fuse_release (const char *path, struct fuse_file_info *fi); -int seadrive_fuse_truncate (const char *path, off_t length); +int seadrive_fuse_truncate (const char *path, off_t length, struct fuse_file_info *fi); int seadrive_fuse_statfs (const char *path, struct statvfs *buf); -int seadrive_fuse_chmod (const char *path, mode_t mode); +int seadrive_fuse_chmod (const char *path, mode_t mode, struct fuse_file_info *fi); -int seadrive_fuse_utimens (const char *, const struct timespec tv[2]); +int seadrive_fuse_utimens (const char *, const struct timespec tv[2], struct fuse_file_info *fi); int seadrive_fuse_symlink (const char *from, const char *to); diff --git a/src/seadrive.c b/src/seadrive.c index 63271f3..667a64d 100644 --- a/src/seadrive.c +++ b/src/seadrive.c @@ -41,9 +41,9 @@ static void print_version () #include <fcntl.h> #include <sys/file.h> -#define FUSE_USE_VERSION 26 -#include <fuse.h> -#include <fuse_opt.h> +#define FUSE_USE_VERSION 30 +#include <fuse3/fuse.h> +#include <fuse3/fuse_opt.h> #include "fuse-ops.h"
