./shells/fish, User friendly command line shell for UNIX-like operating systems

[ Image CVSweb ] [ Image Homepage ] [ Image RSS ] [ Image Required by ]


Branch: CURRENT, Version: 4.7.1nb1, Package name: fish-4.7.1nb1, Maintainer: pkgsrc-users

fish is a smart and user friendly command line shell for UNIX-like
operating systems, written mainly with interactive use in mind.
fish includes features like syntax highlighting, autosuggest-as-you-type,
and fancy tab completions that just work, with no configuration required.

This is the 4.* branch of the fish shell, rewritten from scratch in
Rust, and actively maintained. Some features introduced in fish 4.*
are described in https://fishshell.com/blog/new-in-40/


Required to run:
[devel/gettext-tools] [devel/pcre2] [lang/python37] [devel/libatomic]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 2547.68 KB

Version history: (Expand)


CVS history: (Expand)


   2026-06-07 15:53:03 by Thomas Klausner | Files touched by this commit (1)
Log message:
fish: since we're not linking against pcre2 from pkgsrc, remove traces

Fixes
cargo/debug/xtask: Shared object "libpcre2-8.so.0" not found

see e.g.
https://releng.netbsd.org/pkgreports/shadow/HEAD/NetBSD-11.0-x86_64/20260525.0901/fish-4.7.1/install.log

Bump PKGREVISION.
   2026-05-10 20:46:49 by Paolo Vincenzo Olivo | Files touched by this commit (13) | Package removed
Log message:
shells/fish: update to 4.7.1

# pkgsrc changes
Illumos support has been upstreamed (yes!), hence most patches have been dropped.

# upstream changes (since 4.3.2)

fish 4.7.1 (released May 08, 2026)
==================================

This release fixes a regression in 4.7.0 that caused the web config \ 
(``fish_config``) to fail to start (:issue:`12717`).

fish 4.7.0 (released May 05, 2026)
==================================

Deprecations and removed features
---------------------------------
- The default theme (i.e. the ``fish_color_*`` variables) is no longer set in \ 
non-interactive shells.

Interactive improvements
------------------------
- :doc:`prompt_pwd <cmds/prompt_pwd>` now strips control characters.
- Repaint events (as triggered by changes to color variables or by event \ 
handlers running ``commandline -f repaint``) no longer reset the completion \ 
pager and other transient UI states (:issue:`12683`).
- :envvar:`fish_color_valid_path` now respects background and underline colors \ 
(:issue:`12622`).
- :doc:`funced <cmds/funced>` will no longer lose work if there are parse \ 
errors multiple times without new changes to the file.
- Fixed a case where directory completions were sorted in a surprising order \ 
(:issue:`12695`).
- When at the command token, the :kbd:`alt-o` binding will now open read-only \ 
files too (:issue:`12671`).
- Private mode in-memory history (``set fish_history``) is no longer shared with \ 
:doc:`builtin read <cmds/read>` (:issue:`12662`).

Other improvements
------------------
- History is no longer corrupted with NUL bytes when fish receives SIGTERM or \ 
SIGHUP (:issue:`10300`).
- :doc:`fish_update_completions <cmds/fish_update_completions>` now \ 
handles groff ``\X'...'`` device control escapes, fixing completion generation \ 
for man pages produced by help2man 1.50 and later (such as coreutils 9.10).
- Removing history entries via the :doc:`web-based config \ 
<cmds/fish_config>` is more intuitive.
- If :envvar:`XDG_DATA_DIRS` is empty, the default value is assumed, which means \ 
that fish will now also use configuration from paths like \ 
``$PREFIX/share/fish/vendor_completions.d`` (:issue:`11349`).
- Some internal file descriptors were moved to number 10 or higher, to reduce \ 
risk of clashes with those used by the user in scripts.
- The wording of error messages has been made consistent, especially for builtin \ 
subcommands (:issue:`12556`).

For distributors and developers
-------------------------------
- When the default global config directory (``$PREFIX/etc/fish``) exists but has \ 
been overridden via ``-DCMAKE_INSTALL_SYSCONFDIR``, fish will now respect that \ 
override (:issue:`10748`).
- ``build_tools/update_translations.fish`` has been replaced by ``cargo xtask \ 
gettext {check,new,update}`` (:issue:`12676`).
- ``cargo xtask shellcheck`` to lint shell-scripts.

Regression fixes:
-----------------
- (from 4.6) Vi mode ``dl`` (:issue:`12461`).
- (from 4.6) Backspace after newline (:issue:`12583`).
- (from 4.3.3) Long options were spuriously completed after typing short options \ 
(85e76ba3561).
- (from 3.2) ``nosuchcommand || echo hello`` executes the right hand side again \ 
(:issue:`12654`).

fish 4.6.0 (released March 28, 2026)
====================================

Notable improvements and fixes
------------------------------
- New Spanish translations (:issue:`12489`).
- New Japanese translations (:issue:`12499`).

