Package: fish
Version: 3.3.1+ds-2
Severity: important
X-Debbugs-Cc: dkm+deb...@kataplop.net

Dear Maintainer,

It seems that something is not behaving correctly wrt login shell.
I have a very simple config:
 - ~/.config/fish/conf.d/arrakis.fish that add paths using fish_add_path
 - ~/.config/fish/config.fish that uses a command located in one of the path 
added before

In a login shell, the PATH is reset in between, leading to the command not 
being found and all children having an incorrect $PATH (in my case, sway can't 
find anything located in my custom paths).

Here's a comparison with upstream package using the same 3.3.1 version:

❯ fish -l
in conf.d, before PATH: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin /usr/local/bin /usr/bin /bin /usr/local/games /usr/games
in conf.d, before fish_user_path: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin
in conf.d, after PATH: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin /usr/local/bin /usr/bin /bin /usr/local/games /usr/games
in conf.d, after fish_user_path: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin
in config.fish PATH: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin /usr/local/bin /usr/bin /bin /usr/local/games /usr/games
in config.fish fish_user_path: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin

With current sid package:
❯ fish -l
in conf.d, before PATH: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin /usr/local/bin /usr/bin /bin /usr/local/games /usr/games
in conf.d, before fish_user_path: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin
in conf.d, after PATH: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin /usr/local/bin /usr/bin /bin /usr/local/games /usr/games
in conf.d, after fish_user_path: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin
in config.fish PATH: /usr/local/bin /usr/bin /bin /usr/local/games /usr/games
in config.fish fish_user_path: /home/dkm/.fzf/bin /home/dkm/.cargo/bin 
/home/dkm/local/bin
fish: Unknown command: starship

You can see that $PATH is changed after processing the file in conf.d and 
before processing config.fish.

Here are the 2 config file:

config.fish:
---
echo in config.fish PATH: $PATH
echo in config.fish fish_user_path: $fish_user_paths

starship init fish | source
---

arrakis.fish:
---
echo in conf.d, before PATH: $PATH
echo in conf.d, before fish_user_path: $fish_user_paths

fish_add_path $HOME/local/bin
fish_add_path $HOME/.cargo/bin
fish_add_path $HOME/.fzf/bin

echo in conf.d, after PATH: $PATH
echo in conf.d, after fish_user_path: $fish_user_paths
---

Current workaround:
 - move fish_add_path in config.fish
 - use fish_add_path -P (default is not enough and yields same result as 
original config)

The upstream packages fish=3.3.1-1 fish-common=3.3.1-1 work as expected with 
the original configuration.

Thank you,
Marc

-- System Information:
Debian Release: bookworm/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.15.0-2-amd64 (SMP w/12 CPU threads)
Kernel taint flags: TAINT_CPU_OUT_OF_SPEC
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages fish depends on:
ii  bsdextrautils          2.37.2-4
ii  firefox [www-browser]  95.0-1
ii  fish-common            3.3.1+ds-2
ii  groff-base             1.22.4-7
ii  libc6                  2.32-5
ii  libpcre2-32-0          10.39-3
ii  libstdc++6             11.2.0-12
ii  libtinfo6              6.3-1
ii  man-db                 2.9.4-2
ii  python3                3.9.8-1
ii  w3m [www-browser]      0.5.3+git20210102-6

Versions of packages fish recommends:
ii  xsel  1.2.0+git9bfc13d.20180109-3

Versions of packages fish suggests:
pn  doc-base  <none>

-- no debconf information

Reply via email to