diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-05-31 09:59:33 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2022-05-31 09:59:57 +0000 |
commit | 9ff36293d1e428cd7bf03e8d4b03611b6d361c28 (patch) | |
tree | 1ab51a42b868c55b83f6ccdb80371b9888739dd9 /nixos/doc/manual/development/replace-modules.section.md | |
parent | 1c4fcd0d4b0541e674ee56ace1053e23e562cc80 (diff) | |
parent | ddc3c396a51918043bb0faa6f676abd9562be62c (diff) | |
download | nixpkgs-9ff36293d1e428cd7bf03e8d4b03611b6d361c28.tar nixpkgs-9ff36293d1e428cd7bf03e8d4b03611b6d361c28.tar.gz nixpkgs-9ff36293d1e428cd7bf03e8d4b03611b6d361c28.tar.bz2 nixpkgs-9ff36293d1e428cd7bf03e8d4b03611b6d361c28.tar.lz nixpkgs-9ff36293d1e428cd7bf03e8d4b03611b6d361c28.tar.xz nixpkgs-9ff36293d1e428cd7bf03e8d4b03611b6d361c28.tar.zst nixpkgs-9ff36293d1e428cd7bf03e8d4b03611b6d361c28.zip |
Last good Nixpkgs for Weston+nouveau? archive
I came this commit hash to terwiz[m] on IRC, who is trying to figure out what the last version of Spectrum that worked on their NUC with Nvidia graphics is.
Diffstat (limited to 'nixos/doc/manual/development/replace-modules.section.md')
-rw-r--r-- | nixos/doc/manual/development/replace-modules.section.md | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/nixos/doc/manual/development/replace-modules.section.md b/nixos/doc/manual/development/replace-modules.section.md new file mode 100644 index 00000000000..0700a82004c --- /dev/null +++ b/nixos/doc/manual/development/replace-modules.section.md @@ -0,0 +1,64 @@ +# Replace Modules {#sec-replace-modules} + +Modules that are imported can also be disabled. The option declarations, +config implementation and the imports of a disabled module will be +ignored, allowing another to take it\'s place. This can be used to +import a set of modules from another channel while keeping the rest of +the system on a stable release. + +`disabledModules` is a top level attribute like `imports`, `options` and +`config`. It contains a list of modules that will be disabled. This can +either be the full path to the module or a string with the filename +relative to the modules path (eg. \<nixpkgs/nixos/modules> for nixos). + +This example will replace the existing postgresql module with the +version defined in the nixos-unstable channel while keeping the rest of +the modules and packages from the original nixos channel. This only +overrides the module definition, this won\'t use postgresql from +nixos-unstable unless explicitly configured to do so. + +```nix +{ config, lib, pkgs, ... }: + +{ + disabledModules = [ "services/databases/postgresql.nix" ]; + + imports = + [ # Use postgresql service from nixos-unstable channel. + # sudo nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable + <nixos-unstable/nixos/modules/services/databases/postgresql.nix> + ]; + + services.postgresql.enable = true; +} +``` + +This example shows how to define a custom module as a replacement for an +existing module. Importing this module will disable the original module +without having to know it\'s implementation details. + +```nix +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.man; +in + +{ + disabledModules = [ "services/programs/man.nix" ]; + + options = { + programs.man.enable = mkOption { + type = types.bool; + default = true; + description = "Whether to enable manual pages."; + }; + }; + + config = mkIf cfg.enabled { + warnings = [ "disabled manpages for production deployments." ]; + }; +} +``` |