~ruther/guix-local

2345e87c35d476bc5624ccf4d8bc9e2e25fc856f — Maxim Cournoyer 1 year, 5 months ago 279adf4
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
2 files changed, 20 insertions(+), 3 deletions(-)

M gnu/packages/bash.scm
M gnu/system/shadow.scm
M gnu/packages/bash.scm => gnu/packages/bash.scm +20 -0
@@ 10,6 10,7 @@
;;; Copyright © 2024 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2024 chris <chris@bumblehead.com>
;;; Copyright © 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; 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

M gnu/system/shadow.scm => gnu/system/shadow.scm +0 -3
@@ 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'