guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] gnu: Add sendmail


From: Alex Vong
Subject: Re: [PATCH] gnu: Add sendmail
Date: Sat, 17 Sep 2016 12:51:20 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Hello,

Thanks for the patch. I do not know how to set up a mail server, so I
can only comment on generic things. You will have to wait for sysadmin
to help :)

John Darrington <address@hidden> writes:

> * gnu/packages/mail.scm (sendmail): New variable.
> ---
>  gnu/packages/mail.scm | 80 
> +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 80 insertions(+)
>
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index e344683..aff6a2c 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -1410,3 +1410,83 @@ provides HTML mail archiving with index, mail thread 
> linking,
>  etc; plus other capabilities including support for MIME and
>  powerful user customization features.")
>      (license gpl2+)))
> +
> +
> +(define-public sendmail
> +  (package
> +    (name "sendmail")
> +    (version "8.15.2")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append
> +             "ftp://ftp.sendmail.org/pub/sendmail/sendmail.";
> +             version ".tar.gz"))
> +       (sha256
> +        (base32
> +         "0fdl9ndmspqspdlmghzxlaqk56j3yajk52d7jxcg21b7sxglpy94"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:tests? #f  ; There are no tests
There is a test/ directory in the tarball which needs seperate
compilation. The readme in the test/ directory says the test needs root
privilege, but this is not a problem, since the build daemon has root
privilege.

> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'build 'replace-/bin/sh
> +           (lambda _
> +             (substitute*
> +                 (append
> +                  (list "smrsh/smrsh.c" "sendmail/conf.c" "contrib/mailprio"
> +                        "contrib/mmuegel" "devtools/bin/configure.sh")
> +                  (find-files "." ".*\\.m4")
> +                  (find-files "." ".*\\.cf"))
I think this can be simplified to:
`("smrsh/smrsh.c" "sendmail/conf.c"
   "contrib/mailprio" "contrib/mmuegel"
   "devtools/bin/configure.sh"
   .@(find-files "." ".*\\.m4")
   ,@(find-files "." ".*\\.cf"))
using the quasi-quote quasi-unquote-splicing notation, which is similar
to string interpolation in shell "foo bar $(CAR) $(TAR)".

> +                        "contrib/mmuegel" "devtools/bin/configure.sh")
> +               (("/bin/sh") (which "bash")))
> +
> +             (substitute* "devtools/bin/Build"
> +               (("SHELL=/bin/sh") (string-append "SHELL=" (which "bash"))))
> +             #t))
I think the `#t' is not neccessary here, since `substitute*' uses
`substitute', which will either return #t or throw an exception.

> +         (replace 'configure
> +           (lambda _
> +
> +             ;; Render harmless any attempts to chown or chmod
> +             (substitute* "devtools/bin/install.sh"
> +               (("owner=\\$2") "owner=''")
> +               (("group=\\$2") "group=''"))
> +
> +             (with-output-to-file "devtools/Site/site.config.m4"
> +               (lambda ()
> +                 (format #t "
> +define(`confCC', `gcc')
> +define(`confOPTIMIZE', `-g -O2')
> +define(`confLIBS', `-lresolv')
> +define(`confINSTALL', `~a/devtools/bin/install.sh')
> +define(`confDEPEND_TYPE', `CC-M')
> +define(`confINST_DEP', `')
> +" (getcwd))))))
> +         (replace 'build
> +           (lambda _
> +             (system* "sh" "Build")
I think there is a missing `zero?' here.

> +             (with-directory-excursion "cf/cf"
> +               (begin
> +                 (copy-file "generic-linux.mc" "sendmail.mc")
> +                 (zero? (system* "sh" "Build" "sendmail.cf"))))))
> +         (add-before 'install 'pre-install
> +           (lambda _
> +             (let ((out (assoc-ref %outputs "out")))
> +               (mkdir-p (string-append out "/usr/bin"))
> +               (mkdir-p (string-append out "/usr/sbin"))
> +               (mkdir-p (string-append out "/etc/mail"))
> +               (setenv "DESTDIR" out)
> +               (with-directory-excursion "cf/cf"
> +                 (zero? (system* "sh" "Build" "install-cf")))))))))
> +    (inputs
> +     `(("m4" ,m4)
> +       ("perl" ,perl)))
> +    (home-page "http://sendmail.org";)
> +    (synopsis
> +     "Highly configurable Mail Transfer Agent (MTA)")
> +    (description
> +     "Sendmail is a mail transfer agent (MTA) originally developed by Eric
> +Allman.  It is highly configurable and supports many delivery methods and 
> many
> +transfer protocols.")
> +    (license (non-copyleft "file://LICENSE"
> +                           "See LICENSE in the distribution."))))
> +

Thanks,
Alex



reply via email to

[Prev in Thread] Current Thread [Next in Thread]