[bug#76101,1/2] gnu: opensmtpd: Set sysconfdir to /etc.
Commit Message
* gnu/packages/mail.scm (opensmtpd)[arguments]<#:configure-flags>: Add
--sysconfdir=/etc.
<#:phases>: Add fix-smtpd.conf-install-path phase.
Change-Id: I949b8ec18e36b059cf3f56a109e750af1284b1d2
---
gnu/packages/mail.scm | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
@@ -57,7 +57,7 @@
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2024 Benjamin Slade <slade@lambda-y.net>
;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info>
-;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024, 2025 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se>
;;;
;;; This file is part of GNU Guix.
@@ -3320,6 +3320,8 @@ (define-public opensmtpd
(list
#:configure-flags
#~(list "--localstatedir=/var"
+ ;; Allow work with /etc/mailname.
+ "--sysconfdir=/etc"
"--with-libbsd"
;; This is the default only if it exists at build time—it doesn't.
"--with-path-socket=/var/run"
@@ -3350,6 +3352,15 @@ (define-public opensmtpd
(("/bin/cat" file) (search-input-file inputs file)))
(substitute* "usr.sbin/smtpd/mda_unpriv.c"
(("/bin/sh" file) (search-input-file inputs file)))))
+ ;; Avoid install smtpd.conf to /etc.
+ (add-after 'unpack 'fix-smtpd.conf-install-path
+ (lambda _
+ (let ((etc (string-append (assoc-ref %outputs "out")
+ "/etc")))
+ (mkdir-p etc)
+ (substitute* "mk/smtpd/Makefile.am"
+ (("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)/smtpd\\.conf")
+ (string-append etc "/smtpd.conf"))))))
;; OpenSMTPD provides a single smtpctl utility to control both the
;; daemon and the local submission subsystem. To accomodate systems
;; that require historical interfaces such as sendmail, newaliases or