[bug#77631] gnu: emacs-magit: Simplify package.
Commit Message
* 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
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
@@ -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