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 @table @asis
@item @code{package} (default: @var{gitolite}) @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}) @item @code{user} (default: @var{git})
User to use for Gitolite. This will be user that you use when accessing 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 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022 Dhruvin Gandhi <contact@dhruvin.dev> ;;; Copyright © 2022 Dhruvin Gandhi <contact@dhruvin.dev>
;;; Copyright © 2015, 2022 David Thompson <davet@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -139,7 +140,8 @@ (define-module (gnu packages version-control)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1)
#:export (make-gitolite))
(define-public breezy (define-public breezy
(package (package
@ -1484,7 +1486,9 @@ (define-public git-test-sequence
also walk each side of a merge and test those changes individually.") also walk each side of a merge and test those changes individually.")
(license (license:x11-style "file://LICENSE"))))) (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 (package
(name "gitolite") (name "gitolite")
(version "3.6.12") (version "3.6.12")
@ -1576,10 +1580,12 @@ (define-public gitolite
(list #$output (list #$output
#$coreutils #$coreutils
#$findutils #$findutils
#$git))))) #$git
#$@extra-inputs)))))
'("/bin/gitolite" "/bin/gitolite-shell"))))))) '("/bin/gitolite" "/bin/gitolite-shell")))))))
(inputs (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") (home-page "https://gitolite.com")
(synopsis "Git access control layer") (synopsis "Git access control layer")
(description (description
@ -1587,6 +1593,8 @@ (define-public gitolite
control to Git repositories.") control to Git repositories.")
(license license:gpl2))) (license license:gpl2)))
(define-public gitolite (make-gitolite))
(define-public gitile (define-public gitile
(package (package
(name "gitile") (name "gitile")