From 2345e87c35d476bc5624ccf4d8bc9e2e25fc856f Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 6 May 2025 15:59:01 +0900 Subject: [PATCH] gnu: bash: Define the SYS_BASHRC macro. This causes Bash to treat /etc/bashrc as a startup file, removing the need to source /etc/bashrc from ~/.bashrc. * gnu/packages/bash.scm (bash-fixed): New package, with added SYS_BASHRC define. (bash) [replacement]: Use it. * gnu/system/shadow.scm (%default-bashrc): Do not source /etc/bashrc, now done implicitly. Change-Id: I5b0afd7d81653ef19c482e5501efdf7e50ef37c0 --- gnu/packages/bash.scm | 20 ++++++++++++++++++++ gnu/system/shadow.scm | 3 --- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index c88f38f5376..bcd78d7d2a9 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2024 Oleg Pykhalov ;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; Copyright © 2024 chris +;;; Copyright © 2025 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -137,6 +138,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." (version "5.1")) (package (name "bash") + (replacement bash-fixed) (source (origin (method url-fetch) (uri (string-append @@ -254,6 +256,24 @@ without modification.") (license license:gpl3+) (home-page "https://www.gnu.org/software/bash/")))) +(define bash-fixed + (package + (inherit bash) + (arguments + (substitute-keyword-arguments (package-arguments bash) + ((#:modules modules '%default-gnu-modules) + (append '((ice-9 receive) + (srfi srfi-1) + (srfi srfi-26)) + modules)) + ((#:configure-flags flags) + #~(receive (cppflags flags) + (partition (cut string-prefix? "CPPFLAGS" <>) + #$flags) + (cons (string-append (first cppflags) + " -DSYS_BASHRC='\"/etc/bashrc\"'") + flags))))))) + (define-public bash-minimal ;; A stripped-down Bash for non-interactive use. (package/inherit bash diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index 7258a57dc6a..b9a5a6134bc 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -165,9 +165,6 @@ then return fi -# Source the system-wide file. -[ -f /etc/bashrc ] && source /etc/bashrc - alias ls='ls -p --color=auto' alias ll='ls -l' alias grep='grep --color=auto'