Subject: [bug#42899] [PATCH v2 04/10] gnu: dovecot-pigeonhole: Add new variable.

From: Efraim Flashner <[email-masked]>
Date: Mon, 24 Aug 2020 00:16:51 +0300

Make sure you run 'guix lint' on the package, some of the lines are too
long.

On Tue, Aug 18, 2020 at 02:00:32PM +0200, Alexey Abramov wrote:
> Signed-off-by: Alexey Abramov <[email-masked]>
> ---
>  gnu/packages/mail.scm | 56 +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 56 insertions(+)
> 
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index 8e7d5b2fc1..25e9570958 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -1467,6 +1467,62 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
>      (license (list license:lgpl2.1 license:expat
>                     (license:non-copyleft "file://COPYING")))))
>  
> +(define-public dovecot-pigeonhole
> +  (let ((dovecot-version (version-major+minor (package-version dovecot))))
> +    (package
> +      (name "dovecot-pigeonhole")
> +      (version "0.5.11")
> +      (source
> +       (origin
> +         (method url-fetch)
> +         (uri (string-append "https://pigeonhole.dovecot.org/releases/"
> +                             dovecot-version "/"
> +                             "dovecot-" dovecot-version "-pigeonhole-" version ".tar.gz"))

Is there a difference between dovecot-2.3-pigeonhole-0.5.11.tar.gz and
dovecot-2.3.11-pigeonhole-0.5.11.tar.gz?

> +         (sha256
> +          (base32
> +           "1w5mryv6izh1gv7davnl94rb0pvh5bxl2bydzbfla1b83x22m5qb"))))
> +      (build-system gnu-build-system)
> +      (native-inputs
> +       `(("automake" ,automake)
> +         ("autoconf" ,autoconf)
> +         ("libtool" ,libtool)
> +         ("pkg-config" ,pkg-config)
> +         ("gettext" ,gettext-minimal)
> +         ("dovecot" ,dovecot)))

it doesn't looke like automake, autoconf, libtool or gettext are
necessary here. Also, 'guix gc --references' show a reference to
dovecot, so that should go in inputs.

> +      (arguments
> +       `(#:configure-flags
> +         (list "--with-dovecot-install-dirs=no"
> +               (string-append "--with-dovecot="
> +                              (assoc-ref %build-inputs "dovecot")
> +                              "/lib/dovecot")
> +               (string-append "--with-moduledir="
> +                              (assoc-ref %outputs "out")
> +                              "/lib/dovecot"))
> +         #:phases
> +         (modify-phases %standard-phases
> +           (add-after 'unpack 'patch-file-names
> +             (lambda _

If you change the lambda to (lambda* (#:key outputs #:allow-other-keys)
then you can change the let to (let ((out (assoc-ref outputs "out")))
and it fits better with the code formatting in the rest of Guix.

> +               (let ((out (assoc-ref %outputs "out")))
> +                 (substitute* "src/managesieve/managesieve-settings.c"
> +                   ((".executable = \"managesieve\"")
> +                    (string-append ".executable = \"" out "/libexec/dovecot/managesieve\"")))
> +                 (substitute* "src/managesieve-login/managesieve-login-settings.c"
> +                   ((".executable = \"managesieve-login\"")
> +                    (string-append ".executable = \"" out "/libexec/dovecot/managesieve-login\""))))

Some of these lines are too long. We try to wrap them at 80, and the
linter complains once it hits 90. If you start a new line after 'out'
then it should flow nicely.

> +               #t)))))
> +      (home-page "https://pigeonhole.dovecot.org")
> +      (synopsis "Pigeonhole project provides mail filtering facilities using
> +the Sieve language")

I would shorten this to 'Mail filtering in Dovecot using the Sieve
language'

> +      (description
> +       "@code{dovecot-pigonhole} adds support for the Sieve
> +language (RFC 5228) and the ManageSieve protocol (RFC 5804) to the
> +@code{Dovecot} Secure IMAP Server.")
> +      ;; Pigeonhole is open source and distributed under the same
> +      ;; license as Dovecot: LGPL v2.1
> +      (license (list license:lgpl2.1
> +                     (license:non-copyleft "file://COPYING")
> +                     (license:non-copyleft "file://COPYING.LGPL"))))))

It looked to me like it was just lgpl2.1

> +
>  (define-public dovecot-trees
>    (package
>      (name "dovecot-trees")
> -- 
> 2.27.0
> 
> 
> 
> 

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted