summaryrefslogtreecommitdiff
path: root/pkgs/shells/bash (follow)
Commit message (Expand)AuthorAgeFilesLines
* bash: Make interactive the default•••The status quo of `bash` not being interactive is frustrating for many users, because trying to use it interactively is just messed up, and `bashInteractive` is not intuitive and barely discoverable. This was brought to my (and many others) attention by @stahnma in his [talk at CfgMgmtCamp 2025](https://cfp.cfgmgmtcamp.org/ghent2025/talk/YUVUTN/), where he highlighted this as one of the frustrations he ran into when learning Nix. Why this is fine: - No reason for not making interactive the default was given in the original commit (6c6ff6f36ff26932aa730875bd237c8e37210f0e), but probably it was due to the increase in closure size - The closure size only increases by 6.9MiB (19.5%) today, with the added dependency on the store paths for readline and ncurses, which are needed on systems in almost all cases anyways - If somebody really needs to get a more minimal system, they can use the newly-introduced `bashNonInteractive` instead now - Though to apply it consistently, they'll need to do that in an overlay like ``` final: prev: { bash = self.bashNonInteractive; } ``` Or alternatively using the `system.replaceDependencies.replacements` NixOS option approach. While there's also other such `*Interactive` packages that could use the same treatment, `bash` is a great start. This was already attempted before in https://github.com/NixOS/nixpkgs/pull/151227, but was not continued for unknown reason. To avoid stdenv becoming bigger, all uses of bash in the (working) stdenv's are changed to the explicitly non-interactive version here. This commit will however still cause a mass rebuild for all packages (and reverse deps) making use of the default bash. Silvan Mosberger2025-02-051-2/+1
* bash: Deprecate unnecessary withDocs flag•••Bash is distributing the rendered docs with the source, so no build tools are used or needed anymore. This was not the case originally, see dd91141a06860bea45b0e4a4a33f4c3980965325 Silvan Mosberger2025-02-051-3/+4
* bash: define DEFAULT_LOADABLE_BUILTINS_PATH for non-FHS builds (#290165)misuzu2024-12-141-0/+1
|\
| * bash: define DEFAULT_LOADABLE_BUILTINS_PATH for non-FHS builds•••this compile-time constant becomes the runtime value for BASH_LOADABLES_PATH when otherwise not set. it was added in bash 4.4, with an upstream default of: "/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:." (see: <https://git.savannah.gnu.org/cgit/bash.git/tree/config-top.h?h=bash-5.2#n83>) and is documented here: <https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#index-enable> nixpkgs' bash already builds these loadables: this patch simply improves the ergonomics, from: ``` bash -i $ BASH_LOADABLES_PATH="$(dirname $(which bash))/../lib/bash" $ enable -f realpath realpath $ realpath ... ``` to: ``` bash -i $ enable -f realpath realpath $ realpath ... ``` Co-authored-by: Arne Keller <2012gdwu+github@posteo.de> Colin2024-12-021-0/+1
* | treewide: format all inactive Nix files•••After final improvements to the official formatter implementation, this commit now performs the first treewide reformat of Nix files using it. This is part of the implementation of RFC 166. Only "inactive" files are reformatted, meaning only files that aren't being touched by any PR with activity in the past 2 months. This is to avoid conflicts for PRs that might soon be merged. Later we can do a full treewide reformat to get the rest, which should not cause as many conflicts. A CI check has already been running for some time to ensure that new and already-formatted files are formatted, so the files being reformatted here should also stay formatted. This commit was automatically created and can be verified using nix-build https://github.com/infinisil/treewide-nixpkgs-reformat-script/archive/a08b3a4d199c6124ac5b36a889d9099b4383463f.tar.gz \ --argstr baseRev 57b193d8ddeaf4f5219d2bae1d23b081e4906e57 result/bin/apply-formatting $NIXPKGS_PATH Silvan Mosberger2024-12-101-37/+37
|/
* treewide: migrate packages to pkgs/by-name, take 1•••We are migrating packages that meet below requirements: 1. using `callPackage` 2. called path is a directory 3. overriding set is empty (`{ }`) 4. not containing path expressions other than relative path (to makenixpkgs-vet happy) 5. not referenced by nix files outside of the directory, other than`pkgs/top-level/all-packages.nix` 6. not referencing nix files outside of the directory 7. not referencing `default.nix` (since it's changed to `package.nix`) 8. `outPath` doesn't change after migration The tool is here: https://github.com/Aleksanaa/by-name-migrate. aleksana2024-11-096-340/+0
* bash: add FreeBSD to static cross compilation special caseAudrey Dutcher2024-11-041-2/+2
* bash: 5.2p32 -> 5.2p37Sergei Trofimovich2024-09-271-0/+5
* treewide: replace `stdenv.is` with `stdenv.hostPlatform.is`•••In preparation for the deprecation of `stdenv.isX`. These shorthands are not conducive to cross-compilation because they hide the platforms. Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way One example of why this is bad and especially affects compiler packages https://www.github.com/NixOS/nixpkgs/pull/343059 There are too many files to go through manually but a treewide should get users thinking when they see a `hostPlatform.isX` in a place where it doesn't make sense. ``` fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is" fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is" ``` Artturin2024-09-252-2/+2
* bash: `badPlatforms` `mingw`•••`bash` doesn't compile for `mingw` https://www.github.com/NixOS/nixpkgs/issues/333338 Artturin2024-09-121-0/+2
* bash: add upstream fix for `pop_var_context` error•••Closes: #214822 Emily2024-08-012-0/+19
* bash: 5.2p26 -> 5.2p32•••Replace one patch with its upstream version. Emily2024-08-012-5/+6
* treewide: remove unused with statements from maintainer lists•••$ find -type f -name '*.nix' -print0 | xargs -P "$(nproc)" -0 sed -i \ -e 's!with lib.maintainers; \[ *\];![ ];!' \ -e 's!with maintainers; \[ *\];![ ];!' Jörg Thalheim2024-07-291-1/+1
* bash-5: remove dtzWill as maintainer [orphan]•••Since theey is not active in a long span of time. Anderson Torres2024-07-171-1/+1
* bash: Fix OpenBSD build•••See added code comment for details John Ericson2024-06-291-0/+4
* bash-completion: add philiptaron as maintainerPhilip Taron2024-06-251-1/+1
* various: Enable updateAutotoolsGnuConfigScriptsHook•••Prior to August 2023, any config.guess generated by autoconf will include a hardcoded /usr/bin/uname invocation for FreeBSD on any architecture other than arm. This clearly doesn't work under nix. We must then update or otherwise patch each old config.guess. Audrey Dutcher2024-05-271-1/+2
* Merge pull request #310322 from r-ryantm/auto-update/bash-completion•••bash-completion: 2.13.0 -> 2.14.0Sandro2024-05-191-4/+3
|\
| * bash-completion: 2.13.0 -> 2.14.0R. Ryantm2024-05-181-4/+3
* | bash: Fix build on FreeBSD crossAudrey Dutcher2024-05-181-0/+4
|/
* maintainers: remove KamilaBorowskaKamila Borowska2024-04-211-1/+1
* bash-completion: 2.11 -> 2.13.0R. Ryantm2024-04-061-2/+2
* treewide: add meta.mainProgram to packages with a single binary•••The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible. stuebinm2024-03-191-0/+1
* Merge master into staging-nextgithub-actions[bot]2024-02-071-1/+9
|\
| * nix-bash-completions: fix improper escapingNaïm Favier2024-01-311-1/+9
* | bash: 5.2p21 -> 5.2p26•••While at it exposed patch suffix as a `version` attribute. Sergei Trofimovich2024-01-172-3/+9
|/
* bash: 5.2p15 -> 5.2p21Sergei Trofimovich2023-11-231-0/+6
* nix-bash-completions: Drop nixos-rebuild completionSamuel Dionne-Riel2023-10-221-1/+4
* Merge pull request #257358 from Artturin/bashunnecessaryexpliciArtturi2023-09-301-2/+1
|\
| * bash: Remove unnecessary explicit passing of `binutils`•••`binutils` for darwin was added in (add binutils to bash build for size)[9c153e2227d3c66c645718355b0ed381f664afa5]. The override was added in (bash: provide a working binutils)[9e05276949045b8620a0ebd7de3aa75bb6af21cc]. Artturin2023-09-261-2/+1
* | Merge #250128: bash: disable bash-malloc everywhere•••...into staging Vladimír Čunát2023-09-161-1/+6
|\ \ | |/ |/|
| * bash: disable `bash-malloc` everywhere, not just on `musl`•••TIme to time I bump into pathological behaviour of `bash` memory allocator. Today's example: $ time { ls /nix/store/ > /dev/null; } real 0m0,965s user 0m0,876s sys 0m0,087s $ time { echo /nix/store/* > /dev/null; } real 2m18,287s user 2m17,946s sys 0m0,125s $ time { echo /nix/store/* > /dev/null; } real 0m1,764s user 0m1,712s sys 0m0,048s Note how initial `echo` takes alsmot 2 minutes to finish. Let's rely on system's allocator instead. After the change initial run is fast again: $ time { echo /nix/store/* > /dev/null; } real 0m1,328s user 0m1,264s sys 0m0,063s Sergei Trofimovich2023-08-191-1/+6
* | bash: fix parallel build failure on unwind_prot.o•••As reported by Robert Scott in https://github.com/NixOS/nixpkgs/pull/245066 without the change `make -j8` build of `make` occasionally fails to buildin parallel. The simplest reproducer is: $$ ./configure $$ make unwind_prot.o ... In file included from unwind_prot.c:51: In file included from ./bashintl.h:30: ./include/gettext.h:27:11: fatal error: 'libintl.h' file not found # include <libintl.h> ^~~~~~~~~~~ 1 error generated. make: * [Makefile:106: unwind_prot.o] Error 1 The change adds missing ttransitive `${LIBINTL_H}` dependency for unwind_prot.o. Sergei Trofimovich2023-07-242-0/+16
|/
* blesh: 0.3.4 -> 0.4.0-devel3R. Ryantm2023-07-111-2/+2
* pkgs: fix typosfigsoda2023-05-191-1/+1
* blesh: 2022-07-29 -> 0.3.4•••https://github.com/akinomyoga/ble.sh/releases/tag/v0.3.4 Mario Rodas2023-04-041-3/+3
* blesh: fix pnameMario Rodas2023-01-281-1/+1
* treewide: move NIX_CFLAGS_COMPILE to the env attrset•••with structuredAttrs lists will be bash arrays which cannot be exported which will be a issue with some patches and some wrappers like cc-wrapper this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists in env cause a eval failure Artturin2023-02-221-1/+1
* Merge master into staging-nextgithub-actions[bot]2023-02-121-0/+3
|\
| * bash: add pkgsStatic.bash to passthru•••to prevent regressions on updates Sandro Jäckel2023-02-121-0/+3
* | bash: add debug infoAlyssa Ross2023-01-291-0/+2
* | bash: apply static fix unconditionally•••To ease maintenance. Alyssa Ross2023-01-231-4/+5
|/
* treewide: switch to nativeCheckInputs•••checkInputs used to be added to nativeBuildInputs. Now we have nativeCheckInputs to do that instead. Doing this treewide change allows to keep hashes identical to before the introduction of nativeCheckInputs. Guillaume Girol2023-01-213-3/+3
* pkgsStatic.bash: fix build•••Link: https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00000.html Alyssa Ross2023-01-131-1/+6
* Merge branch 'staging-next' into staging•••- readline6 attribute removed from all-packages.nix in d879125d61a0be8ecb2afddaca8f2b0530db0260 - readline attribute was bumped to readline82 in 50adabdd60d590c951824974356a9ccb9bb73ffc Jan Tojnar2023-01-021-3/+8
|\
| * Merge pull request #207224 from ncfavier/nix-bash-completionsNaïm Favier2023-01-011-3/+8
| |\
| | * nix-bash-completions: don't handle the `nix` command•••See https://github.com/hedning/nix-bash-completions/issues/20. Even with the low priority on this package, completing `nix-build` will load the nix-bash-completion for the `nix` command, which is undesirable since Nix provides its own completion since 2.4. The maintainer seems unresponsive. Naïm Favier2022-12-221-3/+8
* | | bash: 5.1 -> 5.2Markus Napierkowski2022-12-285-46/+45
|/ /
* / bash: remove ? null inputs, other little cleanupsSandro Jäckel2022-12-271-30/+18
|/
* Merge branch 'staging-next' into stagingVladimír Čunát2022-12-091-24/+27
|\