Thanks, Mark, for the hint about using (package-version emacs-dash) to
define its elisp directory.

>From 55e67d4f3867f11a77b9a91d4c3c54599846cc83 Mon Sep 17 00:00:00 2001
From: Alex Kost <alez...@gmail.com>
Date: Mon, 17 Aug 2015 21:44:40 +0300
Subject: [PATCH] gnu: magit: Update to 2.2.0.

* gnu/packages/emacs.scm (magit): Update to 2.2.0.
  [inputs]: Remove 'git:gui'.
  [propagated-inputs]: Add 'dash', remove 'git-modes'.
  [arguments]: Enable tests.  Add VERSION, PREFIX and DASH_DIR to
  'make-flags'.  Remove 'configure', 'augment-load-path' and
  'post-install' phases.
---
 gnu/packages/emacs.scm | 69 ++++++++++++++++++--------------------------------
 1 file changed, 25 insertions(+), 44 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index b73d80c..56083f2 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayi...@gmail.com>
 ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <l...@gnu.org>
 ;;; Copyright © 2014, 2015 Mark H Weaver <m...@netris.org>
-;;; Copyright © 2014 Alex Kost <alez...@gmail.com>
+;;; Copyright © 2014, 2015 Alex Kost <alez...@gmail.com>
 ;;; Copyright © 2015 Federico Beffa <be...@fbengineering.ch>
 ;;; Copyright © 2015 Ricardo Wurmus <rek...@elephly.net>
 ;;;
@@ -311,21 +311,21 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
 (define-public magit
   (package
     (name "magit")
-    (version "1.4.2")
+    (version "2.2.0")
     (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://github.com/magit/magit/releases/download/";
-                   version "/" name "-" version ".tar.gz"))
-             (sha256
-              (base32
-               "1g3bxvgabiis2y338jziycx4b61vrim4lzmqnzv78094s8azzb52"))))
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/magit/magit/archive/";
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1jfak9yypvhlbxjdvpl9w28zz0lyymz0pm9fvb6cpnss3nb4fz4l"))))
     (build-system gnu-build-system)
     (native-inputs `(("texinfo" ,texinfo)
                      ("emacs" ,emacs-no-x)))
-    (inputs `(("git" ,git)
-              ("git:gui" ,git "gui")))
-    (propagated-inputs `(("git-modes" ,git-modes)))
+    (inputs `(("git" ,git)))
+    (propagated-inputs `(("dash" ,emacs-dash)))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -334,45 +334,26 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
                            (guix build emacs-utils))
 
        #:test-target "test"
-       #:tests? #f                          ;'tests/magit-tests.el' is missing
 
-       #:make-flags (list
-                     ;; Don't put .el files in a sub-directory.
-                     (string-append "lispdir=" (assoc-ref %outputs "out")
-                                    "/share/emacs/site-lisp"))
+       #:make-flags
+       (list (string-append "VERSION=" ,version)
+             (string-append "PREFIX=" %output)
+             ;; Don't put .el files in a sub-directory.
+             (string-append "lispdir=" %output "/share/emacs/site-lisp")
+             (string-append "DASH_DIR="
+                            (assoc-ref %build-inputs "dash")
+                            "/share/emacs/site-lisp/guix.d/dash-"
+                            ,(package-version emacs-dash)))
 
        #:phases
        (modify-phases %standard-phases
-         (replace
-          'configure
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out")))
-              (substitute* "Makefile"
-                (("/usr/local") out)
-                (("/etc") (string-append out "/etc"))))))
+         (delete 'configure)
          (add-before
           'build 'patch-exec-paths
           (lambda* (#:key inputs #:allow-other-keys)
-            (let ((git (assoc-ref inputs "git"))
-                  (git:gui (assoc-ref inputs "git:gui")))
-              (emacs-substitute-variables "magit.el"
-                ("magit-git-executable" (string-append git "/bin/git"))
-                ("magit-gitk-executable" (string-append git:gui
-                                                        "/bin/gitk"))))))
-         (add-before
-          'build 'augment-load-path
-          (lambda* (#:key inputs #:allow-other-keys)
-            ;; Allow git-commit-mode.el & co. to be found.
-            (let ((git-modes (assoc-ref inputs "git-modes")))
-              (setenv "EMACSLOADPATH"
-                      (string-append ":" git-modes "/share/emacs/site-lisp"))
-              #t)))
-         (add-after
-          'install 'post-install
-          (lambda* (#:key outputs #:allow-other-keys)
-            (emacs-generate-autoloads
-             ,name (string-append (assoc-ref outputs "out")
-                                  "/share/emacs/site-lisp/")))))))
+            (let ((git (assoc-ref inputs "git")))
+              (emacs-substitute-variables "lisp/magit-git.el"
+                ("magit-git-executable" (string-append git "/bin/git")))))))))
     (home-page "http://magit.github.io/";)
     (synopsis "Emacs interface for the Git version control system")
     (description
-- 
2.4.3

Reply via email to