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"

Reply via email to