Subject: Re: bug#55517: Acknowledgement ([PATCH]: gnu: emacs-magit: Drop the libgit backend.)

From: Zhu Zihao <[email-masked]>
Date: Sat, 28 May 2022 10:11:27 +0800

>From 74cf2719131d2ebaa23c042fc2d3b5aeddc2be5c Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Sun, 22 May 2022 17:43:42 +0800
Subject: [PATCH 1/2] gnu: emacs-magit: Use G-expressions.

* gnu/packages/emacs-xyz.scm (emacs-magit)[arguments]: Use G-expressions.
<phases>: In phase 'patch-exec-paths', use search-input-file for perl
executable.
---
 gnu/packages/emacs-xyz.scm | 91 +++++++++++++++++++-------------------
 1 file changed, 46 insertions(+), 45 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index eed2f4b71c..a9dc687af4 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -869,51 +869,52 @@ (define-public emacs-magit
         (base32 "0cxyvp2aav27znc7mf6c83q5pddpdniaqkrxn1r8dbgr540qmnpn"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:emacs ,emacs-no-x             ;module support is required
-       #:tests? #t
-       #:test-command '("make" "test")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'build-info-manual
-           (lambda _
-             (invoke "make" "info")
-             ;; Copy info files to the lisp directory, which acts as
-             ;; the root of the project for the emacs-build-system.
-             (for-each (lambda (f)
-                         (install-file f "lisp"))
-                       (find-files "Documentation" "\\.info$"))
-             (chdir "lisp")))
-         (add-after 'build-info-manual 'set-magit-version
-           (lambda _
-             (make-file-writable "magit.el")
-             (emacs-substitute-variables "magit.el"
-               ("magit-version" ,version))))
-         (add-after 'set-magit-version 'patch-exec-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((perl (assoc-ref inputs "perl")))
-               (make-file-writable "magit-sequence.el")
-               (emacs-substitute-variables "magit-sequence.el"
-                 ("magit-perl-executable" (string-append perl "/bin/perl"))))))
-         (add-before 'check 'configure-git
-           (lambda _
-             ;; Otherwise some tests fail with error "unable to auto-detect
-             ;; email address".
-             (setenv "HOME" (getcwd))
-             (invoke "git" "config" "--global" "user.name" "toto")
-             (invoke "git" "config" "--global" "user.email"
-                     "[email-masked]")))
-         (add-after 'configure-git 'disable-tramp-test
-           (lambda _
-             ;; There is an issue causing TRAMP to fail in the build
-             ;; environment.  Setting the tramp-remote-shell parameter of
-             ;; the sudo-method to the file name of the shell didn't help.
-             (chdir "..")
-             (substitute* "t/magit-tests.el"
-               (("^\\(ert-deftest magit-toplevel:tramp.*" all)
-                (string-append all "  (skip-unless nil)")))))
-         (add-before 'install 'enter-lisp-directory
-           (lambda _
-             (chdir "lisp"))))))
+     (list
+      #:emacs emacs-no-x             ;module support is required
+      #:tests? #t
+      #:test-command #~(list "make" "test")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'build-info-manual
+            (lambda _
+              (invoke "make" "info")
+              ;; Copy info files to the lisp directory, which acts as
+              ;; the root of the project for the emacs-build-system.
+              (for-each (lambda (f)
+                          (install-file f "lisp"))
+                        (find-files "Documentation" "\\.info$"))
+              (chdir "lisp")))
+          (add-after 'build-info-manual 'set-magit-version
+            (lambda _
+              (make-file-writable "magit.el")
+              (emacs-substitute-variables "magit.el"
+                ("magit-version" #$version))))
+          (add-after 'set-magit-version 'patch-exec-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              (make-file-writable "magit-sequence.el")
+              (emacs-substitute-variables "magit-sequence.el"
+                ("magit-perl-executable"
+                 (search-input-file inputs "/bin/perl")))))
+          (add-before 'check 'configure-git
+            (lambda _
+              ;; Otherwise some tests fail with error "unable to auto-detect
+              ;; email address".
+              (setenv "HOME" (getcwd))
+              (invoke "git" "config" "--global" "user.name" "toto")
+              (invoke "git" "config" "--global" "user.email"
+                      "[email-masked]")))
+          (add-after 'configure-git 'disable-tramp-test
+            (lambda _
+              ;; There is an issue causing TRAMP to fail in the build
+              ;; environment.  Setting the tramp-remote-shell parameter of
+              ;; the sudo-method to the file name of the shell didn't help.
+              (chdir "..")
+              (substitute* "t/magit-tests.el"
+                (("^\\(ert-deftest magit-toplevel:tramp.*" all)
+                 (string-append all "  (skip-unless nil)")))))
+          (add-before 'install 'enter-lisp-directory
+            (lambda _
+              (chdir "lisp"))))))
     (native-inputs
      (list texinfo))
     (inputs
-- 
2.36.1

>From 259d81469127306c4f345598f487122659a55c9c Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Sat, 28 May 2022 10:10:31 +0800
Subject: [PATCH 2/2] gnu: emacs-magit: Drop the libgit backend.

The libgit backend currently provides next to no features, but
demands extra maintenance overhead.  It is in fact not a usable
backend; thus let's not use it.

* gnu/packages/emacs-xyz.scm (emacs-magit)[arguments]
<emacs>: Remove this argument.
<exclude>: Exclude the magit-libgit.el and magit-libgit-pkg.el.

[inputs]: Remove emacs-libgit.
---
 gnu/packages/emacs-xyz.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index a9dc687af4..21359882ad 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -870,9 +870,11 @@ (define-public emacs-magit
     (build-system emacs-build-system)
     (arguments
      (list
-      #:emacs emacs-no-x             ;module support is required
       #:tests? #t
       #:test-command #~(list "make" "test")
+      #:exclude #~(cons* "magit-libgit.el"
+                         "magit-libgit-pkg.el"
+                         %default-exclude)
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'build-info-manual
@@ -920,7 +922,7 @@ (define-public emacs-magit
     (inputs
      (list git perl))
     (propagated-inputs
-     (list emacs-dash emacs-libgit emacs-transient emacs-with-editor))
+     (list emacs-dash emacs-transient emacs-with-editor))
     (home-page "https://magit.vc/")
     (synopsis "Emacs interface for the Git version control system")
     (description
-- 
2.36.1

-- 
Retrieve my PGP public key:

  gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F

Zihao