github jamesyc/TimeCapsuleSMB v3.5.0

2 hours ago

macOS GUI installer app (for macOS 14+)

  • Download TimeCapsuleSMB.app.zip below
  • You can use your old AFP backups, with native Apple metadata support on HFS

What's Changed

  • Time Machine reliability
    • Turn on vfs_aio_fork by default so Samba keeps serving a connection while it waits for the disk
    • Raise each SMB connection's receive buffer (2 MiB on NetBSD 6, 512 KiB on NetBSD 4), so a short disk stall no longer stops the Mac's writes and makes macOS drop the backup or send a short write (#221)
    • Raise the device's open-file limit from 1024 to 4096 and its process limit from 84 to 128, so several Macs backing up at once can no longer fill them and lose their disk images
    • Run the durable-handle scavenger in its own process again, so a stuck file lock can no longer stop the device from accepting new connections
    • Let a reconnecting Mac continue after 50 seconds instead of waiting indefinitely for its old connection to close, within macOS's 60-second limit
    • Mitigate another case of Apple's NetBSD 6 kernelfork() bug, in the smbd parent's stack
    • Allow 240 seconds for copying smbd into memory at boot, for disks that are slow to spin up
  • Apple ACPd hangs
    • Detect when Apple's AirPort service (ACPd) gets stuck during a restart. This is a bug in Apple's firmware that leaves the device off the network until it is unplugged. Operations that restart the device now report "Apple ACPd is broken" after about 2.5 minutes instead of waiting 10, and say to unplug the device
    • Install, Uninstall, Disk Repair, turning SSH off and the firmware tools check ACPd first, and change nothing when it is stuck
    • Report when this Mac cannot reach AirPort ACP (port 5009) although the device's own ACP works, for example because of a VPN or firewall
  • Checkup
    • Show results in two sections, This Mac and Device, each with its own status
    • Fail Checkup when this Mac's nsmb.conf turns off SMB 3, the cause of Time Machine's "does not support the necessary functions" error (#372, #181)
    • Accept Apple's Bonjour conflict renames of the device's own name, such as "Office (2)" or Office-2, and warn when another device holds the same name (#374)
    • Find the device's own Bonjour records by its AirPort MAC address, and check that its Bonjour registrations have finished
    • Wait for the device to finish starting up instead of failing right after a restart
    • Report when the Samba files are missing from every disk, as after an Erase in AirPort Utility, and say to run Install / Update Samba. Activate and Disk Repair report this too
    • Rename "Skip SMB checks" to "Skip SMB login and file checks", and show skipped checks as "Not checked"
    • List which process holds a database lock when an smbd is stuck waiting for one
  • Device identity and address changes
    • Learn each saved AirPort's MAC address from reads that checked the password, and refuse to save a different AirPort in place of a configured one
    • Find a moved device by its saved name when no MAC address is saved, and ask you to confirm before updating its address
    • Turn SSH on when saving a device's new address
    • Say when nothing answers at the saved address, and list the AirPorts Checkup can see
    • Connect only through the saved address, and open the saved address in Finder when the device's Bonjour name has a conflict rename, which may belong to the other device after a restart
  • NetBIOS name service
    • Stop Apple's wcifsnd and wcifsfs within a second instead of at the next 30-second check, and keep Apple's own wcifsnd starts from taking the NetBIOS ports
    • Skip NetBIOS naming when the device has no address Apple's wcifsnd answers on, such as when the network has no DHCP server. Checkup reports this instead of failing
    • Shorten the wait for the first NetBIOS reply
  • Install and update
    • Scale upload timeouts with file size. When an upload times out, report how far the copy got and suggest Ethernet when a weak Wi-Fi link may be the cause
    • Activate refuses installs older than v3.3.0 and asks you to install first
    • Suggest unplugging the device when it still does not answer after a restart
  • Linux CLI
    • Run bootstrap as root without sudo, report missing programs clearly, and drop yum support
    • Install the Python venv package on Debian and Ubuntu before creating the virtual environment
    • Remove the posix_spawn check that blocked musl and older glibc systems

Full Changelog: v3.4.0...v3.5.0

Don't miss a new TimeCapsuleSMB release

NewReleases is sending notifications on new releases.