GNU bug report logs - #59705
[PATCH] gnu: Add postfix.

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix-patches; Reported by: EuAndreh <eu@HIDDEN>; Keywords: patch moreinfo; dated Wed, 30 Nov 2022 00:00:02 UTC; Maintainer for guix-patches is guix-patches@HIDDEN.
Added tag(s) moreinfo. Request was from Ludovic Courtès <ludo@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 59705 <at> debbugs.gnu.org:


Received: (at 59705) by debbugs.gnu.org; 30 Nov 2022 23:32:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 30 18:32:25 2022
Received: from localhost ([127.0.0.1]:35769 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1p0WYy-0005NE-NI
	for submit <at> debbugs.gnu.org; Wed, 30 Nov 2022 18:32:25 -0500
Received: from euandre.org ([216.238.68.100]:43070)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eu@HIDDEN>) id 1p0WYs-0005N8-CS
 for 59705 <at> debbugs.gnu.org; Wed, 30 Nov 2022 18:32:22 -0500
Received: from euandre.org (localhost [127.0.0.1])
 by euandre.org (Postfix) with ESMTP id BE2393A81A2;
 Wed, 30 Nov 2022 20:32:15 -0300 (-03)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=euandre.org; h=
 message-id:date:mime-version:to:references:from:cc:subject
 :in-reply-to:content-type:content-transfer-encoding; s=
 dkimproxy; bh=QMvHvOT9RI/n8m77NWqOA5MMa2Q=; b=pQzPH2NOJfyE2+bL7z
 iP8y//Uvw83mEb3bnToUrvBJv39a3nT5nj1EKYBK35oPZVA2fgMC/jPmwLF9vtlv
 6s1EuTrK+iIXM0YnWxVXWw9t51Lye9810EM134ZQuDadlxYZvTBgUTQ5EG7oUv6R
 6R0Kgk8wPM7RuNLKXpxNvTmDQSRisPmK3EswsSaf5hTJ0lFjPs1nrbQlNXrYFP7G
 9YLkm3JCVVtA75txhg87s8aKkKXe4aoDyH5VvQG4wB6rkaeMrMMjfF1N3FssqGea
 riTNR7j6c+bAXLYJb2+wungv/eIXU33SV7h+j5+PWId8T9JFYT5OHjOS0B/nnns9
 jCvg==
Message-ID: <08c43e00-4b3b-1195-49a6-f6f08ae68ddb@HIDDEN>
Date: Wed, 30 Nov 2022 23:32:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.5.0
Content-Language: en-US, pt, fr, eo, en
To: 59705 <at> debbugs.gnu.org
References: <20221129235930.2532-1-eu@HIDDEN>
From: EuAndreh <eu@HIDDEN>
Subject: Re: [bug#59705] [PATCH] gnu: Add postfix.
In-Reply-To: <20221129235930.2532-1-eu@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 59705
Cc: cwebber@HIDDEN, brantcgardner@HIDDEN, rekado@HIDDEN,
 janneke@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Talking about this with rekado on IRC, it reminded me that I found out 
about the "wip-postfix" branch after I started working on this package. 
This patch supersedes it, and I took inspiration from it during the 
final tweaks.

I'm Cc'ing some people involved in previous discussions about Postfix on 
Guix, and wip-postfix, and invite you to review it too: :)

I'm doing the final polishing touches on postfix-service-type, alongsige 
with cyrus-sasl-service-type and dkimproxyout-service-type to have a 
fully compliant woking mail server.




Information forwarded to guix-patches@HIDDEN:
bug#59705; Package guix-patches. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 29 Nov 2022 23:59:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 29 18:59:56 2022
Received: from localhost ([127.0.0.1]:57270 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1p0AW0-0004sK-Fm
	for submit <at> debbugs.gnu.org; Tue, 29 Nov 2022 18:59:55 -0500
Received: from lists.gnu.org ([209.51.188.17]:35170)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eu@HIDDEN>) id 1p0AVv-0004sC-GQ
 for submit <at> debbugs.gnu.org; Tue, 29 Nov 2022 18:59:52 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eu@HIDDEN>) id 1p0AVu-00079B-1p
 for guix-patches@HIDDEN; Tue, 29 Nov 2022 18:59:46 -0500
Received: from euandre.org ([216.238.68.100])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eu@HIDDEN>) id 1p0AVj-0003sO-Ra
 for guix-patches@HIDDEN; Tue, 29 Nov 2022 18:59:45 -0500
Received: from euandre.org (localhost [127.0.0.1])
 by euandre.org (Postfix) with ESMTP id D9B483794D5;
 Tue, 29 Nov 2022 20:59:32 -0300 (-03)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=euandre.org; h=
 from:to:cc:subject:date:message-id:mime-version
 :content-transfer-encoding; s=dkimproxy; bh=8znTFtWve98jqKGbIU2A
 FnFv2Vg=; b=khByN+zfaPJQaT1SVtQj7zedk3bL4IBCvPE67VABKW1AmMkStHPW
 yefkwynxzCOyYoQH0XRd5yRnyo5RiMUWalZRH5nwv3j8HE4v4bAhuond6vIvhaKr
 ChCFRu8uHypjRjBZYrgGE0Zb1/kkqtD85Vzgy8dmMQetq1FA3YvdkfigkyJzzXu6
 LClz867IjfCGSCE7DYPOiys3Cshi7ow4tQXkjF4pAdZfMiFabbeSRBOhjz2QKMsM
 /1sWc91XhW1QPC6RIZ8GHjZ9FW1ybxXpVu91GVOxWaoKZ7KGcOfXxq2D+Tj3RwMP
 89LNR8b24s7bISFumq2QT7hR5fGG+YLEfQ==
From: EuAndreh <eu@HIDDEN>
To: guix-patches@HIDDEN
Subject: [PATCH] gnu: Add postfix.
Date: Tue, 29 Nov 2022 20:59:30 -0300
Message-Id: <20221129235930.2532-1-eu@HIDDEN>
X-Mailer: git-send-email 2.38.1
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=216.238.68.100; envelope-from=eu@HIDDEN;
 helo=euandre.org
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: submit
Cc: EuAndreh <eu@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

* gnu/packages/mail.scm (postfix): New variable.
---

Notes:
    This package has a few too many assumptions about the system where it=
s
    running.
   =20
    Other than the usual call to hard-coded /bin/sh paths:
   =20
    - is too conservative on the PATH that the "master" process is launch=
ed
      into;
    - what is available to sbin(8) commands under their paths;
    - where the setuid programs live;
    - what should be the permissions of files under /etc/.
   =20
    It also has a very opinionated way of being given $PREFIX paths, and =
how
    the dynamic Makefiles are generated, how DESTDIR is handled, etc.
   =20
    I had disabled the "postconf -e" ability to edit configuration option=
s
    in-place, as the postfix-service-type that I'm working on generates
    those files and puts the in the store, which isn't writable.
   =20
    All in all, this is a working package: this very email is sent from a
    local installation of Postfix in my Guix laptop, which forward the em=
ail
    to the server running Postfix under Guix, who than sends it off to th=
e
    internet!  So if you're reading this, it is working :)

 gnu/packages/mail.scm | 125 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 125 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 754c9bc6de..c18ddced82 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -4876,3 +4876,128 @@ (define-public aerc
     ;; <https://lists.sr.ht/~rjarry/aerc-devel/%3Cb5cb213a7d0c699a886971=
658c2476
     ;; 1073eb2391%40disroot.org%3E>
     (license license:gpl3+)))
