-
-
Notifications
You must be signed in to change notification settings - Fork 468
Running a locally patched version of nix darwin
Nathan Henrie edited this page Oct 26, 2022
·
1 revision
Occasionally one might want to run a patched version of nix-darwin, for example to take advantage of a pull request that has not yet been merged.
One approach is to use a local copy if the nix-darwin repo, with the relevant code checked out.
Alternatively, for e.g. the pull request at https://github.com/LnL7/nix-darwin/pull/550, one can append .patch
to the URL: https://patch-diff.githubusercontent.com/raw/LnL7/nix-darwin/pull/550.patch
The patch could then be locally referenced from a flake like so (copied from this comment):
{
description = "...";
inputs = {
nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-22.05-darwin";
darwin = {
url = "github:lnl7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs-darwin";
};
};
outputs = inputs @ { self, nixpkgs-darwin, ... }:
let
darwin =
let
src = nixpkgs.legacyPackages."aarch64-darwin".applyPatches {
name = "nix-darwin";
src = inputs.darwin;
patches = [
./patches/nix-darwin-submodules.patch
];
};
in
nixpkgs.lib.fix (self: (import "${src}/flake.nix").outputs { inherit self nixpkgs; });
cfg = {
config = {
allowUnfree = true;
};
};
in
{
darwinConfigurations."MyMachineName" =
let
system = "aarch64-darwin";
darwinPkgs = nixpkgs-darwin.legacyPackages.${system};
in
darwin.lib.darwinSystem {
...
};
}