guix_mirror_bot pushed a commit to branch master
in repository guix.

commit e778155f51e02e0a405fe74d3380e05cef49a2f8
Author: Ludovic Courtès <[email protected]>
AuthorDate: Thu Jul 17 17:33:21 2025 +0200

    profiles: Preserve Bash ‘HIST’ variables.
    
    This reduces the risk that, when using Bash, ‘guix shell --pure’ would
    spawn an instance of Bash that would ignore the user’s history-related
    settings.
    
    It is not bulletproof though: these variables as shell variables that
    need not be exported as environment variable.  When they are not
    exported, the user’s history-related settings would still be ignored.
    
    * guix/profiles.scm (%precious-variables): Add HIST variables from Bash.
    
    Change-Id: Id2898d67d2e70c083abbeacad3f0663940fb6789
---
 guix/profiles.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/guix/profiles.scm b/guix/profiles.scm
index a1df7eb683..8cf4903fb8 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013-2024 Ludovic Courtès <[email protected]>
+;;; Copyright © 2013-2025 Ludovic Courtès <[email protected]>
 ;;; Copyright © 2013 Nikita Karetnikov <[email protected]>
 ;;; Copyright © 2014, 2016 Alex Kost <[email protected]>
 ;;; Copyright © 2015 Mark H Weaver <[email protected]>
@@ -2136,7 +2136,14 @@ already effective."
 
 (define %precious-variables
   ;; Environment variables in the default 'load-profile' white list.
-  '("HOME" "USER" "LOGNAME" "DISPLAY" "XAUTHORITY" "TERM" "TZ" "PAGER"))
+  '("HOME" "USER" "LOGNAME" "DISPLAY" "XAUTHORITY" "TERM" "TZ" "PAGER"
+
+    ;; These Bash variables (which can also be environment variables) must be
+    ;; preserved.  Failure to preserve 'HISTSIZE', for instance, would lead
+    ;; Bash to use its default history size of 500 entries, possibly
+    ;; truncating the user's ~/.bash_history.
+    "HISTCONTROL" "HISTFILE" "HISTFILESIZE" "HISTIGNORE"
+    "HISTSIZE" "HISTTIMEFORMAT"))
 
 (define (purify-environment white-list white-list-regexps)
   "Unset all environment variables except those that match the regexps in

Reply via email to