github jamesyc/TimeCapsuleSMB v3.0.0
v3.0.0-1

5 days ago

There is now a macOS GUI installer app (for macOS 14+)

  • Download TimeCapsuleSMB.app.zip below
  • Can use your old AFP backups, now fully supports native Apple metadata on HFS filesystem
  • v3.0.0-1 update fixes bug causing Airport Utility to disconnect and reconnect

What's Changed

  • Now using native Apple metadata on HFS, instead of the xattr TDB emulation layer! Existing installs auto-migrate on deploy/Update: legacy xattr.tdb + ._ AppleDouble sidecars are copied to native HFS storage, verified, then retired. Fresh installs skip the scan. No manual step needed.
    • Native HFS Mac metadata shared with AFP: FinderInfo, tags/xattrs, and resource forks now live in native HFS objects (com.apple.FinderInfo, canonical HFS xattrs, ..namedfork/rsrc) instead of protocol-specific copies, so AFP and SMB see the same metadata. This means if you edit a file in AFP, you can get the exact same metadata in SMB right after, and vice versa.
    • Two-phase deploy/boot migrator (xattr-hfs-migrate): copy+verify before payload swap, reverify+flush and per-file TDB retirement after; unmatched records retained for disconnected disks, empty TDB deleted, pending volumes migrated before publishing
  • Upgrade to Samba 4.25.0rc2
    • Adds the NetBSD stream-deletion fix: deleting files/dirs with metadata no longer fails after removing only the primary stream; lookup/I/O failures preserved instead of false success
  • Add Samba regression validation (tests/samba/): AIO worker cleanup, durable reconnect/lock release, AIO fork isolation/error propagation, streams/xattr coverage; fixed Linux link deps
  • Tune Samba for low Time Capsule RAM: bounded vfs_aio_fork (aio_fork:max_children = 8, fsync-only, disabled by default with config option), smaller /mnt/Locks (4 MiB), reduced lock RAM, deadtime = 720 (12h), SMB3 directory leases disabled
  • Refactor native advertisers into four static helpers: mdns-advertiser, nbns-advertiser, service (NT hash + network probes), telemetry (heartbeat + signed debug execution); smaller binaries, WAN/LAN split (SMB/AFP/ADISK/device-info/printer LAN-only, AirPort-Utility only on WAN)
  • Fix ACP collection: bounded timeouts, robust child cleanup, and Darwin process-group race fix (child-only setpgid, 10k-iteration stress reproducer)
  • Improve doctor and discovery: IPv6 scope selection + Bonjour address validation, require IPv6 when routable, NBNS answers NBSTAT/wildcard with subnet-aware IPv4 and 30s topology refresh
  • Deploy/runtime: rsync daemon support (--enable-rsync, RSYNC_ENABLED, shareroot module on port 873), propagate host bootstrap preference to device config, remove RAM PID state files from migration, unified configure auth errors, Python 3.9 fix, TC_SMB_BIND_LAN_ONLY / browse / signing options, optional SMB signing+encryption disable, clarified Install/Update/Reinstall wording in GUI
  • Add fixes for SSH edge cases: use local keys/agent, honor TC_SSH_OPTS Identity options, derive auth from intent, skip retries for passwordless, clearer cat fallback errors
  • Docs: reusing existing Time Machine backups (#214), full-disk .interrupted/.inprogress cleanup, user-folder → ShareRoot migration, reboot recovery, updated DETAIL/README/RELEASE for 4.25 + native metadata + rsync + service/telemetry
  • Build: fetch GNU deps via ftpmirror.gnu.org (#291), configurable SDK parallelism (#293), updated build env example
  • Bump dependencies by @dependabot: codeql-action 4 → 4.37.9, setup-python 6 → 7

Full Changelog: v2.2.9...v3.0.0

Don't miss a new TimeCapsuleSMB release

NewReleases is sending notifications on new releases.