Deprecations and removed features
---------------------------------
- The default width for emoji is switched from 1 to 2, improving the experience \ 
for users connecting to old systems from modern desktops. Users of old desktops \ 
who notice that lines containing emoji are misaligned can set \ 
``$fish_emoji_width`` back to 1 (:issue:`12562`).

Interactive improvements
------------------------
- The tab completion pager now left-justifies the description of each column \ 
(:issue:`12546`).
- fish now supports the ``SHELL_PROMPT_PREFIX``, ``SHELL_PROMPT_SUFFIX``, and \ 
``SHELL_WELCOME`` environment variables. The prefix and suffix are automatically \ 
prepended and appended to the left prompt, and the welcome message is displayed \ 
on startup after the greeting.
  These variables are set by systemd's ``run0`` for example (:issue:`10924`).

Improved terminal support
-------------------------
- ``set_color`` is able to turn off italics, reverse mode, strikethrough and \ 
underline individually (e.g. ``--italics=off``).
- ``set_color`` learned the foreground (``--foreground`` or ``-f``) and reset \ 
(``--reset``) options.
- An error caused by slow terminal responses at macOS startup has been addressed \ 
(:issue:`12571`).

Other improvements
------------------
- Signals like ``SIGWINCH`` (as sent on terminal resize) no longer interrupt \ 
builtin output (:issue:`12496`).
- For compatibility with Bash, fish now accepts ``|&`` as alternate spelling \ 
of ``&|``, for piping both standard output and standard error \ 
(:issue:`11516`).
- ``fish_indent`` now preserves comments and newlines immediately preceding a \ 
brace block (``{ }``) (:issue:`12505`).
- A crash when suspending certain pipelines with :kbd:`ctrl-z` has been fixed \ 
(:issue:`12301`).

For distributors and developers
-------------------------------
- ``cargo xtask`` subcommands no longer panic on test failures.

Regression fixes:
-----------------
- (from 4.5.0) Intermediate ``⏎`` artifact when redrawing prompt (:issue:`12476`).
- (from 4.4.0) ``history`` honors explicitly specified ``--color=`` again \ 
(:issue:`12512`).
- (from 4.4.0) Vi mode ``dl`` and ``dh`` (:issue:`12461`).
- (from 4.3.0) Error completing of commands starting with ``-`` (:issue:`12522`).

fish 4.5.0 (released February 17, 2026)
=======================================

This is mostly a patch release for Vi mode regressions in 4.4.0 but other minor \ 
behavior changes are included as well.

Interactive improvements
------------------------
- :kbd:`ctrl-l` no longer cancels history search (:issue:`12436`).
- History search cursor positioning now works correctly with characters of \ 
arbitrary width.

Deprecations and removed features
---------------------------------
- fish no longer reads the terminfo database to alter behaviour based on the \ 
:envvar:`TERM` environment variable, and does not depend on ncurses or terminfo. \ 
The ``ignore-terminfo`` feature flag, introduced and enabled by default in fish \ 
4.1, is now permanently enabled. fish may no longer work correctly on Data \ 
General Dasher D220 and Wyse WY-350 terminals, but should continue to work on \ 
all known terminal emulators released in the 21st century.

Regression fixes:
-----------------
- (from 4.4.0) Vi mode ``d,f`` key binding did not work (:issue:`12417`).
- (from 4.4.0) Vi mode ``c,w`` key binding wrongly deleted trailing spaces \ 
(:issue:`12443`).
- (from 4.4.0) Vi mode crash on ``c,i,w`` after accepting autosuggestion \ 
(:issue:`12430`).
- (from 4.4.0) ``fish_vi_key_bindings`` called with a mode argument produced an \ 
error (:issue:`12413`).
- (from 4.0.0) Build on Illumos (:issue:`12410`).

fish 4.4.0 (released February 03, 2026)
=======================================

Deprecations and removed features
---------------------------------
- The default fossil prompt has been disabled (:issue:`12342`).

Interactive improvements
------------------------
- The ``bind`` builtin lists mappings from all modes if ``--mode`` is not \ 
provided (:issue:`12214`).
- Line-wise autosuggestions that don't start a command are no longer shown \ 
(739b82c34db, 58e7a50de8a).
- Builtin ``history`` now assumes that :envvar:`PAGER` supports ANSI color sequences.
- fish now clears the terminal's ``FLUSHO`` flag when acquiring control of the \ 
terminal, to fix an issue caused by pressing :kbd:`ctrl-o` on macOS \ 
(:issue:`12304`).

New or improved bindings
------------------------
- Vi mode word movements (``w``, ``W``, ``e``, and ``E``) are now largely in \ 
line with Vim. The only exception is that underscores are treated as word \ 
separators (:issue:`12269`).
- New special input functions to support these movements: ``forward-word-vi``, \ 
``kill-word-vi``, ``forward-bigword-vi``, ``kill-bigword-vi``, \ 
``forward-word-end``, ``backward-word-end``, ``forward-bigword-end``, \ 
``backward-bigword-end``, ``kill-a-word``, ``kill-inner-word``, \ 
``kill-a-bigword``, and ``kill-inner-bigword``.
- Vi mode key bindings now support counts for movement and deletion commands \ 
(e.g. `d3w` or `3l`), via a new operator mode (:issue:`2192`).
- New ``catppuccin-*`` color themes.

