release.nix: Hack to unchroot more stuff.

* release.nix (unchrootedNixpkgs): New function.
  (jobs)[tarball, build, build_disable_daemon, distro): Use it.
  Should fix <http://hydra.gnu.org:3000/build/7279>.
master
Ludovic Courtès 2013-03-18 23:17:28 +01:00
parent 9c3ac1b641
commit ce41a4629c
1 changed files with 15 additions and 4 deletions

View File

@ -48,6 +48,17 @@ let
}) })
else drv; else drv;
# Return a Nixpkgs with some derivations "unchrooted".
unchrootedNixpkgs = system:
import nixpkgs {
# XXX: Hack to make sure these ones also get "unchrooted".
config.packageOverrides = pkgs: {
zlib = unchroot pkgs.zlib;
libunistring = unchroot pkgs.libunistring;
};
inherit system;
};
# The Guile used to bootstrap the whole thing. It's normally # The Guile used to bootstrap the whole thing. It's normally
# downloaded by the build system, but here we download it via a # downloaded by the build system, but here we download it via a
# fixed-output derivation and stuff it into the build tree. # fixed-output derivation and stuff it into the build tree.
@ -67,7 +78,7 @@ let
jobs = { jobs = {
tarball = tarball =
unchroot unchroot
(let pkgs = import nixpkgs {}; in (let pkgs = unchrootedNixpkgs builtins.currentSystem; in
pkgs.releaseTools.sourceTarball { pkgs.releaseTools.sourceTarball {
name = "guix-tarball"; name = "guix-tarball";
src = <guix>; src = <guix>;
@ -94,7 +105,7 @@ let
{ system ? builtins.currentSystem }: { system ? builtins.currentSystem }:
unchroot unchroot
(let pkgs = import nixpkgs { inherit system; }; in (let pkgs = unchrootedNixpkgs system; in
pkgs.releaseTools.nixBuild { pkgs.releaseTools.nixBuild {
name = "guix"; name = "guix";
buildInputs = with pkgs; [ guile sqlite bzip2 libgcrypt ]; buildInputs = with pkgs; [ guile sqlite bzip2 libgcrypt ];
@ -125,7 +136,7 @@ let
unchroot unchroot
(let (let
pkgs = import nixpkgs { inherit system; }; pkgs = unchrootedNixpkgs system;
build = jobs.build { inherit system; }; build = jobs.build { inherit system; };
in in
pkgs.lib.overrideDerivation build ({ configureFlags, ... }: { pkgs.lib.overrideDerivation build ({ configureFlags, ... }: {
@ -144,7 +155,7 @@ let
{ system ? builtins.currentSystem }: { system ? builtins.currentSystem }:
let let
pkgs = import nixpkgs { inherit system; }; pkgs = unchrootedNixpkgs system;
guix = jobs.build { inherit system; }; guix = jobs.build { inherit system; };
in in
# XXX: We have no way to tell the Nix code to swallow the .drv # XXX: We have no way to tell the Nix code to swallow the .drv