From ff45839e29bad8bd4fa5d9b4868b3f68fe8d300d Mon Sep 17 00:00:00 2001 From: Declan Tsien Date: Sun, 23 Oct 2022 11:46:37 +0800 Subject: [PATCH 3/4] gnu: emacs-piem: Split into multiple separated packages. emacs-piem 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-piem): Split into multiple separated packages. * gnu/packages/emacs-xyz.scm (emacs-piem-b4): New variable. * gnu/packages/emacs-xyz.scm (emacs-piem-elfeed): New variable. * gnu/packages/emacs-xyz.scm (emacs-piem-eww): New variable. * gnu/packages/emacs-xyz.scm (emacs-piem-gnus): New variable. * gnu/packages/emacs-xyz.scm (emacs-piem-notmuch): New variable. * gnu/packages/emacs-xyz.scm (emacs-piem-rmail): New variable. * gnu/packages/emacs-xyz.scm (emacs-piem-lei): New variable. --- gnu/packages/emacs-xyz.scm | 139 +++++++++++++++++++++++++++++-------- 1 file changed, 109 insertions(+), 30 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index bc56067a7c..3f62e92116 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -7134,45 +7134,124 @@ (define-public emacs-piem (package (name "emacs-piem") (version "0.4.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.kyleam.com/piem") - (commit (string-append "v" version)))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z")))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.kyleam.com/piem") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z")))) (build-system emacs-build-system) (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs #:allow-other-keys) - (emacs-substitute-variables "piem-b4.el" - ("piem-b4-b4-executable" - (search-input-file inputs "/bin/b4"))))) - (add-after 'unpack 'build-info-manual - (lambda _ - (invoke "make" "Documentation/piem.info") - (rename-file "Documentation/piem.info" "piem.info")))))) - (inputs - (list b4)) - (native-inputs - (list texinfo)) - (propagated-inputs - (list emacs-elfeed - emacs-notmuch - emacs-transient)) - (home-page "https://docs.kyleam.com/piem") + (list #:exclude #~(cons* "^piem-b4.el" + "^piem-elfeed.el" + "^piem-eww.el" + "^piem-gnus.el" + "^piem-lei.el" + "^piem-notmuch.el" + "^piem-rmail.el" + %default-exclude) + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'build-info-manual + (lambda _ + (invoke "make" "Documentation/piem.info") + (rename-file "Documentation/piem.info" "piem.info")))))) + (native-inputs (list texinfo)) + (propagated-inputs (list emacs-transient)) + (home-page "https://docs.kyleam.com/piem/") (synopsis "Glue for working with public-inbox archives") - (description "This packages provides a collection of Emacs libraries for + (description + "This package provides a collection of Emacs libraries for working with public-inbox archives. As much of the hard work here is already done by other Emacs libraries—things like mail clients, news readers, Git interfaces, and even web browsers—piem is mostly about bridging some of these parts for convenience.") (license license:gpl3+))) +(define-public emacs-piem-b4 + (package + (inherit emacs-piem) + (name "emacs-piem-b4") + (inputs (list b4)) + (propagated-inputs (list emacs-piem)) + (arguments + (list #:include #~(list "piem-b4.el") + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "piem-b4.el" + ("piem-b4-b4-executable" + (search-input-file + inputs "/bin/b4")))))))) + (synopsis "Emacs interface to the b4 tool") + (description + "This library provides a @code{emacs-transient} interface to @code{b4}. It is +documented in the piem manual."))) + +(define-public emacs-piem-elfeed + (package + (inherit emacs-piem) + (name "emacs-piem-elfeed") + (propagated-inputs (list emacs-piem emacs-elfeed)) + (arguments + (list #:include #~(list "piem-elfeed.el"))) + (synopsis "Elfeed integration for piem") + (description + "This library provides @code{emacs-elfeed} integration for @code{piem}."))) + +(define-public emacs-piem-eww + (package + (inherit emacs-piem) + (name "emacs-piem-eww") + (propagated-inputs (list emacs-piem)) + (arguments + (list #:include #~(list "piem-eww.el"))) + (synopsis "EWW integration for piem") + (description "This library provides EWW integration for @code{piem}."))) + +(define-public emacs-piem-gnus + (package + (inherit emacs-piem) + (name "emacs-piem-gnus") + (propagated-inputs (list emacs-piem)) + (arguments + (list #:include #~(list "piem-gnus.el"))) + (synopsis "Gnus integration for piem") + (description "This library provides Gnus integration for @code{piem}."))) + +(define-public emacs-piem-notmuch + (package + (inherit emacs-piem) + (name "emacs-piem-notmuch") + (propagated-inputs (list emacs-piem emacs-notmuch)) + (arguments + (list #:include #~(list "piem-notmuch.el"))) + (synopsis "Notmuch integration for piem") + (description + "This library provides @code{emacs-notmuch} integration for @code{piem}."))) + +(define-public emacs-piem-rmail + (package + (inherit emacs-piem) + (name "emacs-piem-rmail") + (propagated-inputs (list emacs-piem)) + (arguments + (list #:include #~(list "piem-rmail.el"))) + (synopsis "Rmail integration for piem") + (description "This library provides Rmail integration for @code{piem}."))) + +(define-public emacs-piem-lei + (package + (inherit emacs-piem) + (name "emacs-piem-lei") + (propagated-inputs (list emacs-piem)) + (arguments + (list #:include #~(list "piem-lei.el"))) + (synopsis "Lei integration for piem") + (description "This library provides lei integration for @code{piem}."))) + (define-public emacs-ert-expectations (package (name "emacs-ert-expectations") -- 2.38.0