Improved terminal support
-------------------------
- ``set_color`` learned the strikethrough (``--strikethrough`` or ``-s``) modifier.

For distributors and developers
-------------------------------
- The CMake option ``WITH_GETTEXT`` has been renamed to \ 
``WITH_MESSAGE_LOCALIZATION``, to reflect that it toggles localization \ 
independently of the backend used in the implementation.
- New ``cargo xtask`` commands can replace some CMake workflows.

Regression fixes:
-----------------
- (from 4.1.0) Crash when autosuggesting Unicode characters with nontrivial \ 
lowercase mapping (:issue:`12326`, 78f4541116e).
- (from 4.3.0) Glitch on ``read --prompt-str ""`` (:issue:`12296`).

fish 4.3.3 (released January 07, 2026)
======================================

This release fixes the following problems identified in fish 4.3.0:

- Selecting a completion could insert only part of the token (:issue:`12249`).
- Glitch with soft-wrapped autosuggestions and :doc:`fish_right_prompt \ 
<cmds/fish_right_prompt>` (:issue:`12255`).
- Spurious echo in tmux when typing a command really fast (:issue:`12261`).
- ``tomorrow`` theme always using the light variant (:issue:`12266`).
- ``fish_config theme choose`` sometimes not shadowing themes set by e.g. \ 
webconfig (:issue:`12278`).
- The sample prompts and themes are correctly installed (:issue:`12241`).
- Last line of command output could be hidden when missing newline (:issue:`12246`).

Other improvements include:

- The ``abbr``, ``bind``, ``complete``, ``functions``, ``history`` and ``type`` \ 
commands now support a ``--color`` option to control syntax highlighting in \ 
their output. Valid values are ``auto`` (default), ``always``, or ``never``.
- Existing file paths in redirection targets such as ``> file.txt`` are now \ 
highlighted using :envvar:`fish_color_valid_path`, indicating that ``file.txt`` \ 
will be clobbered (:issue:`12260`).
   2026-01-06 12:18:20 by Thomas Klausner | Files touched by this commit (51)
Log message:
*: forbid Python 3.11 for sphinx users

list from 'bob scan'
   2026-01-04 15:58:08 by Thomas Klausner | Files touched by this commit (2)
Log message:
fish: provide path to sphinx-build to cmake

fixes build
   2025-12-31 01:47:59 by Kevin Bloom | Files touched by this commit (9) | Package updated
Log message:
fish: update to 4.3.2

Packaging update:
- requires py-sphinx to make man pages now
- upstream fixed two patches!

4.3.2:
Some other bugs

4.3.1:
Fixes possible crash after expanding an abbreviation

4.3.0:
Deprecations and removed features
  - fish no longer sets universal variables by default, which
    simplifies configuration. Specifically, the fish_color_*,
    fish_pager_color_* and fish_key_bindings variables are now set in
    the global scope by default.
  - fish_config theme choose now clears only color variables that
    were set by earlier invocations of a fish_config theme choose
    command (which is how fish’s default theme is set).

Scripting improvements
  - New status language command allows showing and modifying
    language settings for fish messages without having to modify
    environment variables.

Interactive improvements
  - When typing immediately after starting fish, the first prompt is
    now rendered correctly.
  - Completion accuracy was improved for file paths containing = or :
  - Prefix-matching completions are now shown even if they don’t
    match the case typed by the user
  - Autosuggestions now also show soft-wrapped portions

New or improved bindings
  - ctrl-w (backward-kill-path-component) also deletes escaped spaces
  - New special input functions backward-path-component,
    forward-path-component and kill-path-component

Improved terminal support
  - Themes can now be made color-theme-aware by including both [light]
    and [dark] sections in the theme file
  - The working directory is now reported on every fresh prompt (via
    OSC 7), fixing scenarios where a child process (like ssh) left
    behind a stale working directory
  - OSC 133 prompt markers now also mark the prompt end, which
    improves shell integration with terminals like iTerm2
  - Operating-system-specific key bindings are now decided based on
    the terminal’s host OS.
  - Focus reporting is enabled unconditionally, not just inside tmux
   2025-12-18 20:31:11 by Paolo Vincenzo Olivo | Files touched by this commit (1)
Log message:
fish: partially revert last commit

Switch back to static pcre2, otherwise we can't safely build fish.
See https://mail-index.netbsd.org/tech-pkg/2025/12/18/msg031792.html
   2025-12-17 20:05:30 by Paolo Vincenzo Olivo | Files touched by this commit (4)
Log message:
shells/fish: fix dynamic linking with pcre2
   2025-12-15 21:58:44 by Paolo Vincenzo Olivo | Files touched by this commit (1)
Log message:
shells/fish: fix build

Disable dynamic linking against pkgsrc pcre2, otherwise fish fails the
runtime library search path check.
This will be reported upstream.