[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
- [PATCH] gnu: Add sendmail, John Darrington, 2016/09/16
- Re: [PATCH] gnu: Add sendmail,
Alex Vong <=
- Re: [PATCH] gnu: Add sendmail, John Darrington, 2016/09/17
- Re: [PATCH] gnu: Add sendmail, John Darrington, 2016/09/17
- Re: [PATCH] gnu: Add sendmail, Alex Vong, 2016/09/17
- Re: [PATCH] gnu: Add sendmail, John Darrington, 2016/09/17
- Re: [PATCH] gnu: Add sendmail, Alex Kost, 2016/09/18
- Re: [PATCH] gnu: Add sendmail, Alex Vong, 2016/09/24
- Re: [PATCH] gnu: Add sendmail, Alex Kost, 2016/09/24