~ruther/guix-local

378b01dc09f50afa32dcb5c77cb6be56bfc419a3 — David Thompson 11 years ago f93b916
gnu: Add gitolite.

* gnu/packages/version-control.scm (gitolite): New variable.
* gnu/packages/patches/gitolite-openssh-6.8-compat.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
M gnu-system.am => gnu-system.am +1 -0
@@ 422,6 422,7 @@ dist_patch_DATA =						\
  gnu/packages/patches/gcc-cross-environment-variables.patch	\
  gnu/packages/patches/geoclue-config.patch			\
  gnu/packages/patches/ghostscript-runpath.patch		\
  gnu/packages/patches/gitolite-openssh-6.8-compat.patch	\
  gnu/packages/patches/glib-tests-desktop.patch			\
  gnu/packages/patches/glib-tests-homedir.patch			\
  gnu/packages/patches/glib-tests-prlimit.patch			\

A gnu/packages/patches/gitolite-openssh-6.8-compat.patch => gnu/packages/patches/gitolite-openssh-6.8-compat.patch +25 -0
@@ 0,0 1,25 @@
From ed807a40c6683960e357bc995b3acf721ec088b4 Mon Sep 17 00:00:00 2001
From: Sitaram Chamarty <sitaram@atc.tcs.com>
Date: Thu, 19 Mar 2015 05:17:59 +0530
Subject: [PATCH] openssh 6.8 compat

---
 src/triggers/post-compile/ssh-authkeys | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/triggers/post-compile/ssh-authkeys b/src/triggers/post-compile/ssh-authkeys
index 84dda73..d5f5d8b 100755
--- a/src/triggers/post-compile/ssh-authkeys
+++ b/src/triggers/post-compile/ssh-authkeys
@@ -115,7 +115,7 @@ sub fp_file {
     my $f  = shift;
     my $fp = `ssh-keygen -l -f '$f'`;
     chomp($fp);
-    _die "fingerprinting failed for '$f'" unless $fp =~ /([0-9a-f][0-9a-f](:[0-9a-f][0-9a-f])+)/;
+    _die "fingerprinting failed for '$f'" unless $fp =~ /([0-9a-f][0-9a-f](:[0-9a-f][0-9a-f])+)/ or $fp =~ m(SHA256:([A-ZA-z0-9+/]+));
     $fp = $1;
     return $fp;
 }
--
2.2.1


M gnu/packages/version-control.scm => gnu/packages/version-control.scm +60 -0
@@ 48,6 48,7 @@
  #:use-module (gnu packages nano)
  #:use-module (gnu packages ncurses)
  #:use-module (gnu packages openssl)
  #:use-module (gnu packages ssh)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python)


@@ 401,6 402,65 @@ linear.  It will test every change between two points in the DAG.  It will
also walk each side of a merge and test those changes individually.")
      (license (x11-style "file://LICENSE")))))

(define-public gitolite
  (package
    (name "gitolite")
    (version "3.6.2")
    (source (origin
              (method url-fetch)
              (uri (string-append
                    "https://github.com/sitaramc/gitolite/archive/v"
                    version ".tar.gz"))
              (file-name (string-append name "-" version ".tar.gz"))
              ;; Commit ed807a4 upstream
              (patches
               (list (search-patch "gitolite-openssh-6.8-compat.patch")))
              (sha256
               (base32
                "1gsgzi9ayb4rablki3mqr11b0h8db4xg43df660marfpacmkfb01"))))
    (build-system gnu-build-system)
    (arguments
     '(#:tests? #f ; no tests
       #:phases (modify-phases %standard-phases
                  (delete 'configure)
                  (delete 'build)
                  (add-before 'install 'patch-scripts
                    (lambda* (#:key inputs #:allow-other-keys)
                      (let ((perl (string-append (assoc-ref inputs "perl")
                                                 "/bin/perl")))
                        ;; This seems to take care of every shell script that
                        ;; invokes Perl.
                        (substitute* (find-files "." ".*")
                          ((" perl -")
                           (string-append " " perl " -"))))))
                  (replace 'install
                    (lambda* (#:key outputs #:allow-other-keys)
                      (let* ((output (assoc-ref outputs "out"))
                             (sharedir (string-append output "/share/gitolite"))
                             (bindir (string-append output "/bin")))
                        (mkdir-p sharedir)
                        (mkdir-p bindir)
                        (system* "./install" "-to" sharedir)
                        ;; Create symlinks for executable scripts in /bin.
                        (for-each (lambda (script)
                                    (symlink (string-append sharedir "/" script)
                                             (string-append bindir "/" script)))
                                  '("gitolite" "gitolite-shell"))
                        #t))))))
    (inputs
     `(("perl" ,perl)))
    ;; git and openssh are propagated because trying to patch the source via
    ;; regexp matching is too brittle and prone to false positives.
    (propagated-inputs
     `(("git" ,git)
       ("openssh" ,openssh)))
    (home-page "http://gitolite.com")
    (synopsis "Git access control layer")
    (description
     "Gitolite is an access control layer on top of Git, providing fine access
control to Git repositories.")
    (license gpl2)))

(define-public mercurial
  (package
    (name "mercurial")