gnu: emacs-libgit: Improve package style.

* gnu/packages/emacs-xyz.scm (emacs-libgit)[arguments]: Use G-expressions.
[native-inputs]: Re-order alphabetically.
This commit is contained in:
Nicolas Goaziou 2023-01-29 21:47:21 +01:00
parent f0ff03069d
commit e70d8e3e1f
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D

View file

@ -1102,69 +1102,68 @@ on stdout instead of using a socket as the Emacsclient does.")
;; Use the cmake-build-system as it provides support for cross builds. ;; Use the cmake-build-system as it provides support for cross builds.
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x") (list
;; Add the emacs-build-system byte compilation and install phases. #:configure-flags #~(list "-DUSE_SYSTEM_LIBGIT2=x")
#:imported-modules (,@%cmake-build-system-modules ;; Add the emacs-build-system byte compilation and install phases.
#:imported-modules `(,@%cmake-build-system-modules
(guix build emacs-build-system) (guix build emacs-build-system)
(guix build emacs-utils)) (guix build emacs-utils))
#:modules ((guix build cmake-build-system) #:modules '((guix build cmake-build-system)
((guix build emacs-build-system) #:prefix emacs:) ((guix build emacs-build-system) #:prefix emacs:)
(guix build emacs-utils) (guix build emacs-utils)
(guix build utils)) (guix build utils))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-source (add-after 'unpack 'patch-source
(lambda _ (lambda _
;; Use Emacs 28 unibyte strings. ;; Use Emacs 28 unibyte strings.
;; XXX: This now breaks if linked against Emacs <= 26, probably ;; XXX: This now breaks if linked against Emacs <= 26, probably
;; also 27. ;; also 27.
(substitute* "src/egit-blob.c" (substitute* "src/egit-blob.c"
(("make_string") "make_unibyte_string")))) (("make_string") "make_unibyte_string"))))
(add-after 'unpack 'set-libgit--module-file (add-after 'unpack 'set-libgit--module-file
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out"))) (emacs-substitute-variables "libgit.el"
(make-file-writable "libgit.el") ("libgit--module-file"
(emacs-substitute-variables "libgit.el" (string-append (emacs:elpa-directory #$output)
("libgit--module-file" "/libegit2.so")))))
(string-append (emacs:elpa-directory out) "/libegit2.so")))))) (add-after 'unpack 'skip-failing-tests
(add-after 'unpack 'skip-failing-tests ;; XXX: Skip 2 failing tests (out of 29).
;; XXX: Skip 2 failing tests (out of 29). (lambda _
(lambda _ (substitute* "test/submodule-test.el"
(substitute* "test/submodule-test.el" (("\\(ert-deftest (status|ids) .*" all)
(("\\(ert-deftest (status|ids) .*" all)
(string-append all " (skip-unless nil)"))))) (string-append all " (skip-unless nil)")))))
(add-before 'install 'prepare-for-install (add-before 'install 'prepare-for-install
(lambda _ (lambda _
(let ((s "../source")) (let ((s "../source"))
(copy-file "libegit2.so" (string-append s "/libegit2.so")) (copy-file "libegit2.so" (string-append s "/libegit2.so"))
(chdir s)))) (chdir s))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((install (assoc-ref emacs:%standard-phases 'install))) (let ((install (assoc-ref emacs:%standard-phases 'install)))
(install #:outputs outputs (install #:outputs outputs
#:include (cons "\\.so$" #:include (cons "\\.so$"
emacs:%default-include))))) emacs:%default-include)))))
(add-after 'unpack 'emacs-add-install-to-native-load-path (add-after 'unpack 'emacs-add-install-to-native-load-path
(assoc-ref emacs:%standard-phases 'add-install-to-native-load-path)) (assoc-ref emacs:%standard-phases 'add-install-to-native-load-path))
(add-after 'install 'make-autoloads (add-after 'install 'make-autoloads
(assoc-ref emacs:%standard-phases 'make-autoloads)) (assoc-ref emacs:%standard-phases 'make-autoloads))
(add-after 'make-autoloads 'enable-autoloads-compilation (add-after 'make-autoloads 'enable-autoloads-compilation
(assoc-ref emacs:%standard-phases 'enable-autoloads-compilation)) (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
(add-after 'enable-autoloads-compilation 'patch-el-files (add-after 'enable-autoloads-compilation 'patch-el-files
(assoc-ref emacs:%standard-phases 'patch-el-files)) (assoc-ref emacs:%standard-phases 'patch-el-files))
(add-after 'patch-el-files 'emacs-build (add-after 'patch-el-files 'emacs-build
(assoc-ref emacs:%standard-phases 'build)) (assoc-ref emacs:%standard-phases 'build))
(add-after 'emacs-build 'validate-compiled-autoloads (add-after 'emacs-build 'validate-compiled-autoloads
(assoc-ref emacs:%standard-phases 'validate-compiled-autoloads))))) (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
(native-inputs (native-inputs
(list pkg-config emacs-no-x git-minimal)) (list emacs-no-x git-minimal pkg-config))
(inputs (inputs
(list libgit2)) (list libgit2))
(home-page "https://github.com/magit/libegit2") (home-page "https://github.com/magit/libegit2")
(synopsis "Emacs bindings for libgit2") (synopsis "Emacs bindings for libgit2")
(description "This is an experimental module written in C providing (description "This is an experimental module written in C providing
libgit2 bindings for Emacs, intended to boost the performance of Magit.") libgit2 bindings for Emacs, intended to boost the performance of Magit.")
;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
(license license:gpl2+)))) (license license:gpl2+))))
(define-public emacs-magit (define-public emacs-magit