Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hfsfuse for openSUSE:Factory checked in at 2026-09-19 22:20:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hfsfuse (Old) and /work/SRC/openSUSE:Factory/.hfsfuse.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hfsfuse" Sat Sep 19 22:20:30 2026 rev:11 rq:1378857 version:0.451 Changes: -------- --- /work/SRC/openSUSE:Factory/hfsfuse/hfsfuse.changes 2026-08-25 15:54:33.500433856 +0200 +++ /work/SRC/openSUSE:Factory/.hfsfuse.new.383539/hfsfuse.changes 2026-09-19 22:21:52.301429262 +0200 @@ -1,0 +2,15 @@ +Tue Sep 15 09:05:31 UTC 2026 - John Paul Adrian Glaubitz <[email protected]> + +- Update to 0.451 + * hfsfuse will now write logs to stderr instead of syslog when + in foreground mode (the `-f` option). + * hfsfuse and hfsdump now log an error if a directory entry + contains invalid unicode. +- from version 0.444 + * Fixes writing binary files and xattrs with the hfsdump util + on Windows. +- from version 0.443 + * Fixes reading on Windows for the non-FUSE tools. + * Other minor bugfixes and improvements, mainly to the hfsdump util. + +------------------------------------------------------------------- Old: ---- hfsfuse-0.435.tar.gz New: ---- hfsfuse-0.451.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hfsfuse.spec ++++++ --- /var/tmp/diff_new_pack.uiAiXA/_old 2026-09-19 22:21:53.057460797 +0200 +++ /var/tmp/diff_new_pack.uiAiXA/_new 2026-09-19 22:21:53.058460838 +0200 @@ -17,7 +17,7 @@ Name: hfsfuse -Version: 0.435 +Version: 0.451 Release: 0 Summary: FUSE driver for HFS+ filesystems License: BSD-1-Clause AND BSD-2-Clause AND BSD-3-Clause AND MIT ++++++ hfsfuse-0.435.tar.gz -> hfsfuse-0.451.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.435/lib/libhfsuser/decmpfs.c new/hfsfuse-0.451/lib/libhfsuser/decmpfs.c --- old/hfsfuse-0.435/lib/libhfsuser/decmpfs.c 2026-08-12 02:00:41.000000000 +0200 +++ new/hfsfuse-0.451/lib/libhfsuser/decmpfs.c 2026-08-31 19:43:05.000000000 +0200 @@ -156,6 +156,8 @@ if(pthread_rwlock_init(&ctx->current_chunk_lock,NULL)) { err = -errno; + free(ctx); + ctx = NULL; goto err; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.435/lib/libhfsuser/hfsuser.c new/hfsfuse-0.451/lib/libhfsuser/hfsuser.c --- old/hfsfuse-0.435/lib/libhfsuser/hfsuser.c 2026-08-12 02:00:41.000000000 +0200 +++ new/hfsfuse-0.451/lib/libhfsuser/hfsuser.c 2026-08-31 19:43:05.000000000 +0200 @@ -561,7 +561,11 @@ if(cbargs && cbargs->openvol) cfg = *(struct hfs_volume_config*)cbargs->openvol; - if((dev->fd = open(name,O_RDONLY)) < 0) + int open_flags = O_RDONLY; +#ifdef _WIN32 + open_flags |= O_BINARY; +#endif + if((dev->fd = open(name,open_flags)) < 0) BAIL(errno); dev->default_fork = cfg.rsrc_only ? HFS_RSRCFORK : HFS_DATAFORK; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.435/lib/uthash/uthash.h new/hfsfuse-0.451/lib/uthash/uthash.h --- old/hfsfuse-0.435/lib/uthash/uthash.h 2026-08-12 02:00:41.000000000 +0200 +++ new/hfsfuse-0.451/lib/uthash/uthash.h 2026-08-31 19:43:05.000000000 +0200 @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2025, Troy D. Hanson https://troydhanson.github.io/uthash/ +Copyright (c) 2003-2026, Troy D. Hanson https://troydhanson.github.io/uthash/ All rights reserved. Redistribution and use in source and binary forms, with or without @@ -24,7 +24,7 @@ #ifndef UTHASH_H #define UTHASH_H -#define UTHASH_VERSION 2.3.0 +#define UTHASH_VERSION 2.4.0 #include <string.h> /* memcmp, memset, strlen */ #include <stddef.h> /* ptrdiff_t */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.435/lib/uthash/utstack.h new/hfsfuse-0.451/lib/uthash/utstack.h --- old/hfsfuse-0.435/lib/uthash/utstack.h 2026-08-12 02:00:41.000000000 +0200 +++ new/hfsfuse-0.451/lib/uthash/utstack.h 2026-08-31 19:43:05.000000000 +0200 @@ -1,5 +1,5 @@ /* -Copyright (c) 2018-2025, Troy D. Hanson https://troydhanson.github.io/uthash/ +Copyright (c) 2018-2026, Troy D. Hanson https://troydhanson.github.io/uthash/ All rights reserved. Redistribution and use in source and binary forms, with or without @@ -24,7 +24,7 @@ #ifndef UTSTACK_H #define UTSTACK_H -#define UTSTACK_VERSION 2.3.0 +#define UTSTACK_VERSION 2.4.0 /* * This file contains macros to manipulate a singly-linked list as a stack. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.435/src/hfsdump.c new/hfsfuse-0.451/src/hfsdump.c --- old/hfsfuse-0.435/src/hfsdump.c 2026-08-12 02:00:41.000000000 +0200 +++ new/hfsfuse-0.451/src/hfsdump.c 2026-08-31 19:43:05.000000000 +0200 @@ -15,9 +15,20 @@ #include <inttypes.h> #include <string.h> +#ifdef _WIN32 +#include <fcntl.h> +#include <io.h> +#endif + +void set_stdout_binary(void) { +#ifdef _WIN32 + _setmode(_fileno(stdout),_O_BINARY); +#endif +} + static char* hfs_ctime_r(time_t clock, char* buf) { char* t = ctime(&clock); - return t ? memcpy(buf,t,26) : NULL; + return t ? memcpy(buf,t,26) : "(null)\n"; } static const char* format_type_code(hfs_macos_type_code code, char code_str[5]) { @@ -230,13 +241,16 @@ goto end; for(size_t i = 0; i < count; i++) { char name[HFS_NAME_MAX+1]; - hfs_pathname_to_unix(names+i,name); - puts(name); + if(hfs_pathname_to_unix(names+i,name) < 0) + fprintf(stderr,"Could not convert path name for CNID %" PRIu32,recs[i].file.cnid); + else + puts(name); } free(names); free(recs); } else if(rec.type == HFS_REC_FILE) { + set_stdout_binary(); struct hfs_file* f = hfs_file_open(&vol,&rec,fork,&ret); if(!f) { fputs(strerror(-ret),stderr); @@ -266,11 +280,12 @@ char attrname[HFS_NAME_MAX+1]; ssize_t u8len = hfs_unistr_to_utf8(&attr_keys[i].name, attrname); if(u8len > 0) - printf("%s\n",attrname); + puts(attrname); } free(attr_keys); } else { + set_stdout_binary(); hfs_attribute_record_t attrec; hfs_unistr255_t attrname; if(hfs_utf8_to_unistr(argv[4],&attrname) <= 0) @@ -301,7 +316,10 @@ } } } - else fprintf(stderr,"valid commands: stat, read, xattr\n"); + else { + fprintf(stderr,"valid commands: stat, read, xattr\n"); + ret = 1; + } end: hfslib_close_volume(&vol,NULL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.435/src/hfsfuse.c new/hfsfuse-0.451/src/hfsfuse.c --- old/hfsfuse-0.435/src/hfsfuse.c 2026-08-12 02:00:41.000000000 +0200 +++ new/hfsfuse-0.451/src/hfsfuse.c 2026-08-31 19:43:05.000000000 +0200 @@ -401,6 +401,7 @@ for(off_t i = max(0,offset-2); i < d->nentries; i++) { ssize_t len; if((len = hfs_pathname_to_unix(d->names+i,pelem)) < 0) { + hfslib_error("Could not convert path name for CNID %" PRIu32,NULL,0,d->records[i].file.cnid); ret = len; continue; } @@ -747,6 +748,7 @@ char* device; int allow_other_set; int force; + int foreground; }; #define HFS_OPTION(t, p) { t, offsetof(struct hfs_volume_config, p), 1 } @@ -760,6 +762,7 @@ FUSE_OPT_KEY("--version", HFSFUSE_OPT_KEY_VERSION), HFSFUSE_OPTION("--force",force), HFSFUSE_OPTION("allow_other",allow_other_set), + HFSFUSE_OPTION("-f",foreground), FUSE_OPT_KEY("noallow_other",HFSFUSE_OPT_KEY_NOALLOW_OTHER), HFS_OPTION("cache_size=%zu",cache_size), HFS_OPTION("blksize=%" SCNu32,blksize), @@ -974,6 +977,8 @@ hfsfuse_opt_add_opt_escaped(&opts, fsname); fuse_opt_add_arg(&args, "-o"); fuse_opt_add_arg(&args, opts); + if(cfg.foreground) + fuse_opt_add_arg(&args,"-f"); free(fsname); // open volume @@ -995,7 +1000,9 @@ goto done; } } - hfs_gcb.error = hfs_vsyslog; // prepare to daemonize + if(!cfg.foreground) + hfs_gcb.error = hfs_vsyslog; // prepare to daemonize + ret = fuse_main(args.argc, args.argv, &hfsfuse_ops, &vol); done: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.435/src/hfstar.c new/hfsfuse-0.451/src/hfstar.c --- old/hfsfuse-0.435/src/hfstar.c 2026-08-12 02:00:41.000000000 +0200 +++ new/hfsfuse-0.451/src/hfstar.c 2026-08-31 19:43:05.000000000 +0200 @@ -234,8 +234,6 @@ la_ssize_t entry_bytes; while((bytes = hfs_file_read(f,ctx->read_buf,bufsize)) > 0) if((entry_bytes = archive_write_data(ctx->archive,ctx->read_buf,bytes)) != bytes) { - if(entry_bytes == ARCHIVE_RETRY) - continue; if(entry_bytes == ARCHIVE_WARN && !ctx->no_warn) fprintf(stderr,"%s\n",archive_error_string(ctx->archive)); if(entry_bytes < ARCHIVE_OK) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hfsfuse-0.435/src/version.h new/hfsfuse-0.451/src/version.h --- old/hfsfuse-0.435/src/version.h 2026-08-12 02:00:41.000000000 +0200 +++ new/hfsfuse-0.451/src/version.h 2026-08-31 19:43:05.000000000 +0200 @@ -1 +1 @@ -#define HFSFUSE_VERSION_STRING "0.435-a67e7b4" +#define HFSFUSE_VERSION_STRING "0.451-8e0c9a4"
