Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGES-202605.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ CREATE TABLE IF NOT EXISTS suppressions (
- **libspf2 include/library paths not propagated to Makefiles**: `configure.ac` modified `CFLAGS` to pass the SPF2 include path to `AC_SEARCH_LIBS`, but autoconf does not propagate `CFLAGS` changes into generated Makefiles. This caused build failures in rpmbuild environments (Fedora/EPEL) where `CFLAGS` is pre-set by distribution policy. Paths are now appended to `CPPFLAGS` and `LDFLAGS` instead, making `--with-spf2-include` and `--with-spf2-lib` work correctly. (#287, issue #146)
- **`@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)
- **`opendmarc-run` moved from `contrib/` to `reports/`**: `contrib/README` describes that directory as community-contributed and "not directly supported by the project team," which stopped being true once `opendmarc-run` became a real `.in` template wired into the build and actually installed by `make install`. It now lives alongside the tools it wraps (`opendmarc-import`, `opendmarc-expire`, `opendmarc-reports`), still installed to `$(libexecdir)` rather than `$(sbindir)` since it's a cron wrapper, not an interactively-run admin tool.
- **`char`/`u_char` pointer-sign warnings resolved throughout libopendmarc and the milter**: CI builds with `-Wno-pointer-sign` to suppress roughly 240 warnings caused by the long-standing mixing of `char *` and `u_char *` across function signatures. A non-CI build (Clang on FreeBSD, without that flag) surfaced all of them, plus a stray nested `/*` inside an already-open block comment. Resolved with explicit casts at each char/u_char boundary, matching the casting style already used elsewhere in these files. Two existing casts on `dfc->mctx_jobid` (actually declared `char *`, not `u_char *`) were backwards and have been removed rather than compounded. `make check` surfaced the same warning class in `libopendmarc/tests/*.c`, plus a real bug: `test_dmarc_fetch.c` declared the return of `opendmarc_policy_fetch_ruf()`/`opendmarc_policy_fetch_rua()` as `u_char *` when both functions actually return `u_char **`, caught by `-Wincompatible-pointer-types`. (#426, #427)

---

Expand Down