gnu: Add emacs-notmuch.

* gnu/packages/mail.scm (notmuch)[arguments]: Remove Emacs-related stuff.
* gnu/packages/emacs-xyz.scm (emacs-consult-notmuch)[propagated-inputs]: Add
‘emacs-notmuch’.
(emacs-counsel-notmuch)[propagated-inputs]: Use ‘emacs-notmuch’ instead of
‘notmuch’.
(emacs-helm-notmuch): Likewise.
(emacs-notmuch-maildir): Likewise.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
This commit is contained in:
Xinglu Chen 2021-09-04 11:42:33 +02:00 committed by Nicolas Goaziou
parent dceb7b0c3c
commit d77da6d387
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D
2 changed files with 37 additions and 23 deletions

View file

@ -8332,7 +8332,7 @@ (define-public emacs-consult-notmuch
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-consult" ,emacs-consult) `(("emacs-consult" ,emacs-consult)
("notmuch" ,notmuch))) ("emacs-notmuch" ,emacs-notmuch)))
(home-page "https://codeberg.org/jao/consult-notmuch") (home-page "https://codeberg.org/jao/consult-notmuch")
(synopsis "Search and preview Notmuch emails using Consult") (synopsis "Search and preview Notmuch emails using Consult")
(description (description
@ -9518,6 +9518,8 @@ (define-public emacs-counsel-notmuch
`(("emacs-counsel" ,emacs-counsel) `(("emacs-counsel" ,emacs-counsel)
("notmuch" ,notmuch) ("notmuch" ,notmuch)
("emacs-s" ,emacs-s))) ("emacs-s" ,emacs-s)))
(propagated-inputs
`(("emacs-notmuch" ,emacs-notmuch)))
(home-page "https://github.com/fuxialexander/counsel-notmuch") (home-page "https://github.com/fuxialexander/counsel-notmuch")
(synopsis "Search emails in Notmuch asynchronously with Ivy") (synopsis "Search emails in Notmuch asynchronously with Ivy")
(description (description
@ -24012,7 +24014,7 @@ (define-public emacs-helm-notmuch
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-helm" ,emacs-helm) `(("emacs-helm" ,emacs-helm)
("notmuch" ,notmuch))) ("emacs-notmuch" ,emacs-notmuch)))
(synopsis "Search emails with Emacs Notmuch and Helm") (synopsis "Search emails with Emacs Notmuch and Helm")
(description (description
"This package can be used to search emails in Emacs, searching result "This package can be used to search emails in Emacs, searching result
@ -24035,7 +24037,7 @@ (define-public emacs-notmuch-maildir
"0pmikf1djkr07067nkgmdcxyn7l7ibswx6qlnai8v1v51f9h1g9q")))) "0pmikf1djkr07067nkgmdcxyn7l7ibswx6qlnai8v1v51f9h1g9q"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("notmuch" ,notmuch))) `(("emacs-notmuch" ,emacs-notmuch)))
(home-page "https://git.sr.ht/~tarsius/notmuch-maildir") (home-page "https://git.sr.ht/~tarsius/notmuch-maildir")
(synopsis "Visualize maildirs as a tree") (synopsis "Visualize maildirs as a tree")
(description (description

View file

@ -167,6 +167,7 @@ (define-module (gnu packages mail)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system go) #:use-module (guix build-system go)
#:use-module (guix build-system guile) #:use-module (guix build-system guile)
#:use-module (guix build-system emacs)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system python) #:use-module (guix build-system python)
@ -1362,31 +1363,18 @@ (define-public notmuch
"1myylb19hj5nb1vriqng252vfjwwkgbi3gxj93pi2q1fzyw7w2lf")))) "1myylb19hj5nb1vriqng252vfjwwkgbi3gxj93pi2q1fzyw7w2lf"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((guix build gnu-build-system) `(#:make-flags
((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
(list "V=1" ; verbose test output (list "V=1" ; verbose test output
"NOTMUCH_TEST_TIMEOUT=1h") ; don't fail on slow machines "NOTMUCH_TEST_TIMEOUT=1h") ; don't fail on slow machines
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-notmuch-lib.el
(lambda _
(substitute* "emacs/notmuch-lib.el"
(("/bin/sh") (which "sh")))))
(replace 'configure (replace 'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(setenv "CC" ,(cc-for-target)) (setenv "CC" ,(cc-for-target))
(setenv "CONFIG_SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh"))
(let* ((out (assoc-ref outputs "out")))
(let* ((out (assoc-ref outputs "out"))
(elisp (emacs:elpa-directory out)))
(invoke "./configure" (invoke "./configure"
(string-append "--prefix=" out) (string-append "--prefix=" out)
(string-append "--emacslispdir=" elisp) "--without-emacs"))))
(string-append "--emacsetcdir=" elisp)))))
(add-before 'check 'disable-failing-tests (add-before 'check 'disable-failing-tests
;; FIXME: Investigate why these tests are failing, ;; FIXME: Investigate why these tests are failing,
;; and try removing this for notmuch versions > 0.31. ;; and try removing this for notmuch versions > 0.31.
@ -1398,12 +1386,9 @@ (define-public notmuch
(setenv "TEST_CC" ,(cc-for-target)) (setenv "TEST_CC" ,(cc-for-target))
;; Patch various inline shell invocations. ;; Patch various inline shell invocations.
(substitute* (find-files "test" "\\.sh$") (substitute* (find-files "test" "\\.sh$")
(("/bin/sh") (which "sh"))))) (("/bin/sh") (which "sh"))))))))
(add-after 'install 'make-autoloads
(assoc-ref emacs:%standard-phases 'make-autoloads)))))
(native-inputs (native-inputs
`(("bash-completion" ,bash-completion) `(("bash-completion" ,bash-completion)
("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("python" ,python) ("python" ,python)
("python-docutils" ,python-docutils) ("python-docutils" ,python-docutils)
@ -1411,6 +1396,7 @@ (define-public notmuch
("texinfo" ,texinfo) ("texinfo" ,texinfo)
;; The following are required for tests only. ;; The following are required for tests only.
("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
("which" ,which) ("which" ,which)
("dtach" ,dtach) ("dtach" ,dtach)
("gnupg" ,gnupg) ("gnupg" ,gnupg)
@ -1429,6 +1415,32 @@ (define-public notmuch
ing, and tagging large collections of email messages.") ing, and tagging large collections of email messages.")
(license license:gpl3+))) (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 (define-public notmuch-addrlookup-c
(package (package
(name "notmuch-addrlookup-c") (name "notmuch-addrlookup-c")