The branch main has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=caddfcd546e020aec73b0a53d925460f10f7ae7d
commit caddfcd546e020aec73b0a53d925460f10f7ae7d Author: Lexi Winter <i...@freebsd.org> AuthorDate: 2025-07-25 14:02:23 +0000 Commit: Lexi Winter <i...@freebsd.org> CommitDate: 2025-07-25 17:31:26 +0000 share/man: Move many manpages to more correct packages At the moment, all the manpages in share/man are in the utilities-man package. Move some of them to the package they should actually be in, using the new MANGROUPS feature. Move all of section 3 to clibs-man. Although some of these are from /usr/include/sys rather than libc, you can't practically use them without libc, and clibs-man is where the libc manpages live already. Move all of sections 4 and 9 to a new kernel-man package, except for atf-test-case.4 which goes to tests-man. atf-test-case.4 is in the wrong section, but this needs to be fixed upstream. kernel-man requires special handling in generate-ucl.lua since it's got a -man suffix but doesn't want the ' (manual pages)' automatic suffix. For now, fix this by adding a list of packages that don't get automatic suffixes. Reviewed by: ifreund_freebsdfoundation.org, manu, emaste Differential Revision: https://reviews.freebsd.org/D51504 --- release/packages/generate-ucl.lua | 12 ++++- release/packages/ucl/kernel-man.ucl | 5 +++ share/man/man1/Makefile | 24 ++++++---- share/man/man3/Makefile | 2 + share/man/man4/Makefile | 8 +++- share/man/man5/Makefile | 90 +++++++++++++++++++++++++------------ share/man/man8/Makefile | 39 +++++++++------- share/man/man9/Makefile | 2 + 8 files changed, 126 insertions(+), 56 deletions(-) diff --git a/release/packages/generate-ucl.lua b/release/packages/generate-ucl.lua index 3d91d11bc42f..a243c6ea7ad0 100755 --- a/release/packages/generate-ucl.lua +++ b/release/packages/generate-ucl.lua @@ -54,8 +54,15 @@ pkg_suffixes = { }, } +-- A list of packages which don't get the automatic suffix handling, +-- e.g. -man packages with no corresponding base package. +local no_suffix_pkgs = { + ["kernel-man"] = true, +} + function add_suffixes(obj) local pkgname = obj["name"] + for _,pattern in pairs(pkg_suffixes) do if pkgname:match(pattern[1]) ~= nil then obj["comment"] = obj["comment"] .. " " .. pattern[2] @@ -76,6 +83,7 @@ local no_gen_deps = { ["libcompiler_rt-dev-lib32"] = true, ["liby-dev"] = true, ["liby-dev-lib32"] = true, + ["kernel-man"] = true, } -- Return true if the package 'pkgname' should have a dependency on the package @@ -163,7 +171,9 @@ if pkgprefix ~= nil and obj["deps"] ~= nil then end -- Add comment and desc suffix. -add_suffixes(obj) +if no_suffix_pkgs[pkgname] == nil then + add_suffixes(obj) +end -- Write the output file. local f,err = io.open(arg[#arg], "w") diff --git a/release/packages/ucl/kernel-man.ucl b/release/packages/ucl/kernel-man.ucl new file mode 100644 index 000000000000..9d70baf2c3af --- /dev/null +++ b/release/packages/ucl/kernel-man.ucl @@ -0,0 +1,5 @@ +comment = "Kernel manual pages" +desc = <<EOD +Manual pages for kernel interfaces and drivers (section 4) and the kernel +developer manual pages (section 9). +EOD diff --git a/share/man/man1/Makefile b/share/man/man1/Makefile index 5b1d3ac1091d..d3975c8e8084 100644 --- a/share/man/man1/Makefile +++ b/share/man/man1/Makefile @@ -1,16 +1,17 @@ .include <src.opts.mk> -MAN= builtin.1 intro.1 +MANGROUPS= MAN -.if ${MK_TESTS} != "no" -ATF= ${SRCTOP}/contrib/atf -.PATH: ${ATF}/doc -MAN+= atf-test-program.1 -.endif +MANLINKS= intro.1 introduction.1 + +MANGROUPS+= RUNTIME +RUNTIME= builtin.1 intro.1 +RUNTIMEPACKAGE= runtime # Create MLINKS for Shell built in commands for which there are no userland # utilities of the same name: -MLINKS= builtin.1 alias.1 \ +RUNTIMELINKS=\ + builtin.1 alias.1 \ builtin.1 alloc.1 \ builtin.1 bg.1 \ builtin.1 bind.1 \ @@ -96,6 +97,13 @@ MLINKS= builtin.1 alias.1 \ builtin.1 wait.1 \ builtin.1 where.1 \ builtin.1 while.1 -MLINKS+=intro.1 introduction.1 + +.if ${MK_TESTS} != "no" +MANGROUPS+= TESTS +ATF= ${SRCTOP}/contrib/atf +.PATH: ${ATF}/doc +TESTS= atf-test-program.1 +TESTSPACKAGE= tests +.endif .include <bsd.prog.mk> diff --git a/share/man/man3/Makefile b/share/man/man3/Makefile index 6cdd443ec067..3511acb254e1 100644 --- a/share/man/man3/Makefile +++ b/share/man/man3/Makefile @@ -1,5 +1,7 @@ .include <src.opts.mk> +PACKAGE= clibs + MAN= alloca.3 \ arb.3 \ assert.3 \ diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 505e83a67369..1ba1fe46523e 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -1,5 +1,8 @@ .include <src.opts.mk> +MANGROUPS= MAN +MANPACKAGE= kernel + # If you add a new file here, please consider adding an entry to the # hardware notes template (website/archetypes/release/hardware.adoc in # the doc repository); otherwise the automatically generated hardware @@ -58,7 +61,6 @@ MAN= aac.4 \ atkbdc.4 \ ${_atopcase.4} \ atp.4 \ - ${_atf_test_case.4} \ ${_atrtc.4} \ ${_attimer.4} \ audit.4 \ @@ -1023,9 +1025,11 @@ MAN+= mlx5io.4 .endif .if ${MK_TESTS} != "no" +MANGROUPS+= TESTS ATF= ${SRCTOP}/contrib/atf .PATH: ${ATF}/doc -_atf_test_case.4= atf-test-case.4 +TESTS= atf-test-case.4 +TESTSPACKAGE= tests .endif .if ${MK_PF} != "no" diff --git a/share/man/man5/Makefile b/share/man/man5/Makefile index e2abf1d60905..0f6559b236c6 100644 --- a/share/man/man5/Makefile +++ b/share/man/man5/Makefile @@ -1,14 +1,11 @@ .include <src.opts.mk> +MANGROUPS= MAN + #MISSING: dump.5 plot.5 -MAN= acct.5 \ - ar.5 \ - a.out.5 \ +MAN= a.out.5 \ ${_boot.config.5} \ core.5 \ - devfs.conf.5 \ - devfs.rules.5 \ - device.hints.5 \ dir.5 \ disktab.5 \ elf.5 \ @@ -16,32 +13,24 @@ MAN= acct.5 \ eui64.5 \ fbtab.5 \ forward.5 \ - fs.5 \ - fstab.5 \ group.5 \ hosts.5 \ hosts.equiv.5 \ - hosts.lpd.5 \ intro.5 \ libmap.conf.5 \ link.5 \ mailer.conf.5 \ make.conf.5 \ - moduli.5 \ motd.5 \ mount.conf.5 \ networks.5 \ - nsmb.conf.5 \ nsswitch.conf.5 \ os-release.5 \ - passwd.5 \ pbm.5 \ - periodic.conf.5 \ phones.5 \ portindex.5 \ protocols.5 \ quota.user.5 \ - rc.conf.5 \ rctl.conf.5 \ regdomain.5 \ remote.5 \ @@ -54,18 +43,6 @@ MAN= acct.5 \ style.mdoc.5 \ sysctl.conf.5 \ -MLINKS= dir.5 dirent.5 -MLINKS+=fs.5 inode.5 -MLINKS+=hosts.equiv.5 rhosts.5 -MLINKS+=passwd.5 master.passwd.5 -MLINKS+=passwd.5 pwd.db.5 -MLINKS+=passwd.5 spwd.db.5 -MLINKS+=portindex.5 INDEX.5 -MLINKS+=quota.user.5 quota.group.5 -MLINKS+=rc.conf.5 rc.conf.local.5 -MLINKS+=resolver.5 resolv.conf.5 -MLINKS+=src.conf.5 src-env.conf.5 - .if ${MK_BLUETOOTH} != "no" MAN+= bluetooth.device.conf.5 \ bluetooth.hosts.5 \ @@ -80,11 +57,68 @@ MAN+= freebsd-update.conf.5 MAN+= hesiod.conf.5 .endif +MLINKS= dir.5 dirent.5 +MLINKS+=fs.5 inode.5 +MLINKS+=hosts.equiv.5 rhosts.5 +MLINKS+=portindex.5 INDEX.5 +MLINKS+=quota.user.5 quota.group.5 +MLINKS+=resolver.5 resolv.conf.5 +MLINKS+=src.conf.5 src-env.conf.5 + +MANGROUPS+= ACCT +ACCT= acct.5 +ACCTPACKAGE= acct + +MANGROUPS+= BOOTLOADER +BOOTLOADER= device.hints.5 +BOOTLOADERPACKAGE=bootloader + +MANGROUPS+= CLANG +CLANG= ar.5 +CLANGPACKAGE= clang + +MANGROUPS+= LP +LP= hosts.lpd.5 +LPPACKAGE= lp + +MANGROUPS+= PERIODIC +PERIODIC= periodic.conf.5 +PERIODICPACKAGE=periodic + .if ${MK_PF} != "no" -MAN+= pf.conf.5 \ - pf.os.5 +MANGROUPS+= PF +PF= pf.conf.5 \ + pf.os.5 +PFPACKAGE= pf .endif +MANGROUPS+= RC +RC= rc.conf.5 +RCLINKS= rc.conf.5 rc.conf.local.5 +RCPACKAGE= rc + +MANGROUPS+= RUNTIME +RUNTIME= devfs.conf.5 \ + devfs.rules.5 \ + fstab.5 \ + passwd.5 +RUNTIMELINKS= passwd.5 master.passwd.5 +RUNTIMELINKS+= passwd.5 pwd.db.5 +RUNTIMELINKS+= passwd.5 spwd.db.5 +RUNTIMEPACKAGE= runtime + +MANGROUPS+= SMB +SMB= nsmb.conf.5 +SMBPACKAGE= smbutils + +MANGROUPS+= SSH +SSH= moduli.5 +SSHPACKAGE= ssh + +MANGROUPS+= UFS +UFS= fs.5 +UFSPACKAGE= ufs + # This makes more sense for amd64 and i386 but # we decide to install all manpages in all architectures _boot.config.5= boot.config.5 diff --git a/share/man/man8/Makefile b/share/man/man8/Makefile index bd6bdfe4ba05..c408f1b65a80 100644 --- a/share/man/man8/Makefile +++ b/share/man/man8/Makefile @@ -1,5 +1,7 @@ .include <src.opts.mk> +MANGROUPS= MAN + MAN= \ beinstall.8 \ crash.8 \ @@ -7,29 +9,32 @@ MAN= \ diskless.8 \ intro.8 \ nanobsd.8 \ - rc.8 \ - rc.subr.8 \ rescue.8 \ - ${_uefi.8} \ + ${_uefi.8} MLINKS= \ beinstall.8 beinstall.sh.8 \ - nanobsd.8 nanobsd.sh.8 \ - rc.8 rc.d.8 \ - rc.8 rc.firewall.8 \ - rc.8 rc.local.8 \ - rc.8 rc.network.8 \ - rc.8 rc.pccard.8 \ - rc.8 rc.resume.8 \ - rc.8 rc.serial.8 \ - rc.8 rc.shutdown.8 + nanobsd.8 nanobsd.sh.8 -.if ${MK_NIS} != "no" -MAN+= yp.8 +MANGROUPS+= RC +RC= rc.8 rc.subr.8 +RCLINKS= rc.8 rc.d.8 \ + rc.8 rc.firewall.8 \ + rc.8 rc.local.8 \ + rc.8 rc.network.8 \ + rc.8 rc.pccard.8 \ + rc.8 rc.resume.8 \ + rc.8 rc.serial.8 \ + rc.8 rc.shutdown.8 +RCPACKAGE= rc -MLINKS+=yp.8 NIS.8 \ - yp.8 nis.8 \ - yp.8 YP.8 +.if ${MK_NIS} != "no" +MANGROUPS+= YP +YP= yp.8 +YPLINKS= yp.8 NIS.8 \ + yp.8 nis.8 \ + yp.8 YP.8 +YPPACKAGE= yp .endif # This makes more sense for aarch 64 and amd64 diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index f709a4818dd5..b73e47b3ef4d 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1,5 +1,7 @@ .include <src.opts.mk> +PACKAGE= kernel + MAN= accept_filter.9 \ accf_data.9 \ accf_dns.9 \