~ruther/guix-local

fd19785a9a7f111c6a97da25187c3351e7e8f3fd — Arun Isaac 1 year, 3 months ago ccc9fd9
gnu: mumi: Update to 0.11.0.

* gnu/packages/mail.scm (mumi): Update to 0.11.0.
* gnu/services/web.scm (<mumi-configuration>)[file-tags]: Remove field.
[packages]: New field.
(<mumi-package-configuration>): New record type.
(mumi-package-configuration->alist): New function.
* gnu/services/web.scm (mumi-config-file): Serialize packages configuration.
* doc/guix.texi (Web Services)[mumi]: Document packages configuration.
3 files changed, 80 insertions(+), 5 deletions(-)

M doc/guix.texi
M gnu/packages/mail.scm
M gnu/services/web.scm
M doc/guix.texi => doc/guix.texi +28 -0
@@ 33792,6 33792,34 @@ something like @code{sendmail:///path/to/bin/msmtp} or any other URI
supported by Mailutils.  @xref{SMTP Mailboxes, SMTP Mailboxes,,
mailutils, GNU@tie{}Mailutils}.

@item @code{packages}
List of @code{<mumi-package-configuration>} objects representing
packages configured on Mumi.

@end table
@end deftp

@deftp {Data Type} mumi-package-configuration
Data type representing the configuration of a package on Mumi.  This
type has the following fields:

@table @asis
@item @code{name}
Name of the package.

@item @code{display-name}
Display name used for this package in the web interface.

@item @code{debbugs-packages}
List of Debbugs packages this package refers to.

@item @code{bug-email-address}
Email address to send bug reports to.

@item @code{patch-email-address}
Email address to send patches to, if that is different from
@code{bug-email-address}.

@item @code{file-tags}
Association list mapping tags to filename regular expressions. Keys are
tag names, and values are lists of regular expressions.  For each entry

M gnu/packages/mail.scm => gnu/packages/mail.scm +2 -2
@@ 4265,7 4265,7 @@ It is a replacement for the @command{urlview} program.")
(define-public mumi
  (package
    (name "mumi")
    (version "0.10.0")
    (version "0.11.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 4274,7 4274,7 @@ It is a replacement for the @command{urlview} program.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "12i6xy1pwb5rs7qd6ld1kglgcydjg9lfplvg3mbim9az8sz30dyy"))))
                "022m3vjp40gck9hj889f3mqxhahjzcsiwqn9npi26dzgca7kv3rz"))))
    (build-system gnu-build-system)
    (arguments
     (list

M gnu/services/web.scm => gnu/services/web.scm +50 -3
@@ 298,6 298,16 @@
            mumi-configuration-mailer?
            mumi-configuration-sender
            mumi-configuration-smtp
            mumi-configuration-packages

            mumi-package-configuration
            mumi-package-configuration?
            mumi-package-configuration-name
            mumi-package-configuration-display-name
            mumi-package-configuration-debbugs-packages
            mumi-package-configuration-bug-email-address
            mumi-package-configuration-patch-email-address
            mumi-package-configuration-file-tags

            mumi-service-type



@@ 2025,7 2035,21 @@ WSGIPassAuthorization On
  (mailer? mumi-configuration-mailer? (default #t))
  (sender  mumi-configuration-sender (default #f))
  (smtp    mumi-configuration-smtp (default #f))
  (file-tags mumi-configuration-file-tags (default '())))
  (packages mumi-configuration-packages (default '())))

(define-record-type* <mumi-package-configuration>
  mumi-package-configuration make-mumi-package-configuration
  mumi-package-configuration?
  (name mumi-package-configuration-name)
  (display-name mumi-package-configuration-display-name
                (default #f))
  (debbugs-packages mumi-package-configuration-debbugs-packages)
  (bug-email-address mumi-package-configuration-bug-email-address
                     (default #f))
  (patch-email-address mumi-package-configuration-patch-email-address
                       (default #f))
  (file-tags mumi-package-configuration-file-tags
             (default '())))

(define %mumi-activation
  (with-imported-modules '((guix build utils))


@@ 2057,9 2081,30 @@ WSGIPassAuthorization On

(define %mumi-worker-log "/var/log/mumi.worker.log")

(define mumi-package-configuration->alist
  (match-record-lambda <mumi-package-configuration>
      (name display-name debbugs-packages bug-email-address
            patch-email-address file-tags)
    `(,name
      ,@(if display-name
            `((display-name . ,display-name))
            '())
      ,@(if debbugs-packages
            `((debbugs-packages . ,debbugs-packages))
            '())
      ,@(if bug-email-address
            `((bug-email-address . ,bug-email-address))
            '())
      ,@(if patch-email-address
            `((patch-email-address . ,patch-email-address))
            '())
      ,@(match file-tags
          (() '())
          (_ `((file-tags . ,file-tags)))))))

(define mumi-config-file
  (match-record-lambda <mumi-configuration>
      (mailer? file-tags)
      (mailer? packages)
    (computed-file "mumi.conf"
                   #~(begin
                       (use-modules (srfi srfi-26))


@@ 2067,7 2112,9 @@ WSGIPassAuthorization On
                       (call-with-output-file #$output
                         (cut write
                              '((mailer-enabled? . #$mailer?)
                                (file-tags . #$file-tags))
                                (packages
                                 . #$(map mumi-package-configuration->alist
                                          packages)))
                              <>))))))

(define (mumi-shepherd-services config)