+
+(define-public postfix
+  (package
+    (name "postfix")
+    (version "3.8-20221023")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://cdn.postfix.johnriley.me/mirrors/postfix-rel=
ease/experimental/postfix-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0aaylhn81n9z3kidx53kzf2jrilr3lgwfxsk1r4hn7nkrp62bcwm"))=
))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f
+           #:modules `((srfi srfi-26)
+                       ,@%gnu-build-system-modules)
+           #:phases #~(modify-phases %standard-phases
+                        (add-before 'configure 'patch-/bin/sh
+                          (lambda _
+                            (substitute* (find-files "." "^Makefile")
+                              (("/bin/sh")
+                               (which "sh")))))
+                        (add-before 'configure 'patch-bdb-include
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (substitute* "makedefs"
+                              (("/usr/include")
+                               (string-append (assoc-ref inputs "bdb")
+                                              "/include")))))
+                        (add-before 'configure 'dont-hardcode-PATH
+                          (lambda _
+                            (substitute* '("postfix-install"
+                                           "conf/post-install")
+                              (("^PATH=3D")
+                               "# PATH=3D"))))
+                        (add-before 'configure 'fix-strict-PATH
+                          (lambda _
+                            (substitute* "src/util/sys_defs.h"
+                              (("^#define (ROOT_PATH|_PATH_DEFPATH|_PATH=
_STDPATH).*")
+                               "#define ROOT_PATH \"/run/setuid-programs=
:/run/current-system/profile/bin:/run/current-system/profile/sbin\"\n")))=
)
+                        (add-before 'configure 'use-relative-symlink-to-=
store
+                          (lambda _
+                            (substitute* "postfix-install"
+                              (("ln -sf")
+                               "ln -rsf"))))
+                        (add-before 'configure 'fix-absolute-path-to-set=
uid-programs
+                          (lambda _
+                            (substitute* "conf/postfix-script"
+                              (("\\$command_directory/postqueue")
+                               "/run/setuid-programs/postqueue")
+                              (("\\$command_directory/postdrop")
+                               "/run/setuid-programs/postdrop"))))
+                        (add-before 'configure 'disable-warning-on-non-w=
ritable-config-files
+                          (lambda _
+                            (substitute* "conf/postfix-script"
+                              (("find \\$todo \\\\\\( -perm -020 -o -per=
m -002 \\\\\\) \\\\\n")
+                               " # find $todo \\( -perm -020 -o -perm -0=
02 \\)"))))
+                        (add-before 'configure 'disable-write-to-/etc/po=
stfix
+                          (lambda _
+                            (substitute* "src/postconf/postconf_edit.c"
+                              (("pcf_set_config_dir.*")
+                               "return;"))))
+                        (add-before 'configure 'setup-environment
+                          (lambda* (#:key outputs inputs #:allow-other-k=
eys)
+                            (setenv "CCARGS"
+                                    (string-append
+                                     "-DUSE_TLS -DUSE_SASL_AUTH -DUSE_CY=
RUS_SASL -I"
+                                     (assoc-ref inputs "cyrus-sasl")
+                                     "/include/sasl"))
+                            (setenv "AUXLIBS" "-lnsl -lcrypto -lssl -lsa=
sl2")
+                            (let* ((out (assoc-ref outputs "out"))
+                                   (bin (string-append out "/bin"))
+                                   (sbin (string-append out "/sbin"))
+                                   (lib (string-append out "/lib/postfix=
"))
+                                   (libexec (string-append out
+                                                           "/libexec/pos=
tfix"))
+                                   (etc (string-append out "/etc/postfix=
"))
+                                   (man (string-append out "/share/man")=
)
+                                   (doc (string-append out
+                                                       "/share/doc/postf=
ix-"
+                                                       #$version))
+                                   (html (string-append doc "/html")))
+                              (setenv "install_root" "wip-prefix")
+                              (setenv "newaliases_path"
+                                      (string-append bin "/newaliases"))
+                              (setenv "mailq_path"
+                                      (string-append bin "/mailq"))
+                              (setenv "sendmail_path"
+                                      (string-append sbin "/sendmail"))
+                              (setenv "command_directory" sbin)
+                              (setenv "shlib_directory" lib)
+                              (setenv "daemon_directory" libexec)
+                              (setenv "meta_directory" etc)
+                              (setenv "sample_directory" etc)
+                              (setenv "manpage_directory" man)
+                              (setenv "readme_directory" doc)
+                              (setenv "html_directory" html)
+                              (setenv "sample_directory"
+                                      (string-append out "/share/postfix=
")))))
+                        (replace 'configure
+                          (lambda _
+                            (invoke "make" "makefiles" "pie=3Dyes"
+                                    "dynamicmaps=3Dyes")))
+                        (replace 'install
+                          (lambda* (#:key outputs #:allow-other-keys)
+                            (let ((out (assoc-ref outputs "out")))
+                              (invoke "make" "non-interactive-package")
+                              (delete-file-recursively "wip-prefix/var")
+                              (copy-recursively "wip-prefix/etc"
+                                                (string-append out "/etc=
"))
+                              (copy-recursively (string-append "wip-pref=
ix"
+                                                               out) out)=
))))))
+    (inputs (list bdb cyrus-sasl libnsl openssl perl))
+    (native-inputs (list m4))
+    (home-page "https://www.postfix.org")
+    (synopsis "sendmail compatible MTA")
+    (description
+     "Postfix is Wietse Venema's mail server that started life at IBM re=
search
+as an alternative to the widely-used Sendmail program.  Now at Google, W=
ietse
+continues to support Postfix.
+
+Postfix attempts to be fast, easy to administer, and secure.  The outsid=
e has a
+definite Sendmail-ish flavor, but the inside is completely different.")
+    (license (list license:ibmpl1.0 license:epl2.0))))
--=20
2.38.1





Acknowledgement sent to EuAndreh <eu@HIDDEN>:
New bug report received and forwarded. Copy sent to guix-patches@HIDDEN. Full text available.
Report forwarded to guix-patches@HIDDEN:
bug#59705; Package guix-patches. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Wed, 14 Dec 2022 11:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.