diff options
author | davidak <git@davidak.de> | 2020-09-05 02:12:43 +0200 |
---|---|---|
committer | davidak <git@davidak.de> | 2020-09-06 18:58:20 +0200 |
commit | 74b3d66baf2f3effb4702832fc45828291a358d8 (patch) | |
tree | f04f43e873ab1d5c1d70d130792dd8f19d40e3a6 | |
parent | a5121f73e3f89556d33e7b1fc9c6d70673b20458 (diff) | |
download | nixlib-74b3d66baf2f3effb4702832fc45828291a358d8.tar nixlib-74b3d66baf2f3effb4702832fc45828291a358d8.tar.gz nixlib-74b3d66baf2f3effb4702832fc45828291a358d8.tar.bz2 nixlib-74b3d66baf2f3effb4702832fc45828291a358d8.tar.lz nixlib-74b3d66baf2f3effb4702832fc45828291a358d8.tar.xz nixlib-74b3d66baf2f3effb4702832fc45828291a358d8.tar.zst nixlib-74b3d66baf2f3effb4702832fc45828291a358d8.zip |
nixos/config: add defaultPackages option
readd perl (used in shell scripts), rsync (needed for NixOps) and strace (common debugging tool) they where previously removed in https://github.com/NixOS/nixpkgs/pull/91213 Co-authored-by: Timo Kaufmann <timokau@zoho.com> Co-authored-by: 8573 <8573@users.noreply.github.com>
-rw-r--r-- | nixos/doc/manual/release-notes/rl-2009.xml | 6 | ||||
-rw-r--r-- | nixos/modules/config/system-path.nix | 23 |
2 files changed, 27 insertions, 2 deletions
diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml index ce78bda85051..3b5cb470df01 100644 --- a/nixos/doc/manual/release-notes/rl-2009.xml +++ b/nixos/doc/manual/release-notes/rl-2009.xml @@ -1016,7 +1016,11 @@ services.transmission.settings.rpc-bind-address = "0.0.0.0"; <para> Nginx module <literal>nginxModules.fastcgi-cache-purge</literal> renamed to official name <literal>nginxModules.cache-purge</literal>. Nginx module <literal>nginxModules.ngx_aws_auth</literal> renamed to official name <literal>nginxModules.aws-auth</literal>. - The packages <package>perl</package>, <package>rsync</package> and <package>strace</package> were removed from <option>systemPackages</option>. If you need them, install them again with <code><xref linkend="opt-environment.systemPackages"/> = with pkgs; [ perl rsync strace ];</code> in your <filename>configuration.nix</filename>. + </para> + </listitem> + <listitem> + <para> + The option <option>defaultPackages</option> was added. It installs the packages <package>perl</package>, <package>rsync</package> and <package>strace</package> for now. They were added unconditionally to <option>systemPackages</option> before, but are not strictly necessary for a minimal NixOS install. You can set it to an empty list to have a more minimal system. Be aware that some functionality might still have an impure dependency on those packages, so things might break. </para> </listitem> <listitem> diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix index b3c5c6f93f36..67305e8499cb 100644 --- a/nixos/modules/config/system-path.nix +++ b/nixos/modules/config/system-path.nix @@ -41,6 +41,12 @@ let pkgs.zstd ]; + defaultPackages = map (pkg: setPrio ((pkg.meta.priority or 5) + 3) pkg) + [ pkgs.perl + pkgs.rsync + pkgs.strace + ]; + in { @@ -63,6 +69,21 @@ in ''; }; + defaultPackages = mkOption { + type = types.listOf types.package; + default = defaultPackages; + example = literalExample "[]"; + description = '' + Set of packages users expect from a minimal linux istall. + Like systemPackages, they appear in + /run/current-system/sw. These packages are + automatically available to all users, and are + automatically updated every time you rebuild the system + configuration. + If you want a more minimal system, set it to an empty list. + ''; + }; + pathsToLink = mkOption { type = types.listOf types.str; # Note: We need `/lib' to be among `pathsToLink' for NSS modules @@ -102,7 +123,7 @@ in config = { - environment.systemPackages = requiredPackages; + environment.systemPackages = requiredPackages ++ config.environment.defaultPackages; environment.pathsToLink = [ "/bin" |