Update zsh patch

This commit is contained in:
Charlotte Van Petegem 2023-03-13 10:09:10 +01:00
parent 4e49d3ad2d
commit 113b9ffa2c
No known key found for this signature in database
GPG key ID: 019E764B7184435A

View file

@ -1,4 +1,4 @@
From 878c20de9c2b9fc4b3e777f5a4d9f5c3b2d723b5 Mon Sep 17 00:00:00 2001 From 8e2e741ab5bdea119a34013b1387eb3f281841cb Mon Sep 17 00:00:00 2001
From: Lin Jian <me@linj.tech> From: Lin Jian <me@linj.tech>
Date: Mon, 20 Feb 2023 02:26:31 +0800 Date: Mon, 20 Feb 2023 02:26:31 +0800
Subject: [PATCH] zsh: set environment variables in zshenv instead of zprofile Subject: [PATCH] zsh: set environment variables in zshenv instead of zprofile
@ -6,39 +6,55 @@ Subject: [PATCH] zsh: set environment variables in zshenv instead of zprofile
This patch fixes two issues: This patch fixes two issues:
1. The file in which environment variables are set is inconsistent. 1. The file in which environment variables are set is inconsistent.
- This file sets them in zprofile since 2011[1]. This is the case - This file sets them in zprofile when programs.zsh.enable is not
when programs.zsh.enable is not set. set.
- Zsh module sets them in zshenv since the very beginning in - Zsh module sets them in zshenv when programs.zsh.enable is set.
2012[2]. This is the case when programs.zsh.enable is set.
2. Setting environment variables in zprofile overrides what users set 2. Setting environment variables in zprofile overrides what users set
in .zshenv. See these[3] home-manager[4] issues[5]. in .zshenv. See these[1] home-manager[2] issues[3].
[1]: 0009c1f650ba619de97df36322fbd0346db0c099 /etc/profile is also changed to /etc/set-environment. Here is a
[2]: ffa4b28dcec622c98c1491a09c9b254dc13b0741 comparison:
[3]: https://github.com/nix-community/home-manager/issues/2751#issuecomment-1048682643
[4]: https://github.com/nix-community/home-manager/issues/2991 Using /etc/profile:
[5]: https://github.com/nix-community/home-manager/issues/3681#issuecomment-1436054233 - Pros
- config.environment.shellInit is sourced in all zsh
- Cons
- config.environment.loginShellInit is also sourced in non-login zsh
- config.programs.bash.shellInit is also sourced in all zsh
- config.programs.bash.loginShellInit is also sourced in all zsh
Using /etc/set-environment:
- Pros
- config.programs.bash.shellInit is not sourced in any zsh
- config.programs.bash.loginShellInit is not sourced in any zsh
- Cons
- config.environment.shellInit is not sourced in any zsh
- config.environment.loginShellInit is not sourced in any zsh
[1]: https://github.com/nix-community/home-manager/issues/2751#issuecomment-1048682643
[2]: https://github.com/nix-community/home-manager/issues/2991
[3]: https://github.com/nix-community/home-manager/issues/3681#issuecomment-1436054233
--- ---
.../manual/release-notes/rl-2305.section.md | 2 ++ .../manual/release-notes/rl-2305.section.md | 2 ++
pkgs/shells/zsh/default.nix | 24 +++++++++---------- pkgs/shells/zsh/default.nix | 28 ++++++++++---------
2 files changed, 14 insertions(+), 12 deletions(-) 2 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md
index 3e63ddced6115..bb3c5c3356eab 100644 index 3e63ddced6115..b3bf583236de1 100644
--- a/nixos/doc/manual/release-notes/rl-2305.section.md --- a/nixos/doc/manual/release-notes/rl-2305.section.md
+++ b/nixos/doc/manual/release-notes/rl-2305.section.md +++ b/nixos/doc/manual/release-notes/rl-2305.section.md
@@ -187,6 +187,8 @@ In addition to numerous new and upgraded packages, this release has the followin @@ -187,6 +187,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 is now configured with `--enable-zshenv=${placeholder "out"}/etc/zshenv` instead of `--enable-zprofile=${placeholder "out"}/etc/zprofile` and contents in the previous `$out/zsh/zprofile` is modified and moved to `$out/zsh/zshenv`. This change only affects NixOS systems where `programs.zsh.enable` is `false`: `zsh` now sources `/etc/profile` in the system-level zshenv instead of zprofile. +- 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.
diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix
index 5a003b889a04a..1fe94a9506db7 100644 index 5a003b889a04a..3a5a83ad1f8c1 100644
--- a/pkgs/shells/zsh/default.nix --- a/pkgs/shells/zsh/default.nix
+++ b/pkgs/shells/zsh/default.nix +++ b/pkgs/shells/zsh/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation { @@ -42,7 +42,7 @@ stdenv.mkDerivation {
@ -50,7 +66,7 @@ index 5a003b889a04a..1fe94a9506db7 100644
"--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,10 +64,10 @@ stdenv.mkDerivation { @@ -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/
@ -64,7 +80,10 @@ index 5a003b889a04a..1fe94a9506db7 100644
else else
emulate bash emulate bash
alias shopt=false alias shopt=false
@@ -75,23 +75,23 @@ if test -e /etc/NIXOS; then - . /etc/profile
+ if [ -z "$__NIXOS_SET_ENVIRONMENT_DONE" ]; then
+ . /etc/set-environment
+ fi
unalias shopt unalias shopt
emulate zsh emulate zsh
fi fi