summary refs log tree commit diff
path: root/gnu/packages/version-control.scm
diff options
context:
space:
mode:
authorAndreas Enge <andreas@enge.fr>2013-09-01 21:56:57 +0200
committerAndreas Enge <andreas@enge.fr>2013-09-01 21:56:57 +0200
commitd9ff410fb279571826748dac51adc00379968bbc (patch)
tree01f220f06422643b39660f7b049d07b6cee225a6 /gnu/packages/version-control.scm
parentc3f3e150c44a997c487cde1827ef81c706c4691a (diff)
downloadguix-d9ff410fb279571826748dac51adc00379968bbc.tar.gz
gnu: Add git.
* gnu/packages/version-control.scm (git): New variable.
Diffstat (limited to 'gnu/packages/version-control.scm')
-rw-r--r--gnu/packages/version-control.scm48
1 files changed, 47 insertions, 1 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 5059dcd5e1..14404f0bfe 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,7 +20,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages version-control)
-  #:use-module ((guix licenses) #:select (asl2.0 gpl1+ gpl2+ gpl3+))
+  #:use-module ((guix licenses) #:select (asl2.0 gpl1+ gpl2 gpl2+ gpl3+))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
@@ -28,11 +29,14 @@
   #:use-module ((gnu packages gettext)
                 #:renamer (symbol-prefix-proc 'guix:))
   #:use-module (gnu packages apr)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages nano)
+  #:use-module (gnu packages openssl)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages system)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages compression))
 
@@ -64,6 +68,48 @@ organize their workspace in whichever way they want.  It is possible to work
 from a command line or use a GUI application.")
     (license gpl2+)))
 
+(define-public git
+  (package
+   (name "git")
+   (version "1.8.4")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "http://git-core.googlecode.com/files/git-"
+                                version ".tar.gz"))
+            (sha256
+             (base32
+              "156bwqqgaw65rsvbb4wih5jfg94bxyf6p16mdwf0ky3f4ln55s2i"))))
+   (build-system gnu-build-system)
+   (inputs
+    `(("curl" ,curl)
+      ("expat" ,expat)
+      ("gettext" ,guix:gettext)
+      ("openssl" ,openssl)
+      ("perl" ,perl)
+      ("python" ,python) ; CAVEAT: incompatible with python-3 according to INSTALL
+      ("zlib" ,zlib)))
+   (arguments
+    `(#:make-flags `("V=1") ; more verbose compilation
+      #:test-target "test"
+      #:tests? #f ; FIXME: Many tests are failing
+      #:phases
+       (alist-replace
+        'configure
+        (lambda* (#:key #:allow-other-keys #:rest args)
+          (let ((configure (assoc-ref %standard-phases 'configure)))
+            (and (apply configure args)
+                 (substitute* "Makefile"
+                   (("/bin/sh") (which "sh"))
+                   (("/usr/bin/perl") (which "perl"))
+                   (("/usr/bin/python") (which "python"))))))
+         %standard-phases)))
+   (synopsis "Distributed version control system")
+   (description
+    "Git is a free distributed version control system designed to handle
+everything from small to very large projects with speed and efficiency.")
+   (license gpl2)
+   (home-page "http://git-scm.com/")))
+
 (define-public subversion
   (package
     (name "subversion")