summary refs log tree commit diff
path: root/pkgs/os-specific
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-14 22:53:10 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-14 22:53:10 -0400
commitf2017c40ae33c9d39f9decaaea4b9701d7e681d8 (patch)
treef870e4c0a5733e6b9431ef7961cc7662f7777b8f /pkgs/os-specific
parent8a70c71c979d5fe2f4b9b5592b195b5a7b5c1c38 (diff)
parentfd5ca417f2d6f3bd3a82c963ad71919912856da0 (diff)
downloadnixlib-f2017c40ae33c9d39f9decaaea4b9701d7e681d8.tar
nixlib-f2017c40ae33c9d39f9decaaea4b9701d7e681d8.tar.gz
nixlib-f2017c40ae33c9d39f9decaaea4b9701d7e681d8.tar.bz2
nixlib-f2017c40ae33c9d39f9decaaea4b9701d7e681d8.tar.lz
nixlib-f2017c40ae33c9d39f9decaaea4b9701d7e681d8.tar.xz
nixlib-f2017c40ae33c9d39f9decaaea4b9701d7e681d8.tar.zst
nixlib-f2017c40ae33c9d39f9decaaea4b9701d7e681d8.zip
Merge remote-tracking branch 'upstream/master' into staging
Diffstat (limited to 'pkgs/os-specific')
-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
9 files changed, 79 insertions, 93 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 1db1a493ae2f..0e7033972496 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
+  '';
+}