Installing fish does not set make manpages available

I have been using fish on Manjaro KDE for a while and only recently did I notice that man fish does not show the manpage for fish. Instead it just returns

/t/stuff> man fish
No manual entry for fish

Additionally, trying to get help for fish functions does not work either:

/t/stuff> functions --help
fish: Missing man page for 'functions'. Did you install the documentation?

This is not something specific to my system though: it happens even on a freshly downloaded ISO from manjaro.org (KDE Plasma 21.0.5).

Looking at the paths under /usr/share/fish/man/, I can see that the manpages do exist so this has to be an issue with how manpages are discovered. Does anybody know if this is intended behaviour and if so, what’s the right way to go about fixing this?

Some applications inherited from Arch does not install man pages or documentation. Sometimes it is provided in an additional package - but it not a rule.

Also there is an indexer for man-pages - maybe it still need rebuilding?

sudo mandb

The fish package installs man pages in /usr/share/man/man1/fish/
These should be indexed as they are in the PATHs mentioned in /etc/man_db.conf

It also has got the man pages @hasref speaks about
in /usr/share/fish/man/man1

I don’t know what these are for or why they are kept in a separate location
but these are probably not indexed with the default configuration in/etc/man_db.conf

Thank you for taking the time to reply!

I tried rebuilding the man database using mandb but that does seem to help.

I guess you’d need to edit /etc/man_db.conf to include this somewhat unusual location
/usr/share/fish/man/

Interestingly enough, on both my current installation of Manjaro KDE and on a virtual machine booted with a fresh ISO from manjaro.org (KDE plasma 21.0.5), after installing fish, there are no fish manpages under /usr/share/man/man1/fish/. The directory does not exist:

manjaro@manjaro ~> ls /usr/share/man/man1/ | grep fish
manjaro@manjaro ~ [0|1]> cd /usr/share/man/man1/fish/
cd: The directory "/usr/share/man/man1/fish/" does not exist

In fact, the only directories under /usr/share/ which are named “fish” are the following:

manjaro@manjaro /u/share> find ./ -type d -name 'fish'
./doc/fish
./doc/HTML/ca/kioslave5/fish
./doc/HTML/de/kioslave5/fish
./doc/HTML/en/kioslave5/fish
./doc/HTML/es/kioslave5/fish
./doc/HTML/et/kioslave5/fish
./doc/HTML/fr/kioslave5/fish
./doc/HTML/gl/kioslave5/fish
./doc/HTML/it/kioslave5/fish
./doc/HTML/nl/kioslave5/fish
./doc/HTML/pt/kioslave5/fish
./doc/HTML/pt_BR/kioslave5/fish
./doc/HTML/ru/kioslave5/fish
./doc/HTML/sr/kioslave5/fish
./doc/HTML/sv/kioslave5/fish
./doc/HTML/uk/kioslave5/fish
./fish
find: './polkit-1/rules.d': Permission denied

I don’t have fish installed - I just looked inside the package and this is what I saw.
I don’t know why the contents of the package would not be all installed - or selectively.
To test this I just installed it:

ls /usr/share/man/man1/ | grep fish
fish.1.gz
fish_indent.1.gz
fish_key_reader.1.gz

that’s the result

Oh, ok.
Never mind.
… the little differences - once again :wink:
I run Arch.
When I tested in in my Manjaro VM
the man pages are indeed not there.

Sorry!

I’d have thought that this package was the same as in Arch.
Apparently not.

Note to self:
do not assume anything if knowing is easily possible :wink:

No worries. :wink:

Funnily enough that’s exactly why I posted this: man fish works perfectly on my other system running Arch too and I see the same files as you do under /usr/share/man/man1 but for some reason this seems to be broken on Manjaro.

I have tried setting MANDATORY_MANPATH /usr/share/fish/man in /etc/man_db.conf (and ~/.manpath) and updating the database using sudo mandb but this does not help either. manpath -d does confirm that the Mandatory mandir is being set but man fish still returns nothing. Of course, reading the pages directly man /usr/share/fish/man/man1/1/fish.1 does work but that’s a little inconvenient.