2ba7926959
Rework withExtensions / buildEnv to handle currently enabled extensions better and make them compatible with override. They now accept a function with the named arguments enabled and all, where enabled is a list of currently enabled extensions and all is the set of all extensions. This gives us several nice properties: - You always get the right version of the list of currently enabled extensions - Invocations chain - It works well with overridden PHP packages - you always get the correct versions of extensions As a contrived example of what's possible, you can add ImageMagick, then override the version and disable fpm, then disable cgi, and lastly remove the zip extension like this: { pkgs ? (import <nixpkgs>) {} }: with pkgs; let phpWithImagick = php74.withExtensions ({ all, enabled }: enabled ++ [ all.imagick ]); phpWithImagickWithoutFpm743 = phpWithImagick.override { version = "7.4.3"; sha256 = "wVF7pJV4+y3MZMc6Ptx21PxQfEp6xjmYFYTMfTtMbRQ="; fpmSupport = false; }; phpWithImagickWithoutFpmZip743 = phpWithImagickWithoutFpm743.withExtensions ( { enabled, all }: lib.filter (e: e != all.zip) enabled); phpWithImagickWithoutFpmZipCgi743 = phpWithImagickWithoutFpmZip743.override { cgiSupport = false; }; in phpWithImagickWithoutFpmZipCgi743 |
||
---|---|---|
.. | ||
administration | ||
configuration | ||
development | ||
installation | ||
release-notes | ||
.gitignore | ||
default.nix | ||
Makefile | ||
man-configuration.xml | ||
man-nixos-build-vms.xml | ||
man-nixos-enter.xml | ||
man-nixos-generate-config.xml | ||
man-nixos-install.xml | ||
man-nixos-option.xml | ||
man-nixos-rebuild.xml | ||
man-nixos-version.xml | ||
man-pages.xml | ||
manual.xml | ||
preface.xml | ||
README | ||
shell.nix |
To build the manual, you need Nix installed on your system (no need for NixOS). To install Nix, follow the instructions at https://nixos.org/nix/download.html When you have Nix on your system, in the root directory of the project (i.e., `nixpkgs`), run: nix-build nixos/release.nix -A manual.x86_64-linux When this command successfully finishes, it will tell you where the manual got generated.