gnu: qemu: Remove dependency on Samba.
[jackhill/guix/guix.git] / gnu / packages / package-management.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
3 ;;;
4 ;;; This file is part of GNU Guix.
5 ;;;
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.
10 ;;;
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.
15 ;;;
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/>.
18
19 (define-module (gnu packages package-management)
20 #:use-module (guix packages)
21 #:use-module (guix download)
22 #:use-module (guix build-system gnu)
23 #:use-module ((guix licenses) #:select (gpl3+))
24 #:use-module (gnu packages)
25 #:use-module (gnu packages guile)
26 #:use-module ((gnu packages compression) #:select (bzip2 gzip))
27 #:use-module (gnu packages gnupg)
28 #:use-module (gnu packages sqlite)
29 #:use-module (gnu packages pkg-config))
30
31 (define-public guix
32 (package
33 (name "guix")
34 (version "0.6")
35 (source (origin
36 (method url-fetch)
37 (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-"
38 version ".tar.gz"))
39 (sha256
40 (base32
41 "01xw51wizhsk827w4xp79k2b6dxjaviw04r6rbrb85qdxnwg6k9n"))))
42 (build-system gnu-build-system)
43 (arguments
44 `(#:configure-flags (list
45 "--localstatedir=/var"
46 "--sysconfdir=/etc"
47 (string-append "--with-libgcrypt-prefix="
48 (assoc-ref %build-inputs
49 "libgcrypt")))
50 #:phases (alist-cons-before
51 'configure 'copy-bootstrap-guile
52 (lambda* (#:key system inputs #:allow-other-keys)
53 (define (copy arch)
54 (let ((guile (assoc-ref inputs
55 (string-append "boot-guile/"
56 arch)))
57 (target (string-append "gnu/packages/bootstrap/"
58 arch "-linux/"
59 "/guile-2.0.9.tar.xz")))
60 (copy-file guile target)))
61
62 (copy "i686")
63 (copy "x86_64")
64 (copy "mips64el")
65 #t)
66 %standard-phases)))
67 (inputs
68 (let ((boot-guile (lambda (arch hash)
69 (origin
70 (method url-fetch)
71 (uri (string-append
72 "http://alpha.gnu.org/gnu/guix/bootstrap/"
73 arch "-linux"
74 "/20131110/guile-2.0.9.tar.xz"))
75 (sha256 hash)))))
76 `(("bzip2" ,bzip2)
77 ("gzip" ,gzip)
78
79 ("sqlite" ,sqlite)
80 ("libgcrypt" ,libgcrypt)
81 ("guile" ,guile-2.0)
82 ("pkg-config" ,pkg-config)
83
84 ("boot-guile/i686"
85 ,(boot-guile "i686"
86 (base32
87 "0im800m30abgh7msh331pcbjvb4n02smz5cfzf1srv0kpx3csmxp")))
88 ("boot-guile/x86_64"
89 ,(boot-guile "x86_64"
90 (base32
91 "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3")))
92 ("boot-guile/mips64el"
93 ,(boot-guile "mips64el"
94 (base32
95 "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr"))))))
96 (home-page "http://www.gnu.org/software/guix")
97 (synopsis "Functional package manager for installed software packages and versions")
98 (description
99 "GNU Guix is a functional package manager for the GNU system, and is
100 also a distribution thereof. It includes a virtual machine image. Besides
101 the usual package management features, it also supports transactional
102 upgrades and roll-backs, per-user profiles, and much more. It is based on the
103 Nix package manager.")
104 (license gpl3+)))
105