1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
4 ;;; This file is part of GNU Guix.
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 (define-module (gnu packages package-management)
20 #:use-module (guix packages)
21 #:use-module (guix download)
22 #:use-module (guix git-download)
23 #:use-module (guix utils)
24 #:use-module (guix build-system gnu)
25 #:use-module ((guix licenses) #:select (gpl3+))
26 #:use-module (gnu packages)
27 #:use-module (gnu packages guile)
28 #:use-module ((gnu packages compression) #:select (bzip2 gzip))
29 #:use-module (gnu packages gnupg)
30 #:use-module (gnu packages sqlite)
31 #:use-module (gnu packages graphviz)
32 #:use-module (gnu packages pkg-config)
33 #:use-module (gnu packages autotools)
34 #:use-module (gnu packages gettext)
35 #:use-module (gnu packages texinfo))
37 (define-public guix-0.6
43 (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-"
47 "01xw51wizhsk827w4xp79k2b6dxjaviw04r6rbrb85qdxnwg6k9n"))))
48 (build-system gnu-build-system)
50 `(#:configure-flags (list
51 "--localstatedir=/var"
53 (string-append "--with-libgcrypt-prefix="
54 (assoc-ref %build-inputs
56 #:phases (alist-cons-before
57 'configure 'copy-bootstrap-guile
58 (lambda* (#:key system inputs #:allow-other-keys)
60 (let ((guile (assoc-ref inputs
61 (string-append "boot-guile/"
63 (target (string-append "gnu/packages/bootstrap/"
65 "/guile-2.0.9.tar.xz")))
66 (copy-file guile target)))
74 (let ((boot-guile (lambda (arch hash)
78 "http://alpha.gnu.org/gnu/guix/bootstrap/"
80 "/20131110/guile-2.0.9.tar.xz"))
86 ("libgcrypt" ,libgcrypt)
88 ("pkg-config" ,pkg-config)
93 "0im800m30abgh7msh331pcbjvb4n02smz5cfzf1srv0kpx3csmxp")))
97 "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3")))
98 ("boot-guile/mips64el"
99 ,(boot-guile "mips64el"
101 "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr"))))))
102 (home-page "http://www.gnu.org/software/guix")
103 (synopsis "Functional package manager for installed software packages and versions")
105 "GNU Guix is a functional package manager for the GNU system, and is
106 also a distribution thereof. It includes a virtual machine image. Besides
107 the usual package management features, it also supports transactional
108 upgrades and roll-backs, per-user profiles, and much more. It is based on the
109 Nix package manager.")
113 ;; Development version of Guix.
114 (let ((commit "20b1d19"))
115 (package (inherit guix-0.6)
116 (version (string-append "0.6." commit))
120 (url "git://git.sv.gnu.org/guix.git")
125 "0n278kzp586rzbhcghbj7am641yjc35pcb6n1r304myziwd0mz6r"))))
127 (substitute-keyword-arguments (package-arguments guix-0.6)
130 'configure 'bootstrap
132 ;; Comment out `git' invocations, since 'git-fetch' provides us
133 ;; with a checkout that includes sub-modules.
134 (substitute* "bootstrap"
138 ;; Keep a list of the files already available under nix/...
139 (call-with-output-file "ls-R"
141 (for-each (lambda (file)
142 (format port "~a~%" file))
143 (find-files "nix" ""))))
145 ;; ... and use that as a substitute to 'git ls-tree'.
146 (substitute* "nix/sync-with-upstream"
147 (("git ls-tree HEAD -- [[:graph:]]+")
150 ;; Make sure 'msgmerge' can modify the PO files.
151 (for-each (lambda (po)
153 (find-files "." "\\.po$"))
155 (zero? (system* "./bootstrap")))
158 `(("autoconf" ,(autoconf-wrapper))
159 ("automake" ,automake)
160 ("gettext" ,gnu-gettext)
162 ("graphviz" ,graphviz)
163 ,@(package-native-inputs guix-0.6))))))