summary refs log tree commit diff
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+)))