gnu: Update harfbuzz to 0.9.20.
[jackhill/guix/guix.git] / gnu / packages / package-management.scm
CommitLineData
bbe8d8f0
LC
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 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 guile)
25 #:use-module ((gnu packages compression) #:select (bzip2))
26 #:use-module (gnu packages gnupg)
27 #:use-module (gnu packages sqlite)
28 #:use-module (gnu packages pkg-config))
29
30(define-public guix
31 (package
32 (name "guix")
33 (version "0.3")
34 (source (origin
35 (method url-fetch)
36 (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-"
37 version ".tar.gz"))
38 (sha256
39 (base32
40 "0xpfdmlfkkpmgrb8lpaqs5wxx31m4jslajs6b9waz5wp91zk7fix"))))
41 (build-system gnu-build-system)
42 (arguments
43 `(#:configure-flags (list
44 (string-append "--with-libgcrypt-prefix="
45 (assoc-ref %build-inputs
46 "libgcrypt")))
47 #:phases (alist-cons-before
48 'configure 'copy-bootstrap-guile
49 (lambda* (#:key system inputs #:allow-other-keys)
50 (define (copy arch)
51 (let ((guile (assoc-ref inputs
52 (string-append "boot-guile/"
53 arch)))
54 (target (string-append "gnu/packages/bootstrap/"
55 arch "-linux/"
56 "/guile-2.0.7.tar.xz")))
57 (copy-file guile target)))
58
59 (copy "i686")
60 (copy "x86_64")
61 #t)
62 %standard-phases)))
63 (inputs
64 (let ((boot-guile (lambda (arch hash)
65 (origin
66 (method url-fetch)
67 (uri (string-append
68 "http://alpha.gnu.org/gnu/guix/bootstrap/"
69 arch "-linux"
70 "/20130105/guile-2.0.7.tar.xz"))
71 (sha256 hash)))))
72 `(("bzip2" ,bzip2)
73 ("sqlite" ,sqlite)
74 ("libgcrypt" ,libgcrypt)
75 ("guile" ,guile-2.0)
76 ("pkg-config" ,pkg-config)
77
78 ("boot-guile/i686"
79 ,(boot-guile "i686"
80 (base32
81 "0z11rlyclnh9palrsk0xhgm84rmvzza0gkwvlsiazsjnqpscd9zr")))
82 ("boot-guile/x86_64"
83 ,(boot-guile "x86_64"
84 (base32
85 "0b5a2ngd9a7z2wnm01wc27rlwb61x854ndadxwmj8v8lrl6j2hxw"))))))
86 (home-page "http://www.gnu.org/software/guix")
87 (synopsis "Managing installed software packages and versions")
88 (description
89 "GNU Guix is a purely functional package manager for the GNU system,
90and a distribution thereof.
91
92In addition to standard package management features, Guix supports
93transactional upgrades and roll-backs, unprivileged package management,
94per-user profiles, and garbage collection.
95
96It provides Guile Scheme APIs, including high-level embedded domain-specific
97languages (EDSLs), to describe how packages are built and composed.
98
99A user-land free software distribution for GNU/Linux comes as part of Guix.
100
101Guix is based on the Nix package manager.")
102 (license gpl3+)))