As reported in https://github.com/fish-shell/fish-shell/issues/12037, the following command man /etc/os-release no longer works on OpenBSD 7.8 because, as noted in their changelog: > For better consistency with POSIX and traditional UNIX and BSD man, > if the -l option is not specified, never interpret "name" command line > arguments as absolute or relative path names, not even for arguments > that contain a slash and that do not resolve to a manual page name. So the suggested alternative is to use man -l /etc/os-release Unfortunately, the -l option is not yet supported by FreeBSD's "man" command. I think we should add this, to make it easy for users to point "man" at an absolute path. For now we're planning to use this workaround, which is not ideal because it invokes man twice: if man -l "$file" >/dev/null 2>&1; then command man -l "$file" else # Work around FreeBSD/macOS command man "$file" fi Many users (across all OSs) will be running this workaround, but I hope the workaround will not cause real problems. So I labeled this "affects some users". (Yes, this is a fish idiosyncracy -- they use man to render temporarily materialized files; if I could go back in time I'd ask fish to install man pages in the correct location.)
> if man -l "$file" >/dev/null 2>&1 FWIW that workaround also needs `MANPAGER=cat WHATISPAGER=cat` to work around https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282414, else the if-condition might spawn a man pager..
*** This bug has been marked as a duplicate of bug 289245 ***
-l support is available in upcoming FreeBSD releases (15.0, 14.4). A workaround will be needed for existing releases (14.3, 13.5).