0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50:33 +03:00

Merge pull request #217205 from linj-fork/fix-zsh-set-env

zsh: set environment variables in zshenv instead of zprofile
This commit is contained in:
K900 2023-03-23 18:57:40 +03:00 committed by GitHub
commit 382c756097
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 13 deletions

View file

@ -224,6 +224,8 @@ In addition to numerous new and upgraded packages, this release has the followin
The `{aclUse,superUser,disableActions}` attributes have been renamed, `pluginsConfig` now also accepts an attribute set of booleans, passing plain PHP is deprecated. The `{aclUse,superUser,disableActions}` attributes have been renamed, `pluginsConfig` now also accepts an attribute set of booleans, passing plain PHP is deprecated.
Same applies to `acl` which now also accepts structured settings. Same applies to `acl` which now also accepts structured settings.
- The `zsh` package changes the way to set environment variables on NixOS systems where `programs.zsh.enable` equals `false`. It now sources `/etc/set-environment` when reading the system-level `zshenv` file. Before, it sourced `/etc/profile` when reading the system-level `zprofile` file.
- The `wordpress` service now takes configuration via the `services.wordpress.sites.<name>.settings` attribute set, `extraConfig` is still available to append additional text to `wp-config.php`. - The `wordpress` service now takes configuration via the `services.wordpress.sites.<name>.settings` attribute set, `extraConfig` is still available to append additional text to `wp-config.php`.
- To reduce closure size in `nixos/modules/profiles/minimal.nix` profile disabled installation documentations and manuals. Also disabled `logrotate` and `udisks2` services. - To reduce closure size in `nixos/modules/profiles/minimal.nix` profile disabled installation documentations and manuals. Also disabled `logrotate` and `udisks2` services.

View file

@ -42,7 +42,7 @@ stdenv.mkDerivation {
"--enable-multibyte" "--enable-multibyte"
"--with-tcsetpgrp" "--with-tcsetpgrp"
"--enable-pcre" "--enable-pcre"
"--enable-zprofile=${placeholder "out"}/etc/zprofile" "--enable-zshenv=${placeholder "out"}/etc/zshenv"
"--disable-site-fndir" "--disable-site-fndir"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform && !stdenv.hostPlatform.isStatic) [ ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform && !stdenv.hostPlatform.isStatic) [
# Also see: https://github.com/buildroot/buildroot/commit/2f32e668aa880c2d4a2cce6c789b7ca7ed6221ba # Also see: https://github.com/buildroot/buildroot/commit/2f32e668aa880c2d4a2cce6c789b7ca7ed6221ba
@ -64,34 +64,36 @@ stdenv.mkDerivation {
postInstall = '' postInstall = ''
make install.info install.html make install.info install.html
mkdir -p $out/etc/ mkdir -p $out/etc/
cat > $out/etc/zprofile <<EOF cat > $out/etc/zshenv <<EOF
if test -e /etc/NIXOS; then if test -e /etc/NIXOS; then
if test -r /etc/zprofile; then if test -r /etc/zshenv; then
. /etc/zprofile . /etc/zshenv
else else
emulate bash emulate bash
alias shopt=false alias shopt=false
. /etc/profile if [ -z "$__NIXOS_SET_ENVIRONMENT_DONE" ]; then
. /etc/set-environment
fi
unalias shopt unalias shopt
emulate zsh emulate zsh
fi fi
if test -r /etc/zprofile.local; then if test -r /etc/zshenv.local; then
. /etc/zprofile.local . /etc/zshenv.local
fi fi
else else
# on non-nixos we just source the global /etc/zprofile as if we did # on non-nixos we just source the global /etc/zshenv as if we did
# not use the configure flag # not use the configure flag
if test -r /etc/zprofile; then if test -r /etc/zshenv; then
. /etc/zprofile . /etc/zshenv
fi fi
fi fi
EOF EOF
${if stdenv.hostPlatform == stdenv.buildPlatform then '' ${if stdenv.hostPlatform == stdenv.buildPlatform then ''
$out/bin/zsh -c "zcompile $out/etc/zprofile" $out/bin/zsh -c "zcompile $out/etc/zshenv"
'' else '' '' else ''
${lib.getBin buildPackages.zsh}/bin/zsh -c "zcompile $out/etc/zprofile" ${lib.getBin buildPackages.zsh}/bin/zsh -c "zcompile $out/etc/zshenv"
''} ''}
mv $out/etc/zprofile $out/etc/zprofile_zwc_is_used mv $out/etc/zshenv $out/etc/zshenv_zwc_is_used
rm $out/bin/zsh-${version} rm $out/bin/zsh-${version}
mkdir -p $out/share/doc/ mkdir -p $out/share/doc/