github jamesyc/TimeCapsuleSMB v3.8.5

58 minutes ago

macOS GUI installer app (for macOS 14+)

  • Download TimeCapsuleSMB.dmg below, open it, and drag TimeCapsuleSMB to Applications. If you have v3.8.0 or newer, the app offers this update itself
  • You can use your old AFP backups, with native Apple metadata support on HFS
  • With Homebrew, brew install --cask jamesyc/tap/timecapsulesmb installs the macOS app

Python CLI installer (for macOS 12+, Linux)

  • brew install jamesyc/tap/tcapsule installs the tcapsule command, with no bootstrap step. On macOS 14 and older, Homebrew has no prebuilt Python 3.15, so it compiles Python first.

What's Changed

  • Failed Seagate disks
    • An internal disk that reports exactly 3950 MiB (3.86 GB) is a Seagate disk that cannot load its own firmware.
    • Checkup now says the disk has failed, even when a USB disk serves in its place, and links a replacement guide.
    • Install / Update Samba stops on it unless a USB disk can hold the files
    • Wipe Internal Disk refuses it.
    • Restarting or reinstalling does not bring the failing disk back.
    • If you need its files, do not erase it: a data recovery service may be able to get them back
  • Disks at startup
    • When Apple's disk service (diskd) is still running as TimeCapsuleSMB starts, it now gets a request to stop and time to unmount its disks.
    • It used to be killed after 10 seconds, which could leave a disk unmounted ("Device busy")
    • Samba claims the disks only once the disk service that TimeCapsuleSMB starts answers. Checkup says "File sharing is still starting" while it prepares the disks, and "The disk service needs a restart" when it is stuck
  • Samba improvemements
    • Fix Samba crashing, or a file hanging until the device restarts, after a Mac lists the device's shares over a share it has mounted, as smbutil view does. The listing turned POSIX locking back on for that connection. A lock held across the listing crashed Samba when it was released, and a lock taken after it made the next attribute change on that file wait forever.
    • A Mac's com.apple.* extended attribute too large for one HFS attribute (3,802 bytes) now fails with "Invalid argument", as it does over AFP, and the value it would have replaced stays. Before, the Mac got an access denied error and the old value was emptied
    • Fix Samba reporting a symlink's Finder info from the file it points to when the symlink itself was asked for
    • Metadata migration from xattr.tdb keeps a value that an interrupted write cut short, up to the cut, as Samba reads it. A copied resource fork that does not read back the same fails with an I/O error
    • When a folder is renamed while another connection has files open inside it, that connection can reopen them after it reconnects. The reconnect used to look for them under the folder's old name
    • A Mac that asks to reclaim a file it still has open on the same connection gets an answer at once. It used to wait up to 90 seconds
    • Under heavy disk load, fsyncs past the 16 queued requests wait for one of Samba's disk helpers, and requests stay queued when the device cannot start another helper while one runs. They used to run in the connection's own Samba process, which held up everything else on that connection
    • Folder listings report a symlink as a symlink without reading it, and a symlink to a folder inside the share as a folder
    • The workaround for macOS's short WRITE bug no longer checks large writes that Samba reads straight from the network into the file

Full Changelog: v3.8.4...v3.8.5

Don't miss a new TimeCapsuleSMB release

NewReleases is sending notifications on new releases.