| Commit message (Expand) | Author | Age | Files | Lines |
| * | 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 Mosberger | 2025-02-05 | 1 | -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 Mosberger | 2025-02-05 | 1 | -3/+4 |
| * | bash: define DEFAULT_LOADABLE_BUILTINS_PATH for non-FHS builds (#290165) | misuzu | 2024-12-14 | 1 | -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>
| Colin | 2024-12-02 | 1 | -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 Mosberger | 2024-12-10 | 1 | -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.
| aleksana | 2024-11-09 | 6 | -340/+0 |
| * | bash: add FreeBSD to static cross compilation special case | Audrey Dutcher | 2024-11-04 | 1 | -2/+2 |
| * | bash: 5.2p32 -> 5.2p37 | Sergei Trofimovich | 2024-09-27 | 1 | -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"
```
| Artturin | 2024-09-25 | 2 | -2/+2 |
| * | bash: `badPlatforms` `mingw`•••`bash` doesn't compile for `mingw`
https://www.github.com/NixOS/nixpkgs/issues/333338
| Artturin | 2024-09-12 | 1 | -0/+2 |
| * | bash: add upstream fix for `pop_var_context` error•••Closes: #214822
| Emily | 2024-08-01 | 2 | -0/+19 |
| * | bash: 5.2p26 -> 5.2p32•••Replace one patch with its upstream version.
| Emily | 2024-08-01 | 2 | -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 Thalheim | 2024-07-29 | 1 | -1/+1 |
| * | bash-5: remove dtzWill as maintainer [orphan]•••Since theey is not active in a long span of time.
| Anderson Torres | 2024-07-17 | 1 | -1/+1 |
| * | bash: Fix OpenBSD build•••See added code comment for details
| John Ericson | 2024-06-29 | 1 | -0/+4 |
| * | bash-completion: add philiptaron as maintainer | Philip Taron | 2024-06-25 | 1 | -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 Dutcher | 2024-05-27 | 1 | -1/+2 |
| * | Merge pull request #310322 from r-ryantm/auto-update/bash-completion•••bash-completion: 2.13.0 -> 2.14.0 | Sandro | 2024-05-19 | 1 | -4/+3 |
| |\ |
|
| | * | bash-completion: 2.13.0 -> 2.14.0 | R. Ryantm | 2024-05-18 | 1 | -4/+3 |
| * | | bash: Fix build on FreeBSD cross | Audrey Dutcher | 2024-05-18 | 1 | -0/+4 |
| |/ |
|
| * | maintainers: remove KamilaBorowska | Kamila Borowska | 2024-04-21 | 1 | -1/+1 |
| * | bash-completion: 2.11 -> 2.13.0 | R. Ryantm | 2024-04-06 | 1 | -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.
| stuebinm | 2024-03-19 | 1 | -0/+1 |
| * | Merge master into staging-next | github-actions[bot] | 2024-02-07 | 1 | -1/+9 |
| |\ |
|
| | * | nix-bash-completions: fix improper escaping | Naïm Favier | 2024-01-31 | 1 | -1/+9 |
| * | | bash: 5.2p21 -> 5.2p26•••While at it exposed patch suffix as a `version` attribute.
| Sergei Trofimovich | 2024-01-17 | 2 | -3/+9 |
| |/ |
|
| * | bash: 5.2p15 -> 5.2p21 | Sergei Trofimovich | 2023-11-23 | 1 | -0/+6 |
| * | nix-bash-completions: Drop nixos-rebuild completion | Samuel Dionne-Riel | 2023-10-22 | 1 | -1/+4 |
| * | Merge pull request #257358 from Artturin/bashunnecessaryexplici | Artturi | 2023-09-30 | 1 | -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].
| Artturin | 2023-09-26 | 1 | -2/+1 |
| * | | Merge #250128: bash: disable bash-malloc everywhere•••...into staging
| Vladimír Čunát | 2023-09-16 | 1 | -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 Trofimovich | 2023-08-19 | 1 | -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 Trofimovich | 2023-07-24 | 2 | -0/+16 |
| |/ |
|
| * | blesh: 0.3.4 -> 0.4.0-devel3 | R. Ryantm | 2023-07-11 | 1 | -2/+2 |
| * | pkgs: fix typos | figsoda | 2023-05-19 | 1 | -1/+1 |
| * | blesh: 2022-07-29 -> 0.3.4•••https://github.com/akinomyoga/ble.sh/releases/tag/v0.3.4
| Mario Rodas | 2023-04-04 | 1 | -3/+3 |
| * | blesh: fix pname | Mario Rodas | 2023-01-28 | 1 | -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
| Artturin | 2023-02-22 | 1 | -1/+1 |
| * | Merge master into staging-next | github-actions[bot] | 2023-02-12 | 1 | -0/+3 |
| |\ |
|
| | * | bash: add pkgsStatic.bash to passthru•••to prevent regressions on updates
| Sandro Jäckel | 2023-02-12 | 1 | -0/+3 |
| * | | bash: add debug info | Alyssa Ross | 2023-01-29 | 1 | -0/+2 |
| * | | bash: apply static fix unconditionally•••To ease maintenance.
| Alyssa Ross | 2023-01-23 | 1 | -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 Girol | 2023-01-21 | 3 | -3/+3 |
| * | pkgsStatic.bash: fix build•••Link: https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00000.html
| Alyssa Ross | 2023-01-13 | 1 | -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 Tojnar | 2023-01-02 | 1 | -3/+8 |
| |\ |
|
| | * | Merge pull request #207224 from ncfavier/nix-bash-completions | Naïm Favier | 2023-01-01 | 1 | -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 Favier | 2022-12-22 | 1 | -3/+8 |
| * | | | bash: 5.1 -> 5.2 | Markus Napierkowski | 2022-12-28 | 5 | -46/+45 |
| |/ / |
|
| * / | bash: remove ? null inputs, other little cleanups | Sandro Jäckel | 2022-12-27 | 1 | -30/+18 |
| |/ |
|
| * | Merge branch 'staging-next' into staging | Vladimír Čunát | 2022-12-09 | 1 | -24/+27 |
| |\ |
|