summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-14 22:56:40 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-14 22:56:48 -0400
commitd7160f39bd46e8ee86e95cbaf7a8f3d5685ab30c (patch)
treea30d6372aa8989948da01341784f0dfc3acb8eb3
parentde169a59500bd77d947c27b3c32aec37c81e87fe (diff)
parent29b62e07d66c6ee14c8b9a3428e413fc4dc1c223 (diff)
downloadnixlib-d7160f39bd46e8ee86e95cbaf7a8f3d5685ab30c.tar
nixlib-d7160f39bd46e8ee86e95cbaf7a8f3d5685ab30c.tar.gz
nixlib-d7160f39bd46e8ee86e95cbaf7a8f3d5685ab30c.tar.bz2
nixlib-d7160f39bd46e8ee86e95cbaf7a8f3d5685ab30c.tar.lz
nixlib-d7160f39bd46e8ee86e95cbaf7a8f3d5685ab30c.tar.xz
nixlib-d7160f39bd46e8ee86e95cbaf7a8f3d5685ab30c.tar.zst
nixlib-d7160f39bd46e8ee86e95cbaf7a8f3d5685ab30c.zip
Merge branch 'linux-pam-cross' into HEAD
-rw-r--r--pkgs/os-specific/gnu/hurd/default.nix29
-rw-r--r--pkgs/os-specific/gnu/libpthread/default.nix2
-rw-r--r--pkgs/os-specific/linux/pam/default.nix15
-rw-r--r--pkgs/os-specific/windows/mingwrt/common.nix12
-rw-r--r--pkgs/os-specific/windows/mingwrt/default.nix32
-rw-r--r--pkgs/os-specific/windows/mingwrt/headers.nix17
-rw-r--r--pkgs/os-specific/windows/w32api/common.nix14
-rw-r--r--pkgs/os-specific/windows/w32api/default.nix34
-rw-r--r--pkgs/os-specific/windows/w32api/headers.nix17
-rw-r--r--pkgs/top-level/all-packages.nix18
10 files changed, 83 insertions, 107 deletions
diff --git a/pkgs/os-specific/gnu/hurd/default.nix b/pkgs/os-specific/gnu/hurd/default.nix
index 5eccee62468d..ae1c504fd19e 100644
--- a/pkgs/os-specific/gnu/hurd/default.nix
+++ b/pkgs/os-specific/gnu/hurd/default.nix
@@ -75,25 +75,16 @@ stdenv.mkDerivation ({
 
 //
 
-(if !headersOnly && buildTarget != null
- then assert installTarget != null; {
-   # Use the default `buildPhase' and `installPhase' so that the usual hooks
-   # can still be used.
-   buildFlags = buildTarget;
-   installTargets = installTarget;
- }
- else {})
+stdenv.lib.optionalAttrs (!headersOnly && buildTarget != null) {
+  # Use the default `buildPhase' and `installPhase' so that the usual hooks
+  # can still be used.
+  buildFlags = buildTarget;
+  installTargets = assert installTarget != null; installTarget;
+}
 
 //
 
-(if headersOnly
- then { dontBuild = true; installPhase = "make install-headers"; }
- else (if (cross != null)
-       then {
-         crossConfig = cross.config;
-
-         # The `configure' script wants to build executables so tell it where
-         # to find `crt1.o' et al.
-         LDFLAGS = "-B${glibcCross}/lib";
-       }
-       else { })))
+stdenv.lib.optionalAttrs headersOnly {
+  dontBuild = true;
+  installPhase = "make install-headers";
+})
diff --git a/pkgs/os-specific/gnu/libpthread/default.nix b/pkgs/os-specific/gnu/libpthread/default.nix
index 294a1548582b..a2e1081a1e8d 100644
--- a/pkgs/os-specific/gnu/libpthread/default.nix
+++ b/pkgs/os-specific/gnu/libpthread/default.nix
@@ -55,8 +55,6 @@ stdenv.mkDerivation ({
 
 (if cross != null
  then {
-   crossConfig = cross.config;
-
    # Tell gcc where to find `crt1.o' et al.  This is specified in two
    # different ways: one for gcc as run from `configure', and one for linking
    # libpthread.so (by default `libtool --mode=link' swallows `-B', hence
diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix
index 5f92dfcc8390..e2d34abb70cc 100644
--- a/pkgs/os-specific/linux/pam/default.nix
+++ b/pkgs/os-specific/linux/pam/default.nix
@@ -33,21 +33,6 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  crossAttrs = {
-    propagatedBuildInputs = [ flex.crossDrv cracklib.crossDrv ];
-    preConfigure = preConfigure + ''
-      $crossConfig-ar x ${flex.crossDrv}/lib/libfl.a
-      mv libyywrap.o libyywrap-target.o
-      ar x ${flex}/lib/libfl.a
-      mv libyywrap.o libyywrap-host.o
-      export LDFLAGS="$LDFLAGS $PWD/libyywrap-target.o"
-      sed -e 's/@CC@/gcc/' -i doc/specs/Makefile.in
-    '';
-    postConfigure = ''
-      sed -e "s@ $PWD/libyywrap-target.o@ $PWD/libyywrap-host.o@" -i doc/specs/Makefile
-    '';
-  };
-
   postInstall = ''
     mv -v $out/sbin/unix_chkpwd{,.orig}
     ln -sv /run/wrappers/bin/unix_chkpwd $out/sbin/unix_chkpwd
diff --git a/pkgs/os-specific/windows/mingwrt/common.nix b/pkgs/os-specific/windows/mingwrt/common.nix
new file mode 100644
index 000000000000..7dc2ae56aa84
--- /dev/null
+++ b/pkgs/os-specific/windows/mingwrt/common.nix
@@ -0,0 +1,12 @@
+{ 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 98461d690d92..3429f7564ade 100644
--- a/pkgs/os-specific/windows/mingwrt/default.nix
+++ b/pkgs/os-specific/windows/mingwrt/default.nix
@@ -1,29 +1,7 @@
-{stdenv, fetchurl, binutils ? null, gccCross ? null, onlyHeaders ? false}:
-
-let
-  name = "mingwrt-3.20";
-in
-stdenv.mkDerivation (rec {
-  inherit name;
-
-  src = fetchurl {
-    url = "mirror://sourceforge/mingw/MinGW/Base/mingw-rt/${name}-mingw32-src.tar.gz";
-    sha256 = "02pydg1m8y35nxb4k34nlb5c341y2waq76z42mgdzlcf661r91pi";
-  };
-
-} //
-(if onlyHeaders then {
-  name = name + "-headers";
-  phases = [ "unpackPhase" "installPhase" ];
-  installPhase = ''
-    mkdir -p $out
-    cp -R include $out
-  '';
-} else {
-  buildInputs = [ gccCross binutils ];
-
-  crossConfig = gccCross.crossConfig;
+{ stdenv, callPackage }:
 
+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
new file mode 100644
index 000000000000..51180af0fc73
--- /dev/null
+++ b/pkgs/os-specific/windows/mingwrt/headers.nix
@@ -0,0 +1,17 @@
+{ 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/w32api/common.nix b/pkgs/os-specific/windows/w32api/common.nix
new file mode 100644
index 000000000000..273ae2c8df4b
--- /dev/null
+++ b/pkgs/os-specific/windows/w32api/common.nix
@@ -0,0 +1,14 @@
+{ 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 3443fff9668d..51b88201998c 100644
--- a/pkgs/os-specific/windows/w32api/default.nix
+++ b/pkgs/os-specific/windows/w32api/default.nix
@@ -1,32 +1,6 @@
-{ stdenv, fetchurl, xz, binutils ? null
-, gccCross ? null, onlyHeaders ? false }:
-
-let
-  name = "w32api-3.17-2";
-in
-stdenv.mkDerivation ({
-  inherit name;
-
-  src = fetchurl {
-    url = "mirror://sourceforge/mingw/MinGW/Base/w32api/w32api-3.17/${name}-mingw32-src.tar.lzma";
-    sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb";
-  };
-
-  nativeBuildInputs = [ xz ];
-
-} //
-(if onlyHeaders then {
-  name = name + "-headers";
-  phases = [ "unpackPhase" "installPhase" ];
-  installPhase = ''
-    mkdir -p $out
-    cp -R include $out
-  '';
-} else {
-  buildInputs = [ gccCross binutils ];
-
-  crossConfig = gccCross.crossConfig;
+{ stdenv, callPackage }:
 
+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
new file mode 100644
index 000000000000..3083118bb366
--- /dev/null
+++ b/pkgs/os-specific/windows/w32api/headers.nix
@@ -0,0 +1,17 @@
+{ 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
+  '';
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d18e51772cea..65d1dc9dbb01 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -13868,23 +13868,13 @@ with pkgs;
 
     jom = callPackage ../os-specific/windows/jom { };
 
-    w32api = callPackage ../os-specific/windows/w32api {
-      gccCross = gccCrossStageStatic;
-      binutils = binutils;
-    };
+    w32api = callPackage ../os-specific/windows/w32api { };
 
-    w32api_headers = w32api.override {
-      onlyHeaders = true;
-    };
+    w32api_headers = callPackage ../os-specific/windows/w32api/headers { };
 
-    mingw_runtime = callPackage ../os-specific/windows/mingwrt {
-      gccCross = gccCrossMingw2;
-      binutils = binutils;
-    };
+    mingw_runtime = callPackage ../os-specific/windows/mingwrt { };
 
-    mingw_runtime_headers = mingw_runtime.override {
-      onlyHeaders = true;
-    };
+    mingw_runtime_headers = callPackage ../os-specific/windows/mingwrt/headers.nix { };
 
     mingw_headers1 = buildEnv {
       name = "mingw-headers-1";