Page MenuHomeFreeBSD

man: Build manpages for all architectures
Needs RevisionPublic

Authored by fernape on Thu, Jun 10, 11:53 AM.

Details

Reviewers
ian
ceri
wosch
Group Reviewers
manpages
Summary

Building and installing _only_ architecture-specific man pages raises a number
of problems:

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 (suggested by ceri@).

Some discussion took place here

PR: 212290

Test Plan
  • Apply patch
  • cd <top_source_dir>/share/man/man4 && make && make install
  • Do a man pae. The page is available as a general manpage so man -m is not needed.
  • Check with ls -i that man4/pae.4 and man4/i386/pae.4 are the same file

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 39830
Build 36719: arc lint + arc unit

Event Timeline

fernape added reviewers: ian, ceri.

Looks good - have also tested with some (fake) conflicting files and the right thing happens.

This revision is now accepted and ready to land.Thu, Jun 10, 2:42 PM
wosch requested changes to this revision.Sun, Jun 13, 1:07 PM

The patch looks promising. But there are still some manual pages missing as

share/man/man8/powerpc/nvram.8.gz
share/man/man8/*/apm.8.gz
share/man/man8/*/apmconf.8.gz
share/man/man8/i386/apmd.8.gz
share/man/man8/i386/sconfig.8.gz

This revision now requires changes to proceed.Sun, Jun 13, 1:07 PM

The patch looks promising. But there are still some manual pages missing as

share/man/man8/powerpc/nvram.8.gz
share/man/man8/*/apm.8.gz
share/man/man8/*/apmconf.8.gz
share/man/man8/i386/apmd.8.gz
share/man/man8/i386/sconfig.8.gz

Those pages are listed in src/ObsoleteFiles.inc and does not seem to get installed in a new installation. At least not in my -CURRENT.

I understand building with something like MK_APM=yes will not remove the apm* man pages installed previously?

The patch looks promising. But there are still some manual pages missing as

share/man/man8/powerpc/nvram.8.gz
share/man/man8/*/apm.8.gz
share/man/man8/*/apmconf.8.gz
share/man/man8/i386/apmd.8.gz
share/man/man8/i386/sconfig.8.gz

Those pages are listed in src/ObsoleteFiles.inc and does not seem to get installed in a new installation. At least not in my -CURRENT.

Are you sure? Please check the correct pathes, e.g.

egrep share/man/man8/i386/sconfig.8.gz ObsoleteFiles.inc

returns zero hits for FreeBSD-14-current (main branch).

Second, you are aware that you have to patch stable/13 and stable/12 as well? Otherwise the fixes will be not part of our next supported releases.

The patch looks promising. But there are still some manual pages missing as

share/man/man8/powerpc/nvram.8.gz
share/man/man8/*/apm.8.gz
share/man/man8/*/apmconf.8.gz
share/man/man8/i386/apmd.8.gz
share/man/man8/i386/sconfig.8.gz

Those pages are listed in src/ObsoleteFiles.inc and does not seem to get installed in a new installation. At least not in my -CURRENT.

Are you sure? Please check the correct pathes, e.g.

egrep share/man/man8/i386/sconfig.8.gz ObsoleteFiles.inc

returns zero hits for FreeBSD-14-current (main branch).

You're right:

~src$ find . -name Makefile -exec grep -H MANSUBDIR {} \;
./sbin/sconfig/Makefile:MANSUBDIR= /i386
./share/man/man4/man4.aarch64/Makefile:MANSUBDIR=/aarch64
./share/man/man4/man4.arm/Makefile:MANSUBDIR=/arm
./share/man/man4/man4.i386/Makefile:MANSUBDIR=/i386
./share/man/man4/man4.powerpc/Makefile:MANSUBDIR=/powerpc
./usr.sbin/apm/Makefile:MANSUBDIR= /${MACHINE_CPUARCH}
./usr.sbin/apmd/Makefile:MANSUBDIR= /i386
./usr.sbin/nvram/Makefile:MANSUBDIR= /powerpc

Things under man4 are already covered by the patch. Things outside that directory are not.

I'll have a look at it.

Second, you are aware that you have to patch stable/13 and stable/12 as well? Otherwise the fixes will be not part of our next supported releases.

Well... no. I am not aware of the policy for merging changes like this to stable releases. Would it be necessary/desirable/mandatory? Note I am not a src committer.

Thanks!

You're right:

~src$ find . -name Makefile -exec grep -H MANSUBDIR {} \;
./sbin/sconfig/Makefile:MANSUBDIR= /i386
./share/man/man4/man4.aarch64/Makefile:MANSUBDIR=/aarch64
./share/man/man4/man4.arm/Makefile:MANSUBDIR=/arm
./share/man/man4/man4.i386/Makefile:MANSUBDIR=/i386
./share/man/man4/man4.powerpc/Makefile:MANSUBDIR=/powerpc
./usr.sbin/apm/Makefile:MANSUBDIR= /${MACHINE_CPUARCH}
./usr.sbin/apmd/Makefile:MANSUBDIR= /i386
./usr.sbin/nvram/Makefile:MANSUBDIR= /powerpc

or just run: git grep MANSUBDIR=

Things under `man4` are already covered by the patch. Things outside that directory are not.

I'll have a look at it.

> 
> Second, you are aware that you have to patch stable/13 and stable/12 as well? Otherwise the fixes will be not part of our next supported releases.

Well... no. I am not aware of the policy for merging changes like this to stable releases. Would it be necessary/desirable/mandatory? Note I am not a src committer.

stable/13 is the basis for the next release 13.1 If you want a bug fixed in FreeBSD-13.1 RELEASE you need to merge it from -current after some weeks to stable/13. Same for the stable/12 / FreeBSD 12.x