Subject: gnu: Drop emacs-transient, emacs-project input from four packages

From: "Jorge P. de Morais Neto" <[email-masked]>
Date: Fri, 08 Jul 2022 09:54:21 -0300

Hi.  I apologize for any mistakes and welcome feedback.  This is my
first patch to Guix; let's hope that many others will follow!  I see low
hanging fruits: including the several other Emacs packages still
unnecessarily pulling emacs-transient, emacs-project and other Elisp
libraries that are now builtin.

I have been using these modified packages.  I have also checked this
patch with ~guix lint~ and ~guix build --check~.  The four packages
build well; the only warning messages were:

In git-timemachine-completing-read-fn:
git-timemachine.el:101:8: Warning: docstring wider than 80 characters

In git-timemachine--find-new-current-line:
git-timemachine.el:259:8: Warning: docstring wider than 80 characters

In git-timemachine--get-cursor-position:
git-timemachine.el:294:8: Warning: docstring wider than 80 characters

In git-timemachine--set-cursor-position:
git-timemachine.el:300:8: Warning: docstring wider than 80 characters
git-timemachine.el:347:1: Warning: ‘define-transient-command’ is an obsolete
    alias (as of Transient 0.3.0); use ‘transient-define-prefix’ instead.

In end of data:
git-timemachine.el:247:19: Warning: the function ‘erm-reset-buffer’ is not
    known to be defined.

geiser-autodoc.el:69:12: Warning: ‘eldoc-message’ is an obsolete function (as
    of eldoc-1.1.0); use ‘eldoc-documentation-functions’ instead.

git-commit-pkg.el:1:2: Warning: the function ‘define-package’ is not known to
    be defined.

>From a0a682e6e4b53282e9e45703c870132310764f3c Mon Sep 17 00:00:00 2001
From: "Jorge P. de Morais Neto" <[email-masked]>
Date: Fri, 8 Jul 2022 09:23:29 -0300
Subject: [PATCH] gnu: Drop emacs-transient, emacs-project input from four
 packages

Drop emacs-transient (and emacs-project) propagated input from:
- emacs-git-timemachine
- emacs-ytdl
- emacs-geiser
- emacs-magit

I use Guix package manager (manually installed) atop Debian bullseye.  My
Emacs is from Guix package emacs-next with a package transformation option to
pull from current Git master.  When trying to use the new emoji commands on
the "C-x 8e" prefix, I got an error message about transient.  I solved it by
modifying Guix recipes to not pull emacs-transient as propagated input of some
Emacs packages I installed via Guix.

Guix packages Emacs 28.1 and emacs-next 29.0.50, and both have Transient
built-in.  Therefore, pulling transient external package it as propagated
input of other packages is wasteful redundancy, and, worse, causes errors.

>From emacs-geiser also drop emacs-project (also builtin on Emacs 28.1).

For emacs-ytdl also add the required emacs-dash dependency.

See email message ID [email-masked] on guix-devel mailing list.

Several other unnecessary dependencies on builtin Emacs libraries (including
transient and project) probably remain on emacs-xyz.
---
 gnu/packages/emacs-xyz.scm | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 2e259287b8..b68a15bc4a 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -278,8 +278,6 @@ (define-public emacs-geiser
                        "-o" "geiser.info" "geiser.texi")))))))
     (native-inputs
      (list texinfo))
-    (propagated-inputs
-     (list emacs-project emacs-transient))
     (home-page "https://www.nongnu.org/geiser/")
     (synopsis "Collection of Emacs modes for Scheme hacking")
     (description
@@ -1005,7 +1003,7 @@ (define-public emacs-magit
     (inputs
      (list git perl))
     (propagated-inputs
-     (list emacs-dash emacs-transient emacs-with-editor))
+     (list emacs-dash emacs-with-editor))
     (home-page "https://magit.vc/")
     (synopsis "Emacs interface for the Git version control system")
     (description
@@ -4646,8 +4644,6 @@ (define-public emacs-git-timemachine
         (base32
          "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
     (build-system emacs-build-system)
-    (propagated-inputs
-     (list emacs-transient))
     (home-page "https://gitlab.com/pidu/git-timemachine")
     (synopsis "Step through historic versions of Git-controlled files")
     (description "This package enables you to step through historic versions
@@ -23308,7 +23304,7 @@ (define-public emacs-ytdl
     (inputs
      (list youtube-dl))
     (propagated-inputs
-     (list emacs-async emacs-transient))
+     (list emacs-async emacs-dash))
     (home-page "https://gitlab.com/tuedachu/ytdl")
     (synopsis "Emacs interface for youtube-dl")
     (description
-- 
2.36.1

Cheers!
-- 
- Many people hate injustice but few check the facts; this causes more
  injustice.  Ask me about <https://stallmansupport.org>
- Please adopt free/libre formats like PDF, Org, LaTeX, ODF, Opus, WebM and 7z.
- Libre apps for AOSP (Replicant, LineageOS, etc.) and Android: F-Droid
- https://www.gnu.org/philosophy/free-sw.html "What is free software?"