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.
>>> 

Reply via email to