From 42cbe751a860470cc8fd36f9e105566b97b6a2ff Mon Sep 17 00:00:00 2001 From: Andreas Fuchs Date: Wed, 25 Nov 2020 00:11:15 -0500 Subject: Fix running & building under macOS (Big Sur) (#9) * Add xcbuild as native build input 2 ways & pass --verbose to cargo build * Make "deploy" build on macOS * Bump the nixpkgs version to one that ships Rust 1.47, which can produce binaries under macOS 11 (Big Sur). * Use darwin-specific options that let Naersk build the "deploy" binary under macOS. (With a work-around for https://github.com/nmattia/naersk/issues/127, which prevents this from being much more straight-forward). Unfortunately, the "activate" binary can't be built under macOS due to the inotify dependency; that means the best we can do is to run the deploy under macOS, not deploy *to* macOS.--- flake.lock | 6 +++--- flake.nix | 18 ++++++++++++++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/flake.lock b/flake.lock index c9e4ff3..e5b7ffe 100644 --- a/flake.lock +++ b/flake.lock @@ -39,11 +39,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1601961544, - "narHash": "sha256-uuh9CkDWkXlXse8IcergqoIM5JffqfQDKsl1uHB7XJI=", + "lastModified": 1605716121, + "narHash": "sha256-CbHicvkzLTfEY+aSUeUY7dfFlDOgZH3uK+PpUfb/DPA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "89281dd1dfed6839610f0ccad0c0e493606168fe", + "rev": "6625284c397b44bc9518a5a1567c1b5aae455c08", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index d92a60a..2e775ca 100644 --- a/flake.nix +++ b/flake.nix @@ -23,10 +23,20 @@ let pkgs = import nixpkgs { inherit system; }; naersk-lib = pkgs.callPackage naersk { }; + isDarwin = pkgs.lib.strings.hasSuffix "-darwin" system; + darwinOptions = pkgs.lib.optionalAttrs isDarwin { + nativeBuildInputs = [ + pkgs.darwin.apple_sdk.frameworks.SystemConfiguration + ]; + singleStep = true; # https://github.com/nmattia/naersk/issues/127 + cargoBuildOptions = opts: opts ++ [ "--bin" "deploy" ]; # The "activate" binary is linux-only. + }; in { defaultPackage = self.packages."${system}".deploy-rs; - packages.deploy-rs = naersk-lib.buildPackage ./.; + packages.deploy-rs = naersk-lib.buildPackage (darwinOptions // { + root = ./.; + }); defaultApp = self.apps."${system}".deploy-rs; apps.deploy-rs = { @@ -35,9 +45,9 @@ }; devShell = pkgs.mkShell { - inputsFrom = [ self.packages.${system}.deploy-rs ]; - buildInputs = [ pkgs.nixUnstable ]; - }; + inputsFrom = [ self.packages.${system}.deploy-rs ]; + buildInputs = [ pkgs.nixUnstable ]; + }; lib = rec { -- cgit v1.2.3