X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/9144af5aa7b757b1dacd3f39ebdac8a31bc36e9f..bf0018cd87e6a0f706a4298d5c6f62e7ef7f5d16:/release.nix diff --git a/release.nix b/release.nix index 1f31ffc6a5..369d54ed96 100644 --- a/release.nix +++ b/release.nix @@ -1,20 +1,20 @@ -/* Guix --- Nix package management from Guile. -*- coding: utf-8 -*- - Copyright (C) 2012 Ludovic Courtès +/* GNU Guix --- Functional package management for GNU + Copyright (C) 2012 Ludovic Courtès - This file is part of Guix. + This file is part of GNU Guix. - Guix is free software; you can redistribute it and/or modify it + 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. - Guix is distributed in the hope that it will be useful, but + 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 Guix. If not, see . */ + along with GNU Guix. If not, see . */ /* Release file to build Guix with Nix. Useful to bootstrap Guix on Guix-enabled Hydra instances. */ @@ -32,13 +32,13 @@ let bootstrap_guile = let pkgs = import nixpkgs {}; in { i686 = pkgs.fetchurl { - url = http://www.fdn.fr/~lcourtes/software/guix/packages/i686-linux/guile-bootstrap-2.0.6.tar.xz; - sha256 = "93b537766dfab3ad287143523751e3ec02dd32d3ccaf88ad2d31c63158f342ee"; + url = http://www.fdn.fr/~lcourtes/software/guix/packages/i686-linux/20121219/guile-2.0.7.tar.xz; + sha256 = "45d1f9bfb9e4531a8f1c5a105f7ab094cd481b8a179ccc63cbabb73ce6b8437f"; }; x86_64 = pkgs.fetchurl { - url = http://www.fdn.fr/~lcourtes/software/guix/packages/x86_64-linux/guile-bootstrap-2.0.6.tar.xz; - sha256 = "0467a82cbe4136f60a79eb4176011bf88cf28ea19c9ad9defa365811ff8e11cf"; + url = http://www.fdn.fr/~lcourtes/software/guix/packages/x86_64-linux/20121219/guile-2.0.7.tar.xz; + sha256 = "953fbcc8db6e310626be79b67319cf4141dc23b296447952a99d95425b3a4dc1"; }; }; @@ -48,10 +48,13 @@ let pkgs.releaseTools.sourceTarball { name = "guix-tarball"; src = ; - buildInputs = with pkgs; [ guile ]; + buildInputs = with pkgs; [ guile sqlite bzip2 git libgcrypt ]; buildNativeInputs = with pkgs; [ texinfo gettext cvs pkgconfig ]; + preAutoconf = ''git config submodule.nix.url "${}"''; configureFlags = - [ "--with-nixpkgs=${nixpkgs}" "--with-nix-prefix=${pkgs.nix}" ]; + [ "--with-libgcrypt-prefix=${pkgs.libgcrypt}" + "--localstatedir=/nix/var" + ]; }; build = @@ -60,12 +63,12 @@ let let pkgs = import nixpkgs { inherit system; }; in pkgs.releaseTools.nixBuild { name = "guix"; - buildInputs = [ pkgs.guile ]; + buildInputs = with pkgs; [ guile sqlite bzip2 libgcrypt ]; buildNativeInputs = [ pkgs.pkgconfig ]; src = jobs.tarball; configureFlags = - [ "--with-nixpkgs=${nixpkgs}" "--with-nix-prefix=${pkgs.nix}" - "--with-libgcrypt-prefix=${pkgs.libgcrypt}" + [ "--with-libgcrypt-prefix=${pkgs.libgcrypt}" + "--localstatedir=/nix/var" ]; preBuild = @@ -73,21 +76,33 @@ let # the build system download it over and over again. '' mkdir -p distro/packages/bootstrap/{i686,x86_64}-linux cp -v "${bootstrap_guile.i686}" \ - distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz + distro/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz cp -v "${bootstrap_guile.x86_64}" \ - distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz + distro/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz ''; - # XXX: Since we need to talk to a running daemon, for the benefit of - # `nixpkgs-derivation*' & co., we need to escape the chroot. - preConfigure = "export NIX_REMOTE=daemon"; - __noChroot = true; - inherit succeedOnFailure keepBuildDirectory buildOutOfSourceTree; }; + build_disable_daemon = + { system ? builtins.currentSystem }: + + let + pkgs = import nixpkgs { inherit system; }; + build = jobs.build { inherit system; }; + in + pkgs.lib.overrideDerivation build ({ configureFlags, ... }: { + configureFlags = configureFlags ++ [ "--disable-daemon" ]; + buildInputs = with pkgs; [ guile nixUnstable pkgconfig ]; + + # Since we need to talk to a running daemon, we need to escape + # the chroot. + preConfigure = "export NIX_REMOTE=daemon"; + __noChroot = true; + }); + # Jobs to test the distro. distro = { hello = @@ -97,15 +112,15 @@ let pkgs = import nixpkgs { inherit system; }; guix = jobs.build { inherit system; }; in - # XXX: We have no way to tell the Nix to swallow the .drv + # XXX: We have no way to tell the Nix code to swallow the .drv # produced by `guix-build', so we have a pointless indirection # here. This could be worked around by generating Nix code # from the .drv, and importing that. pkgs.releaseTools.nixBuild { src = null; + name = "guix-hello"; phases = "buildPhase"; - buildInputs = [ guix ]; - buildPhase = "guix-build hello"; + buildPhase = "${guix}/bin/guix-build --no-substitutes hello | tee $out"; __noChroot = true; }; };