summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2017-07-31 21:02:20 -0400
committerJohn Ericson <Ericson2314@Yahoo.com>2017-07-31 21:28:18 -0400
commit14e05c30e85f0e8bd8f51b49a2ea622df7172ec2 (patch)
treeb7408c1210883af6b790060e1b6d3530f4bb6fbb /pkgs
parenteeed1814dc84121f81fc6214a26f1adffc41581c (diff)
downloadnixlib-14e05c30e85f0e8bd8f51b49a2ea622df7172ec2.tar
nixlib-14e05c30e85f0e8bd8f51b49a2ea622df7172ec2.tar.gz
nixlib-14e05c30e85f0e8bd8f51b49a2ea622df7172ec2.tar.bz2
nixlib-14e05c30e85f0e8bd8f51b49a2ea622df7172ec2.tar.lz
nixlib-14e05c30e85f0e8bd8f51b49a2ea622df7172ec2.tar.xz
nixlib-14e05c30e85f0e8bd8f51b49a2ea622df7172ec2.tar.zst
nixlib-14e05c30e85f0e8bd8f51b49a2ea622df7172ec2.zip
macos-sierra-shared: Make live code and add to nascent Darwin channel
Also add appropriate `meta.platforms = ...` to each derivation.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/test/macos-sierra-shared/default.nix27
-rw-r--r--pkgs/top-level/all-packages.nix5
-rw-r--r--pkgs/top-level/release.nix1
3 files changed, 29 insertions, 4 deletions
diff --git a/pkgs/test/macos-sierra-shared/default.nix b/pkgs/test/macos-sierra-shared/default.nix
index 690d09414fbd..51e8ae53736c 100644
--- a/pkgs/test/macos-sierra-shared/default.nix
+++ b/pkgs/test/macos-sierra-shared/default.nix
@@ -1,4 +1,4 @@
-{ lib, clangStdenv, clang-sierraHack-stdenv }:
+{ lib, clangStdenv, clang-sierraHack-stdenv, stdenvNoCC }:
 
 let
   makeBigExe = stdenv: prefix: rec {
@@ -22,6 +22,7 @@ let
         mkdir -p "$out/lib"
         mv lib${name}.dylib "$out/lib"
       '';
+      meta.platforms = lib.platforms.darwin;
     }) count;
 
     finalExe = stdenv.mkDerivation rec {
@@ -53,18 +54,36 @@ let
         EOF
       '';
       buildPhase = ''
-        $CXX -std=c++11 main.cxx ${toString (map (x: "-l${x.name}") sillyLibs)} -o asdf
+        $CXX -std=c++11 main.cxx ${toString (map (x: "-l${x.name}") sillyLibs)} -o ${prefix}-asdf
       '';
       buildInputs = sillyLibs;
       installPhase = ''
         mkdir -p "$out/bin"
-        mv asdf "$out/bin"
+        mv ${prefix}-asdf "$out/bin"
       '';
+      meta.platforms = lib.platforms.darwin;
     };
 
   };
 
-in {
   good = makeBigExe clang-sierraHack-stdenv "good";
+
   bad  = makeBigExe clangStdenv             "bad";
+
+in stdenvNoCC.mkDerivation {
+  name = "macos-sierra-shared-test";
+  buildInputs = [ good.finalExe bad.finalExe ];
+  # TODO(@Ericson2314): Be impure or require exact MacOS version of builder?
+  buildCommand = ''
+    if bad-asdf
+    then echo "bad-asdf can succeed on non-sierra, OK" >&2
+    else echo "bad-asdf should fail on sierra, OK" >&2
+    fi
+
+    # Must succeed on all supported MacOS versions
+    good-asdf
+
+    touch $out
+  '';
+  meta.platforms = lib.platforms.darwin;
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 85573b10321b..a1d83e314584 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -19223,4 +19223,9 @@ with pkgs;
   undaemonize = callPackage ../tools/system/undaemonize {};
 
   houdini = callPackage ../applications/misc/houdini {};
+
+  # No `recurseIntoAttrs` because there's no need to nix-env these.
+  tests = {
+    macOSSierraShared = callPackage ../test/macos-sierra-shared {};
+  };
 }
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index be57b40fca64..0c7c67a0d03b 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -42,6 +42,7 @@ let
               jobs.python.x86_64-darwin
               jobs.rustc.x86_64-darwin
               jobs.go.x86_64-darwin
+              jobs.tests.macOSSierraShared
             ];
         };