From 9cee386f38cff036b48cfd8af916411eb84c6b3b Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Mon, 6 Aug 2018 16:25:25 -0400 Subject: windows: refactor --- pkgs/os-specific/windows/default.nix | 29 ++++++++++++++++++++++++ pkgs/os-specific/windows/jom/default.nix | 2 +- pkgs/os-specific/windows/mingw-w64/common.nix | 4 ++-- pkgs/os-specific/windows/mingwrt/common.nix | 12 ---------- pkgs/os-specific/windows/mingwrt/default.nix | 14 +++++++++--- pkgs/os-specific/windows/mingwrt/headers.nix | 17 -------------- pkgs/os-specific/windows/pthread-w32/default.nix | 4 ++-- pkgs/os-specific/windows/w32api/common.nix | 14 ------------ pkgs/os-specific/windows/w32api/default.nix | 14 +++++++++--- pkgs/os-specific/windows/w32api/headers.nix | 17 -------------- 10 files changed, 56 insertions(+), 71 deletions(-) create mode 100644 pkgs/os-specific/windows/default.nix delete mode 100644 pkgs/os-specific/windows/mingwrt/common.nix delete mode 100644 pkgs/os-specific/windows/mingwrt/headers.nix delete mode 100644 pkgs/os-specific/windows/w32api/common.nix delete mode 100644 pkgs/os-specific/windows/w32api/headers.nix (limited to 'pkgs/os-specific/windows') diff --git a/pkgs/os-specific/windows/default.nix b/pkgs/os-specific/windows/default.nix new file mode 100644 index 000000000000..4621c2da10fb --- /dev/null +++ b/pkgs/os-specific/windows/default.nix @@ -0,0 +1,29 @@ +{ newScope, crossLibcStdenv }: let + + callPackage = newScope self; + + self = { + cygwinSetup = callPackage ./cygwin-setup { }; + + jom = callPackage ./jom { }; + + w32api = callPackage ./w32api { }; + + mingwrt = callPackage ./mingwrt { }; + mingw_runtime = self.mingwrt; + + mingw_w64 = callPackage ./mingw-w64 { + stdenv = crossLibcStdenv; + }; + + mingw_w64_headers = callPackage ./mingw-w64/headers.nix { }; + + mingw_w64_pthreads = callPackage ./mingw-w64/pthreads.nix { }; + + pthreads = callPackage ./pthread-w32 { }; + + wxMSW = callPackage ./wxMSW-2.8 { }; + + libgnurx = callPackage ./libgnurx { }; + }; +in self diff --git a/pkgs/os-specific/windows/jom/default.nix b/pkgs/os-specific/windows/jom/default.nix index 1b64ad745991..ee8f00790754 100644 --- a/pkgs/os-specific/windows/jom/default.nix +++ b/pkgs/os-specific/windows/jom/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ flex qmake4Hook ]; QTDIR = qt48; - + # cmakeFlags = "-DWIN32=1 -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_RC_COMPILER=${stdenv.cc.targetPrefix}windres"; preBuild = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' diff --git a/pkgs/os-specific/windows/mingw-w64/common.nix b/pkgs/os-specific/windows/mingw-w64/common.nix index 102d9489fe9f..3f75ef00afed 100644 --- a/pkgs/os-specific/windows/mingw-w64/common.nix +++ b/pkgs/os-specific/windows/mingw-w64/common.nix @@ -1,12 +1,12 @@ { fetchurl }: rec { - version = "5.0.3"; + version = "5.0.4"; name = "mingw-w64-${version}"; src = fetchurl { url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2"; - sha256 = "1d4wrjfdlq5xqpv9zg6ssw4lm8jnv6522xf7d6zbjygmkswisq1a"; + sha256 = "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm"; }; configureFlags = [ diff --git a/pkgs/os-specific/windows/mingwrt/common.nix b/pkgs/os-specific/windows/mingwrt/common.nix deleted file mode 100644 index 7dc2ae56aa84..000000000000 --- a/pkgs/os-specific/windows/mingwrt/common.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, fetchurl }: - -rec { - name = "mingwrt-3.20"; - - src = fetchurl { - url = "mirror://sourceforge/mingw/MinGW/Base/mingw-rt/${name}-mingw32-src.tar.gz"; - sha256 = "02pydg1m8y35nxb4k34nlb5c341y2waq76z42mgdzlcf661r91pi"; - }; - - meta.platforms = [ lib.systems.inspect.isMinGW ]; -} diff --git a/pkgs/os-specific/windows/mingwrt/default.nix b/pkgs/os-specific/windows/mingwrt/default.nix index 3429f7564ade..b3c7ef310981 100644 --- a/pkgs/os-specific/windows/mingwrt/default.nix +++ b/pkgs/os-specific/windows/mingwrt/default.nix @@ -1,7 +1,15 @@ -{ stdenv, callPackage }: +{ stdenv, callPackage, lib, fetchurl }: + +stdenv.mkDerivation rec { + name = "mingwrt-5.0.2"; + + src = fetchurl { + url = "mirror://sourceforge/mingw/MinGW/Base/mingw-rt/${name}-mingw32-src.tar.gz"; + sha256 = "02pydg1m8y35nxb4k34nlb5c341y2waq76z42mgdzlcf661r91p0"; + }; + + meta.platforms = [ lib.systems.inspect.isMinGW ]; -stdenv.mkDerivation { - inherit (callPackage ./common.nix {}) name src meta; dontStrip = true; hardeningDisable = [ "stackprotector" "fortify" ]; } diff --git a/pkgs/os-specific/windows/mingwrt/headers.nix b/pkgs/os-specific/windows/mingwrt/headers.nix deleted file mode 100644 index 51180af0fc73..000000000000 --- a/pkgs/os-specific/windows/mingwrt/headers.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ stdenvNoCC, callPackage }: - -let - inherit (callPackage ./common.nix {}) name src meta; - -in stdenvNoCC.mkDerivation { - name = name + "-headers"; - - inherit src meta; - - phases = [ "unpackPhase" "installPhase" ]; - - installPhase = '' - mkdir -p $out - cp -R include $out - ''; -} diff --git a/pkgs/os-specific/windows/pthread-w32/default.nix b/pkgs/os-specific/windows/pthread-w32/default.nix index 7cd414a97b08..e84270270f8a 100644 --- a/pkgs/os-specific/windows/pthread-w32/default.nix +++ b/pkgs/os-specific/windows/pthread-w32/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, hostPlatform, buildPlatform }: +{ fetchurl, stdenv, hostPlatform, buildPlatform, mingwrt }: # This file is tweaked for cross-compilation only. assert hostPlatform != buildPlatform; @@ -18,7 +18,7 @@ stdenv.mkDerivation { s/dlltool/i686-pc-mingw32-dlltool/g' ''; - buildInputs = [ mingw_headers ]; + buildInputs = [ mingwrt ]; buildPhase = "make GC"; # to build the GNU C dll with C cleanup code diff --git a/pkgs/os-specific/windows/w32api/common.nix b/pkgs/os-specific/windows/w32api/common.nix deleted file mode 100644 index 273ae2c8df4b..000000000000 --- a/pkgs/os-specific/windows/w32api/common.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ fetchurl, xz }: - -rec { - name = "w32api-3.17-2"; - - src = fetchurl { - url = "mirror://sourceforge/mingw/MinGW/Base/w32api/w32api-3.17/${name}-mingw32-src.tar.lzma"; - sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb"; - }; - - nativeBuildInputs = [ xz ]; - - meta.platforms = [ lib.systems.inspect.isMinGW ]; -} diff --git a/pkgs/os-specific/windows/w32api/default.nix b/pkgs/os-specific/windows/w32api/default.nix index 51b88201998c..51d8dafd9c88 100644 --- a/pkgs/os-specific/windows/w32api/default.nix +++ b/pkgs/os-specific/windows/w32api/default.nix @@ -1,6 +1,14 @@ -{ stdenv, callPackage }: +{ stdenv, fetchurl, xz, lib }: + +stdenv.mkDerivation rec { + name = "w32api-3.17-2"; + + src = fetchurl { + url = "mirror://sourceforge/mingw/MinGW/Base/w32api/w32api-3.17/${name}-mingw32-src.tar.lzma"; + sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb"; + }; + + meta.platforms = [ lib.systems.inspect.isMinGW ]; -stdenv.mkDerivation { - inherit (callPackage ./common.nix {}) name src nativeBuildInputs meta; dontStrip = true; } diff --git a/pkgs/os-specific/windows/w32api/headers.nix b/pkgs/os-specific/windows/w32api/headers.nix deleted file mode 100644 index 3083118bb366..000000000000 --- a/pkgs/os-specific/windows/w32api/headers.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ stdenvNoCC, callPackage }: - -let - inherit (callPackage ./common.nix {}) name src meta; - -in stdenvNoCC.mkDerivation { - name = name + "-headers"; - - inherit src nativeBuildInputs meta; - - phases = [ "unpackPhase" "installPhase" ]; - - installPhase = '' - mkdir -p $out - cp -R include $out - ''; -} -- cgit v1.2.3 From 744665e3c4b01fb836d800e96ab85c85707a7609 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Tue, 7 Aug 2018 10:20:13 -0400 Subject: mingw: add osvi.patch This is apparently a typo that has not been fixed. Also remove unused configureFlags. --- pkgs/os-specific/windows/mingw-w64/common.nix | 5 ----- pkgs/os-specific/windows/mingw-w64/default.nix | 1 + pkgs/os-specific/windows/mingw-w64/headers.nix | 2 ++ pkgs/os-specific/windows/mingw-w64/osvi.patch | 11 +++++++++++ 4 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 pkgs/os-specific/windows/mingw-w64/osvi.patch (limited to 'pkgs/os-specific/windows') diff --git a/pkgs/os-specific/windows/mingw-w64/common.nix b/pkgs/os-specific/windows/mingw-w64/common.nix index 3f75ef00afed..6a28b9e7abd2 100644 --- a/pkgs/os-specific/windows/mingw-w64/common.nix +++ b/pkgs/os-specific/windows/mingw-w64/common.nix @@ -8,9 +8,4 @@ rec { url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2"; sha256 = "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm"; }; - - configureFlags = [ - "--enable-idl" - "--enable-secure-api" - ]; } diff --git a/pkgs/os-specific/windows/mingw-w64/default.nix b/pkgs/os-specific/windows/mingw-w64/default.nix index 53050435256f..e945f6f7b314 100644 --- a/pkgs/os-specific/windows/mingw-w64/default.nix +++ b/pkgs/os-specific/windows/mingw-w64/default.nix @@ -5,4 +5,5 @@ stdenv.mkDerivation { buildInputs = [ windows.mingw_w64_headers ]; dontStrip = true; hardeningDisable = [ "stackprotector" "fortify" ]; + patches = [ ./osvi.patch ]; } diff --git a/pkgs/os-specific/windows/mingw-w64/headers.nix b/pkgs/os-specific/windows/mingw-w64/headers.nix index 03dbf712e2e5..91ae35583576 100644 --- a/pkgs/os-specific/windows/mingw-w64/headers.nix +++ b/pkgs/os-specific/windows/mingw-w64/headers.nix @@ -7,6 +7,8 @@ in stdenvNoCC.mkDerivation { name = name + "-headers"; inherit src; + patches = [ ./osvi.patch ]; + preConfigure = '' cd mingw-w64-headers ''; diff --git a/pkgs/os-specific/windows/mingw-w64/osvi.patch b/pkgs/os-specific/windows/mingw-w64/osvi.patch new file mode 100644 index 000000000000..8d82f56d86fe --- /dev/null +++ b/pkgs/os-specific/windows/mingw-w64/osvi.patch @@ -0,0 +1,11 @@ +--- a/mingw-w64-headers/include/multimon.h ++++ b/mingw-w64-headers/include/multimon.h +@@ -127,7 +127,7 @@ + WINBOOL IsPlatformNT() { + OSVERSIONINFOA oi = { 0 }; + +- oi.dwOSVersionInfoSize = sizeof (osvi); ++ oi.dwOSVersionInfoSize = sizeof (oi); + GetVersionExA ((OSVERSIONINFOA *) &oi); + return (oi.dwPlatformId == VER_PLATFORM_WIN32_NT); + } \ No newline at end of file -- cgit v1.2.3 From f32e9a34c8d07aac3f0000cfb07829cdbac60a17 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Fri, 10 Aug 2018 11:51:18 -0400 Subject: windows: add more meta MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ‘platforms.windows’ includes all windows platforms. Should prefer this to using assertions. --- pkgs/os-specific/windows/libgnurx/default.nix | 4 ++++ pkgs/os-specific/windows/mingw-w64/default.nix | 4 ++++ pkgs/os-specific/windows/mingwrt/default.nix | 6 ++++-- pkgs/os-specific/windows/w32api/default.nix | 4 +++- pkgs/os-specific/windows/wxMSW-2.8/default.nix | 6 ++++-- 5 files changed, 19 insertions(+), 5 deletions(-) (limited to 'pkgs/os-specific/windows') diff --git a/pkgs/os-specific/windows/libgnurx/default.nix b/pkgs/os-specific/windows/libgnurx/default.nix index f50a0d9f503e..88af53dd046e 100644 --- a/pkgs/os-specific/windows/libgnurx/default.nix +++ b/pkgs/os-specific/windows/libgnurx/default.nix @@ -8,4 +8,8 @@ in stdenv.mkDerivation rec { url = "mirror://sourceforge/mingw/Other/UserContributed/regex/mingw-regex-${version}/mingw-${name}-src.tar.gz"; sha256 = "0xjxcxgws3bblybw5zsp9a4naz2v5bs1k3mk8dw00ggc0vwbfivi"; }; + + meta = { + platforms = stdenv.lib.platforms.windows; + }; } diff --git a/pkgs/os-specific/windows/mingw-w64/default.nix b/pkgs/os-specific/windows/mingw-w64/default.nix index e945f6f7b314..dd151f696c82 100644 --- a/pkgs/os-specific/windows/mingw-w64/default.nix +++ b/pkgs/os-specific/windows/mingw-w64/default.nix @@ -6,4 +6,8 @@ stdenv.mkDerivation { dontStrip = true; hardeningDisable = [ "stackprotector" "fortify" ]; patches = [ ./osvi.patch ]; + + meta = { + platforms = stdenv.lib.platforms.windows; + }; } diff --git a/pkgs/os-specific/windows/mingwrt/default.nix b/pkgs/os-specific/windows/mingwrt/default.nix index b3c7ef310981..416ae7624c33 100644 --- a/pkgs/os-specific/windows/mingwrt/default.nix +++ b/pkgs/os-specific/windows/mingwrt/default.nix @@ -1,4 +1,4 @@ -{ stdenv, callPackage, lib, fetchurl }: +{ stdenv, lib, fetchurl }: stdenv.mkDerivation rec { name = "mingwrt-5.0.2"; @@ -8,7 +8,9 @@ stdenv.mkDerivation rec { sha256 = "02pydg1m8y35nxb4k34nlb5c341y2waq76z42mgdzlcf661r91p0"; }; - meta.platforms = [ lib.systems.inspect.isMinGW ]; + meta = { + platforms = lib.platforms.windows; + }; dontStrip = true; hardeningDisable = [ "stackprotector" "fortify" ]; diff --git a/pkgs/os-specific/windows/w32api/default.nix b/pkgs/os-specific/windows/w32api/default.nix index 51d8dafd9c88..2fe989bb2f49 100644 --- a/pkgs/os-specific/windows/w32api/default.nix +++ b/pkgs/os-specific/windows/w32api/default.nix @@ -8,7 +8,9 @@ stdenv.mkDerivation rec { sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb"; }; - meta.platforms = [ lib.systems.inspect.isMinGW ]; + meta = { + platforms = lib.platforms.windows; + }; dontStrip = true; } diff --git a/pkgs/os-specific/windows/wxMSW-2.8/default.nix b/pkgs/os-specific/windows/wxMSW-2.8/default.nix index 8770140cc633..748bf39a1f20 100644 --- a/pkgs/os-specific/windows/wxMSW-2.8/default.nix +++ b/pkgs/os-specific/windows/wxMSW-2.8/default.nix @@ -2,8 +2,6 @@ , hostPlatform }: -assert hostPlatform.isWindows; - stdenv.mkDerivation { name = "wxMSW-2.8.11"; @@ -32,4 +30,8 @@ stdenv.mkDerivation { "; passthru = {inherit compat24 compat26 unicode;}; + + meta = { + platforms = stdenv.lib.platforms.windows; + }; } -- cgit v1.2.3 From e575275de74fc2c3b7c4ca0ff86671f501617634 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Fri, 10 Aug 2018 12:00:49 -0400 Subject: windows: Cleanups --- pkgs/os-specific/windows/mingw-headers/default.nix | 13 ------------- pkgs/os-specific/windows/mingw-w64/common.nix | 11 ----------- pkgs/os-specific/windows/mingw-w64/default.nix | 19 ++++++++++++++++--- pkgs/os-specific/windows/mingw-w64/headers.nix | 12 +++++------- pkgs/os-specific/windows/mingw-w64/osvi.patch | 3 +++ pkgs/os-specific/windows/mingw-w64/pthreads.nix | 11 ++++------- 6 files changed, 28 insertions(+), 41 deletions(-) delete mode 100644 pkgs/os-specific/windows/mingw-headers/default.nix delete mode 100644 pkgs/os-specific/windows/mingw-w64/common.nix (limited to 'pkgs/os-specific/windows') diff --git a/pkgs/os-specific/windows/mingw-headers/default.nix b/pkgs/os-specific/windows/mingw-headers/default.nix deleted file mode 100644 index c6941ef01f0a..000000000000 --- a/pkgs/os-specific/windows/mingw-headers/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{stdenv, mingw_runtime_headers, w32api_headers}: - -stdenv.mkDerivation { - name = "mingw-headers"; - - phases = [ "installPhase" ]; - - installPhase = '' - mkdir -p $out/include - cp -R ${mingw_runtime_headers}/include/* $out/include - cp -R ${w32api_headers}/include/* $out/include - ''; -} diff --git a/pkgs/os-specific/windows/mingw-w64/common.nix b/pkgs/os-specific/windows/mingw-w64/common.nix deleted file mode 100644 index 6a28b9e7abd2..000000000000 --- a/pkgs/os-specific/windows/mingw-w64/common.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ fetchurl }: - -rec { - version = "5.0.4"; - name = "mingw-w64-${version}"; - - src = fetchurl { - url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2"; - sha256 = "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm"; - }; -} diff --git a/pkgs/os-specific/windows/mingw-w64/default.nix b/pkgs/os-specific/windows/mingw-w64/default.nix index dd151f696c82..a7d4f09b90e9 100644 --- a/pkgs/os-specific/windows/mingw-w64/default.nix +++ b/pkgs/os-specific/windows/mingw-w64/default.nix @@ -1,7 +1,20 @@ -{ stdenv, callPackage, windows }: +{ stdenv, windows, fetchurl }: + +let + version = "5.0.4"; +in stdenv.mkDerivation { + name = "mingw-w64-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2"; + sha256 = "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm"; + }; + + configureFlags = [ + "--enable-idl" + "--enable-secure-api" + ]; -stdenv.mkDerivation { - inherit (callPackage ./common.nix {}) name src; buildInputs = [ windows.mingw_w64_headers ]; dontStrip = true; hardeningDisable = [ "stackprotector" "fortify" ]; diff --git a/pkgs/os-specific/windows/mingw-w64/headers.nix b/pkgs/os-specific/windows/mingw-w64/headers.nix index 91ae35583576..6a93cea67080 100644 --- a/pkgs/os-specific/windows/mingw-w64/headers.nix +++ b/pkgs/os-specific/windows/mingw-w64/headers.nix @@ -1,15 +1,13 @@ -{ stdenvNoCC, callPackage }: +{ stdenvNoCC, mingw_w64 }: -let - inherit (callPackage ./common.nix {}) name src; - -in stdenvNoCC.mkDerivation { - name = name + "-headers"; - inherit src; +stdenvNoCC.mkDerivation { + name = "${mingw_w64.name}-headers"; + inherit (mingw_w64) src meta; patches = [ ./osvi.patch ]; preConfigure = '' cd mingw-w64-headers ''; + } diff --git a/pkgs/os-specific/windows/mingw-w64/osvi.patch b/pkgs/os-specific/windows/mingw-w64/osvi.patch index 8d82f56d86fe..c51ff4bd5dfd 100644 --- a/pkgs/os-specific/windows/mingw-w64/osvi.patch +++ b/pkgs/os-specific/windows/mingw-w64/osvi.patch @@ -1,3 +1,6 @@ +Fix `error: osvi undeclared (first use in this function)' issue. + +See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863064 --- a/mingw-w64-headers/include/multimon.h +++ b/mingw-w64-headers/include/multimon.h @@ -127,7 +127,7 @@ diff --git a/pkgs/os-specific/windows/mingw-w64/pthreads.nix b/pkgs/os-specific/windows/mingw-w64/pthreads.nix index 1a33e8db07e8..bbcb028d3cbb 100644 --- a/pkgs/os-specific/windows/mingw-w64/pthreads.nix +++ b/pkgs/os-specific/windows/mingw-w64/pthreads.nix @@ -1,11 +1,8 @@ -{ stdenv, callPackage }: +{ stdenv, mingw_w64 }: -let - inherit (callPackage ./common.nix {}) name src; - -in stdenv.mkDerivation { - name = name + "-pthreads"; - inherit src; +stdenv.mkDerivation { + name = "${mingw_w64.name}-pthreads"; + inherit (mingw_w64) src meta; preConfigure = '' cd mingw-w64-libraries/winpthreads -- cgit v1.2.3