diff --git a/CHANGELOG.md b/CHANGELOG.md index 42826b7..8240ac3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ ## Release 24.05 (unreleased) +### Compatibility considerations + +* `nixOnDroidConfigurations` `pkgs` argument is now mandatory. + Put simply, if one's using a flake config, they need to add `nixpkgs` to + `outputs = { self, nixpkgs, ... }:` if it was previously missing, + then add a + `pkgs = import nixpkgs { system = "aarch64-linux"; };` + as an argument to `nixOnDroidConfiguration`. + If in doubt, refer to the `templates`. + ## Release 23.11 ### New Options diff --git a/flake.nix b/flake.nix index 8b18d20..72717ea 100644 --- a/flake.nix +++ b/flake.nix @@ -33,11 +33,6 @@ overlay = nixpkgs.lib.composeManyExtensions (import ./overlays); - pkgsPerSystem = system: import nixpkgs { - inherit system; - overlays = [ overlay ]; - }; - formatterPackArgsFor = forEachSystem (system: { inherit nixpkgs system; checkFiles = [ ./. ]; @@ -74,22 +69,22 @@ formatter = forEachSystem (system: nix-formatter-pack.lib.mkFormatter formatterPackArgsFor.${system}); lib.nixOnDroidConfiguration = - { modules ? [ ] - , system ? "aarch64-linux" + { pkgs + , modules ? [ ] , extraSpecialArgs ? { } - , pkgs ? pkgsPerSystem system , home-manager-path ? home-manager.outPath # deprecated: , config ? null , extraModules ? null + , system ? null # pkgs.system is used to detect user's arch }: - if ! (builtins.elem system [ "aarch64-linux" "x86_64-linux" ]) then + if ! (builtins.elem pkgs.system [ "aarch64-linux" "x86_64-linux" ]) then throw - ("${system} is not supported; aarch64-linux / x86_64-linux " + + ("${pkgs.system} is not supported; aarch64-linux / x86_64-linux " + "are the only currently supported system types") else pkgs.lib.throwIf - (config != null || extraModules != null) + (config != null || extraModules != null || system != null) '' The 'nixOnDroidConfiguration' arguments @@ -97,15 +92,17 @@ - 'extraModules' - 'system' - have been removed. Instead use the argument 'modules'. The - 'system' will be inferred by 'pkgs.system'. + have been removed. + Instead of 'extraModules' use the argument 'modules'. + The 'system' will be inferred by 'pkgs.system', + so pass a 'pkgs = import nixpkgs { system = "aarch64-linux"; };' See the 22.11 release notes for more. '' (import ./modules { inherit extraSpecialArgs home-manager-path pkgs; config.imports = modules; config.build.arch = - nixpkgs.lib.strings.removeSuffix "-linux" system; + nixpkgs.lib.strings.removeSuffix "-linux" pkgs.system; isFlake = true; }); diff --git a/templates/home-manager/flake.nix b/templates/home-manager/flake.nix index eaf07b8..40474c6 100644 --- a/templates/home-manager/flake.nix +++ b/templates/home-manager/flake.nix @@ -19,6 +19,7 @@ outputs = { self, nixpkgs, home-manager, nix-on-droid }: { nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration { + pkgs = import nixpkgs { system = "aarch64-linux"; }; modules = [ ./nix-on-droid.nix ]; }; diff --git a/templates/minimal/flake.nix b/templates/minimal/flake.nix index ab4da67..fda6a42 100644 --- a/templates/minimal/flake.nix +++ b/templates/minimal/flake.nix @@ -13,7 +13,7 @@ outputs = { self, nixpkgs, nix-on-droid }: { nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration { - system = "aarch64-linux"; + pkgs = import nixpkgs { system = "aarch64-linux"; }; modules = [ ./nix-on-droid.nix ]; }; diff --git a/tests/on-device/config-flake-default.nix b/tests/on-device/config-flake-default.nix index a3a7d24..a4cffb0 100644 --- a/tests/on-device/config-flake-default.nix +++ b/tests/on-device/config-flake-default.nix @@ -7,10 +7,10 @@ nix-on-droid.inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = { nix-on-droid, ... }: { + outputs = { nix-on-droid, nixpkgs, ... }: { nixOnDroidConfigurations = { default = nix-on-droid.lib.nixOnDroidConfiguration { - system = "<>"; + pkgs = import nixpkgs { system = "<>"; }; modules = [ ./nix-on-droid.nix ]; }; }; diff --git a/tests/on-device/config-flake-h-m.flake.nix b/tests/on-device/config-flake-h-m.flake.nix index fa98ad0..731508b 100644 --- a/tests/on-device/config-flake-h-m.flake.nix +++ b/tests/on-device/config-flake-h-m.flake.nix @@ -11,10 +11,10 @@ }; }; - outputs = { nix-on-droid, ... }: { + outputs = { nix-on-droid, nixpkgs, ... }: { nixOnDroidConfigurations = { device = nix-on-droid.lib.nixOnDroidConfiguration { - system = "<>"; + pkgs = import nixpkgs { system = "<>"; }; modules = [ ./nix-on-droid.nix ]; }; }; diff --git a/tests/on-device/config-flake.nix b/tests/on-device/config-flake.nix index 1caa8a6..4d6a67c 100644 --- a/tests/on-device/config-flake.nix +++ b/tests/on-device/config-flake.nix @@ -7,10 +7,10 @@ nix-on-droid.inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = { nix-on-droid, ... }: { + outputs = { nix-on-droid, nixpkgs, ... }: { nixOnDroidConfigurations = { device = nix-on-droid.lib.nixOnDroidConfiguration { - system = "<>"; + pkgs = import nixpkgs { system = "<>"; }; modules = [ ./nix-on-droid.nix ]; }; };