Hi Joerg, It turns out that there is a version of man in macports. I just installed it and it creates a man.conf in /opt/local/etc that reference the macports versions of groff, tbl, etc. I believe that this is consistent with the macports philosophy of leaving the base system provided by Apple untouched as much as possible and providing alternatives / equivalents that can be updated by macports independent of any change Apple may make to the base system.
I think that a solution to your issue may be to install the man port and then use an alias / shell function to make sure man invokes /opt/local/bin/man instead of the system’s default man (you could also change your PATH environment variable so that /opt/local/bin comes before the system directories such as /usr/bin, but this could lead to hard to debug problems). HTH, -ranga > On Aug 25, 2022, at 02:15, joerg van den hoff <[email protected]> wrote: > > hi ranga, > > thank you for the reply. > > On 25.08.22 03:48, Sriranga Veeraraghavan wrote: >> Hi Joerg, >> My experience with macports (as a user) is that macports rarely, if ever, >> modifies system configuration files provided by Apple. I think that >> '/private/etc/man.conf’ falls in to this category, so I would say that it is >> probably up to the user to make any changes they want to this file. >> An potential solution for you might be to create your own customized >> man.conf with the paths you want for the various commands and then use an >> alias or shell function for man that runs “man -C [path to personal >> man.conf]”. > > yes, that would be a work around, I agree. > > but in my view the principle behaviour is buggy: > > * I use macports installed groff > > * PATH and MANPATH are adjusted by macports so that usually the correct groff > binaries (groff, gtroff, grops, etc, but especially also tbl and eqn) as > installed by macports are found and > `man' queries/displays the correct (macports installed) manpages. > > * however, the latter (manpage display) is done using the unmodified default > /private/etc/man.conf which causes system installed tbl to be used which only > works (as far as groff_char(7) is concerned) if it is fully compatible with > the (newer) macports installed tbl (or so it seems). > > I would argue: if the macports `tbl' is earlier on PATH than it also should > be used by `man' -- which would probably imply that `ports' modfies man.conf. > or am I mistaken? > > best, > joerg > > > >> Best, >> -ranga >>> On Aug 13, 2022, at 07:34, joerg van den hoff <[email protected]> wrote: >>> >>> re the below issue (reported in previous mail): >>> >>> `man -d groff_char' says: >>> >>> (cd "/opt/local/man" && (echo ".ll 14.3i"; echo ".nr LL 14.3i"; >>> /usr/bin/gunzip -c '/opt/local/man/man7/groff_char.7.gz') | /usr/bin/tbl | >>> /usr/bin/groff -Wall -mtty-char -Tascii -mandoc -c | (/usr/bin/less -is || >>> true)) >>> >>> so `man' uses the system-install of `tbl' and `groff' (rather than the >>> macports-installed groff package). this seems to be the issue: changing >>> `tbl' to the macports variant (system groff >>> is at 1.19, macports' groff at 1.22.4) and adding `-R' to the `less' >>> options leads to a seemingly sane display. this looks like some post-1.19 >>> change to `tbl' broke backwards compatibility. >>> >>> so it's not the man page that is broken but the `man' pipeline using >>> "wrong" `tbl'. this in turn >>> seems to point to man.conf (5). the file /private/etc/man.conf indeed >>> contains absolute paths to >>> system `tbl', `groff' etc. question: is this the user's responsibility to >>> adjust that file or should macports `man' take care of this via including >>> `man -C private_man.conf' into the constructed pipeline and putting the >>> correct (macports) paths there? >>> >>> best, >>> joerg >>> >>> ====original mail==== >>> >>> this concerns the `groff' package: `man groff_char' is broken (again, I >>> believe, after having worked correctly some time ago). >>> >>> `man groff_char' first lists a bunch of `tbl' warnings and the then >>> displayed manpage >>> does not display any of the tables supposed to give the overview of >>> "available glyphs on the currently used output device" (terminal, usually, >>> but possibly postscript). look, e.g. for "Ligatures and Other Latin >>> Glyphs". does neither work for terminal output nor for postscript (`man >>> -t'). >>> >>> this is on 10.15.7 with groff @1.22.4_6. >>>
