Ludovic Courtès <ludo@HIDDEN>
to control <at> debbugs.gnu.org.
Full text available.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.
guix-patches@HIDDEN:bug#59705; Package guix-patches.
Full text available.
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
EuAndreh <eu@HIDDEN>:guix-patches@HIDDEN.
Full text available.guix-patches@HIDDEN:bug#59705; Package guix-patches.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.