Apple silicon support

The currently released version of PhotoStructure should run fine with Big Sur under Rosetta (emulation).

I just got a new m1 Mac mini yesterday, and am adding it to PhotoStructure’s continuous integration build farm tomorrow. The PhotoStructure for Node instructions will be a bit more involved, and the Desktop edition will now have two separate installers (one for Intel Mac, and one for Apple Silicon Mac).

Update 2021-02-01: PhotoStructure on Apple Silicon should be considered experimental. A beta user just reported database corruption (which is normally extremely rare). I recently had to reformat my m1’s internal drive due to APFS corruption.

I’ll try to look into this more after v1.0.0 is out the door.

Update:

The PhotoStructure for Node build, when using nvm to compile a native node binary, seems to work, but should be considered experimental. There are a couple bugs in v0.9.1 with respect to Big Sur that are addressed in v1.0.0, but those should be cosmetic.

Unfortunately, the Desktop build requires a couple dependencies and automatic updater changes that aren’t quite yet ready for Apple Silicon. These should hopefully should be available in a month or two, at which point I can revisit a native Desktop release.

Update: a beta user just shared logs that indicate SQLite, the storage engine that PhotoStructure is using, is having persistence issues (most likely due to APFS).

(FWIW, I’ve had to completely reformat my m1 mac mini’s internal drive when Big Sur decided it wasn’t going to boot anymore. There are serious defects in APFS and Big Sur that result in data loss: please make sure you’re using Time Machine regularly!).

I’m going to update the initial post in this topic to emphasize how experimental the m1 environment is currently. Sorry if you’ve been bit by this!

Here’s another issue that Big Sur users may hit: v0.9.1’s volumes() function required all root volume directories to be readable, and would completely crash if any volumes were not readable.

Unfortunately, Big Sur may hide some Time Machine (or other) volumes to users. I’ve addressed this in v1.0.0: (from the release notes):

  • :bug: PhotoStructure could fail to launch if readdir failed for any root directories of volumes.