[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] gnu: Add sendmail
From: |
John Darrington |
Subject: |
Re: [PATCH] gnu: Add sendmail |
Date: |
Sat, 17 Sep 2016 10:50:35 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Sat, Sep 17, 2016 at 12:51:20PM +0800, Alex Vong wrote:
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.
They need more than that. They need the binary to be installed setuid. So
these
cannot be run as package tests. They must be tested after the
as-yet-to-be-written
service is installed. But I'll update the comment to make it more clear.
> + #: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)".
Is that simpler? It has more characters?
> + "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.
WTF?? Didn't you complain earlier this week when I *didn't* put #t in exactly
this
scenario??
> + (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.
Would that make any difference? Since only the last expression would get
returned from lambda ?
> + (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
--
Avoid eavesdropping. Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.
signature.asc
Description: Digital signature
- [PATCH] gnu: Add sendmail, John Darrington, 2016/09/16
- Re: [PATCH] gnu: Add sendmail, Alex Vong, 2016/09/17
- Re: [PATCH] gnu: Add sendmail,
John Darrington <=
- 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