aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/package-management.scm102
1 files changed, 102 insertions, 0 deletions
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
new file mode 100644
index 0000000000..e4eb082230
--- /dev/null
+++ b/gnu/packages/package-management.scm
@@ -0,0 +1,102 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages package-management)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:select (gpl3+))
+ #:use-module (gnu packages guile)
+ #:use-module ((gnu packages compression) #:select (bzip2))
+ #:use-module (gnu packages gnupg)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages pkg-config))
+
+(define-public guix
+ (package
+ (name "guix")
+ (version "0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0xpfdmlfkkpmgrb8lpaqs5wxx31m4jslajs6b9waz5wp91zk7fix"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags (list
+ (string-append "--with-libgcrypt-prefix="
+ (assoc-ref %build-inputs
+ "libgcrypt")))
+ #:phases (alist-cons-before
+ 'configure 'copy-bootstrap-guile
+ (lambda* (#:key system inputs #:allow-other-keys)
+ (define (copy arch)
+ (let ((guile (assoc-ref inputs
+ (string-append "boot-guile/"
+ arch)))
+ (target (string-append "gnu/packages/bootstrap/"
+ arch "-linux/"
+ "/guile-2.0.7.tar.xz")))
+ (copy-file guile target)))
+
+ (copy "i686")
+ (copy "x86_64")
+ #t)
+ %standard-phases)))
+ (inputs
+ (let ((boot-guile (lambda (arch hash)
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://alpha.gnu.org/gnu/guix/bootstrap/"
+ arch "-linux"
+ "/20130105/guile-2.0.7.tar.xz"))
+ (sha256 hash)))))
+ `(("bzip2" ,bzip2)
+ ("sqlite" ,sqlite)
+ ("libgcrypt" ,libgcrypt)
+ ("guile" ,guile-2.0)
+ ("pkg-config" ,pkg-config)
+
+ ("boot-guile/i686"
+ ,(boot-guile "i686"
+ (base32
+ "0z11rlyclnh9palrsk0xhgm84rmvzza0gkwvlsiazsjnqpscd9zr")))
+ ("boot-guile/x86_64"
+ ,(boot-guile "x86_64"
+ (base32
+ "0b5a2ngd9a7z2wnm01wc27rlwb61x854ndadxwmj8v8lrl6j2hxw"))))))
+ (home-page "http://www.gnu.org/software/guix")
+ (synopsis "Managing installed software packages and versions")
+ (description
+ "GNU Guix is a purely functional package manager for the GNU system,
+and a distribution thereof.
+
+In addition to standard package management features, Guix supports
+transactional upgrades and roll-backs, unprivileged package management,
+per-user profiles, and garbage collection.
+
+It provides Guile Scheme APIs, including high-level embedded domain-specific
+languages (EDSLs), to describe how packages are built and composed.
+
+A user-land free software distribution for GNU/Linux comes as part of Guix.
+
+Guix is based on the Nix package manager.")
+ (license gpl3+)))