vm/windows: Replace binary with cross cygwinSetup.

As the official Cygwin setup binary download doesn't come in snapshots
or even versioned, the fetchurl of setup.exe will frequently fail, which
in turn will annoy us as hell (or at least me).

One warning though: The fetchurl is currently broken and the cross-build
might not work yet for example on mingw32 (mingw-w64 branch on its way),
but the upstream URL has already changed and the new version contains a
bug (not yet tracked down) which breaks our Windows bootstrap process.

So to conclude: If it's already broken, make it at least "less broken".

"Not broken" is coming soon with the merge of the mingw-w64 branch.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This commit is contained in:
aszlig 2014-03-03 23:21:34 +01:00
parent 1771e07e20
commit 5bd52771ba
No known key found for this signature in database
GPG Key ID: D0EBD0EC8C2DC961

View File

@ -14,6 +14,21 @@ let
sha256 = "1v596lln2iip5h7wxjnig5rflzvqa21zzd2iyhx07zs28q5h76i9";
};
cygwinCross = (import ../../../../top-level/all-packages.nix {
inherit (stdenv) system;
crossSystem = {
libc = "msvcrt";
platform = {};
openssl.system = "mingw64";
} // (if stdenv.is64bit then {
config = "x86_64-w64-mingw32";
arch = "x86_64";
} else {
config = "i686-w64-mingw32";
arch = "i686";
});
}).windows.cygwinSetup.crossDrv;
makeCygwinClosure = { packages, packageList }: let
expr = import (runCommand "cygwin.nix" { buildInputs = [ python ]; } ''
python ${./mkclosure.py} "${packages}" ${toString packageList} > "$out"
@ -30,10 +45,7 @@ let
in import <nixpkgs/nixos/lib/make-iso9660-image.nix> {
inherit stdenv perl cdrkit pathsFromGraph;
contents = [
{ source = fetchurl {
url = "http://cygwin.com/setup-x86_64.exe";
sha256 = "1bjmq9h1p6mmiqp6f1kvmg94jbsdi1pxfa07a5l497zzv9dsfivm";
};
{ source = "${cygwinCross}/bin/setup.exe";
target = "setup.exe";
}
{ source = cygPkgList;