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

From: Zhu Zihao <[email-masked]>
Date: Fri, 20 May 2022 11:52:51 +0800

>From ee433f6bfa5a1cde74deff864934a2e00bf21a0c Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Fri, 20 May 2022 11:49:10 +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..8198638c13 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
+      #: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)
+              (let ((perl (search-input-file inputs "/bin/perl")))
+                (make-file-writable "magit-sequence.el")
+                (emacs-substitute-variables "magit-sequence.el"
+                  ("magit-perl-executable" 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.0

>From 983a23d9ae1fde345e9ad92f49dbb30e73cc8498 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Fri, 20 May 2022 11:51:02 +0800
Subject: [PATCH 2/2] gnu: emacs-magit: Drop the libgit backend.

Drop the libgit backend for following reasons:

1. The libgit backend of Magitis very incomplete. There's almost no benefits,
but extra maintenance efforts.

2. The libgit backend of Magit can be considered as an extra package. And it's
still in Proof-Of-Concept status so its quaility doesn't satisfy the
requirement of Guix package.

* 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 8198638c13..d3ca00475e 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
       #: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.0

-- 
Retrieve my PGP public key:

  gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F

Zihao