diff options
Diffstat (limited to 'gnu/packages/mail.scm')
-rw-r--r-- | gnu/packages/mail.scm | 786 |
1 files changed, 494 insertions, 292 deletions
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index c8f29b80d6..e1e56c33d0 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <[email protected]> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <[email protected]> ;;; Copyright © 2014, 2015, 2017, 2020 Mark H Weaver <[email protected]> ;;; Copyright © 2014 Ian Denhardt <[email protected]> ;;; Copyright © 2014 Sou Bunnbu <[email protected]> @@ -9,7 +9,7 @@ ;;; Copyright © 2015, 2016, 2018 Eric Bavier <[email protected]> ;;; Copyright © 2015 Andreas Enge <[email protected]> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <[email protected]> -;;; Copyright © 2016 Christopher Allan Webber <[email protected]> +;;; Copyright © 2016 Christine Lemmer-Webber <[email protected]> ;;; Copyright © 2016 Al McElrath <[email protected]> ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <[email protected]> ;;; Copyright © 2016 Lukas Gradl <[email protected]> @@ -17,7 +17,7 @@ ;;; Copyright © 2016, 2017 Troy Sankey <[email protected]> ;;; Copyright © 2016, 2017, 2018 Nikita <[email protected]> ;;; Copyright © 2016 Clément Lassieur <[email protected]> -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Arun Isaac <[email protected]> +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Arun Isaac <[email protected]> ;;; Copyright © 2016 John Darrington <[email protected]> ;;; Copyright © 2016, 2018 Marius Bakke <[email protected]> ;;; Copyright © 2017 Thomas Danckaert <[email protected]> @@ -32,7 +32,7 @@ ;;; Copyright © 2020 Vincent Legoll <[email protected]> ;;; Copyright © 2020 Justus Winter <[email protected]> ;;; Copyright © 2020 Eric Brown <[email protected]> -;;; Copyright © 2020 Maxim Cournoyer <[email protected]> +;;; Copyright © 2020, 2021 Maxim Cournoyer <[email protected]> ;;; Copyright © 2020 Michael Rohleder <[email protected]> ;;; Copyright © 2020, 2021 Alexey Abramov <[email protected]> ;;; Copyright © 2020 Tim Gesthuizen <[email protected]> @@ -85,6 +85,8 @@ #:use-module (gnu packages emacs) #:use-module (gnu packages enchant) #:use-module (gnu packages file) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gdb) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) @@ -113,11 +115,13 @@ #:use-module (gnu packages m4) #:use-module (gnu packages man) #:use-module (gnu packages ncurses) + #:use-module (gnu packages nettle) #:use-module (gnu packages networking) #:use-module (gnu packages ninja) #:use-module (gnu packages openldap) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages pcre) + #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages perl-web) @@ -129,6 +133,7 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages ragel) + #:use-module (gnu packages regex) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) @@ -151,6 +156,7 @@ #:use-module (gnu packages xml) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) + #:use-module (guix deprecation) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix svn-download) @@ -161,6 +167,8 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system guile) + #:use-module (guix build-system emacs) + #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system trivial) @@ -206,10 +214,10 @@ `(("ncurses" ,ncurses) ("readline" ,readline))) (home-page "https://abook.sourceforge.io/") - (synopsis "Text-based addressbook") + (synopsis "Text-based address book") (description - "Abook is a text-based addressbook program designed to use with Mutt mail -client.") + "Abook is a text-based address book program designed to use with the Mutt +mail client.") (license license:gpl2))) (define-public anubis @@ -253,17 +261,16 @@ example, modify the message headers or body, or encrypt or sign the message.") (define-public mailutils (package (name "mailutils") - (version "3.10") + (version "3.13") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mailutils/mailutils-" version ".tar.xz")) (sha256 (base32 - "17smrxjdgbbzbzakik30vj46q4iib85ksqhb82jr4vjp57akszh9")) + "1iwl82d6aa2acsdxbqh1s5xx44sg83b4yxqik408m1s9rcfrf86r")) (patches - ;; Fixes https://issues.guix.gnu.org/43088. - (search-patches "mailutils-fix-uninitialized-variable.patch")))) + (search-patches "mailutils-variable-lookup.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -287,8 +294,9 @@ example, modify the message headers or body, or encrypt or sign the message.") ;; The 'pipeact.at' tests generate a shell script; make ;; sure it uses the right shell. (substitute* '("sieve/tests/testsuite" - "mh/tests/testsuite") - (("#! /bin/sh") + "mh/tests/testsuite" + "libmailutils/tests/lock.at") + (("#! ?/bin/sh") (string-append "#!" (which "sh")))) (substitute* "mh/tests/testsuite" @@ -320,8 +328,9 @@ example, modify the message headers or body, or encrypt or sign the message.") (format port "Path: ~a/Mail-for-tests~%" (getcwd)))) - #t))) - ;; TODO: Add `--with-sql'. + (substitute* "imap4d/tests/testclient.c" + (("\"/bin/sh\"") + (string-append "\"" (which "sh") "\"")))))) #:configure-flags (list "--sysconfdir=/etc" @@ -333,16 +342,20 @@ example, modify the message headers or body, or encrypt or sign the message.") (package-inputs this-package)) (("guile" guile) (version-major+minor - (package-version guile)))))) - - #:parallel-tests? #f)) + (package-version guile)))))))) (native-inputs - `(("perl" ,perl) ;for 'gylwrap' + ;; Regeneration of the build system is triggered by touching the + ;; 'libmailutils/tests/lock.at' file. + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gettext-minimal) + ("libtool" ,libtool) + ("m4" ,m4) + ("perl" ,perl) ;for 'gylwrap' ("texinfo" ,texinfo) ("dejagnu" ,dejagnu))) (inputs - `(("m4" ,m4) - ("guile" ,guile-3.0) + `(("guile" ,guile-3.0) ("gsasl" ,gsasl) ("gnutls" ,gnutls) ("ncurses" ,ncurses) @@ -350,7 +363,6 @@ example, modify the message headers or body, or encrypt or sign the message.") ("linux-pam" ,linux-pam) ("libltdl" ,libltdl) ("gdbm" ,gdbm) - ;; Required for SEARCH CHARSET. ("libiconv" ,libiconv) ("libunistring" ,libunistring))) @@ -361,7 +373,24 @@ example, modify the message headers or body, or encrypt or sign the message.") processing electronic mail. It contains both utilities and server daemons and all operate in a protocol-agnostic way. The underlying libraries are also available, simplifying the addition of mail capabilities to new -software.") +software. GNU Mailutils provides the following commands: +@itemize @command +@item dotlock +@item decodemail +@item frm +@item from +@item guimb +@item mail +@item mailutils +@item mailutils-config +@item messages +@item mimeview +@item movemail +@item popauth +@item putmail +@item readmsg +@item sieve +@end itemize") (license ;; Libraries are under LGPLv3+, and programs under GPLv3+. (list license:gpl3+ license:lgpl3+)))) @@ -492,7 +521,7 @@ to run without any changes.") (define-public fetchmail (package (name "fetchmail") - (version "6.4.18") + (version "6.4.22") (source (origin (method url-fetch) @@ -500,7 +529,7 @@ to run without any changes.") (version-major+minor version) "/" "fetchmail-" version ".tar.xz")) (sha256 - (base32 "17r5zfk9yh7jhgdb360dlzx5fx9lsbmalasx6zgxw9v9vjycjb9h")))) + (base32 "111cc6zfmb53f2a844iiyp3j2symcg8xd4m2kwb04mj3b6yihs6c")))) (build-system gnu-build-system) (inputs `(("openssl" ,openssl))) @@ -527,7 +556,7 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "2.0.6") + (version "2.1.3") (source (origin (method url-fetch) (uri (list @@ -537,7 +566,7 @@ aliasing facilities to work just as they would on normal mail.") version ".tar.gz"))) (sha256 (base32 - "165mpivdhvhavglykwlz0hss2akxd6i6l40rgxs29mjzi52irqw1")) + "0z74slnq3y9wr1xr07jigz4n8dgxhk9qb0787sd0j6wj9g4rqxgg")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs @@ -970,7 +999,7 @@ MIME-encoded email package.") (license license:bsd-3)))) (define-public mailcap - (let* ((version "2.1.49") + (let* ((version "2.1.53") (tag ;; mailcap tags their releases like this: rMajor-minor-patch (string-append "r" (string-join (string-split version #\.) "-")))) (package @@ -984,8 +1013,7 @@ MIME-encoded email package.") (commit tag))) (file-name (git-file-name name version)) (sha256 - (base32 - "0ck1fw6gqn51phcfakhfpfq1yziv3gnmgjvswzhj9x0p162n6alj")))) + (base32 "14939pq7h25rh9100z72vzzx810yqg98im9gz2fbhh47iaj1wrbb")))) (build-system gnu-build-system) (arguments '(#:phases @@ -1039,53 +1067,58 @@ content (body). The program is able to learn from the user's classifications and corrections. It is based on a Bayesian filter.") (license license:gpl3+))) -(define-public offlineimap - (package - (name "offlineimap") - (version "7.3.3") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/OfflineIMAP/offlineimap") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1gg8ry67i20qapj4z20am9bm67m2q28kixcj7ja75m897vhzarnq")))) - (build-system python-build-system) - (native-inputs - `(("asciidoc" ,asciidoc))) - (inputs - `(("python2-pysqlite" ,python2-pysqlite) - ("python2-rfc6555" ,python2-rfc6555) - ("python2-six" ,python2-six))) - (arguments - ;; The setup.py script expects python-2. - `(#:python ,python-2 - ;; Tests require a modifiable IMAP account. - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'build 'build-documentation - (lambda _ - (substitute* "docs/Makefile" - ;; Prevent xmllint and xsltproc from downloading a DTD file. - (("a2x -v") "a2x --no-xmllint --xsltproc-opts=--nonet -v")) - (invoke "make" "-C" "docs" "man"))) - (add-after 'install 'install-documentation - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (man (string-append out "/share/man"))) - (install-file "docs/offlineimap.1" (string-append man "/man1")) - (install-file "docs/offlineimapui.7" (string-append man "/man7")) - #t)))))) - (home-page "https://www.offlineimap.org") - (synopsis "Sync emails between two repositories") - (description - "OfflineImap synchronizes emails between two repositories, so that you +(define-public offlineimap3 + ;; The OfflineIMAP3 fork does not yet have a release, but it's likely to be + ;; 8.0.0 but the source still reports 7.3.0, see + ;; https://github.com/OfflineIMAP/offlineimap3/issues/10. + (let ((commit "4ca9c75c6f9a0cc8dc7b69dd6abf073e494cc0e5") + (revision "0")) + (package + (name "offlineimap3") + (version (git-version "7.3.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OfflineIMAP/offlineimap3") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0nzh5dcc559jfw4yy12gc98s17w82b15zxikspc6apd8filmk9xg")))) + (build-system python-build-system) + (native-inputs + `(("asciidoc" ,asciidoc))) + (inputs + `(("python-distro" ,python-distro) + ("python-imaplib2" ,python-imaplib2) + ("python-rfc6555" ,python-rfc6555))) + (arguments + `(;; Tests require a modifiable IMAP account. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-documentation + (lambda _ + (substitute* "docs/Makefile" + ;; Prevent xmllint and xsltproc from downloading a DTD file. + (("a2x -v") "a2x --no-xmllint --xsltproc-opts=--nonet -v")) + (invoke "make" "-C" "docs" "man"))) + (add-after 'install 'install-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man (string-append out "/share/man"))) + (install-file "docs/offlineimap.1" (string-append man "/man1")) + (install-file "docs/offlineimapui.7" (string-append man "/man7")))))))) + (home-page "https://www.offlineimap.org") + (synopsis "Sync emails between two repositories") + (description + "OfflineImap synchronizes emails between two repositories, so that you can read the same mailbox from multiple computers. It supports IMAP as REMOTE repository and Maildir/IMAP as LOCAL repository.") - (license license:gpl2+))) + (license license:gpl2+)))) + +(define-public offlineimap + (deprecated-package "offlineimap" offlineimap3)) (define-public emacs-mew (package @@ -1141,7 +1174,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") (define-public mu (package (name "mu") - (version "1.4.15") + (version "1.6.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/djcb/mu/releases/" @@ -1149,7 +1182,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") "mu-" version ".tar.xz")) (sha256 (base32 - "0ailz0k5fdgq6gdl5m7jxy315b7qn5ckj6xwd49hsiq9vqblwlpp")))) + "1da3ykqnba3axggxyzsh3kjhy0rbdfdh9pnwprbzww56y8h3vka2")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1158,7 +1191,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") ("tzdata" ,tzdata-for-tests))) ; for mu/test/test-mu-query.c (inputs `(("xapian" ,xapian) - ("guile" ,guile-2.2) + ("guile" ,guile-3.0) ("glib" ,glib) ("gmime" ,gmime))) (arguments @@ -1176,43 +1209,32 @@ security functionality including PGP, S/MIME, SSH, and SSL.") ;; the lispdir anyway, so we have to modify "configure.ac". (lambda _ (substitute* "configure" - (("^ +lispdir=\"\\$\\{lispdir\\}/mu4e/\".*") "") - ;; Use latest Guile - (("guile-2.0") "guile-2.2")) - (substitute* '("guile/Makefile.in" - "guile/mu/Makefile.in") - (("share/guile/site/2.0/") "share/guile/site/2.2/")) - #t)) + (("^ +lispdir=\"\\$\\{lispdir\\}/mu4e/\".*") "")))) (add-after 'unpack 'patch-bin-sh-in-tests (lambda _ - (substitute* '("guile/tests/test-mu-guile.c" - "mu/test-mu-cmd.c" - "mu/test-mu-cmd-cfind.c" - "mu/test-mu-query.c" - "mu/test-mu-threads.c") - (("/bin/sh") (which "sh"))) - #t)) + (substitute* '("guile/tests/test-mu-guile.cc" + "mu/test-mu-cmd.cc" + "mu/test-mu-cmd-cfind.cc" + "mu/test-mu-query.cc") + (("/bin/sh") (which "sh"))))) (add-before 'install 'fix-ffi (lambda* (#:key outputs #:allow-other-keys) (substitute* "guile/mu.scm" (("\"libguile-mu\"") (format #f "\"~a/lib/libguile-mu\"" - (assoc-ref outputs "out")))) - #t)) + (assoc-ref outputs "out")))))) (add-before 'check 'check-tz-setup (lambda* (#:key inputs #:allow-other-keys) ;; For mu/test/test-mu-query.c (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") - "/share/zoneinfo")) - #t)) + "/share/zoneinfo")))) (add-after 'install 'install-emacs-autoloads (lambda* (#:key outputs #:allow-other-keys) (emacs-generate-autoloads "mu4e" (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp")) - #t))))) + "/share/emacs/site-lisp"))))))) (home-page "https://www.djcbsoftware.nl/code/mu/") (synopsis "Quickly find emails") (description @@ -1331,68 +1353,50 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.31.4") + (version "0.33.1") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.xz")) (sha256 (base32 - "0magnyjjhhv11nwcm2596hdxszrj61y69i0hmwqdc3v6cxjvcqc6")))) + "1lhhkg9aw2ychj8lvkmk4bnj7rjz3v9w9r7sdp8bqjpfv41mz41d")))) (build-system gnu-build-system) (arguments - `(#:modules ((guix build gnu-build-system) - ((guix build emacs-build-system) #:prefix emacs:) - (guix build utils)) - #:imported-modules (,@%gnu-build-system-modules - (guix build emacs-build-system) - (guix build emacs-utils)) - #:make-flags + `(#:make-flags (list "V=1" ; verbose test output "NOTMUCH_TEST_TIMEOUT=1h") ; don't fail on slow machines #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-notmuch-lib.el - (lambda _ - (substitute* "emacs/notmuch-lib.el" - (("/bin/sh") (which "sh"))) - #t)) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) - (setenv "CC" "gcc") + (setenv "CC" ,(cc-for-target)) (setenv "CONFIG_SHELL" (which "sh")) - - (let* ((out (assoc-ref outputs "out")) - (elisp - (string-append out "/share/emacs/site-lisp/"))) + (let* ((out (assoc-ref outputs "out"))) (invoke "./configure" (string-append "--prefix=" out) - (string-append "--emacslispdir=" elisp) - (string-append "--emacsetcdir=" elisp))))) + "--without-emacs")))) (add-before 'check 'disable-failing-tests ;; FIXME: Investigate why these tests are failing, ;; and try removing this for notmuch versions > 0.31. (lambda _ (substitute* "test/T356-protected-headers.sh" - (("\\$NOTMUCH_GMIME_X509_CERT_VALIDITY") "0")) - #t)) + (("\\$NOTMUCH_GMIME_X509_CERT_VALIDITY") "0")))) (add-before 'check 'prepare-test-environment (lambda _ - (setenv "TEST_CC" "gcc") + (setenv "TEST_CC" ,(cc-for-target)) ;; Patch various inline shell invocations. (substitute* (find-files "test" "\\.sh$") - (("/bin/sh") (which "sh"))) - #t)) - (add-after 'install 'make-autoloads - (assoc-ref emacs:%standard-phases 'make-autoloads))))) + (("/bin/sh") (which "sh")))))))) (native-inputs `(("bash-completion" ,bash-completion) - ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests ("pkg-config" ,pkg-config) ("python" ,python) ("python-docutils" ,python-docutils) ("sphinx" ,python-sphinx) + ("texinfo" ,texinfo) ;; The following are required for tests only. + ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests ("which" ,which) ("dtach" ,dtach) ("gnupg" ,gnupg) @@ -1411,6 +1415,32 @@ invoking @command{notifymuch} from the post-new hook.") ing, and tagging large collections of email messages.") (license license:gpl3+))) +(define-public emacs-notmuch + (package + (inherit notmuch) + (name "emacs-notmuch") + (build-system emacs-build-system) + (native-inputs '()) + (inputs + `(("notmuch" ,notmuch))) + (arguments + `(#:exclude (cons* "make-deps.el" "rstdoc.el" %default-exclude) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "emacs"))) + (add-after 'chdir 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((notmuch (assoc-ref inputs "notmuch"))) + (substitute* "notmuch-lib.el" + (("\"notmuch\"") + (string-append "\"" notmuch "/bin/notmuch\""))))))))) + (synopsis "Run Notmuch within Emacs") + (description + "This package provides an Emacs-based interface to the Notmuch mail +system."))) + (define-public notmuch-addrlookup-c (package (name "notmuch-addrlookup-c") @@ -1605,7 +1635,7 @@ compresses it.") (define-public claws-mail (package (name "claws-mail") - (version "3.17.8") + (version "4.0.0") (source (origin (method url-fetch) @@ -1613,15 +1643,13 @@ compresses it.") (string-append "https://www.claws-mail.org/releases/claws-mail-" version ".tar.xz")) (sha256 - (base32 "1byxmz68lnm2m8q1gnp0lpr3qp7dcwabrw5iqflz9mlm960v5dyd")))) + (base32 "0xg41rxxq2q5vhjzbh8p12s248kcljk6g7y0m6raq7nrllkbvwja")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list - "--enable-gnutls" - "--enable-pgpmime-plugin" - "--enable-enchant" - "--enable-ldap") + "--disable-static" + "--enable-demo-plugin") #:make-flags ;; Disable updating icon cache since it's done by the profile hook. ;; Conflict with other packages in the profile would be inevitable @@ -1630,37 +1658,76 @@ compresses it.") "gtk_update_icon_cache=true") #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + ;; Use absolute paths to referenced programs. + (let* ((mailutils (assoc-ref inputs "mailutils")) + (inc (string-append mailutils "/bin/mu-mh/inc")) + (send-mail (assoc-ref inputs "sendmail")) + (sendmail (string-append send-mail "/sbin/sendmail"))) + (substitute* "src/common/defs.h" + (("/usr/bin/mh/inc") inc) + (("/usr/sbin/sendmail") sendmail))))) (add-before 'build 'patch-mime (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/procmime.c" (("/usr/share/mime/globs") - (string-append (assoc-ref inputs "mime-info") + (string-append (assoc-ref inputs "shared-mime-info") "/share/mime/globs")))))))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("bison" ,bison) + ;;("docbook-utils" ,docbook-utils) + ("flex" ,flex) + ("gettext-minimal" ,gettext-minimal) + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config))) (inputs `(("bogofilter" ,bogofilter) + ("cairo" ,cairo) + ("compface" ,compface) ("curl" ,curl) + ("dbus" ,dbus) ("dbus-glib" ,dbus-glib) ("enchant" ,enchant) ("expat" ,expat) + ("fontconfig" ,fontconfig) + ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ("ghostscript" ,ghostscript) - ("hicolor-icon-theme" ,hicolor-icon-theme) + ("glib" ,glib) ("gnupg" ,gnupg) ("gnutls" ,gnutls) ("gpgme" ,gpgme) - ("gtk" ,gtk+-2) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gtk+" ,gtk+) + ("gumbo-parser" ,gumbo-parser) + ;;("j-pilot" ,j-pilot) ("libarchive" ,libarchive) ("libcanberra" ,libcanberra) ("libetpan" ,libetpan) + ("libgdata" ,libgdata) ("libical" ,libical) + ("libindicator" ,libindicator) ("libnotify" ,libnotify) + ("librsvg" ,librsvg) ("libsm" ,libsm) + ("libsoup" ,libsoup) ("libxml2" ,libxml2) + ("mailutils" ,mailutils) + ("nettle" ,nettle) + ("network-manager" ,network-manager) + ("openldap" ,openldap) ("perl" ,perl) - ("python-2" ,python-2) - ("mime-info" ,shared-mime-info) - ("startup-notification" ,startup-notification))) + ("poppler" ,poppler) + ("python" ,python) + ("python-pygobject" ,python-pygobject) + ("sendmail" ,sendmail) + ("shared-mime-info" ,shared-mime-info) + ("startup-notification" ,startup-notification) + ;;("webkitgtk" ,webkitgtk) + ("ytnef" ,ytnef))) + (propagated-inputs + `(("dconf" ,dconf))) (synopsis "GTK-based Email client") (description "Claws-Mail is an email client (and news reader) based on GTK+. The appearance and interface are designed to be familiar to new users coming @@ -1673,14 +1740,14 @@ addons which can add many functionalities to the base client.") (define-public msmtp (package (name "msmtp") - (version "1.8.15") + (version "1.8.16") (source (origin (method url-fetch) (uri (string-append "https://marlam.de/msmtp/releases/" "/msmtp-" version ".tar.xz")) (sha256 - (base32 "1klrj2a77671xb6xa0a0iyszhjb7swxhmzpzd4qdybmzkrixqr92")))) + (base32 "1n271yr83grpki9szdirnk6wb5rcc319f0gmfabyw3fzyf4msjy0")))) (build-system gnu-build-system) (inputs `(("libsecret" ,libsecret) @@ -1708,7 +1775,7 @@ addons which can add many functionalities to the base client.") (install-file (string-append msmtpq "/README.msmtpq") doc) (install-file "scripts/vim/msmtp.vim" vimfiles) ;; Don't rely on netcat being in the PATH to test for a - ;; connection, instead try tp ing debian.org. + ;; connection, instead look up and ping debian.org. (substitute* (string-append bin "/msmtpq") (("EMAIL_CONN_TEST=n") "EMAIL_CONN_TEST=p")) #t)))))) @@ -1723,7 +1790,7 @@ delivery.") (define-public exim (package (name "exim") - (version "4.94") + (version "4.95") (source (origin (method url-fetch) @@ -1737,7 +1804,7 @@ delivery.") (string-append "https://ftp.exim.org/pub/exim/exim4/old/" file-name)))) (sha256 - (base32 "1nsb2i5mqxfz1sl1bmbxmpb2qiaf3wffhfiw4j9vfpagy3xfhzpp")))) + (base32 "0rzi0kc3qiiaw8vnv5qrpwdvvh4sr5chns026xy99spjzx9vd76c")))) (build-system gnu-build-system) (inputs `(("bdb" ,bdb-5.3) ; ‘#error Version 6 and later BDB API is not supported’ @@ -1754,7 +1821,7 @@ delivery.") ("perl" ,perl) ("pkg-config" ,pkg-config))) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases (replace 'configure ;; We'd use #:make-flags but the top-level Makefile calls others @@ -1796,8 +1863,7 @@ delivery.") (("'zcat'") (string-append "'" gzip "/bin/zcat'")) (("'bzcat'") (string-append "'" bzip2 "/bin/bzcat'")) (("'xzcat'") (string-append "'" xz "/bin/xzcat'")) - (("'lzma'") (string-append "'" xz "/bin/lzma'")))) - #t)) + (("'lzma'") (string-append "'" xz "/bin/lzma'")))))) (add-before 'build 'fix-sh-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* '("scripts/lookups-Makefile" "scripts/reversion") @@ -1806,8 +1872,7 @@ delivery.") (("\\| /bin/sh") "| sh")) (let ((bash (assoc-ref inputs "bash"))) (substitute* '("scripts/Configure-eximon") - (("#!/bin/sh") (string-append "#!" bash "/bin/sh")))) - #t)) + (("#!/bin/sh") (string-append "#!" bash "/bin/sh")))))) (add-before 'build 'build-reproducibly (lambda _ ;; The ‘compilation number’ is incremented for every build from the @@ -1816,7 +1881,7 @@ delivery.") (substitute* "src/version.c" (("#include \"cnumber.h\"") "1"))))) #:make-flags - (list "CC=gcc" + (list (string-append "CC=" ,(cc-for-target)) "INSTALL_ARG=-no_chown") ;; No 'check' target. There is a test suite in test/, which assumes that ;; certain build options were (not) used and that it can freely ‘sudo’. @@ -1836,7 +1901,7 @@ facilities for checking incoming mail.") (package (name "dovecot") ;; Also update dovecot-pigeonhole when updating to a new minor version. - (version "2.3.14") + (version "2.3.16") (source (origin (method url-fetch) @@ -1844,7 +1909,7 @@ facilities for checking incoming mail.") (version-major+minor version) "/" "dovecot-" version ".tar.gz")) (sha256 - (base32 "0jm3p52z619v7ajh533g2g7d790k82fk0w7ry0zqlm8ymzrxgcy8")))) + (base32 "04ngqv5mml5z0i4p7fkchp4xw2awy7x7mq2mim9frnav0m9iv9q3")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1905,7 +1970,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.") (let ((dovecot-version (version-major+minor (package-version dovecot)))) (package (name "dovecot-pigeonhole") - (version "0.5.14") + (version "0.5.16") (source (origin (method url-fetch) @@ -1913,7 +1978,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.") "https://pigeonhole.dovecot.org/releases/" dovecot-version "/" "dovecot-" dovecot-version "-pigeonhole-" version ".tar.gz")) (sha256 - (base32 "1lmjzz4kd90wbdslacybizd1dks4bhwmrx39lj8b19naldw0zjk8")) + (base32 "0f79qsiqnhaxn7mrrfcrnsjyv6357kzb7wa0chhfd69vwa06g8sw")) (modules '((guix build utils))) (snippet '(begin @@ -2068,14 +2133,14 @@ hashing scheme (such as scrypt) plug-in for @code{Dovecot}.") (define-public isync (package (name "isync") - (version "1.4.1") + (version "1.4.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/isync/isync/" version "/isync-" version ".tar.gz")) (sha256 (base32 - "0l01880fcyqn6xq9n8236ha5n2a3wl5g8rmv22z8nv5hgfsxndhd")))) + "024p3glj4p7fhrssw5sr55arls9zna1igxxrspxlfd6sbds21ixl")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) @@ -2094,15 +2159,14 @@ mailboxes. Currently Maildir and IMAP are supported types.") (define-public perl-email-abstract (package (name "perl-email-abstract") - (version "3.008") + (version "3.009") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/" "Email-Abstract-" version ".tar.gz")) (sha256 - (base32 - "0h42rhvp769wb421cpbbg6v6xjp8iv86mvz70pqgfgf4nsn6jwgw")))) + (base32 "1z01wbflg49nbgzl81x260cp8x6qr7xdpz3dkrg82m1fwa9742q4")))) (build-system perl-build-system) (propagated-inputs `(("perl-email-simple" ,perl-email-simple) @@ -2318,31 +2382,35 @@ format and headers.") (define-public libesmtp (package (name "libesmtp") - (version "1.0.6") + (version "1.1.0") (source (origin - (method url-fetch) - (uri (list (string-append "https://pkgs.fedoraproject.org/repo/pkgs/" - "libesmtp/libesmtp-" version ".tar.bz2/" - "bf3915e627fd8f35524a8fdfeed979c8/libesmtp-" - version ".tar.bz2") - ;; XXX This site is offline, so we fetch Fedora's cached copy - ;; of the source tarball. - (string-append "http://www.stafford.uklinux.net/libesmtp/libesmtp-" - version ".tar.bz2"))) + (method git-fetch) + (uri (git-reference + (url "https://github.com/libesmtp/libESMTP") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "02zbniyz7qys1jmx3ghx21kxmns1wc3hmv80gp7ag7yra9f1m9nh")))) - (build-system gnu-build-system) + (base32 "1bhh8hlsl9597x0bnfl563k2c09b61qnkb9mfyqcmzlq63m1zw5y")))) + (build-system meson-build-system) (propagated-inputs `(("openssl" ,openssl))) (home-page "http://www.stafford.uklinux.net/libesmtp/") (synopsis "Library for sending mail via remote hosts using SMTP") - (description "libESMTP is an SMTP client which manages posting (or -submission of) electronic mail via a preconfigured Mail Transport Agent (MTA). -It may be used as part of a Mail User Agent (MUA) or other program that must -be able to post electronic mail where mail functionality may not be that -program's primary purpose.") + (description + "libESMTP is an @acronym{SMTP, Simple Mail Transfer Protocol} client that +manages posting (or submission of) electronic mail via a preconfigured +@acronym{MTA, Mail Transport Agent}. + +It may be used as part of a @acronym{MUA, Mail User Agent}, or other program +that must be able to post electronic mail where mail functionality may not be +that program's primary purpose. + +libESMTP's high-level API shields developers from the complexity of SMTP. It +transparently handles many SMTP extensions including authentication, +@acronym{TLS, Transport-Level Security}, and PIPELINING for performance. Even +without a pipelining server, libESMTP offers much better performance than would +be expected from a simple client.") (license (list license:lgpl2.1+ license:gpl2+)))) (define-public esmtp @@ -2358,7 +2426,8 @@ program's primary purpose.") (sha256 (base32 "1ay282rrl92h0m0m8z5zzjnwiiagi7c78aq2qvhia5mw7prwfyw2")) - (file-name (string-append name "-" version "-checkout")))) + (file-name (string-append name "-" version "-checkout")) + (patches (search-patches "esmtp-add-lesmtp.patch")))) (arguments `(#:phases (modify-phases %standard-phases (replace 'bootstrap @@ -2561,7 +2630,7 @@ Authentication-Results header seen in the wild.") (define-public perl-mail-dkim (package (name "perl-mail-dkim") - (version "0.58") + (version "1.20200907") (source (origin (method url-fetch) (uri (string-append @@ -2570,7 +2639,7 @@ Authentication-Results header seen in the wild.") ".tar.gz")) (sha256 (base32 - "0cgkal65qqcy57b21lgij90ba36wl66byw9i76g5yhwaa8ms8hqa")))) + "1x8v4pa0447c1xqri1jn96i8vlyjpl6jmz63nb1vifbp16yi3zxb")))) (build-system perl-build-system) (propagated-inputs `(("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa) @@ -2764,14 +2833,14 @@ easily (one at a time).") (define-public mpop (package (name "mpop") - (version "1.4.13") + (version "1.4.14") (source (origin (method url-fetch) (uri (string-append "https://marlam.de/mpop/releases/" "mpop-" version ".tar.xz")) (sha256 - (base32 "1hbx69d6ivbvjajrcp54fdb3g1ms4ydj0ybf3bfhlravqrk88jdk")))) + (base32 "046wbglvry54id9wik6c020fs09piv3gig3z0nh5nmyhsxjw4i18")))) (build-system gnu-build-system) (inputs `(("gnutls" ,gnutls))) @@ -2840,6 +2909,13 @@ powerful user customization features.") (substitute* "devtools/bin/Build" (("SHELL=/bin/sh") (string-append "SHELL=" (which "sh")))) #t)) + (add-before 'build 'replace-/usr + (lambda _ + (substitute* + '("devtools/OS/Linux" + "cf/ostype/mklinux.m4" + "cf/ostype/linux.m4") + (("/usr/sbin") "/sbin")))) (replace 'configure (lambda _ @@ -2851,6 +2927,11 @@ powerful user customization features.") (with-output-to-file "devtools/Site/site.config.m4" (lambda () (format #t " +define(`confEBINDIR', `/sbin') +define(`confSBINDIR', `/sbin') +define(`confMBINDIR', `/sbin') +define(`confUBINDIR', `/bin') +define(`confLINKS', `') define(`confCC', `gcc') define(`confOPTIMIZE', `-g -O2') define(`confLIBS', `-lresolv') @@ -2869,13 +2950,21 @@ define(`confINST_DEP', `') (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 "/bin")) + (mkdir-p (string-append out "/sbin")) (mkdir-p (string-append out "/etc/mail")) (setenv "DESTDIR" out) (with-directory-excursion "cf/cf" (invoke "sh" "Build" "install-cf")) - #t)))) + #t))) + (add-after 'install 'post-install + (lambda _ + ;; Make symbolic links manually, because build script uses + ;; absolute paths for them and ignores DESTDIR. + (for-each + (lambda (name) + (symlink "../sbin/sendmail" (string-append %output "/bin/" name))) + '("hoststat" "newaliases" "mailq" "purgestat"))))) ;; There is no make check. There are some post installation tests, but those ;; require root privileges #:tests? #f)) @@ -3096,118 +3185,83 @@ for OpenSMTPD to extend its functionality.") (license (list license:bsd-2 license:bsd-3 ; openbsd-compat license:isc)))) ; everything else -(define libopensmtpd +(define-public libopensmtpd ;; Private source dependency of opensmtpd-filter-dkimsign (by the same ;; author), until any project actually uses it in its compiled form. - (let ((revision 48)) - (package - (name "libopensmtpd") - (version (format #f "0.0.0-~a" revision)) - (source - (origin - (method svn-fetch) - (uri (svn-reference - (url "http://imperialat.at/dev/libopensmtpd/") - (revision revision))) - (sha256 - (base32 "04fgibpi6q0c3468ww3z7gsvraz0gyfps0c2dj8mdyri636c0x0s")) - (file-name (git-file-name name version)))) - (build-system gnu-build-system) - (arguments - `(#:make-flags - (list "-f" "Makefile.gnu" - (string-append "CC=" ,(cc-for-target)) - (string-append "LOCALBASE=" (assoc-ref %outputs "out"))) - #:tests? #f ; no test suite - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'inherit-ownership - (lambda _ - (substitute* "Makefile.gnu" - (("-o \\$\\{BINOWN\\} -g \\$\\{BINGRP\\}") "")) - #t)) - (delete 'configure) ; no configure script - (add-before 'install 'create-output-directories - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p (string-append out "/lib")) - #t))) - (add-after 'install 'install-header-file - (lambda* (#:key make-flags outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p (string-append out "/include")) - (apply invoke "make" "includes" make-flags)))) - (add-after 'install 'install-man-page - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (man3 (string-append out "/share/man/man3"))) - ;; There is no make target for this. - (install-file "osmtpd_run.3" man3) - #t)))))) - (inputs - `(("libevent" ,libevent))) - (home-page "http://imperialat.at/dev/libopensmtpd/") - (synopsis "OpenSMTPd filter C API") - (description - "The @code{osmtpd} API is an event-based C programming interface for + (package + (name "libopensmtpd") + (version "0.7") + (source + (origin + (method url-fetch) + (uri (list (string-append "https://imperialat.at/releases/" + "libopensmtpd-" version ".tar.gz") + (string-append "https://distfiles.sigtrap.nl/" + "libopensmtpd-" version ".tar.gz"))) + (sha256 + (base32 "04x610mvwba7m0n9h0wbnsw58rb4khq44fm4blkgjqvh3bhxbmnd")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list "-f" "Makefile.gnu" + (string-append "CC=" ,(cc-for-target)) + (string-append "LOCALBASE=" (assoc-ref %outputs "out"))) + #:tests? #f ; no test suite + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'inherit-ownership + (lambda _ + (substitute* "Makefile.gnu" + (("-o \\$\\{...OWN\\} -g \\$\\{...GRP\\}") "")))) + (delete 'configure)))) ; no configure script + (native-inputs + `(("mandoc" ,mandoc))) ; silently installs empty man page without + (inputs + `(("libevent" ,libevent))) + (home-page "https://imperialat.at/dev/libopensmtpd/") + (synopsis "OpenSMTPd filter C API") + (description + "The @code{osmtpd} API is an event-based C programming interface for writing OpenSMTPd filters.") - (license license:expat)))) + (license license:expat))) (define-public opensmtpd-filter-dkimsign (package (name "opensmtpd-filter-dkimsign") - ;; The .arch repackaging provides not only a usable Makefile, but patches - ;; the source to actually build on GNU, e.g., by making pledge() optional. - ;; It's effectively the portable branch that upstream lacks at this time. - (version "0.2.arch2") ; also update both native-inputs + (version "0.5") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/de-vri-es/filter-dkimsign") - (commit (string-append "v" version)))) + (method url-fetch) + (uri (list (string-append "https://imperialat.at/releases/" + "filter-dkimsign-" version ".tar.gz") + (string-append "https://distfiles.sigtrap.nl/" + "filter-dkimsign-" version ".tar.gz"))) (sha256 - (base32 "1dv6184h0gq2safnc7ln4za3arbafzc1xwkgwmiihqcjvdyxig0c")) - (file-name (git-file-name name version)))) + (base32 "0jwp47ixibnz8rghn193bk2hxh1j1zfrnidml18j7d7cylxfrd55")))) (build-system gnu-build-system) (arguments `(#:make-flags - (list (string-append "CC=" ,(cc-for-target))) + (list "-f" "Makefile.gnu" + (string-append "CC=" ,(cc-for-target)) + "HAVE_ED25519=yep-but-is-openssl-only" + (string-append "LOCALBASE=" (assoc-ref %outputs "out"))) #:tests? #f ; no test suite #:phases (modify-phases %standard-phases - (replace 'unpack - (lambda* (#:key source inputs #:allow-other-keys) - (copy-recursively source "filter-dkimsign") - (copy-recursively (assoc-ref inputs "libopensmtpd-source") - "libopensmtpd") - (copy-file (assoc-ref inputs "Makefile") "Makefile") - #t)) - (delete 'configure) ; no configure script - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (libexec (string-append out "/libexec/opensmtpd")) - (man8 (string-append out "/share/man/man8"))) - (chdir "filter-dkimsign") - (install-file "filter-dkimsign" libexec) - (install-file "filter-dkimsign.8" man8) - #t)))))) + (add-after 'unpack 'patch-Makefile.gnu + (lambda _ + (substitute* "Makefile.gnu" + (("pkg-config") ,(pkg-config-for-target)) + (("-o \\$\\{...OWN\\} -g \\$\\{...GRP\\}") "")))) + (delete 'configure)))) ; no configure script (native-inputs - `(("Makefile" - ,(origin - (method url-fetch) - (uri (string-append - "https://aur.archlinux.org/cgit/aur.git/plain/Makefile" - "?h=opensmtpd-filter-dkimsign" - "&id=58393470477a2ff2a58f9d72f5d851698067539f")) - (sha256 - (base32 "0da5qr9hfjkf07ybvfva967njmf2x0b82z020r6v5f93jzsbqx92")) - (file-name (string-append name "-" version "-Makefile")))) - ("libopensmtpd-source" ,(package-source libopensmtpd)))) + `(("mandoc" ,mandoc))) ; silently installs empty man page without (inputs `(("libevent" ,libevent) - ("libressl" ,libressl))) ; openssl works too but follow opensmtpd + ("libopensmtpd" ,libopensmtpd) + ;; XXX Our OpenSMTPd package uses libressl, but this package currently + ;; supports HAVE_ED25519 only with openssl. Switch back when possible. + ("openssl" ,openssl))) (home-page "http://imperialat.at/dev/filter-dkimsign/") (synopsis "OpenSMTPd filter for signing mail with DKIM") (description @@ -3659,7 +3713,7 @@ operators and scripters.") (define-public alpine (package (name "alpine") - (version "2.24") + (version "2.24.2") (source (origin (method git-fetch) @@ -3672,7 +3726,7 @@ operators and scripters.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0d5ybnsv29gs8krl66db56avmssq28jlg0qj5i1wka05ncc3740d")) + (base32 "0ibwss04j4qbhpd3jcw3d4xjf8jnmb9fi3sz58a99xw3awkfjabd")) (modules '((guix build utils))) (snippet '(begin @@ -3737,14 +3791,14 @@ tools and applications: (define-public balsa (package (name "balsa") - (version "2.6.2") + (version "2.6.3") (source (origin (method url-fetch) (uri (string-append "https://pawsa.fedorapeople.org/balsa/" - "balsa-" version ".tar.bz2")) + "balsa-" version ".tar.xz")) (sha256 - (base32 "1w0239i01mw4wwwy7xh8gz7zgl5khwvfm5wy35x0swvvax021mai")))) + (base32 "1m0x3rk7cp7slr47rmg4y91rbxgs652v706lyxj600m5r5v4bl6l")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -3822,14 +3876,14 @@ killed threads.") (define-public pan (package (name "pan") - (version "0.146") + (version "0.147") (source (origin (method url-fetch) (uri (string-append "http://pan.rebelbase.com/download/releases/" version "/source/" name "-" version ".tar.bz2")) (sha256 - (base32 "17agd27sn4a7nahvkpg0w39kv74njgdrrygs74bbvpaj8rk2hb55")))) + (base32 "0960siaf0r6m18kv0d8aqpf36x2xbsfcvk07kswlany7jbxrhylr")))) (arguments `(#:configure-flags '("--with-gtk3" "--with-gtkspell" "--with-gnutls" "--enable-libnotify" "--enable-manual" @@ -4081,7 +4135,7 @@ Git and exports them in maildir format or to an MDA through a pipe.") (define-public public-inbox (package (name "public-inbox") - (version "1.5.0") + (version "1.6.1") (source (origin (method git-fetch) (uri (git-reference @@ -4089,7 +4143,7 @@ Git and exports them in maildir format or to an MDA through a pipe.") (commit (string-append "v" version)))) (sha256 (base32 - "03zj7shdl3vibs7k5lr673bwcf8j1xx8is3mjz34ca4cdh6p5j2k")) + "0mlwnp5knr7rk9kv8grlh342wsq2193m22zs83cjn9p7x9r2x5f9")) (file-name (git-file-name name version)))) (build-system perl-build-system) (arguments @@ -4144,22 +4198,28 @@ Git and exports them in maildir format or to an MDA through a pipe.") ("perl-email-mime" ,perl-email-mime) ("perl-email-simple" ,perl-email-simple) ("perl-net-server" ,perl-net-server) - ("perl-filesys-notify-simple" ,perl-filesys-notify-simple) ("perl-plack-middleware-deflater" ,perl-plack-middleware-deflater) ("perl-plack-middleware-reverseproxy" ,perl-plack-middleware-reverseproxy) ("perl-plack" ,perl-plack) ("perl-search-xapian" ,perl-search-xapian) ("perl-timedate" ,perl-timedate) ("perl-uri-escape" ,perl-uri-escape) + ("perl-inline-c" ,perl-inline-c) + ("perl-parse-recdescent" ,perl-parse-recdescent) + ("perl-linux-inotify2" ,perl-linux-inotify2) + ;; FIXME: Perl modules are unable to find the config file for highlight + ;; https://issues.guix.gnu.org/48033#4 + ;; ("highlight" ,highlight) + ;; For testing. ("perl-ipc-run" ,perl-ipc-run) ("perl-xml-feed" ,perl-xml-feed))) (home-page "https://public-inbox.org/README.html") - (synopsis "Archive mailing lists in git repositories") + (synopsis "Archive mailing lists in Git repositories") (description - "public-inbox implements the sharing of an email inbox via git to + "public-inbox implements the sharing of an email inbox via Git to complement or replace traditional mailing lists. Readers may read via NNTP, -Atom feeds or HTML archives.") +IMAP, Atom feeds or HTML archives.") (license license:agpl3+))) (define-public sylpheed @@ -4337,6 +4397,24 @@ based on asyncio.") (license (list license:asl2.0 license:lgpl3)))) ; only for setup_helpers.py +(define-public python-imaplib2 + (package + (name "python-imaplib2") + (version "3.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "imaplib2" version)) + (sha256 + (base32 + "0nqyb274hq30agg1c0zkb5ijmcirgg35sp4dp4n292l665dlijwn")))) + (build-system python-build-system) + (home-page "https://github.com/jazzband/imaplib2/") + (synopsis "Threaded Python IMAP4 client") + (description "This package provides a threaded Python IMAP4 client, based +on RFC 3501 and original @code{imaplib} module.") + (license license:expat))) + (define-public rspamd (package (name "rspamd") @@ -4375,3 +4453,127 @@ black lists. Each message is analysed by Rspamd and given a spam score.") (home-page "https://www.rspamd.com/") (license license:asl2.0))) + +(define-public undbx + (package + (name "undbx") + (version "0.21") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/undbx/undbx-" + version ".tar.gz")) + (sha256 + (base32 + "0ncs1dzhrn9nlaxpyap2ipf61fc7k9bkkqacp3w6bngfj2c0p6yj")))) + (build-system gnu-build-system) + (home-page "https://undbx.sourceforge.io/") + (synopsis "Extract email messages from Outlook Express .dbx files") + (description "This package provides a tool to extract, recover and +undelete email messages from Outlook Express .dbx files.") + (license license:gpl3+))) + +(define-public libpst + (package + (name "libpst") + (version "0.6.76") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.five-ten-sg.com/libpst/packages/" + "libpst-" version ".tar.gz")) + (sha256 + (base32 + "0hhbbb8ddsgjhv9y1xd8s9ixlhdnjmhw12v06jwx4j6vpgp1na9x")))) + (build-system gnu-build-system) + (inputs + `(("boost" ,boost) + ("libgsf" ,libgsf) + ("python" ,python) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.five-ten-sg.com/libpst/") + (synopsis "") + (description "The Libpst utilities include @code{readpst} which can +convert email messages to both mbox and MH mailbox formats, @code{pst2ldif} +which can convert the contacts to @code{.ldif} format for import into LDAP +databases, and other tools to process Outlook email archives.") + (license license:gpl2+))) + +(define-public crm114 + (package + (name "crm114") + (version "20100106") + (source + (origin + (method url-fetch) + (uri (string-append "http://crm114.sourceforge.net/tarballs/crm114-" + version "-BlameMichelson.src.tar.gz")) + (sha256 + (base32 + "0awcjc5j2mclkkpbjyijj9mv8xjz3haljvaj0fyc4fm4xir68qpv")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + ((guix build emacs-build-system) #:prefix emacs:) + (guix build utils) + (ice-9 string-fun)) + #:imported-modules (,@%gnu-build-system-modules + (guix build emacs-build-system) + (guix build emacs-utils)) + #:make-flags (list (string-append "prefix=" %output) + "LDFLAGS=") ; disable static linking + ;; Test suite is not fully automated. It requires a human to read the + ;; results and determine if the tests have passed. + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'fix-build + (lambda _ + ;; Inline functions can only be used from the same compilation + ;; unit. This causes the build to fail. + (substitute* "crm_svm_matrix.c" + (("^inline ") "")))) + (add-before 'install 'pre-install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Install maillib.crm library. + (install-file "maillib.crm" (string-append out "/share/crm")) + ;; Set absolute store paths. + (substitute* "mailreaver.crm" + (("insert maillib.crm") + (string-append "insert " out "/share/crm/maillib.crm")) + (("\\\\/bin\\\\/ls") + (string-replace-substring (which "ls") "/" "\\/")) + ((":\\*:trainer_invoke_command:") + (string-append out "/bin/mailtrainer.crm"))) + ;; Install mail related crm scripts. + (for-each (lambda (file) + (install-file file (string-append out "/bin"))) + (list "mailfilter.crm" "mailreaver.crm" "mailtrainer.crm"))))) + (add-after 'install 'install-emacs-mode + (assoc-ref emacs:%standard-phases 'install)) + ;; Run phases from the emacs build system. + (add-after 'install-emacs-mode 'make-autoloads + (assoc-ref emacs:%standard-phases 'make-autoloads)) + (add-after 'make-autoloads 'enable-autoloads-compilation + (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation)) + (add-after 'enable-autoloads-compilation 'emacs-build + (assoc-ref emacs:%standard-phases 'build)) + (add-after 'emacs-build 'validate-compiled-autoloads + (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads))))) + (inputs + `(("tre" ,tre))) + (native-inputs + `(("emacs" ,emacs-minimal))) + (home-page "http://crm114.sourceforge.net/") + (synopsis "Controllable regex mutilator") + (description "CRM114 is a system to examine incoming e-mail, system log +streams, data files or other data streams, and to sort, filter, or alter the +incoming files or data streams according to the user's wildest desires. +Criteria for categorization of data can be via a host of methods, including +regexes, approximate regexes, a Hidden Markov Model, Orthogonal Sparse +Bigrams, WINNOW, Correlation, KNN/Hyperspace, or Bit Entropy (or by other +means--it's all programmable).") + (license license:gpl3))) |