[bug#77631] gnu: emacs-magit: Simplify package.

Message ID ec8ce471cd7c9fe6dca7103b6c998bba809e5b1e.1744098621.git.csantosb@inventati.org
State New
Headers
Series [bug#77631] gnu: emacs-magit: Simplify package. |

Commit Message

Cayetano Santos April 8, 2025, 7:50 a.m. UTC
  * 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(-)


base-commit: e839cd1108626a6db6c47915f0efa4ab41c6a01c
  

Comments

Christopher Baines April 11, 2025, 11:39 a.m. UTC | #1
Cayetano Santos via Guix-patches via <guix-patches@gnu.org> writes:

> * 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(-)

Thanks for the patch, I've pushed this to master as
172e9a1aa1ee2ef3e557cf46a11e451aa7982983.

Chris
  

Patch

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"
-                      "toto@toto.com")))
-          (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