diff options
Diffstat (limited to 'gnu/packages/mail.scm')
-rw-r--r-- | gnu/packages/mail.scm | 270 |
1 files changed, 147 insertions, 123 deletions
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 2244653724..5056098806 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -35,6 +35,7 @@ ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org> +;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -141,6 +142,7 @@ #:use-module (guix git-download) #:use-module (guix svn-download) #:use-module (guix utils) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system guile) #:use-module (guix build-system perl) @@ -197,7 +199,10 @@ example, modify the message headers or body, or encrypt or sign the message.") version ".tar.xz")) (sha256 (base32 - "17smrxjdgbbzbzakik30vj46q4iib85ksqhb82jr4vjp57akszh9")))) + "17smrxjdgbbzbzakik30vj46q4iib85ksqhb82jr4vjp57akszh9")) + (patches + ;; Fixes https://issues.guix.gnu.org/43088. + (search-patches "mailutils-fix-uninitialized-variable.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -690,6 +695,54 @@ mailpack. What can alterMIME do? (license (list (license:non-copyleft "file://LICENSE") license:bsd-3)))) +(define-public ripmime + ;; Upstream does not tag or otherwise provide any releases (only a version + ;; number in the source) + (let ((commit "a556ffe08d620602475c976732e8e1a82f3169e9") + (revision "1")) + (package + (name "ripmime") + (version (git-version "1.4.0.10" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/inflex/ripMIME") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1z8ar8flvkd9q3ax4x28sj5pyq8ykk5pq249y967lj2406lxparh")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Source has no configure script + (delete 'configure) + ;; Buildcodes make the build non-reproducible; remove them + (add-after 'unpack 'strip-buildcodes + (lambda _ + (substitute* "generate-buildcodes.sh" + (("`date \\+%s`") "0") + (("`date`") "0") + (("`uname -a`") "Guix")) + #t)) + ;; https://github.com/inflex/ripMIME/pull/16 makes 'mkdir-p-bin-man unnecessary + (add-before 'install 'mkdir-p-bin-man + (lambda _ + (mkdir-p (string-append (assoc-ref %outputs "out") "/bin")) + (mkdir-p (string-append (assoc-ref %outputs "out") "/man")) + #t))) + ;; Makefile has no tests + #:tests? #f + #:make-flags (list (string-append "LOCATION=" (assoc-ref %outputs "out")) + "CC=gcc"))) + (synopsis "Extract attachments from MIME-encoded email") + (description + "ripMIME is a small program to extract the attached files out of a +MIME-encoded email package.") + (home-page "https://github.com/inflex/ripMIME") + (license license:bsd-3)))) + (define-public bogofilter (package (name "bogofilter") @@ -725,7 +778,7 @@ and corrections. It is based on a Bayesian filter.") (define-public offlineimap (package (name "offlineimap") - (version "7.2.4") + (version "7.3.3") (source (origin (method git-fetch) (uri (git-reference @@ -734,12 +787,14 @@ and corrections. It is based on a Bayesian filter.") (file-name (git-file-name name version)) (sha256 (base32 - "0h5q5nk2p2vx86w6rrbs7v70h81dpqqr68x6l3klzl3m0yj9agb1")))) + "1gg8ry67i20qapj4z20am9bm67m2q28kixcj7ja75m897vhzarnq")))) (build-system python-build-system) (native-inputs `(("asciidoc" ,asciidoc))) - (inputs `(("python2-pysqlite" ,python2-pysqlite) - ("python2-six" ,python2-six))) + (inputs + `(("python2-pysqlite" ,python2-pysqlite) + ("python2-rfc6555" ,python2-rfc6555) + ("python2-six" ,python2-six))) (arguments ;; The setup.py script expects python-2. `(#:python ,python-2 @@ -1158,7 +1213,7 @@ and search library.") (base32 "1k2m44pj5i6vfhp9icdqs42chsp208llanc666p3d9nww8ngq2lb")))) (build-system gnu-build-system) (native-inputs - `(("ghc-pandoc" ,ghc-pandoc) + `(("pandoc" ,pandoc) ("pkg-config" ,pkg-config))) (inputs `(("libcrypto" ,openssl) @@ -1265,62 +1320,69 @@ compresses it.") (define-public claws-mail (package (name "claws-mail") - (version "3.17.6") - (source (origin - (method url-fetch) - (uri (string-append - "https://www.claws-mail.org/releases/claws-mail-" version - ".tar.xz")) - (sha256 - (base32 - "1s05qw0r0gqwvvkxvrrwbjkbi61dvilixiwrpgcq21qc9csc9r0m")))) - (build-system gnu-build-system) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("bogofilter" ,bogofilter) - ("curl" ,curl) - ("dbus-glib" ,dbus-glib) - ("enchant" ,enchant) - ("expat" ,expat) - ("ghostscript" ,ghostscript) - ("hicolor-icon-theme" ,hicolor-icon-theme) - ("gnupg" ,gnupg) - ("gnutls" ,gnutls) - ("gpgme" ,gpgme) - ("gtk" ,gtk+-2) - ("libarchive" ,libarchive) - ("libcanberra" ,libcanberra) - ("libetpan" ,libetpan) - ("libical" ,libical) - ("libnotify" ,libnotify) - ("libsm" ,libsm) - ("libxml2" ,libxml2) - ("perl" ,perl) - ("python-2" ,python-2) - ("mime-info" ,shared-mime-info) - ("startup-notification" ,startup-notification))) + (version "3.17.7") + (source + (origin + (method url-fetch) + (uri + (string-append + "https://www.claws-mail.org/releases/claws-mail-" + version ".tar.xz")) + (sha256 + (base32 "1j6x09621wng0lavh53nwzh9vqjzpspl8kh5azh7kbihpi4ldfb0")))) + (build-system glib-or-gtk-build-system) (arguments - '(#:configure-flags - '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant" - "--enable-ldap") - #:make-flags - ;; Disable updating icon cache since it's done by the profile hook. - ;; Conflict with other packages in the profile would be inevitable - ;; otherwise. - '("gtk_update_icon_cache=true") - #:phases (modify-phases %standard-phases - (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") - "/share/mime/globs")))))))) + `(#:configure-flags + (list + "--enable-gnutls" + "--enable-pgpmime-plugin" + "--enable-enchant" + "--enable-ldap") + #:make-flags + ;; Disable updating icon cache since it's done by the profile hook. + ;; Conflict with other packages in the profile would be inevitable + ;; otherwise. + (list + "gtk_update_icon_cache=true") + #:phases + (modify-phases %standard-phases + (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") + "/share/mime/globs")))))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("bogofilter" ,bogofilter) + ("curl" ,curl) + ("dbus-glib" ,dbus-glib) + ("enchant" ,enchant) + ("expat" ,expat) + ("ghostscript" ,ghostscript) + ("hicolor-icon-theme" ,hicolor-icon-theme) + ("gnupg" ,gnupg) + ("gnutls" ,gnutls) + ("gpgme" ,gpgme) + ("gtk" ,gtk+-2) + ("libarchive" ,libarchive) + ("libcanberra" ,libcanberra) + ("libetpan" ,libetpan) + ("libical" ,libical) + ("libnotify" ,libnotify) + ("libsm" ,libsm) + ("libxml2" ,libxml2) + ("perl" ,perl) + ("python-2" ,python-2) + ("mime-info" ,shared-mime-info) + ("startup-notification" ,startup-notification))) (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 from -other popular email clients, as well as experienced users. Almost all commands -are accessible with the keyboard. Plus, Claws-Mail is extensible via addons -which can add many functionalities to the base 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 +from other popular email clients, as well as experienced users. Almost all +commands are accessible with the keyboard. Plus, Claws-Mail is extensible via +addons which can add many functionalities to the base client.") (home-page "https://www.claws-mail.org/") (license license:gpl3+))) ; most files are actually public domain or x11 @@ -1661,7 +1723,7 @@ scripts to prevent embarrassing errors later on.") "Technology for Resting Email Encrypted Storage (TREES) is a NaCL-based Dovecot encryption plugin. This plugin adds individually encrypted mail storage to the Dovecot IMAP server. It is inspired by Posteo's scrambler -which uses OpenSSL and RSA keypairs. TREES works in a similar way, but uses +which uses OpenSSL and RSA key pairs. TREES works in a similar way, but uses the Sodium crypto library (based on NaCL). How it works: @@ -1914,14 +1976,14 @@ header.") (define-public perl-email-sender (package (name "perl-email-sender") - (version "1.300034") + (version "1.300035") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/" "Email-Sender-" version ".tar.gz")) (sha256 - (base32 "14aj9kqa9dr2bdhzn2qvjj2mffj8wjb5397z8qw7qg057fk3ib05")))) + (base32 "0yfssp3rqdx1dmgvnygarzgkpkhqm28r5sd0gh87ksk8yxndhjql")))) (build-system perl-build-system) (native-inputs `(("perl-capture-tiny" ,perl-capture-tiny))) @@ -2539,7 +2601,7 @@ transfer protocols.") (description "Sieve-connect lets you view, upload, edit, delete, and otherwise manage Sieve scripts on any mail server that speaks the @dfn{ManageSieve} protocol, -as specifed in RFC 5804. +as specified in RFC 5804. @dfn{Sieve} (RFC 5228) is a specialised language for e-mail filtering. Sieve scripts are stored on the server and run whenever mail arrives. They can @@ -2999,47 +3061,6 @@ installation on systems where resources are limited. Its features include: (description "This package contains libraries and templates for Django-based interfaces interacting with Mailman.") - (properties `((python2-variant . ,(delay python2-django-mailman3)))) - (license license:gpl3+))) - -;; This is the last version to support Python-2. -(define-public python2-django-mailman3 - (package - (name "python2-django-mailman3") - (version "1.1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "django-mailman3" version)) - (sha256 - (base32 - "1xjdkgfjwhgyrp5nxw65dcpcsr98ygj6856sp0bwkrmyxpd1xxk2")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "django-admin" - "test" - "--settings=django_mailman3.tests.settings_test" - "django_mailman3")))) - #:python ,python-2)) - (inputs - `(("python2-django" ,python2-django))) - (propagated-inputs - `(("python2-requests" ,python2-requests) - ("python2-requests-oauthlib" ,python2-requests-oauthlib) - ("python2-openid" ,python2-openid) - ("python2-mailmanclient" ,python2-mailmanclient) - ("python2-django-allauth" ,python2-django-allauth) - ("python2-django-gravatar2" ,python2-django-gravatar2) - ("python2-pytz" ,python2-pytz))) - (home-page "https://gitlab.com/mailman/django-mailman3") - (synopsis "Django library for Mailman UIs") - (description - "Libraries and templates for Django-based interfaces -interacting with Mailman.") (license license:gpl3+))) (define-public python-mailman-hyperkitty @@ -3099,16 +3120,12 @@ which sends emails to HyperKitty, the official Mailman3 web archiver.") (modify-phases %standard-phases (replace 'check (lambda _ - ;; It is unclear why this test fails. - (substitute* "hyperkitty/tests/commands/test_import.py" - (("def test_bad_content_type_part_two") - "@SkipTest\n def test_bad_content_type_part_two")) (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH"))) (invoke "example_project/manage.py" "test" "--settings=hyperkitty.tests.settings_test")))))) (propagated-inputs `(("python-dateutil" ,python-dateutil) - ("python-django" ,python-django) + ("python-django" ,python-django-2.2) ("python-django-compressor" ,python-django-compressor) ("python-django-extensions" ,python-django-extensions) ("python-django-gravatar2" ,python-django-gravatar2) @@ -3213,28 +3230,35 @@ on the fly. Both programs are written in C and are very fast.") (define-public swaks (package (name "swaks") - (version "20190914.0") + (version "20201014.0") (source (origin - (method url-fetch) - (uri (string-append - "https://jetmore.org/john/code/swaks/files/swaks-" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/jetmore/swaks") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "12awq5z4sdd54cxprj834zajxhkpy4jwhzf1fhigcx1zbhdaacsp")))) + (base32 "131i2b1yxhnbqkfk4kky40pfanqw2c5lcgbnjhfqp5cvpawpk2ai")))) (build-system perl-build-system) (inputs - `(("perl-net-dns" ,perl-net-dns) - ("perl-net-ssleay" ,perl-net-ssleay))) + `(("perl-io-socket-inet6" ,perl-io-socket-inet6) + ("perl-net-dns" ,perl-net-dns) + ("perl-net-ssleay" ,perl-net-ssleay) + ("perl-socket6" ,perl-socket6))) ; used by perl-io-socket-inet6 (arguments - `(#:tests? #f ; No tests + `(#:tests? #f ; no tests #:phases (modify-phases %standard-phases + (add-after 'unpack 'set-build_version + (lambda _ + (substitute* "swaks" + (("\"DEVRELEASE\"") (format #f "\"~a\"" ,version))) + #true)) (delete 'configure) (replace 'build (lambda _ - (invoke "pod2man" "doc/ref.pod" "swaks.1"))) + (invoke "pod2man" "doc/base.pod" "swaks.1"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -3262,7 +3286,7 @@ operators and scripters.") (define-public alpine (package (name "alpine") - (version "2.23.2") + (version "2.24") (source (origin (method git-fetch) @@ -3275,7 +3299,7 @@ operators and scripters.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "16ldmmcymrnpnbfc1kb2rhac7nzlc87wjawic4wfinkphd124d1y")) + (base32 "0d5ybnsv29gs8krl66db56avmssq28jlg0qj5i1wka05ncc3740d")) (modules '((guix build utils))) (snippet '(begin |