guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: gnu: version-control: Add make-gitolite procedure


From: guix-commits
Subject: branch master updated: gnu: version-control: Add make-gitolite procedure.
Date: Mon, 24 Oct 2022 17:18:49 -0400

This is an automated email from the git hooks/post-receive script.

davexunit pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new 966118da71 gnu: version-control: Add make-gitolite procedure.
966118da71 is described below

commit 966118da711506b04c11fbfcac9483d59ed2d912
Author: David Thompson <dthompson2@worcester.edu>
AuthorDate: Thu Oct 6 08:45:48 2022 -0400

    gnu: version-control: Add make-gitolite procedure.
    
    * gnu/packages/version-control.scm (make-gitolite): New procedure.
    (gitolite): Use make-gitolite.
    * doc/guix.texi (Gitolite service): Document how to use make-gitolite.
---
 doc/guix.texi                    | 16 +++++++++++++++-
 gnu/packages/version-control.scm | 16 ++++++++++++----
 2 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 5c41f21d45..2f7ab61aec 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -35618,7 +35618,21 @@ Data type representing the configuration for 
@code{gitolite-service-type}.
 
 @table @asis
 @item @code{package} (default: @var{gitolite})
-Gitolite package to use.
+Gitolite package to use.  There are optional Gitolite dependencies that
+are not included in the default package, such as Redis and git-annex.
+These features can be made available by using the @code{make-gitolite}
+procedure in the @code{(gnu packages version-control}) module to produce
+a variant of Gitolite with the desired additional dependencies.
+
+The following code returns a package in which the Redis and git-annex
+programs can be invoked by Gitolite's scripts:
+
+@example
+(use-modules (gnu packages databases)
+             (gnu packages haskell-apps)
+             (gnu packages version-control))
+(make-gitolite (list redis git-annex))
+@end example
 
 @item @code{user} (default: @var{git})
 User to use for Gitolite.  This will be user that you use when accessing
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index d8d4a77341..2238554706 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -46,6 +46,7 @@
 ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
 ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2022 Dhruvin Gandhi <contact@dhruvin.dev>
+;;; Copyright © 2015, 2022 David Thompson <davet@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -139,7 +140,8 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages)
   #:use-module (ice-9 match)
-  #:use-module (srfi srfi-1))
+  #:use-module (srfi srfi-1)
+  #:export (make-gitolite))
 
 (define-public breezy
   (package
@@ -1484,7 +1486,9 @@ 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 (license:x11-style "file://LICENSE")))))
 
-(define-public gitolite
+(define* (make-gitolite #:optional (extra-inputs '()))
+  "Make a gitolite package object with EXTRA-INPUTS added to the binary
+wrappers, to be used for optional gitolite extensions."
   (package
     (name "gitolite")
     (version "3.6.12")
@@ -1576,10 +1580,12 @@ also walk each side of a merge and test those changes 
individually.")
                                          (list #$output
                                                #$coreutils
                                                #$findutils
-                                               #$git)))))
+                                               #$git
+                                               #$@extra-inputs)))))
                              '("/bin/gitolite" "/bin/gitolite-shell")))))))
     (inputs
-     (list bash-minimal coreutils findutils git inetutils openssh perl))
+     (append (list bash-minimal coreutils findutils git inetutils openssh perl)
+             extra-inputs))
     (home-page "https://gitolite.com";)
     (synopsis "Git access control layer")
     (description
@@ -1587,6 +1593,8 @@ also walk each side of a merge and test those changes 
individually.")
 control to Git repositories.")
     (license license:gpl2)))
 
+(define-public gitolite (make-gitolite))
+
 (define-public gitile
   (package
     (name "gitile")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]