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.
This commit is contained in:
David Thompson 2022-10-06 08:45:48 -04:00
parent 8663be6da7
commit 966118da71
No known key found for this signature in database
GPG Key ID: 8328C7470FF1D807
2 changed files with 27 additions and 5 deletions

View File

@ -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

View File

@ -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")