[bug#76101,1/2] gnu: opensmtpd: Set sysconfdir to /etc.

Message ID d20f19eb92171e7e01142e6365c6a3d09dbdc495.1738853511.git.z572@z572.online
State New
Headers
Series gnu: opensmtpd: Set sysconfdir to /etc. |

Commit Message

Z572 Feb. 6, 2025, 4:02 p.m. UTC
* 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(-)
  

Patch

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 73b4c01bd7b..61b1ec60198 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -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