summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-08-14 17:37:48 +0200
committerLudovic Courtès <ludo@gnu.org>2012-08-14 17:38:18 +0200
commit2152e3c5b217753f291d230c261147def1c0ad01 (patch)
tree4b2fcfdb1b53eae50ca8706dd44982530f89f9a7
parent202851dd8db8a654f0779d185a3aadd84cbe7335 (diff)
downloadguix-2152e3c5b217753f291d230c261147def1c0ad01.tar.gz
build: Add release.nix.
* release.nix: New file.
* Makefile.am (EXTRA_DIST): Add it.
-rw-r--r--Makefile.am2
-rw-r--r--release.nix55
2 files changed, 56 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index e1754a777b..e0c177cabd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -59,7 +59,7 @@ TESTS_ENVIRONMENT =								\
 LOG_COMPILER =					\
   $(GUILE) --no-auto-compile -L "$(top_srcdir)"
 
-EXTRA_DIST = build-aux/config.rpath $(TESTS)
+EXTRA_DIST = build-aux/config.rpath release.nix $(TESTS)
 
 CLEANFILES = $(GOBJECTS) *.log
 
diff --git a/release.nix b/release.nix
new file mode 100644
index 0000000000..8d87d03bda
--- /dev/null
+++ b/release.nix
@@ -0,0 +1,55 @@
+/* Guix --- Nix package management from Guile.         -*- coding: utf-8 -*-
+   Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
+
+   This file is part of Guix.
+
+   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.
+
+   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 Guix.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Release file to build Guix with Nix.  Useful to bootstrap Guix on
+   Guix-enabled Hydra instances.  */
+
+let
+  nixpkgs = <nixpkgs>;
+
+  jobs = {
+    tarball =
+      let pkgs = import nixpkgs {}; in
+      pkgs.releaseTools.sourceTarball {
+        name = "guix-tarball";
+        src = <guix>;
+        buildInputs = with pkgs; [ guile ];
+        buildNativeInputs = with pkgs; [ gettext cvs pkgconfig ];
+        configureFlags =
+          [ "--with-nixpkgs=${nixpkgs}" "--with-nix-prefix=${pkgs.nix}" ];
+      };
+
+    build =
+      { system ? builtins.currentSystem }:
+
+      let pkgs = import nixpkgs { inherit system; }; in
+      pkgs.releaseTools.nixBuild {
+        name = "guix";
+        buildInputs = [ pkgs.guile ];
+        buildNativeInputs = [ pkgs.pkgconfig ];
+        src = jobs.tarball;
+        configureFlags =
+          [ "--with-nixpkgs=${nixpkgs}" "--with-nix-prefix=${pkgs.nix}" ];
+
+        # XXX: The test suite cannot be run currently in the chroot, because
+        # it expects to have a running nix-worker to talk to.
+        doCheck = false;
+      };
+  };
+in
+  jobs