aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/file-systems.scm')
0 files changed, 0 insertions, 0 deletions
yer@gmail.com> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2021 Alexey Abramov <levenson@mmer.org> ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2020, 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> ;;; Copyright © 2020 divoplade <d@divoplade.fr> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Benoit Joly <benoit@benoitj.ca> ;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com> ;;; Copyright © 2022 Andrew Tropin <andrew@trop.in> ;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li> ;;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com> ;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2022 muradm <mail@muradm.net> ;;; Copyright © 2022, 2024 jgart <jgart@dismail.de> ;;; Copyright © 2022 ( <paren@disroot.org> ;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it> ;;; Copyright © 2023 Timo Wilken <guix@twilken.net> ;;; Copyright © 2023 Arjan Adriaanse <arjan@adriaan.se> ;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu> ;;; Copyright © 2024 Benjamin Slade <slade@lambda-y.net> ;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info> ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages mail) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages admin) #:use-module (gnu packages aspell) #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages c) #:use-module (gnu packages calendar) #:use-module (gnu packages check) #:use-module (gnu packages code) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages databases) #:use-module (gnu packages dbm) #:use-module (gnu packages dejagnu) #:use-module (gnu packages django) #:use-module (gnu packages dns) #:use-module (gnu packages docbook) #:use-module (gnu packages docker) #:use-module (gnu packages documentation) #:use-module (gnu packages emacs) #:use-module (gnu packages enchant) #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gdb) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages groff) #:use-module (gnu packages gsasl) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages icu4c) #:use-module (gnu packages kerberos) #:use-module (gnu packages language) #:use-module (gnu packages libbsd) #:use-module (gnu packages libcanberra) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) #:use-module (gnu packages libidn) #:use-module (gnu packages libunistring) #:use-module (gnu packages libunwind) #:use-module (gnu packages linux) #:use-module (gnu packages lsof) #:use-module (gnu packages lua) #:use-module (gnu packages m4) #:use-module (gnu packages man) #:use-module (gnu packages mercury) #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) #:use-module (gnu packages networking) #:use-module (gnu packages ninja) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages openldap) #: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) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages ragel) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) #:use-module (gnu packages regex) #:use-module (gnu packages ruby) #:use-module (gnu packages rust-apps) #:use-module (gnu packages samba) #:use-module (gnu packages screen) #:use-module (gnu packages search) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages w3m) #:use-module (gnu packages web) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages) #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system guile) #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (guix deprecation) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix svn-download) #:use-module (guix utils) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) (define-public abook (package (name "abook") (version "0.6.1") (source (origin (method url-fetch) (uri (string-append "https://abook.sourceforge.io/devel/abook-" version ".tar.gz")) (sha256 (base32 "1yf0ifyjhq2r003pnpn92mn0924bn9yxjifxxj2ldcsgd7w0vagh")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases ;; Fix "undefined reference to `field_id'" errors. (add-after 'unpack 'fix-build-with-recent-gcc (lambda _ (substitute* '("database.c" "database.h") (("^inline int" all) (string-append "extern " all))))) ;; Fix following error during bootstrap: "gettext infrastructure ;; mismatch: using a Makefile.in.in from gettext version 0.18 but the ;; autoconf macros are from gettext version 0.20". (add-before 'bootstrap 'fix-gettext-macro-version (lambda _ (substitute* "po/Makefile.in.in" (("0.18") "0.20")))) (replace 'bootstrap (lambda _ (invoke "aclocal") (invoke "automake" "--add-missing") (invoke "autoconf")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("gettext" ,gettext-minimal))) (inputs (list ncurses readline)) (home-page "https://abook.sourceforge.io/") (synopsis "Text-based address book") (description "Abook is a text-based address book program designed to use with the Mutt mail client.") (license license:gpl2))) (define-public anubis (package (name "anubis") ;; This 4.2.90 alpha release adds support for Guile 3 and has fixes for ;; other issues. (version "4.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/anubis/anubis-" version ".tar.gz")) (sha256 (base32 "0b5ghaccy09l6fv0bg4my3yrxbw807wpwk14xvjih8j6ghrz62pz")))) (build-system gnu-build-system) (native-inputs (list automake autoconf gettext-minimal m4)) ;for the test suite (inputs (list gdbm gnutls gpgme gsasl guile-3.0 libgcrypt ;gnutls support depends on libgcrypt libgpg-error)) (outputs '("out" "debug")) (synopsis "SMTP message submission daemon") (description "Anubis is a daemon that sits between the Mail User Agent (MUA) and the Mail Transfer Agent (MTA). When a mail is sent by a user in the MUA, it is first passed to Anubis, which performs additional processing to the message before passing it on for delivery by the MTA. Anubis may, for example, modify the message headers or body, or encrypt or sign the message.") (home-page "https://www.gnu.org/software/anubis/manual/") (license license:gpl3+))) (define-public mailutils (package (name "mailutils") (version "3.17") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mailutils/mailutils-" version ".tar.xz")) (sha256 (base32 "1sc45gpvnrcf7b627n8cxsp379kk2s3x68c2z19gwrkmqg7bljgs")) (patches (search-patches "mailutils-variable-lookup.patch")))) (build-system gnu-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-before 'check 'prepare-test-suite (lambda _ ;; Use the right file name for `cat'. (substitute* "testsuite/lib/mailutils.exp" (("/bin/cat") (which "cat"))) ;; Tests try to invoke 'mda' such that it looks up the ;; 'root' user, which does not exist in the build ;; environment. (substitute* '("mda/mda/tests/testsuite" "mda/lmtpd/tests/testsuite") (("root <") "nobody <") (("spool/root") "spool/nobody") (("root@localhost") "nobody@localhost")) ;; The 'pipeact.at' tests generate a shell script; make ;; sure it uses the right shell. (substitute* '("sieve/tests/testsuite" "mh/tests/testsuite" "libmailutils/tests/lock.at") (("#! ?/bin/sh") (string-append "#!" (which "sh")))) (substitute* "mh/tests/testsuite" (("moreproc: /bin/cat") (string-append "moreproc: " (which "cat")))) ;; XXX: The comsatd tests rely on being able to open ;; /dev/tty, but that gives ENODEV in the build ;; environment. Thus, ignore test failures here. (substitute* "comsat/tests/Makefile.in" (("\\$\\(SHELL\\) \\$\\(TESTSUITE\\)" all) (string-append "-" all))) ;; XXX: The ‘moderator: program discard’ test does not ;; specify an explicit From: but does expect an exact ;; match. But why are all other tests unaffected? (substitute* "sieve/tests/testsuite" (("gray@") "nixbld@")) ;; 'frm' tests expect write access to $HOME. (setenv "HOME" (getcwd)) ;; Avoid the message "I'm going to create the standard MH ;; path for you", which would lead to one test failure ;; (when diffing stdout of 'fmtcheck'.) (call-with-output-file ".mh_profile" (lambda (port) (format port "Path: ~a/Mail-for-tests~%" (getcwd)))) (substitute* "imap4d/tests/testclient.c" (("\"/bin/sh\"") (string-append "\"" (which "sh") "\"")))))) #:configure-flags #~(list "--sysconfdir=/etc" "--disable-static" ;; Add "/X.Y" to the installation directory. (string-append "--with-guile-site-dir=" (assoc-ref %outputs "out") "/share/guile/site/" #$(match (assoc "guile" (package-inputs this-package)) (("guile" guile) (version-major+minor (package-version guile)))))))) (native-inputs ;; 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 (list guile-3.0 gsasl gnutls ncurses readline linux-pam libltdl libxcrypt gdbm ;; Required for SEARCH CHARSET. libunistring)) (home-page "https://mailutils.org") (synopsis "Utilities and library for reading and serving mail") (description "GNU Mailutils is a collection of programs for managing, viewing and 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. 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+)))) (define-public mairix (let ((commit "1cc06f4a73ba4b940008c1ffc398d2ac708cd6d6") (revision "0")) (package (name "mairix") (version (git-version "0.24" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/vandry/mairix") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "12bhmk5j77cl3vjda48cmdysq1c2yjzvfv6zm4hlky6d5g3l49d7")))) (build-system gnu-build-system) (arguments (list #:parallel-tests? #f #:phases #~(modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs #:allow-other-keys) (invoke "./configure" (string-append "--prefix=" #$output))))))) (native-inputs (list bison flex)) (inputs (list bzip2 openssl perl xz zlib)) (home-page "https://github.com/vandry/mairix") (synopsis "Program for indexing and searching email messages") (description "Mairix is a program for indexing and searching email messages stored in Maildir, MH, MMDF or mbox folders.") (license license:gpl2)))) (define-public nmail (package (name "nmail") (version "4.54") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/d99kris/nmail/") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0bk2kq0pk1r4w5xv94yh37vrwxs8lczjg11gfraxh9cxyjigwsrp")))) (build-system cmake-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? (invoke "ctest" "--output-on-failure"))))))) (inputs (list curl cyrus-sasl expat file libetpan ncurses openssl sqlite (list util-linux "lib") xapian zlib)) (native-inputs (list pkg-config)) (home-page "https://github.com/d99kris/nmail") (synopsis "Terminal-based email client") (description "@command{nmail} is an easily configurable terminal-based email client with a @code{ncurses} user interface similar to @code{alpine} and @code{pine}.") (license license:expat))) (define-public go-gitlab.com-shackra-goimapnotify (package (name "go-gitlab.com-shackra-goimapnotify") (version "2.3.7") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/shackra/goimapnotify") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "06jhxvhdvdv049qpvp8ahnhvswvbpakpw7aq2lw790f3x89px2ss")))) (build-system go-build-system) (arguments `(#:import-path "gitlab.com/shackra/goimapnotify")) (propagated-inputs (list go-github-com-emersion-go-imap go-github-com-emersion-go-imap-idle go-github-com-emersion-go-sasl go-github-com-sirupsen-logrus go-golang-org-x-text)) (synopsis "Execute scripts on IMAP mailbox changes") (description "Script to execute scripts on IMAP mailbox changes (new/deleted/updated messages) using IDLE. Implemented in Go.") (home-page "https://gitlab.com/shackra/goimapnotify") (license license:gpl3+))) (define-public guile2.2-mailutils (package (inherit mailutils) (name "guile2.2-mailutils") (inputs (modify-inputs (package-inputs mailutils) (replace "guile" guile-2.2))))) (define-public nullmailer (package (name "nullmailer") (version "2.2") (source (origin (method url-fetch) (uri (list (string-append "https://untroubled.org/nullmailer/" "nullmailer-" version ".tar.gz") ;; Previous releases are moved to this subdirectory. (string-append "https://untroubled.org/nullmailer/archive/" "nullmailer-" version ".tar.gz"))) (sha256 (base32 "0md8cf90fl2yf3zh9njjy42a673v4j4ygyq95xg7fzkygdigm1lq")))) (build-system gnu-build-system) (arguments (list #:configure-flags #~(list "--enable-tls" "--localstatedir=/var" "--sysconfdir=/etc") #:phases #~(modify-phases %standard-phases (add-before 'check 'patch-test-FHS-file-names (lambda _ (with-directory-excursion "test" (substitute* (list "functions.in" "tests/send") ;; Fix some shebangs later generated on the fly. (("/bin/sh") (which "bash")))))) (add-before 'check 'pass-PATH-to-tests ;; ‘runtest’ launches each test through ‘env -’, clearing ;; $PATH. The tests then source ‘functions’, which first ;; demands a working $PATH only to clobber it later. Pass ;; our $PATH to the test environment and don't touch it after ;; that. (lambda _ (with-directory-excursion "test" (substitute* "runtests" (("env - bash") (string-append "env - PATH=\"" (getenv "PATH") "\" bash"))) (substitute* "functions.in" (("export PATH=.*") ""))))) (add-before 'check 'delete-failing-tests (lambda _ (with-directory-excursion "test/tests" (for-each delete-file (list ;; XXX ‘nullmailer-inject: nullmailer-queue failed: 15’ "inject/queue" ;; XXX These require the not-yet-packaged tcpserver. "protocols" "smtp-auth"))))) (add-before 'install 'skip-install-data-local ;; Don't try to install run-time files outside of the store. (lambda _ (substitute* "Makefile" ((" install-data-local") ""))))))) (native-inputs ;; For tests. (list daemontools)) ; for svc (inputs (list gnutls)) (home-page "https://untroubled.org/nullmailer/") (synopsis "Simple relay-only mail transfer agent") (description "Nullmailer is a simple replacement @acronym{MTA, Mail Transfer Agent} for hosts that receive no local mail and only relay mail to a fixed set of smart relays. It's useful for systems such as Web servers that must be able to send email notifications, without having to run a full-blown MTA such as sendmail or qmail. Nullmailer is designed to be simple to configure, easy to extend, and secure. It requires little ongoing administration. The included @command{sendmail} emulator front-end should allow most (if not all) sendmail-compatible programs to run without any changes.") (license (list license:lgpl2.1+ ; lib/cli++/ (but some files lack headers) license:gpl2+)))) ; everything else (define-public fetchmail (package (name "fetchmail") (version "6.4.37") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/fetchmail/branch_" (version-major+minor version) "/" "fetchmail-" version ".tar.xz")) (sha256 (base32 "1sk9grjiibmaq8swfkr30vbfdz2i4ra1xrvsqdmbx6iyi5fjw62a")))) (build-system gnu-build-system) (arguments (list #:configure-flags #~(list (string-append "--with-ssl=" #$(this-package-input "openssl"))))) (inputs (list openssl)) (home-page "https://www.fetchmail.info/") (synopsis "Remote-mail retrieval and forwarding utility") (description "Fetchmail is a full-featured, robust, well-documented remote-mail retrieval and forwarding utility intended to be used over on-demand TCP/IP links (such as SLIP or PPP connections). It supports every remote-mail protocol now in use on the Internet: POP2, POP3, RPOP, APOP, KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and IPSEC. Fetchmail retrieves mail from remote mail servers and forwards it via SMTP, so it can then be read by normal mail user agents such as mutt, elm or BSD Mail. It allows all your system MTA's filtering, forwarding, and aliasing facilities to work just as they would on normal mail.") (license license:gpl2+))) ; most files are actually public domain or x11 (define-public mutt (package (name "mutt") (version "2.2.13") (source (origin (method url-fetch) (uri (list (string-append "https://bitbucket.org/mutt/mutt/downloads/" "mutt-" version ".tar.gz") (string-append "http://ftp.mutt.org/pub/mutt/mutt-" version ".tar.gz"))) (sha256 (base32 "1ywfql0l0ykrwbd6ynxdclvxk6ll62gllfizd5kxi5ycq7fzl8zb")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs (list cyrus-sasl gdbm gpgme libidn2 ncurses openssl perl sqlite)) (arguments `(#:configure-flags '("--enable-smtp" "--enable-imap" "--enable-pop" "--enable-gpgme" "--enable-hcache" ; for header caching "--enable-sidebar" "--enable-autocrypt" "--with-ssl" "--with-sasl" "--with-sqlite3" ; required for Autocrypt "--with-idn2" ; recommended for Autocrypt ;; So that mutt does not check whether the path ;; exists, which it does not in the chroot. "--with-mailpath=/var/mail"))) (home-page "http://www.mutt.org/") (synopsis "Mail client") (description "Mutt is a small but very powerful text-based mail client for Unix operating systems.") (license license:gpl2+))) (define-public neomutt (package (name "neomutt") (version "20230517") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/neomutt/neomutt") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0kjllp2scgmpkl8yd0hwz6jmm98hr2r7qkb75ps9753fl96i4bfn")))) (build-system gnu-build-system) (inputs (list cyrus-sasl gdbm gpgme ncurses gnutls openssl ; for S/MIME perl kyotocabinet libxslt libidn2 libxml2 lmdb notmuch)) (native-inputs `(("automake" ,automake) ("gettext-minimal" ,gettext-minimal) ("pkg-config" ,pkg-config) ("docbook-xsl" ,docbook-xsl) ("docbook-xml" ,docbook-xml-4.2) ("w3m" ,w3m) ("tcl" ,tcl) ;; Test file data for the unit tests included in the neomutt source. ("neomutt-test-files" ,(let ((commit "8629adab700a75c54e8e28bf05ad092503a98f75")) (origin (method git-fetch) (uri (git-reference (url "https://github.com/neomutt/neomutt-test-files") (commit commit))) (file-name (git-file-name "neomutt-test-files" commit)) (sha256 (base32 "1ci04nqkab9mh60zzm66sd6mhsr6lya8wp92njpbvafc86vvwdlr"))))))) (arguments `(#:test-target "test" #:configure-flags (list "--gpgme" ;; Database, implies header caching. "--disable-tokyocabinet" "--disable-qdbm" "--disable-bdb" "--lmdb" "--kyotocabinet" "--gdbm" "--gnutls" "--disable-ssl" "--sasl" (string-append "--with-sasl=" (assoc-ref %build-inputs "cyrus-sasl")) "--smime" "--notmuch" "--disable-idn" "--idn2" ;; If we do not set this, neomutt wants to check ;; whether the path exists, which it does not ;; in the chroot. "--with-mailpath=/var/mail" "--with-ui=ncurses" (string-append "--with-ncurses=" (assoc-ref %build-inputs "ncurses")) (string-append "--prefix=" (assoc-ref %outputs "out")) "--debug") #:phases (modify-phases %standard-phases ;; TODO: autosetup is meant to be included in the source, ;; but we should package autosetup and use our own version of it. (replace 'configure (lambda* (#:key outputs inputs configure-flags #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (flags `(,@configure-flags)) (bash (which "bash"))) (setenv "SHELL" bash) (setenv "CONFIG_SHELL" bash) (apply invoke bash (string-append (getcwd) "/configure") flags)))) (add-before 'check 'prepare-test-files (lambda* (#:key inputs #:allow-other-keys) (copy-recursively (assoc-ref inputs "neomutt-test-files") "tests") (with-directory-excursion "tests" (setenv "NEOMUTT_TEST_DIR" (getcwd)) ; must be absolute (invoke "bash" "setup.sh"))))))) (home-page "https://neomutt.org/") (synopsis "Command-line mail reader based on Mutt") (description "NeoMutt is a command-line mail reader which is based on mutt. It adds a large amount of new and improved features to mutt.") (license license:gpl2+))) (define-public gmime (package (name "gmime") (version "3.2.14") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/jstedfast/gmime") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0kvhyd1rn6wi9wrqi2a4f26yp0l6shsg9sd45hckzf04p9687hb7")))) (build-system gnu-build-system) (arguments (list #:configure-flags #~(list "--enable-gtk-doc=yes" "--enable-introspection=yes") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-paths-in-tests (lambda _ ;; The test programs run several programs using 'system' with ;; hard-coded paths. Here we patch them all. ;; We use ISO-8859-1 here because test-iconv.c contains ;; raw byte sequences in several different encodings. (with-fluids ((%default-port-encoding #f)) (substitute* (find-files "tests" "\\.c$") (("(system *\\(\")(/[^ ]*)" all pre prog-path) (let* ((base (basename prog-path)) (prog (which base))) (string-append pre (or prog (error "not found: " base)))))))))))) (native-inputs (list autoconf-2.71 automake pkg-config gnupg ; for tests only gobject-introspection gtk-doc libtool vala which)) ; to find libtool, &c. (inputs (list glib gpgme zlib)) (home-page "https://spruce.sourceforge.net/gmime/") (synopsis "MIME message parser and creator library") (description "GMime provides a core library and set of utilities which may be used for the creation and parsing of messages using the Multipurpose Internet Mail Extension (MIME).") (license (list license:lgpl2.1+ license:gpl2+ license:gpl3+)))) (define-public altermime (package (name "altermime") (version "0.3.11") (source (origin (method url-fetch) (uri (string-append "https://pldaniels.com/altermime/altermime-" version ".tar.gz")) (sha256 (base32 "15zxg6spcmd35r6xbidq2fgcg2nzyv1sbbqds08lzll70mqx4pj7")))) (build-system gnu-build-system) (arguments (list #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) (string-append "PREFIX=" #$output)) #:tests? #f ; there are none #:phases #~(modify-phases %standard-phases (delete 'configure) (add-after 'unpack 'fix-bugs (lambda _ (substitute* "MIME_headers.c" (("hinfo->filename, sizeof\\(hinfo->name\\)") "hinfo->filename, sizeof(hinfo->filename)") (("memset\\(hinfo->defects, 0, _MIMEH_DEFECT_ARRAY_SIZE\\);") "memset(hinfo->defects, 0, sizeof(hinfo->defects));")) (substitute* "pldstr.c" (("if \\(\\(st->start\\)&&\\(st->start != '\\\\0'\\)\\)") "if ((st->start)&&(*st->start != '\\0'))")) (substitute* "qpe.c" (("if \\(lineend != '\\\\0'\\)") "if (*lineend != '\\0')")))) (add-after 'unpack 'install-to-prefix (lambda _ (substitute* "Makefile" (("/usr/local") "${PREFIX}") (("cp altermime.*") "install -D -t ${PREFIX}/bin altermime\n")))) (add-after 'unpack 'disable-Werror (lambda _ (substitute* "Makefile" (("-Werror") "")))) (add-after 'unpack 'do-not-strip (lambda _ (substitute* "Makefile" (("\\bstrip\\b") "true"))))))) (home-page "https://pldaniels.com/altermime/") (synopsis "Modify MIME-encoded messages") (description "alterMIME is a small program which is used to alter your mime-encoded mailpack. What can alterMIME do? @enumerate @item Insert disclaimers, @item insert arbitrary X-headers, @item modify existing headers, @item remove attachments based on filename or content-type, @item replace attachments based on filename. @end enumerate .") ;; MIME_headers.c is distributed under BSD-3; the rest of the code is ;; published under the alterMIME license. (license (list (license:non-copyleft "file://LICENSE") license:bsd-3)))) (define-public astroid (package (name "astroid") (version "0.16") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/astroidmail/astroid") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "17m99llggkg7xg72k8xaf7iipax7sgfhqa2a1qnlylndwa42f57b")) (modules '((guix build utils))) (snippet '(begin ;; https://github.com/astroidmail/astroid/pull/685 (substitute* "tests/test_composed_message.cc" (("\\\\n\\.\\.\\.") "\\n...\\n")))))) (build-system cmake-build-system) (arguments `(#:modules ((guix build cmake-build-system) ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) (guix build utils) (ice-9 match)) #:imported-modules ((guix build glib-or-gtk-build-system) ,@%cmake-build-system-modules) #:configure-flags (list "-GNinja") #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-markdown-test ;; This test relies on the plugins and the test suite ;; cannot find the Astroid module. ;; gi.require_version ('Astroid', '0.2') ;; ValueError: Namespace Astroid not available (lambda _ (substitute* "tests/CMakeLists.txt" ((".*markdown.*") "")))) (replace 'build (lambda _ (invoke "ninja" "-j" (number->string (parallel-job-count))))) (add-before 'check 'start-xserver (lambda* (#:key inputs #:allow-other-keys) (let ((xorg-server (assoc-ref inputs "xorg-server"))) (setenv "HOME" (getcwd)) (system (format #f "~a/bin/Xvfb :1 &" xorg-server)) (setenv "DISPLAY" ":1")))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? (setenv "CTEST_OUTPUT_ON_FAILURE" "1") (invoke "ctest" ".")))) (replace 'install (lambda _ (invoke "ninja" "install"))) (add-after 'install 'wrap-with-GI_TYPELIB_PATH (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (paths (map (match-lambda ((outputs . directory) (let ((girepodir (string-append directory "/lib/girepository-1.0"))) (if (file-exists? girepodir) girepodir #f)))) inputs))) (wrap-program (string-append out "/bin/astroid") `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths)))))) (add-after 'install 'glib-or-gtk-compile-schemas (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) (add-after 'install 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (native-inputs (list glib-networking gsettings-desktop-schemas gnupg ninja pkg-config ronn w3m xorg-server-for-tests)) (inputs (list bash-minimal boost gmime gobject-introspection ; it is referenced gtkmm-3 libpeas libsass notmuch protobuf python-wrapper python-pygobject webkitgtk-with-libsoup2)) (propagated-inputs (list adwaita-icon-theme)) ; Required for the thread view (home-page "https://astroidmail.github.io/") (synopsis "GTK frontend to the notmuch mail system") (description "Astroid is a lightweight and fast Mail User Agent that provides a graphical interface to searching, display and composing email, organized in thread and tags. Astroid uses the notmuch backend for searches through tons of email. Astroid searches, displays and compose emails — and relies on other programs for fetching, syncing and sending email.") (license (list license:gpl3+ ; 'this program' license:lgpl2.1+)))) ; code from geary, gmime (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 mailcap (let* ((version "2.1.53") (tag ;; mailcap tags their releases like this: rMajor-minor-patch (string-append "r" (string-join (string-split version #\.) "-")))) (package (name "mailcap") (version version) (source (origin (method git-fetch) (uri (git-reference (url "https://pagure.io/mailcap.git") (commit tag))) (file-name (git-file-name name version)) (sha256 (base32 "14939pq7h25rh9100z72vzzx810yqg98im9gz2fbhh47iaj1wrbb")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure) (add-before 'install 'set-dest-dir (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (setenv "DESTDIR" out) (substitute* "Makefile" (("/usr") "")) ; This allows the man page to install. #t)))))) (native-inputs (list python)) ; for tests (synopsis "MIME type associations for file types") (description "This package provides MIME type associations for file types.") (home-page "https://pagure.io/mailcap") (license (list license:expat ; mailcap.5 license:public-domain))))) ; mailcap and mime.types (define-public bogofilter (package (name "bogofilter") (version "1.2.5") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/bogofilter/bogofilter-stable/" "bogofilter-" version ".tar.xz")) (sha256 (base32 "1sl9xrnnlk2sn8gmibhn8li09vnansjbxb9l1182qmgz7cvs2j1j")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'check 'pre-check (lambda _ (substitute* "src/tests/t.frame" (("GREP=/bin/grep") (string-append "GREP=" (which "grep") "\n"))) #t))))) (native-inputs (list flex)) (inputs (list bdb)) (home-page "https://bogofilter.sourceforge.io/") (synopsis "Mail classifier based on a Bayesian filter") (description "Bogofilter is a mail filter that classifies mail as spam or ham (non-spam) by a statistical analysis of the message's header and 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 offlineimap3 (package (name "offlineimap3") (version "8.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/OfflineIMAP/offlineimap3") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0y3giaz9i8vvczlxkbwymfkn3vi9fv599dy4pc2pn2afxsl4mg2w")))) (build-system python-build-system) (native-inputs (list asciidoc)) (inputs (list python-distro python-imaplib2 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+))) (define-public offlineimap (deprecated-package "offlineimap" offlineimap3)) (define-public emacs-mew (let ((commit "35772ee0b44dd7e56b0f3899b27fa545b2bc6f03") (revision "1")) (package (name "emacs-mew") (version (git-version "6.9" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/kazu-yamamoto/Mew") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0xazygwdc328m5l31rxjazq9giv2xrygp2p2q455lf3jhdxwq1km")))) (build-system gnu-build-system) (arguments (let ((icon-dir #~(string-append #$output "/share/mew"))) (list #:modules '((guix build gnu-build-system) (guix build utils) ((guix build emacs-build-system) #:prefix emacs:) (guix build emacs-utils)) #:imported-modules %emacs-build-system-modules #:tests? #f #:configure-flags #~(list (string-append "--with-elispdir=" (emacs:elpa-directory #$output)) (string-append "--with-etcdir=" #$icon-dir)) #:phases #~(modify-phases %standard-phases (add-after 'configure 'patch-mew-icon-directory (lambda _ (emacs-substitute-sexps "elisp/mew-key.el" ("(def.* mew-icon-directory" `(progn (add-to-list 'image-load-path 'mew-icon-directory) ,#$icon-dir))))) (add-after 'unpack 'generate-autoloads (lambda _ (emacs-generate-autoloads "mew" "elisp") (substitute* "elisp/mew-autoloads.el" ((";; no-byte-compile.*") "")) ;; Add generated autoloads to Makefile, so they get compiled (substitute* "elisp/Makefile" (("OBJS =") "OBJS = mew-autoloads.elc") (("SRCS =") "SRCS = mew-autoloads.el")))))))) (native-inputs (list emacs)) (propagated-inputs (list ruby ; to set GEM_PATH so ruby-sqlite3 is found at runtime ruby-sqlite3)) ; optional for the database of messages (home-page "https://mew.org") (synopsis "Emacs e-mail client") (description "Mew (Messaging in the Emacs World) is a user interface for text messages, multimedia messages (MIME), news articles and security functionality including PGP, S/MIME, SSH, and SSL.") (license license:bsd-3)))) (define-public mu (package (name "mu") (version "1.12.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/djcb/mu/releases/download/v" version "/mu-" version ".tar.xz")) (sha256 (base32 "0qdpag5skcwml4mrhz8205wfirayn55cqdydsy7ng6f9hyv3k9gq")))) (build-system meson-build-system) (native-inputs (list pkg-config emacs-minimal gnupg ; for tests texinfo)) (inputs (list glib gmime guile-3.0 xapian readline python)) (arguments (list #:modules '((guix build meson-build-system) (guix build emacs-utils) ((guix build guile-build-system) #:select (target-guile-effective-version)) (guix build utils)) #:imported-modules `(,@%meson-build-system-modules (guix build guile-build-system) (guix build emacs-utils)) #:configure-flags #~(list (format #f "-Dguile-extension-dir=~a/lib" #$output)) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-bin-references (lambda _ (substitute* '("guile/tests/test-mu-guile.cc" "mu/tests/test-mu-query.cc") (("/bin/sh") (which "sh"))) (substitute* '("lib/tests/bench-indexer.cc" "lib/utils/mu-test-utils.cc") (("/bin/rm") (which "rm"))) (substitute* '("lib/mu-maildir.cc") (("/bin/mv") (which "mv"))))) (add-after 'install 'fix-ffi (lambda _ (substitute* (find-files #$output "mu.scm") (("\"libguile-mu\"") (format #f "\"~a/lib/libguile-mu\"" #$output))))) (add-after 'install 'install-emacs-autoloads (lambda _ (emacs-generate-autoloads "mu4e" (string-append #$output "/share/emacs/site-lisp/mu4e")))) (add-after 'install 'wrap-executable (lambda _ (let* ((bin (string-append #$output "/bin")) (version (target-guile-effective-version)) (scm (string-append #$output "/share/guile/site/" version))) (wrap-program (string-append bin "/mu") `("GUILE_LOAD_PATH" ":" prefix (,scm))))))))) (home-page "https://www.djcbsoftware.nl/code/mu/") (synopsis "Quickly find emails") (description "Mu is a tool for dealing with e-mail messages stored in the Maildir format. Mu's purpose in life is to help you to quickly find the messages you need; in addition, it allows you to view messages, extract attachments, create new maildirs, and so on.") (license license:gpl3+))) (define-public alot (package (name "alot") (version "0.10") (source (origin (method git-fetch) ;; package author intends on distributing via github rather ;; than pypi: ;; https://github.com/pazz/alot/issues/877#issuecomment-230173331 (uri (git-reference (url "https://github.com/pazz/alot") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0awf1phdy1wqm01cy9zmvqlw6c8pvkxm2f9ncjd0cmzxqnmq1dyn")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-before 'check 'fix-tests (lambda* (#:key inputs #:allow-other-keys) (let ((gnupg (assoc-ref inputs "gnupg"))) (substitute* "tests/test_crypto.py" (("gpg2") (string-append gnupg "/bin/gpg"))) #t))) (add-before 'check 'disable-failing-tests ;; FIXME: Investigate why these tests are failing. (lambda _ (substitute* "tests/test_helper.py" (("def test_env_set") "def _test_env_set")) (substitute* "tests/commands/test_global.py" (("def test_no_spawn_no_stdin_attached") "def _test_no_spawn_no_stdin_attached")) ;; FIXME: Investigate why this test hangs. (substitute* "tests/db/test_manager.py" (("def test_save_named_query") "def _test_save_named_query")) #t))))) (native-inputs (list procps python-mock)) (inputs (list gnupg python-magic python-configobj python-twisted python-service-identity python-urwid python-urwidtrees python-gpg python-notmuch2)) (home-page "https://github.com/pazz/alot") (synopsis "Command-line MUA using Notmuch") (description "Alot is a terminal-based mail user agent based on the Notmuch mail indexer. It is written in Python using the @code{urwid} toolkit and features a modular and command prompt driven interface to provide a full mail user agent (@dfn{MUA}) experience as an alternative to the Emacs mode shipped with Notmuch.") (license license:gpl3+))) (define-public notifymuch (let ((commit "9d4aaf54599282ce80643b38195ff501120807f0") (revision "1")) (package (name "notifymuch") (version (string-append "0.1-" revision "." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/kspi/notifymuch") (commit commit))) (sha256 (base32 "1lssr7iv43mp5v6nzrfbqlfzx8jcc7m636wlfyhhnd8ydd39n6k4")) (file-name (string-append name "-" version "-checkout")))) (build-system python-build-system) (inputs (list bash-minimal python-notmuch python-pygobject gobject-introspection libnotify gtk+)) (arguments `(#:phases (modify-phases %standard-phases (add-after 'install 'wrap-binary (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin/notifymuch"))) (wrap-program bin `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))) `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH") ,(string-append out "/lib/girepository-1.0"))))) #t))))) (home-page "https://github.com/kspi/notifymuch") (synopsis "Displays notifications for changes in the notmuch email database") (description "notifymuch displays desktop notifications for messages in the notmuch database. The notifications are sent using libnotify to a notification daemon. The query to find messages to send a notification about is configurable, and a notification for the same message will not be send within a configurable period (defaults to 48 hours). To use notifymuch, run @command{notifymuch} after new mail is indexed, this can be automated by invoking @command{notifymuch} from the post-new hook.") (license license:gpl3)))) (define-public notmuch (package (name "notmuch") (version "0.38.2") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.xz")) (sha256 (base32 "0zll3s39s065pl9228xpklkjklllkyb3bf1szh0fw0rbfkjfp0jj")))) (build-system gnu-build-system) (arguments (list #:make-flags #~(list "V=1" ; verbose test output "NOTMUCH_TEST_TIMEOUT=1h") ; don't fail on slow machines #:phases #~(modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs #:allow-other-keys) (setenv "CC" #$(cc-for-target)) (setenv "CONFIG_SHELL" (search-input-file inputs "/bin/sh")) (invoke "./configure" (string-append "--prefix=" #$output) "--without-emacs"))) (add-before 'check 'prepare-test-environment (lambda* (#:key inputs #:allow-other-keys) (setenv "TEST_CC" #$(cc-for-target)) ;; Patch various inline shell invocations. (let ((sh (search-input-file inputs "/bin/sh"))) (substitute* (find-files "test" "\\.sh$") (("/bin/sh") sh)))))))) (native-inputs (list bash-completion pkg-config python python-docutils python-sphinx texinfo ;; The following are required for tests only. emacs-no-x ; -minimal lacks libxml, needed for some tests which dtach git-minimal/pinned gnupg man-db perl)) (inputs (list glib gmime sfsexp talloc xapian zlib)) (home-page "https://notmuchmail.org/") (synopsis "Thread-based email index, search, and tagging") (description "Notmuch is a command-line based program for indexing, searching, read- 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 (list notmuch)) (arguments (list #:exclude #~(cons* "make-deps.el" "rstdoc.el" %default-exclude) #:include #~(cons* "notmuch-logo.svg" %default-include) #: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 (search-input-file inputs "/bin/notmuch"))) (substitute* "notmuch-lib.el" (("\"notmuch\"") (string-append "\"" notmuch "\"")))))) ;; Install desktop files so that mailto URIs can be opened using ;; emacs-notmuch. (add-after 'install 'install-desktop-files (lambda* (#:key inputs #:allow-other-keys) (install-file "notmuch-emacs-mua" (string-append #$output "/bin")) (let ((applications (string-append #$output "/share/applications"))) (install-file "notmuch-emacs-mua.desktop" applications) (copy-file "notmuch-emacs-mua.desktop" (string-append applications "/notmuch-emacsclient-mua.desktop")) (substitute* (string-append applications "/notmuch-emacsclient-mua.desktop") (("Exec=notmuch-emacs-mua" all) (string-append all " --client"))))))))) (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") (version (string-append "9")) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/aperezdc/notmuch-addrlookup-c") (commit (string-append "v" version)))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "1j3zdx161i1x4w0nic14ix5i8hd501rb31daf8api0k8855sx4rc")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests #:make-flags (list "CC=gcc") #:phases (modify-phases %standard-phases (delete 'configure) ;; Remove vim code completion config, it's not needed to ;; build (or be patched). (add-before 'patch-source-sheb