groff_char.7 manpage broken

joerg van den hoff veedeehjay at gmail.com
Thu Aug 25 19:06:39 UTC 2022


hi ranga,
thanks for bothering. really appreciated :).

On 25.08.22 19:12, Sriranga Veeraraghavan wrote:
> 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 didn't think of this ("obvious") solution :). maybe I'll do that. for now I actually have settled 
for the `man -C' option (copy and adjust man.conf and put alias in my .kshrc (ksh just is a better 
shell than bash ;)). turns out when doing this one not only has to point man to the correct groff
executables but also add `-R' to the less options (not sure why this is necessary only for proper
display of the groff manpages while others don't need that flag, but anyway...).

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

yes, I will think about this. sounds overall like the cleanest solution. regarding PATH: I have 
opt/local/bin before /usr/bin etc. for a long time (not even sure whether macports relies on this 
order?). I understand that the system _might_ get confused if it finds incompatible executables, though.


best,
joerg

> 
> HTH,
> 
> -ranga
> 
>> On Aug 25, 2022, at 02:15, joerg van den hoff <veedeehjay at gmail.com> 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 <veedeehjay at gmail.com> 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.
>>>>
> 
> 


More information about the macports-users mailing list