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 |
||
---|---|---|
.. | ||
clamsmtp.nix | ||
davmail.nix | ||
dkimproxy-out.nix | ||
dovecot.nix | ||
dspam.nix | ||
exim.nix | ||
freepops.nix | ||
mail.nix | ||
mailcatcher.nix | ||
mailhog.nix | ||
mailman.nix | ||
mlmmj.nix | ||
nullmailer.nix | ||
offlineimap.nix | ||
opendkim.nix | ||
opensmtpd.nix | ||
pfix-srsd.nix | ||
postfix.nix | ||
postgrey.nix | ||
postsrsd.nix | ||
roundcube.nix | ||
rspamd.nix | ||
rss2email.nix | ||
spamassassin.nix | ||
sympa.nix |