~ruther/guix-local

f651a359691cbe4750f1fe8d14dd964f7971f916 — Ludovic Courtès 2 years ago 95f2123
build: Add dependency on Git.

* configure.ac: Check for ‘git’ and substitute ‘GIT’.
* guix/config.scm.in (%git): New variable.
* guix/self.scm (compiled-guix): Define ‘git’ and pass it to
‘make-config.scm’.
(make-config.scm): Add #:git; emit a ‘%git’ variable.
* doc/guix.texi (Requirements): Add it.
4 files changed, 22 insertions(+), 2 deletions(-)

M configure.ac
M doc/guix.texi
M guix/config.scm.in
M guix/self.scm
M configure.ac => configure.ac +7 -0
@@ 201,6 201,13 @@ AC_SUBST([GZIP])
AC_SUBST([BZIP2])
AC_SUBST([XZ])

dnl Git is now required for the "builtin:git-download" derivation builder.
AC_PATH_PROG([GIT], [git])
if test "x$GIT" = "x"; then
  AC_MSG_ERROR([Git is missing; please install it.])
fi
AC_SUBST([GIT])

LIBGCRYPT_LIBDIR="no"
LIBGCRYPT_PREFIX="no"


M doc/guix.texi => doc/guix.texi +1 -0
@@ 1011,6 1011,7 @@ version 0.1.0 or later;
@item
@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.5.0
or later;
@item @uref{https://git-scm.com, Git} (yes, both!);
@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}
4.3.0 or later;
@item @url{https://www.gnu.org/software/make/, GNU Make}.

M guix/config.scm.in => guix/config.scm.in +5 -1
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2016, 2018-2019, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Caleb Ristvedt <caleb.ristvedt@cune.org>
;;;
;;; This file is part of GNU Guix.


@@ 35,6 35,7 @@
            %config-directory

            %system
            %git
            %gzip
            %bzip2
            %xz))


@@ 109,6 110,9 @@
(define %system
  "@guix_system@")

(define %git
  "@GIT@")

(define %gzip
  "@GZIP@")


M guix/self.scm => guix/self.scm +9 -1
@@ 69,6 69,7 @@
      ("gzip"               . ,(ref 'compression 'gzip))
      ("bzip2"              . ,(ref 'compression 'bzip2))
      ("xz"                 . ,(ref 'compression 'xz))
      ("git-minimal"        . ,(ref 'version-control 'git-minimal))
      ("po4a"               . ,(ref 'gettext 'po4a))
      ("gettext-minimal"    . ,(ref 'gettext 'gettext-minimal))
      ("gcc-toolchain"      . ,(ref 'commencement 'gcc-toolchain))


@@ 826,6 827,9 @@ itself."
  (define guile-lzma
    (specification->package "guile-lzma"))

  (define git
    (specification->package "git-minimal"))

  (define dependencies
    (append-map transitive-package-dependencies
                (list guile-gcrypt guile-gnutls guile-git guile-avahi


@@ 999,6 1003,7 @@ itself."
                    => ,(make-config.scm #:gzip gzip
                                         #:bzip2 bzip2
                                         #:xz xz
                                         #:git git
                                         #:package-name
                                         %guix-package-name
                                         #:package-version


@@ 1104,7 1109,7 @@ itself."
    (%storedir . "/gnu/store")
    (%sysconfdir . "/etc")))

(define* (make-config.scm #:key gzip xz bzip2
(define* (make-config.scm #:key gzip xz bzip2 git
                          (package-name "GNU Guix")
                          (package-version "0")
                          (channel-metadata #f)


@@ 1134,6 1139,7 @@ itself."
                               %state-directory
                               %store-database-directory
                               %config-directory
                               %git
                               %gzip
                               %bzip2
                               %xz))


@@ 1176,6 1182,8 @@ itself."
                     ;; information is used by (guix describe).
                     '#$channel-metadata)

                   (define %git
                     #+(and git (file-append git "/bin/git")))
                   (define %gzip
                     #+(and gzip (file-append gzip "/bin/gzip")))
                   (define %bzip2