Hello Efraim!

I need the attached patch to be able to run `mailman start`, `mailman
info` etc.  I will continue to set up mailman on a server of mine and
then report back.

Regards,
Florian
>From 9945d2203362851fb24a829f2a27eead0273ffdc Mon Sep 17 00:00:00 2001
From: Florian Pelz <pelzflor...@pelzflorian.de>
Date: Sun, 10 Nov 2019 11:38:16 +0100
Subject: [PATCH] gn: mailman: Patch configuration to refer to the right
 binaries.

* gn/packages/mailman.scm (mailman): Patch schema.cfg.
---
 gn/packages/mailman.scm | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/gn/packages/mailman.scm b/gn/packages/mailman.scm
index 6fd6291..359fdf6 100644
--- a/gn/packages/mailman.scm
+++ b/gn/packages/mailman.scm
@@ -16,7 +16,8 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages time)
-  #:use-module (gnu packages tls))
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages web-browsers))
 
 (define-public mailman
   (package
@@ -30,6 +31,32 @@
          (base32
           "1qph9i93ndahfxi3bb2sd0kjm2c0pkh844ai6zacfmvihl1k3pvy"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-config
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (lynx (assoc-ref inputs "lynx")))
+               (substitute* "src/mailman/config/schema.cfg"
+                 (("bin_dir:.*") (string-append "bin_dir: " out  "/bin\n"))
+                 (("html_to_plain_text_command:.*")
+                  (string-append "html_to_plain_text_command:" lynx "/bin/lynx"
+                                 " -dump $filename\n")))
+               #t)))
+         (add-after 'wrap 'restore-helper-progs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               ;; Mailman calls os.execle on these, which retains
+               ;; PYTHONPATH anyway and fails with wrappers.
+               (rename-file (string-append bin "/.master-real")
+                            (string-append bin "/master"))
+               (rename-file (string-append bin "/.runner-real")
+                            (string-append bin "/runner"))
+               #t))))))
+    (inputs
+     `(("lynx" ,lynx)))
     (propagated-inputs
      `(("python-aiosmtpd" ,python-aiosmtpd)
        ("python-alembic" ,python-alembic)
-- 
2.21.0

Reply via email to