Subject: [PATCH] gnu: emacs-magit: Simplify package.
From: Cayetano Santos <[email-masked]>
To: [email-masked]
Cc: Cayetano Santos <[email-masked]>
Date: Tue, 8 Apr 2025 09:50:21 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/emacs-xyz.scm (emacs-magit): Simplify package.

These changes are based on emacs-forge package. As all magit related
packages share the same structure, let’s build them similarly.

[exclude]: Remove unexisting excludes.
[arguments]<#:phases>: Remove unnecessary configure-git phase.
[arguments]<#:phases>: Remove all unnecessary replace phases.
[arguments]<#:phases>: Add new chdir-lisp phase to operate from lisp
dir.
[arguments]<#:phases>: No need to make files writable.
[arguments]<#:phases>: Group all emacs-substitute-variables, and remove
relative path.
[test-command]: consider updated makefile path.

Change-Id: I3c2ae992faf56b9f9e7a68d1b9df430ab3b221a0
---
 gnu/packages/emacs-xyz.scm | 51 ++++++++------------------------------
 1 file changed, 10 insertions(+), 41 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 81483bc0dc..1a8ff20860 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -1919,10 +1919,7 @@ (define-public emacs-magit
     (arguments
      (list
       #:tests? #t
-      #:test-command #~(list "make" "test")
-      #:exclude #~(cons* "magit-libgit.el"
-                         "magit-libgit-pkg.el"
-                         %default-exclude)
+      #:test-command #~(list "make" "-C" ".." "test")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'build-info-manual
@@ -1930,48 +1927,20 @@ (define-public emacs-magit
               (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 "docs" "\\.info$"))))
-          (add-after 'build-info-manual 'set-magit-version
+              (rename-file "docs/magit.info" "lisp/magit.info")))
+          (add-after 'build-info-manual 'chdir-lisp
             (lambda _
-              (make-file-writable "lisp/magit.el")
-              (emacs-substitute-variables "lisp/magit.el"
-                ("magit-version" #$version))))
-          (add-after 'set-magit-version 'patch-exec-paths
+              (chdir "lisp")))
+          (add-after 'chdir-lisp 'patch-version-executables
             (lambda* (#:key inputs #:allow-other-keys)
-              (for-each make-file-writable
-                        (list "lisp/magit-git.el" "lisp/magit-sequence.el"))
-              (emacs-substitute-variables "lisp/magit-git.el"
+              (emacs-substitute-variables "magit.el"
+                ("magit-version" #$version))
+              (emacs-substitute-variables "magit-git.el"
                 ("magit-git-executable"
                  (search-input-file inputs "/bin/git")))
-              (emacs-substitute-variables "lisp/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]")))
-          (replace 'expand-load-path
-            (lambda args
-              (with-directory-excursion "lisp"
-                (apply (assoc-ref %standard-phases 'expand-load-path) args))))
-          (replace 'make-autoloads
-            (lambda args
-              (with-directory-excursion "lisp"
-                (apply (assoc-ref %standard-phases 'make-autoloads) args))))
-          (replace 'install
-            (lambda args
-              (with-directory-excursion "lisp"
-                (apply (assoc-ref %standard-phases 'install) args))))
-          (replace 'build
-            (lambda args
-              (with-directory-excursion "lisp"
-                (apply (assoc-ref %standard-phases 'build) args)))))))
+                 (search-input-file inputs "/bin/perl"))))))))
     (native-inputs
      (list texinfo))
     (inputs

base-commit: e839cd1108626a6db6c47915f0efa4ab41c6a01c
-- 
2.49.0