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

Fernando Apesteguía fernape at freebsd.org
Tue Jul 6 21:42:53 UTC 2021


On Tue, Jul 6, 2021 at 11:03 AM Baptiste Daroussin <bapt at freebsd.org> wrote:
>
> On Wed, Jun 30, 2021 at 08:06:51AM +0000, Fernando Apesteguía wrote:
> > The branch main has been updated by fernape (doc, ports committer):
> >
> > URL: https://cgit.FreeBSD.org/src/commit/?id=0a0f7486413c147d56808b38055c40c64cff61f5
> >
> > commit 0a0f7486413c147d56808b38055c40c64cff61f5
> > Author:     Fernando Apesteguía <fernape at FreeBSD.org>
> > AuthorDate: 2021-06-09 10:58:04 +0000
> > Commit:     Fernando Apesteguía <fernape at FreeBSD.org>
> > CommitDate: 2021-06-30 07:57:51 +0000
> >
> >     man: Build manpages for all architectures
> >
> >     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.
> >
> >     Make MAN_ARCH default to 'all' so we build all the man pages for all the
> >     architectures. The difference in disk space is negligible. Also link
> >     architecture-specific man pages to their own section while keeping their own
> >     namespace.
> >
> >     PR: 212290
> >     Reported by:    mj at bsdops.com
> >     Approved by:    ceri@, wosch@
> >     MFC after:      4 weeks
> > ---
> >  sbin/Makefile                        | 6 ++++++
> >  share/man/man4/Makefile              | 4 +---
> >  share/man/man4/man4.aarch64/Makefile | 5 +++++
> >  share/man/man4/man4.arm/Makefile     | 5 +++++
> >  share/man/man4/man4.i386/Makefile    | 5 +++++
> >  share/man/man4/man4.powerpc/Makefile | 5 +++++
> >  share/man/man5/make.conf.5           | 2 +-
> >  usr.sbin/Makefile                    | 7 +++++++
> >  usr.sbin/apm/Makefile                | 4 ++++
> >  9 files changed, 39 insertions(+), 4 deletions(-)
> >
> > diff --git a/sbin/Makefile b/sbin/Makefile
> > index 64840bae82bb..f53e2f037ebe 100644
> > --- a/sbin/Makefile
> > +++ b/sbin/Makefile
> > @@ -90,6 +90,12 @@ SUBDIR.${MK_ZFS}+= zfsbootcfg
> >
> >  SUBDIR.${MK_TESTS}+= tests
> >
> > +# Add architecture-specific manpages
> > +# to be included anyway
> > +MAN=   sconfig/sconfig.8
> > +
> > +.include <bsd.prog.mk>
> > +
> >  .include <bsd.arch.inc.mk>
> >
> >  SUBDIR_PARALLEL=
> > diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
> > index 5051470edc71..9027fe7df841 100644
> > --- a/share/man/man4/Makefile
> > +++ b/share/man/man4/Makefile
> > @@ -895,9 +895,7 @@ _cgem.4=  cgem.4
> >  MLINKS+=cgem.4 if_cgem.4
> >  .endif
> >
> > -.if empty(MAN_ARCH)
> > -__arches=    ${MACHINE} ${MACHINE_ARCH} ${MACHINE_CPUARCH}
> > -.elif ${MAN_ARCH} == "all"
> > +.if empty(MAN_ARCH) || ${MAN_ARCH} == "all"
> >  __arches=    ${:!/bin/sh -c "/bin/ls -d ${.CURDIR}/man4.*"!:E}
> >  .else
> >  __arches=    ${MAN_ARCH}
> > diff --git a/share/man/man4/man4.aarch64/Makefile b/share/man/man4/man4.aarch64/Makefile
> > index 6714a47011ef..ef5fcd84ccd4 100644
> > --- a/share/man/man4/man4.aarch64/Makefile
> > +++ b/share/man/man4/man4.aarch64/Makefile
> > @@ -17,6 +17,11 @@ MAN=       \
> >       rk_i2c.4 \
> >       rk_pinctrl.4 \
> >
> > +# Link files to the parent directory
> > +.for _manpage in ${MAN}
> > +MLINKS+=${_manpage} ../${_manpage}
> > +.endfor
>
> This breaks make -DNO_ROOT in a subtle manner and so likely pkgbase.
>
> The right way to do it is to add something that uses INSTALL_RSYMLINK or alike.

I'll look into it.

Thanks!

>
> Best regards,
> Bapt


More information about the dev-commits-src-all mailing list