summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2014-03-03 23:21:34 +0100
committeraszlig <aszlig@redmoonstudios.org>2014-03-03 23:21:34 +0100
commit5bd52771ba557eb0e8564ef18da3c863db331c9f (patch)
treea402cb695bb28b45514886ad18a3b96f0f7547bb
parentos-specific/windows: Add new package cygwinSetup. (diff)
downloadnixpkgs-5bd52771ba557eb0e8564ef18da3c863db331c9f.tar.gz
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>
-rw-r--r--pkgs/build-support/vm/windows/cygwin-iso/default.nix20
1 files changed, 16 insertions, 4 deletions
diff --git a/pkgs/build-support/vm/windows/cygwin-iso/default.nix b/pkgs/build-support/vm/windows/cygwin-iso/default.nix
index cb31dd6e61c6..506aef7900e8 100644
--- a/pkgs/build-support/vm/windows/cygwin-iso/default.nix
+++ b/pkgs/build-support/vm/windows/cygwin-iso/default.nix
@@ -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;