git: c7e6cb9e08d6 - main - pkgbase: Add an src.conf option for splitting man pages

Emmanuel Vadot manu at FreeBSD.org
Tue Mar 16 06:13:31 UTC 2021


The branch main has been updated by manu:

URL: https://cgit.FreeBSD.org/src/commit/?id=c7e6cb9e08d6b51e677a9f5546b8e36d678687d0

commit c7e6cb9e08d6b51e677a9f5546b8e36d678687d0
Author:     Emmanuel Vadot <manu at FreeBSD.org>
AuthorDate: 2021-03-16 06:11:56 +0000
Commit:     Emmanuel Vadot <manu at FreeBSD.org>
CommitDate: 2021-03-16 06:13:09 +0000

    pkgbase: Add an src.conf option for splitting man pages
    
    Man pages can be big in total, add an options to split man pages
    in -man packages so we produce smaller packages.
    This is useful for small jails or mfsroot produced of pkgbase.
    The option is off by default.
    
    Reviewed by:    bapt, Mina Galić <me at igalic.co>
    Differential Revision:  https://reviews.freebsd.org/D29169
    MFC after:      2 weeks
---
 release/packages/generate-ucl.sh     | 5 +++++
 share/man/man5/src.conf.5            | 4 +++-
 share/mk/bsd.man.mk                  | 9 +++++++++
 share/mk/src.opts.mk                 | 1 +
 tools/build/options/WITH_MANSPLITPKG | 2 ++
 5 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/release/packages/generate-ucl.sh b/release/packages/generate-ucl.sh
index e900f9991912..67c10e485eb7 100755
--- a/release/packages/generate-ucl.sh
+++ b/release/packages/generate-ucl.sh
@@ -71,6 +71,11 @@ main() {
 			_descr="Debugging Symbols"
 			pkgdeps="${outname}"
 			;;
+		*_man)
+			outname="${outname%%_man}"
+			_descr="Manual Pages"
+			pkgdeps="${outname}"
+			;;
 		${origname})
 			pkgdeps="runtime"
 			;;
diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5
index 5d211bc1cc31..98fcc427d608 100644
--- a/share/man/man5/src.conf.5
+++ b/share/man/man5/src.conf.5
@@ -1,6 +1,6 @@
 .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman.
 .\" $FreeBSD$
-.Dd March 2, 2021
+.Dd March 16, 2021
 .Dt SRC.CONF 5
 .Os
 .Sh NAME
@@ -1099,6 +1099,8 @@ is set explicitly)
 .It Va WITHOUT_MANCOMPRESS
 Set to not to install compressed man pages.
 Only the uncompressed versions will be installed.
+.It Va WITH_MANSPLITPKG
+Set to split man pages into their own packages during make package.
 .It Va WITHOUT_MAN_UTILS
 Set to not build utilities for manual pages,
 .Xr apropos 1 ,
diff --git a/share/mk/bsd.man.mk b/share/mk/bsd.man.mk
index 1e67928a2754..21c5fe4f2424 100644
--- a/share/mk/bsd.man.mk
+++ b/share/mk/bsd.man.mk
@@ -50,7 +50,11 @@
 .error bsd.man.mk cannot be included directly.
 .endif
 
+.if ${MK_MANSPLITPKG} == "no"
 MINSTALL?=	${INSTALL} ${TAG_ARGS} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
+.else
+MINSTALL?=	${INSTALL} ${TAG_ARGS:D${TAG_ARGS},man} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
+.endif
 
 CATDIR=		${MANDIR:H:S/$/\/cat/}
 CATEXT=		.cat
@@ -226,8 +230,13 @@ maninstall: ${MAN}
 .endif	# ${MK_MANCOMPRESS} == "no"
 .endif
 .for l t in ${_MANLINKS}
+.if ${MK_MANSPLITPKG} == "no"
 	rm -f ${DESTDIR}${t} ${DESTDIR}${t}${MCOMPRESS_EXT}; \
 	    ${INSTALL_MANLINK} ${TAG_ARGS} ${DESTDIR}${l}${ZEXT} ${DESTDIR}${t}${ZEXT}
+.else
+	rm -f ${DESTDIR}${t} ${DESTDIR}${t}${MCOMPRESS_EXT}; \
+	    ${INSTALL_MANLINK} ${TAG_ARGS:D${TAG_ARGS},man} ${DESTDIR}${l}${ZEXT} ${DESTDIR}${t}${ZEXT}
+.endif
 .endfor
 
 manlint:
diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
index 619aa8f4a1d8..949dfece43e4 100644
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -207,6 +207,7 @@ __DEFAULT_NO_OPTIONS = \
     LOADER_VERBOSE \
     LOADER_VERIEXEC_PASS_MANIFEST \
     MALLOC_PRODUCTION \
+    MANSPLITPKG \
     OFED_EXTRA \
     OPENLDAP \
     REPRODUCIBLE_BUILD \
diff --git a/tools/build/options/WITH_MANSPLITPKG b/tools/build/options/WITH_MANSPLITPKG
new file mode 100644
index 000000000000..122da24e0bb4
--- /dev/null
+++ b/tools/build/options/WITH_MANSPLITPKG
@@ -0,0 +1,2 @@
+.\" $FreeBSD$
+Set to split man pages into their own packages during make package.


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