Problem installing PhotoStructure for Node on an M1 Mac?

,

If you’re switching to version 1.0.0, from v0.9.1, you may see the following error:

mrm@m1 photostructure-for-servers % ./start.sh
No local changes to save
Already up to date.
Cleaning up prior builds before recompiling...
Need to install the following packages:
yarn
Ok to proceed? (y) y
yarn install v1.22.10
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
info exiftool-vendored.exe@12.25.0: The platform "darwin" is incompatible with this module.
info "exiftool-vendored.exe@12.25.0" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
[1/2] ⠈ better-sqlite3
error /Users/mrm/photostructure-for-servers/node_modules/sharp: Command failed.
Exit code: 1
Command: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
Arguments:
Directory: /Users/mrm/photostructure-for-servers/node_modules/sharp
Output:
sharp: Detected globally-installed libvips v8.10.6
sharp: Building from source via node-gyp
gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.2
gyp info using node@16.2.0 | darwin | arm64
gyp info find Python using Python version 3.9.5 found at "/opt/homebrew/opt/python@3.9/bin/python3.9"
(node:21413) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
(Use node --trace-deprecation ... to show where the warning was created)
gyp info spawn /opt/homebrew/opt/python@3.9/bin/python3.9
gyp info spawn args [
gyp info spawn args '/Users/mrm/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/Users/mrm/photostructure-for-servers/node_modules/sharp/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/mrm/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/mrm/Library/Caches/node-gyp/16.2.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/Users/mrm/Library/Caches/node-gyp/16.2.0',
gyp info spawn args '-Dnode_gyp_dir=/Users/mrm/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/Users/mrm/Library/Caches/node-gyp/16.2.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/Users/mrm/photostructure-for-servers/node_modules/sharp',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
Package OpenEXR was not found in the pkg-config search path.
Perhaps you should add the directory containing `OpenEXR.pc'
to the PKG_CONFIG_PATH environment variable
Package 'OpenEXR', required by 'vips', not found
gyp: Call to 'PKG_CONFIG_PATH="/usr/lib/pkgconfig:/opt/homebrew/Library/Homebrew/os/mac/pkgconfig/11:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig" pkg-config --cflags-only-I vips-cpp vips glib-2.0 | sed s\/-I//g' returned exit status 0 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/Users/mrm/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack at ChildProcess.emit (node:events:365:28)
gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
gyp ERR! System Darwin 20.3.0
gyp ERR! command "/Users/mrm/.nvm/versions/node/v16.2.0/bin/node" "/Users/mrm/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/mrm/photostructure-for-servers/node_modules/sharp
gyp ERR! node -v v16.2.0
gyp ERR! node-gyp -v v7.1.2
gyp ERR! not ok

There are several things to check:

  1. Make sure homebrew is up to date. Run brew upgrade.

  2. Uninstall the vips library. Run brew uninstall vips.

  3. Make sure you’re running Node.js version 16.2.0.
    If you installed node with nvm, run the following:

nvm install 16
nvm alias default 16
nvm use 16
nvm uninstall 15 # < optional
  1. Make sure you’re running PhotoStructure v1.0.0 or later. As of today, this requires using the beta branch. When v1.0.0 is released, you can switch back to the main branch.
    Switch to the beta branch by running the following:
cd ~/photostructure-for-servers
git stash -u
git fetch
git checkout beta

At this point, ./start.sh should work:

mrm@m1 photostructure-for-servers % ./start.sh
No local changes to save
Already up to date.
yarn install v1.22.10
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
info exiftool-vendored.exe@12.25.0: The platform "darwin" is incompatible with this module.
info "exiftool-vendored.exe@12.25.0" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
✨ Done in 20.96s.
PhotoStructure is ready: <http://localhost:1787/>

Still have problems? Reply to this thread and we’ll get it sorted.

1 Like

I’m having what looks to be the same error, still, even after verifying node is version 16 (right now 16.2.0), and then after uninstalling node via brew and reinstalling and setting 16 to default using nvm. NVM reports node v15 isn’t installed, which makes sense because I hadn’t installed nvm previously.

I’m stumped.

~/photostructure-for-servers ❯❯❯ ./start.sh
No local changes to save
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint: 
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint: 
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
Already up to date.
yarn install v1.22.10
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
info exiftool-vendored.exe@12.25.0: The platform "darwin" is incompatible with this module.
info "exiftool-vendored.exe@12.25.0" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...
[1/2] ⡀ better-sqlite3
error /Users/USER/photostructure-for-servers/node_modules/sharp: Command failed.
Exit code: 1
Command: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
Arguments: 
Directory: /Users/USER/photostructure-for-servers/node_modules/sharp
Output:
sharp: Using cached /Users/USER/.npm/_libvips/libvips-8.10.6-darwin-x64.tar.br
prebuild-install WARN install EACCES: permission denied, open '/Users/USER/.npm/_prebuilds/c69023-sharp-v0.28.2-napi-v3-darwin-x64.tar.gz.10885-c22122b68bc66.tmp'
gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.2
gyp info using node@16.2.0 | darwin | x64
gyp info find Python using Python version 3.9.5 found at "/usr/local/opt/python@3.9/bin/python3.9"
(node:10894) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
(Use `node --trace-deprecation ...` to show where the warning was created)
gyp info spawn /usr/local/opt/python@3.9/bin/python3.9
gyp info spawn args [
gyp info spawn args   '/Users/USER/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/USER/photostructure-for-servers/node_modules/sharp/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/USER/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/USER/Library/Caches/node-gyp/16.2.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/USER/Library/Caches/node-gyp/16.2.0',
gyp info spawn args   '-Dnode_gyp_dir=/Users/USER/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/USER/Library/Caches/node-gyp/16.2.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/USER/photostructure-for-servers/node_modules/sharp',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  CC(target) Release/obj.target/nothing/../node-addon-api/nothing.o
  LIBTOOL-STATIC Release/nothing.a
warning: /Library/Developer/CommandLineTools/usr/bin/libtool: archive library: Release/nothing.a the table of contents is empty (no object file members in the library define global symbols)
  TOUCH Release/obj.target/libvips-cpp.stamp
  CXX(target) Release/obj.target/sharp/src/common.o
../src/common.cc:24:10: fatal error: 'vips/vips8' file not found
#include <vips/vips8>
         ^~~~~~~~~~~~
1 error generated.
make: *** [Release/obj.target/sharp/src/common.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/USER/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (node:events:365:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
gyp ERR! System Darwin 20.3.0
gyp ERR! command "/Users/USER/.nvm/versions/node/v16.2.0/bin/node" "/Users/USER/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/USER/photostructure-for-servers/node_modules/sharp
gyp ERR! node -v v16.2.0
gyp ERR! node-gyp -v v7.1.2
gyp ERR! not ok
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this 
Dependency installation failed.
Please refer to <https://photostructure.com/server/photostructure-for-node/>.
You can also visit <https://forum.photostructure.com> for help.
type or paste code here

Hmm, that’s not the same set of errors that I saw.

This is weird:

prebuild-install WARN install EACCES: permission denied, open '/Users/USER/.npm/_prebuilds/c69023-sharp-v0.28.2-napi-v3-darwin-x64.tar.gz.10885-c22122b68bc66.tmp'

Do you have xcode set up?

xcode-select --install;
sudo xcode-select --reset;

Did you install v0.9 HEIF support? If so, you’ll need to unwind that: open a terminal, and

cd ~/src/vips/vips-8.10.2;
sudo make uninstall;
sudo update_dyld_shared_cache;

And then reboot (really!). You could also try removing other build artifacts:

rm -rf ~/.npm/_libvips ~/.node-gyp ~/.cache/yarn/*/*sharp*

And then re-try running start.sh

I don’t have Xcode installed. But I do have Xcode-select installed (command line tools, right?)

I don’t believe I ever setup HEIF for 0.9, only FFMEG for v1.

But I’ll give both of the suggested commands a try, and restart. I hate to say it, but it could just be a lack of restarting causing my issues at this point. Thanks for the things to try.

I did the commands you listed:Xcode-select install and reset, and the VIPs uninstall (“no such file or directory”); installed the 11.3.1 Mac OS update, restarted; tried the command to remove the build artifacts (“no matches found”); tried start.sh > error.

I also deleted the command line tools directory, reinstalled and reset; tried the start.sh > same error, I think:

~/photostructure-for-servers ❯❯❯ cd ~                                      ✘ 1 
git clone https://github.com/photostructure/photostructure-for-servers.git
cd photostructure-for-servers
./start.sh
Cloning into 'photostructure-for-servers'...
remote: Enumerating objects: 3598, done.
remote: Counting objects: 100% (749/749), done.
remote: Compressing objects: 100% (443/443), done.
remote: Total 3598 (delta 428), reused 572 (delta 296), pack-reused 2849
Receiving objects: 100% (3598/3598), 39.34 MiB | 8.89 MiB/s, done.
Resolving deltas: 100% (2282/2282), done.
uname: illegal option -- o
usage: uname [-amnprsv]
No local changes to save
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint: 
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint: 
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
Already up to date.
yarn install v1.22.10
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
info exiftool-vendored.exe@12.6.0: The platform "darwin" is incompatible with this module.
info "exiftool-vendored.exe@12.6.0" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...
[1/2] ⠠ better-sqlite3
error /Users/USERNAME/photostructure-for-servers/node_modules/sharp: Command failed.
Exit code: 1
Command: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
Arguments: 
Directory: /Users/USERNAME/photostructure-for-servers/node_modules/sharp
Output:
info sharp Using cached /Users/USERNAME/.npm/_libvips/libvips-8.8.1-darwin-x64.tar.gz
prebuild-install WARN install No prebuilt binaries found (target=16.2.0 runtime=node arch=x64 libc= platform=darwin)
gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.2
gyp info using node@16.2.0 | darwin | x64
gyp info find Python using Python version 3.9.5 found at "/usr/local/opt/python@3.9/bin/python3.9"
(node:7234) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
(Use `node --trace-deprecation ...` to show where the warning was created)
gyp info spawn /usr/local/opt/python@3.9/bin/python3.9
gyp info spawn args [
gyp info spawn args   '/Users/USERNAME/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/USERNAME/photostructure-for-servers/node_modules/sharp/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/USERNAME/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/USERNAME/Library/Caches/node-gyp/16.2.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/USERNAME/Library/Caches/node-gyp/16.2.0',
gyp info spawn args   '-Dnode_gyp_dir=/Users/USERNAME/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/USERNAME/Library/Caches/node-gyp/16.2.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/USERNAME/photostructure-for-servers/node_modules/sharp',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  TOUCH Release/obj.target/libvips-cpp.stamp
  CXX(target) Release/obj.target/sharp/src/common.o
In file included from ../src/common.cc:22:
In file included from /Users/USERNAME/Library/Caches/node-gyp/16.2.0/include/node/node.h:63:
In file included from /Users/USERNAME/Library/Caches/node-gyp/16.2.0/include/node/v8.h:30:
/Users/USERNAME/Library/Caches/node-gyp/16.2.0/include/node/v8-internal.h:452:38: error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'remove_cv'?
            !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
                                ~~~~~^~~~~~~~~~~
                                     remove_cv
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/type_traits:776:50: note: 'remove_cv' declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_cv
                                                 ^
1 error generated.
make: *** [Release/obj.target/sharp/src/common.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/USERNAME/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (node:events:365:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
gyp ERR! System Darwin 20.4.0
gyp ERR! command "/Users/USERNAME/.nvm/versions/node/v16.2.0/bin/node" "/Users/USERNAME/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/USERNAME/photostructure-for-servers/node_modules/sharp
gyp ERR! node -v v16.2.0
gyp ERR! node-gyp -v v7.1.2
gyp ERR! not ok

Dependency installation failed.
See <https://photostructure.com/server/photostructure-for-node/> or
send an email to <support@photostructure.com> for help.%   

This last failure was because you need to be on the “beta” branch for compilation to work:

git checkout beta
./start.sh

One of these times I’ll remember that.

Definitely looks different this time, but still errors; issues with Sharp and VIPS, other things?

~/photostructure-for-servers ❯❯❯ git checkout beta                                                                                                            ✘ 1 
./start.sh
Already on 'beta'
Your branch is up to date with 'origin/beta'.
No local changes to save
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint: 
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint: 
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
Already up to date.
yarn install v1.22.10
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
info exiftool-vendored.exe@12.25.0: The platform "darwin" is incompatible with this module.
info "exiftool-vendored.exe@12.25.0" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...
[1/2] ⠐ better-sqlite3
error /Users/USERNAME/photostructure-for-servers/node_modules/sharp: Command failed.
Exit code: 1
Command: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
Arguments: 
Directory: /Users/USERNAME/photostructure-for-servers/node_modules/sharp
Output:
sharp: Using cached /Users/USERNAME/.npm/_libvips/libvips-8.10.6-darwin-x64.tar.br
prebuild-install WARN install EACCES: permission denied, open '/Users/USERNAME/.npm/_prebuilds/c69023-sharp-v0.28.2-napi-v3-darwin-x64.tar.gz.10537-d662ca60eec0a.tmp'
gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.2
gyp info using node@16.2.0 | darwin | x64
gyp info find Python using Python version 3.9.5 found at "/usr/local/opt/python@3.9/bin/python3.9"
(node:10540) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
(Use `node --trace-deprecation ...` to show where the warning was created)
gyp info spawn /usr/local/opt/python@3.9/bin/python3.9
gyp info spawn args [
gyp info spawn args   '/Users/USERNAME/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/USERNAME/photostructure-for-servers/node_modules/sharp/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/USERNAME/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/USERNAME/Library/Caches/node-gyp/16.2.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/USERNAME/Library/Caches/node-gyp/16.2.0',
gyp info spawn args   '-Dnode_gyp_dir=/Users/USERNAME/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/USERNAME/Library/Caches/node-gyp/16.2.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/USERNAME/photostructure-for-servers/node_modules/sharp',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  CC(target) Release/obj.target/nothing/../node-addon-api/nothing.o
  LIBTOOL-STATIC Release/nothing.a
warning: /Library/Developer/CommandLineTools/usr/bin/libtool: archive library: Release/nothing.a the table of contents is empty (no object file members in the library define global symbols)
  TOUCH Release/obj.target/libvips-cpp.stamp
  CXX(target) Release/obj.target/sharp/src/common.o
../src/common.cc:24:10: fatal error: 'vips/vips8' file not found
#include <vips/vips8>
         ^~~~~~~~~~~~
1 error generated.
make: *** [Release/obj.target/sharp/src/common.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/USERNAME/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (node:events:365:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
gyp ERR! System Darwin 20.4.0
gyp ERR! command "/Users/USERNAME/.nvm/versions/node/v16.2.0/bin/node" "/Users/USERNAME/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/USERNAME/photostructure-for-servers/node_modules/sharp
gyp ERR! node -v v16.2.0
gyp ERR! node-gyp -v v7.1.2
gyp ERR! not ok

Dependency installation failed.
Please refer to <https://photostructure.com/server/photostructure-for-node/>.
You can also visit <https://forum.photostructure.com> for help.```

I went ahead and ran brew install vips and… ./start.sh worked. Go figure.

~/photostructure-for-servers ❯❯❯ git checkout beta
./start.sh
Already on 'beta'
Your branch is up to date with 'origin/beta'.
No local changes to save
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint: 
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint: 
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
Already up to date.
yarn install v1.22.10
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
info exiftool-vendored.exe@12.25.0: The platform "darwin" is incompatible with this module.
info "exiftool-vendored.exe@12.25.0" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...
✨  Done in 87.38s.
Please wait, setting up...
Upgrading your library database...
PhotoStructure is ready: <http://localhost:1787/>