diff --git a/nixos/modules/config/system-environment.nix b/nixos/modules/config/system-environment.nix index aaf5e521350f..96cd67d93d40 100644 --- a/nixos/modules/config/system-environment.nix +++ b/nixos/modules/config/system-environment.nix @@ -11,6 +11,23 @@ let cfg = config.environment; + suffixedVariables = lib.flip lib.mapAttrs cfg.profileRelativeSessionVariables ( + envVar: suffixes: + lib.flip lib.concatMap cfg.profiles (profile: map (suffix: "${profile}${suffix}") suffixes) + ); + + combinedSessionVars = lib.zipAttrsWith (n: lib.concatLists) [ + # Make sure security wrappers are prioritized without polluting + # shell environments with an extra entry. Sessions which depend on + # pam for its environment will otherwise have eg. broken sudo. In + # particular Gnome Shell sometimes fails to source a proper + # environment from a shell. + { PATH = [ config.security.wrapperDir ]; } + + (lib.mapAttrs (n: lib.toList) cfg.sessionVariables) + suffixedVariables + ]; + in { @@ -73,13 +90,11 @@ in }; config = { + environment.etc."environment.d/50-systemd-path.conf".text = '' + PATH="${lib.concatStringsSep ":" combinedSessionVars.PATH}" + ''; environment.etc."pam/environment".text = let - suffixedVariables = lib.flip lib.mapAttrs cfg.profileRelativeSessionVariables ( - envVar: suffixes: - lib.flip lib.concatMap cfg.profiles (profile: map (suffix: "${profile}${suffix}") suffixes) - ); - # We're trying to use the same syntax for PAM variables and env variables. # That means we need to map the env variables that people might use to their # equivalent PAM variable. @@ -88,21 +103,7 @@ in pamVariable = n: v: ''${n} DEFAULT="${lib.concatStringsSep ":" (map replaceEnvVars (lib.toList v))}"''; - pamVariables = lib.concatStringsSep "\n" ( - lib.mapAttrsToList pamVariable ( - lib.zipAttrsWith (n: lib.concatLists) [ - # Make sure security wrappers are prioritized without polluting - # shell environments with an extra entry. Sessions which depend on - # pam for its environment will otherwise have eg. broken sudo. In - # particular Gnome Shell sometimes fails to source a proper - # environment from a shell. - { PATH = [ config.security.wrapperDir ]; } - - (lib.mapAttrs (n: lib.toList) cfg.sessionVariables) - suffixedVariables - ] - ) - ); + pamVariables = lib.concatStringsSep "\n" (lib.mapAttrsToList pamVariable combinedSessionVars); in '' ${pamVariables} diff --git a/pkgs/by-name/ty/ty/package.nix b/pkgs/by-name/ty/ty/package.nix index 5dfd15558983..0dde0db10465 100644 --- a/pkgs/by-name/ty/ty/package.nix +++ b/pkgs/by-name/ty/ty/package.nix @@ -17,7 +17,7 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "ty"; - version = "0.0.37"; + version = "0.0.38"; __structuredAttrs = true; src = fetchFromGitHub { @@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: { repo = "ty"; tag = finalAttrs.version; fetchSubmodules = true; - hash = "sha256-JzoZqZO2kACb8O3KuKsG650oYo6f+wG/PGa8zubaGxE="; + hash = "sha256-70Y5i9m2h2+Jc44jLOf+gXX/PeDbURRJ80y+6h5SlRk="; }; # For Darwin platforms, remove the integration test for file notifications, @@ -39,7 +39,7 @@ rustPlatform.buildRustPackage (finalAttrs: { cargoBuildFlags = [ "--package=ty" ]; - cargoHash = "sha256-3y7kqhAUXZ+Ui6quGEDSRXrh3ii9NJLoFWnGX/Mp0l4="; + cargoHash = "sha256-+c2JfB55w9otmmgTFIDMwkpASJV7bIMEf0uqRXjk/QM="; nativeBuildInputs = [ installShellFiles ]; buildInputs = [ rust-jemalloc-sys ];