- **`@sysconfdir@`/`@sbindir@`/`@localstatedir@` never expanded in generated scripts**: These standard autoconf directory variables only self-expand inside Makefiles, where Make resolves the nested `${prefix}` reference at build time. For non-Makefile `AC_CONFIG_FILES` outputs, `config.status` substitutes them with their literal unexpanded form (e.g. `${prefix}/etc`), which is meaningless once dropped into a Perl string or a systemd unit file. This broke the default config-file lookup in `opendmarc-reports` and `opendmarc-importstats`, the `$import` command `opendmarc-importstats` shells out to, and `ExecStart`/`EnvironmentFile`/`ReadWritePaths` in the generated `opendmarc.service` -- on every platform, not just non-`/etc` ones like FreeBSD. `configure.ac` now also resolves `SBINDIR` and `LOCALSTATEDIR` the same way it already resolved `SYSCONFDIR`, and all affected templates use the resolved uppercase forms. `opendmarc-run` is also now a proper `.in` template installed via `make install` (to `$(libexecdir)`) instead of a static, hardcoded-path script that was never wired into the build. (issue #420)
0 commit comments