From d0c79a8c055c3818c1ea97e4cf0aa373303025e5 Mon Sep 17 00:00:00 2001 From: Declan Tsien Date: Sun, 23 Oct 2022 11:48:13 +0800 Subject: [PATCH 4/4] gnu: emacs-git-email: Split into multiple separated packages. emacs-git-email currently bundles multiple lisp files with identical functionality but for different tastes. Split into separated packages would avoid pulling unnecessary dependencies into user profile. * gnu/packages/emacs-xyz.scm (emacs-git-email): Split into multiple separated packages. * gnu/packages/emacs-xyz.scm (emacs-git-email-gnus): New Variable. * gnu/packages/emacs-xyz.scm (emacs-git-email-magit): New Variable. * gnu/packages/emacs-xyz.scm (emacs-git-email-mu4e): New Variable. * gnu/packages/emacs-xyz.scm (emacs-git-email-notmuch): New Variable. * gnu/packages/emacs-xyz.scm (emacs-git-email-piem): New Variable. --- gnu/packages/emacs-xyz.scm | 115 +++++++++++++++++++++++++++++-------- 1 file changed, 90 insertions(+), 25 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 3f62e92116..0bbae04f08 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17405,39 +17405,104 @@ (define-public emacs-git-email (package (name "emacs-git-email") (version (git-version "0.2.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~yoctocell/git-email") - (commit commit))) - (patches - (search-patches "emacs-git-email-missing-parens.patch")) - (file-name (git-file-name name version)) - (sha256 - (base32 "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx")))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~yoctocell/git-email") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx")))) (build-system emacs-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - ;; piem is not yet packaged in Guix. - (add-after 'unpack 'remove-piem - (lambda _ - (delete-file "git-email-piem.el"))) - (add-before 'install 'makeinfo - (lambda _ - (invoke "make" "doc/git-email.info") - (rename-file "doc/git-email.info" "git-email.info")))))) - (native-inputs - (list texinfo)) - (propagated-inputs - (list mu emacs-magit emacs-notmuch)) + (list #:exclude #~(cons* "^git-email-gnus.el" + "^git-email-magit.el" + "^git-email-mu4e.el" + "^git-email-notmuch.el" + "^git-email-piem.el" + %default-exclude) + #:phases #~(modify-phases %standard-phases + (add-before 'install 'makeinfo + (lambda _ + (invoke "make" "doc/git-email.info") + (rename-file "doc/git-email.info" + "git-email.info")))))) + (native-inputs (list texinfo)) (license license:gpl3+) (home-page "https://sr.ht/~yoctocell/git-email") (synopsis "Format and send Git patches in Emacs") (description "This package provides utilities for formatting and sending Git patches via Email, without leaving Emacs.")))) +(define-public emacs-git-email-gnus + (package + (inherit emacs-git-email) + (name "emacs-git-email-gnus") + (propagated-inputs (list emacs-git-email)) + (arguments + (list #:include #~(list "git-email-gnus.el"))) + (synopsis "Gnus integration for git-email") + (description + "This library sets some variables for git-email to make it work +better with Gnus."))) + +(define-public emacs-git-email-magit + (package + (inherit emacs-git-email) + (name "emacs-git-email-magit") + (propagated-inputs (list emacs-git-email emacs-magit)) + (arguments + (list #:include #~(list "git-email-magit.el"))) + (synopsis "Magit integration for git-email") + (description + "This library offers transient commands in the magit-status buffer +for interacting with git-email."))) + +(define-public emacs-git-email-mu4e + (package + (inherit emacs-git-email) + (name "emacs-git-email-mu4e") + (propagated-inputs (list emacs-git-email mu)) + (inputs (list `("emacs-git-email-mu4e-patch" ,(car (search-patches + "emacs-git-email-missing-parens.patch"))))) + (arguments + (list #:include #~(list "git-email-mu4e.el") + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'apply-patch + (lambda* (#:key inputs #:allow-other-keys) + (let ((patch (assoc-ref inputs + "emacs-git-email-mu4e-patch"))) + (invoke "patch" "-p1" "--batch" "-i" patch))))))) + (synopsis "Mu4e integration for git-email") + (description + "This library sets some variables for git-email to make it work +better with @code{mu}."))) + +(define-public emacs-git-email-notmuch + (package + (inherit emacs-git-email) + (name "emacs-git-email-notmuch") + (propagated-inputs (list emacs-git-email emacs-notmuch)) + (arguments + (list #:include #~(list "git-email-notmuch.el"))) + (synopsis "Notmuch integration for git-email") + (description + "This library sets some variables for git-email to make it work +better with @code{emacs-notmuch}."))) + +(define-public emacs-git-email-piem + (package + (inherit emacs-git-email) + (name "emacs-git-email-piem") + (propagated-inputs (list emacs-git-email emacs-piem)) + (arguments + (list #:include #~(list "git-email-piem.el"))) + (synopsis "Piem integration for git-email") + (description + "This library sets some variables for git-email to make it work +better with @code{emacs-piem}."))) + (define-public emacs-erc-hl-nicks (package (name "emacs-erc-hl-nicks") -- 2.38.0