Re: git: 0a0f7486413c - main - man: Build manpages for all architectures

From: Kyle Evans <kevans_at_freebsd.org>
Date: Thu, 25 Nov 2021 15:56:54 UTC
On Thu, Nov 25, 2021 at 9:28 AM Fernando Apesteguía <fernape@freebsd.org> wrote:
>
> On Thu, Nov 25, 2021 at 4:15 PM Kyle Evans <kevans91@ksu.edu> wrote:
> >
> > On Thu, Nov 25, 2021 at 8:30 AM Andriy Gapon <avg@freebsd.org> wrote:
> > >
> > > On 25/11/2021 16:23, Baptiste Daroussin wrote:
> > >  > On Thu, Nov 25, 2021 at 03:57:41PM +0200, Andriy Gapon wrote:
> > > >> Looking at the output I got another thought: do we need architecture sub-dir
> > > >> links at all now that we install manpages to a main directory?
> > > >> Is there any benefit to having the same manpage in a directory (like man4)
> > > >> and its immediate subdirectory (like man4/arm) ?
> > > >>
> > > > Hardlink not in the same directory is imho a fragile setup anyway, what if a
> > > > user has different mount points here, the hardlink would be broken. while there
> > > > is little chances someone is doing that, history told me people are doing weird
> > > > things and if they haven't yet, they will soon.
> > > >
> > > > I continue to think this kind of links should be 1/ symlinks, 2/ relative
> > > > symlinks if they are in a situation which can become a cross device issue.
> > >
> > > Yeah... but are they needed at all? :-)
> > >
> >
> > It's handy in the sense that it'd be nice to install all arch manpages
>
> Not also handy. From the original commit:
> ----------
>      Building and installing architecture-specific man pages only
> raises a number of
>      problems:
>
>       * The https://www.freebsd.org/cgi/man.cgi is incomplete. As an
>         example, it does not show results for pae(4). The reason for this is
>         that the cgi interface runs on FreeBSD amd64.
>
>       * In FreeBSD amd64 some manual pages have broken X-refs. See hptrr(4)
>         for an example.
>
>       * Also, we have broken links in our Release Notes. This is a
>         consequence of the first point. See
>         https://www.freebsd.org/releases/13.0R/hardware/#proc-i386.

#1 and #3 are a broken man.cgi, and we should fix it or replace it. #2
is arguably not a real problem, the xref makes it clear it's an i386
concept and we reference, e.g., ports manpages that are inherently
broken with some frequency anyways; see: `find *bin | xargs  mandoc
-Tlint | grep Xr`, a subset of those are ports, although I haven't
counted.

>
> Would anyone try this patch
> https://people.freebsd.org/~fernape/fix-dnoroot.patch?
>
> It seems to work(around) the problem, at least with:
>
> makefs -D -B little -o label=FreeBSD_root -o version=2 ufs.part METALOG
> and
> tar -c -f archive.tbz  @METALOG
>
> Cheers.
> > on some machines, e.g., I develop arm stuff on amd64 and there are
> > some drivers that simply aren't applicable to amd64, I'd like to be
> > able to find those. I think the implementation is a bit odd, though,
> > leading into:
> >
> > > I mean, whichever way we install manpages they are always installed into manX.
> > > I do not see a point / benefit of having another copy / link / whatever in
> > > manX/arch.
> > >
> >
> > I guess I haven't read the context much here, but I don't see why
> > either. /usr/bin/man's built-in search behavior checks
> > $mandir/$machine and $mandir/$machine_arch before $mandir, it seems
> > like we should be leaving them there and letting man do its thing. If
> > you need a non-native arch then you can hopefully just poke around the
> > arch subdirs (presumably mostly section 4 pages) to figure it out.
> > There's a reason they're arch subdirs, and trying to install links or
> > arch-specific pages into the main $mandir is asking for trouble when
> > we actually have conflicting pages for whatever reason between archs.
> >
> > Thanks,
> >
> > Kyle Evans