Installation on arch linux won't start due to missing exiftool

i followed the arch linux installation instructions and during the configuration phase i selected the option to have geolocation data stripped from image uploads, this requires exiftools which are installed:

[root@localhost akkoma]# which exiftool
/usr/bin/vendor_perl/exiftool

the akkoma service is stuck starting up because:

23:54:32.153 [error] Elixir.Pleroma.Upload.Filter.Exiftool is specified in list of Pleroma.Upload filters, but the exiftool command is not found
23:54:32.161 [notice] Application pleroma exited: exited in: Pleroma.Application.start(:normal, [])
     ** (EXIT) an exception was raised:
         ** (Pleroma.ApplicationRequirements.VerifyError) System commands missing. Check logs and see `docs/installation` for more details.
             (pleroma 3.4.0-121-g2fe1484e-develop) lib/pleroma/application_requirements.ex:32: Pleroma.ApplicationRequirements.handle_result/1
             (pleroma 3.4.0-121-g2fe1484e-develop) lib/pleroma/application.ex:55: Pleroma.Application.start/2
             (kernel 8.5.1) application_master.erl:293: :application_master.start_it_old/4

anyone know what’s up?

i develop on arch so it shooooould work

the command checking is done via :os.find_executable Erlang -- os - how are you starting the service? does the PATH provided to akkoma on start inlude /usr/bin/vendor_perl?

Seems like it doesn’t here on Arch Linux using OTP using a systemd service.

Nov 26 04:23:02 plem.sapphic.site systemd[1]: Starting Akkoma social network...
Nov 26 04:23:02 plem.sapphic.site echo[25376]: /usr/local/sbin:/usr/local/bin:/usr/bin
# akkoma.service
ExecStartPre=echo $PATH                                                                                                                                                                                          ExecStart=/opt/akkoma/bin/pleroma start
# my normal PATH
adm-tpyrope@corp.terezi.dev √ /home/tpyrope % echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

This is an intended design by systemd because it heavily discourages modifying PATH during runtime for any services. This also means it does not execute anything under /etc/profile.d/*, which is where one of the necessary Perl shell scripts are (perlbin.sh). Ideally you could just set ExecStartPre=/bin/bash -c "/etc/profile.d/perlbin.sh", but Arch Linux installs the script’s permissions as 644 which are not executable.

The only proper solution I’ve found is to manually define your path with Environment=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl in the systemd unit (akkoma.service).

Nov 26 04:50:20 plem.sapphic.site echo[26391]: /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl