Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hfsfuse for openSUSE:Factory checked in at 2025-12-31 10:48:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hfsfuse (Old) and /work/SRC/openSUSE:Factory/.hfsfuse.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hfsfuse" Wed Dec 31 10:48:03 2025 rev:4 rq:1324852 version:0.310 Changes: -------- --- /work/SRC/openSUSE:Factory/hfsfuse/hfsfuse.changes 2025-12-12 21:42:44.720800196 +0100 +++ /work/SRC/openSUSE:Factory/.hfsfuse.new.1928/hfsfuse.changes 2025-12-31 10:48:36.077365777 +0100 @@ -1,0 +2,8 @@ +Wed Dec 24 11:16:06 UTC 2025 - Andreas Stieger <[email protected]> + +- Update to 0.310: + * add support for the statx FUSE operation in libfuse 3.18+, + which enables printing file and directory birth times in the + output of the stat command on Linux. + +------------------------------------------------------------------- Old: ---- hfsfuse-0.307.tar.gz New: ---- hfsfuse-0.310.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hfsfuse.spec ++++++ --- /var/tmp/diff_new_pack.nJFeOG/_old 2025-12-31 10:48:37.693431909 +0100 +++ /var/tmp/diff_new_pack.nJFeOG/_new 2025-12-31 10:48:37.709432563 +0100 @@ -1,7 +1,7 @@ # # spec file for package hfsfuse # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 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,7 +17,7 @@ Name: hfsfuse -Version: 0.307 +Version: 0.310 Release: 0 Summary: FUSE driver for HFS+ filesystems License: BSD-1-Clause AND BSD-2-Clause AND BSD-3-Clause AND MIT ++++++ hfsfuse-0.307.tar.gz -> hfsfuse-0.310.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.307/Makefile new/hfsfuse-0.310/Makefile --- old/hfsfuse-0.307/Makefile 2025-11-30 21:50:23.000000000 +0100 +++ new/hfsfuse-0.310/Makefile 2025-12-20 04:18:53.000000000 +0100 @@ -76,6 +76,10 @@ APP_LIB += -static APP_FLAGS += -D_POSIX_THREAD_SAFE_FUNCTIONS TARGETS = hfsdump +else #linux + ifeq ($(findstring _POSIX_C_SOURCE, $(LOCAL_CFLAGS)),) + FUSE_FLAGS += -D_GNU_SOURCE #for statx + endif endif PREFIX ?= /usr/local @@ -154,6 +158,8 @@ FUSE_FLAGS += -DFUSE_USE_VERSION=29 FUSE_LIB ?= -lfuse endif + + $(eval $(call cccheck,HAVE_STATX,{ (struct statx){0}; },sys/stat.h)) endif $(foreach cfg,OS CC AR RANLIB INSTALL TAR PREFIX WITH_UBLIO WITH_UTF8PROC XATTR_NAMESPACE CONFIG_CFLAGS $(FEATURES),$(eval CONFIG:=$(CONFIG)$(cfg)=$$($(cfg))\n)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.307/lib/libhfsuser/hfsuser.c new/hfsfuse-0.310/lib/libhfsuser/hfsuser.c --- old/hfsfuse-0.307/lib/libhfsuser/hfsuser.c 2025-11-30 21:50:23.000000000 +0100 +++ new/hfsfuse-0.310/lib/libhfsuser/hfsuser.c 2025-12-20 04:18:53.000000000 +0100 @@ -331,9 +331,6 @@ return ret; } - -#define HFSTIMETOSPEC(x) ((struct timespec){ .tv_sec = HFSTIMETOEPOCH(x) }) - // POSIX 08 specifies values for all file modes below 07777 but leaves the following to the implementation // so for these we translate to the system's modes from the definitions given in TN1150 #ifndef S_IFLNK diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.307/src/hfsfuse.c new/hfsfuse-0.310/src/hfsfuse.c --- old/hfsfuse-0.307/src/hfsfuse.c 2025-11-30 21:50:23.000000000 +0100 +++ new/hfsfuse-0.310/src/hfsfuse.c 2025-12-20 04:18:53.000000000 +0100 @@ -211,6 +211,62 @@ return 0; } +#if HAVE_STATX && FUSE_VERSION >= 318 +static int hfsfuse_statx(const char* path, int flags, int mask, struct statx* stx, struct fuse_file_info* info) { + hfs_volume* vol = fuse_get_context()->private_data; + hfs_catalog_keyed_record_t rec; hfs_catalog_key_t key; uint8_t fork; + struct hfs_decmpfs_header h,* hp = NULL; + if(info) { + struct hf_file* f = (struct hf_file*)info->fh; + int ret = hfslib_find_catalog_record_with_cnid(vol,f->cnid,&rec,&key,NULL); + if(ret < 0) + return ret; + else if(ret > 0) + return -ENOENT; + fork = f->fork; + if(fork == HFS_DATAFORK && hfs_decmpfs_get_header(f->decmpfs,&h)) + hp = &h; + } + else { + int ret = hfs_lookup(vol,path,&rec,&key,&fork); + if(ret) + return ret; + if(rec.type == HFS_REC_FILE && fork == HFS_DATAFORK && !hfs_decmpfs_lookup(vol,&rec.file,&h,NULL,NULL)) + hp = &h; + } + + struct stat st; + hfs_stat(vol,&rec,&st,fork,hp); + + stx->stx_mask = STATX_BASIC_STATS | STATX_BTIME; + + stx->stx_blksize = st.st_blksize; + stx->stx_nlink = st.st_nlink; + stx->stx_uid = st.st_uid; + stx->stx_gid = st.st_gid; + stx->stx_mode = st.st_mode; + stx->stx_ino = st.st_ino; + stx->stx_size = st.st_size; + stx->stx_blocks = st.st_blocks; + stx->stx_atime.tv_sec = HFSTIMETOEPOCH(rec.file.date_accessed); + stx->stx_btime.tv_sec = HFSTIMETOEPOCH(rec.file.date_created); + stx->stx_ctime.tv_sec = HFSTIMETOEPOCH(rec.file.date_attrib_mod); + stx->stx_mtime.tv_sec = HFSTIMETOEPOCH(rec.file.date_content_mod); + + __u16 mode_mask = 0; + if(mask & STATX_TYPE) + mode_mask |= S_IFMT; + if(mask & STATX_MODE) + mode_mask |= ~S_IFMT; + stx->stx_mode &= mode_mask; + + if(hp) + stx->stx_attributes = stx->stx_attributes_mask = STATX_ATTR_COMPRESSED; + + return 0; +} +#endif + struct hf_dir { hfs_catalog_keyed_record_t dir_record; hfs_cnid_t parent_cnid; @@ -622,6 +678,9 @@ #if FUSE_VERSION < 30 .fgetattr = hfsfuse_fgetattr, #endif +#if HAVE_STATX && FUSE_VERSION >= 318 + .statx = hfsfuse_statx, +#endif .listxattr = hfsfuse_listxattr, #if FUSE_DARWIN_ENABLE_EXTENSIONS || (defined(__APPLE__) && FUSE_VERSION < 30) .getxattr = hfsfuse_getxattr_offset, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.307/src/version.h new/hfsfuse-0.310/src/version.h --- old/hfsfuse-0.307/src/version.h 2025-11-30 21:50:23.000000000 +0100 +++ new/hfsfuse-0.310/src/version.h 2025-12-20 04:18:53.000000000 +0100 @@ -1 +1 @@ -#define HFSFUSE_VERSION_STRING "0.307-0026652" +#define HFSFUSE_VERSION_STRING "0.310-e73ae08"
