From df90aeac24c9d3621f294e6638a31499b56f4f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Apestegu=C3=ADa?= Date: Fri, 26 Nov 2021 11:55:50 +0100 Subject: [PATCH] Fix build with -DNO_ROOT The inclusion of 0a0f7486413c broke the build with the -DNO_ROOT option. Specifically, that commit adds some relative paths (with `..`) to METALOG that make other tools using that log, fail afterwards (tar, makefs...). It's been argued[1] if this is really something mtree(8) should handle more graciously. In the meantime, fix the breakage but changing the order in which the links are created: first in the parent directory, then in the architecture-specific one. We keep the architecture-specific directories an the links to the parent directories. This is something that we might want to change in the future. This commit is based on a concept patch by avg@. [1] https://lists.freebsd.org/archives/dev-commits-src-all/2021-November/index.html Reported by: bapt@, emaste@ Approved by: avg@ Fixes: 0a0f7486413c Differential Revision: https://reviews.freebsd.org/D33126 --- share/man/man4/man4.aarch64/Makefile | 28 +++++++++++++++++----------- share/man/man4/man4.arm/Makefile | 10 ++++++---- share/man/man4/man4.i386/Makefile | 10 ++++++---- share/man/man4/man4.powerpc/Makefile | 10 ++++++---- usr.sbin/Makefile.amd64 | 5 +++++ usr.sbin/apm/Makefile | 4 ---- 6 files changed, 40 insertions(+), 27 deletions(-) diff --git a/share/man/man4/man4.aarch64/Makefile b/share/man/man4/man4.aarch64/Makefile index 6d0e427e6b2..d1fbced3b0a 100644 --- a/share/man/man4/man4.aarch64/Makefile +++ b/share/man/man4/man4.aarch64/Makefile @@ -4,13 +4,6 @@ MAN= \ armv8crypto.4 \ - aw_gpio.4 \ - aw_mmc.4 \ - aw_rtc.4 \ - aw_sid.4 \ - aw_spi.4 \ - aw_syscon.4 \ - bcm283x_pwm.4 \ enetc.4 \ felix.4 \ rk_gpio.4 \ @@ -18,11 +11,24 @@ MAN= \ rk_i2c.4 \ rk_pinctrl.4 \ -# Link files to the parent directory +# Install manpages shared with arm only if not installing manpages +# for all architectures, otherwise arm takes care of installing them. +.if !empty(MAN_ARCH) && ${MAN_ARCH} != "all" +MAN+= \ + aw_gpio.4 \ + aw_mmc.4 \ + aw_rtc.4 \ + aw_sid.4 \ + aw_spi.4 \ + aw_syscon.4 \ + bcm283x_pwm.4 \ + +.endif + +# Link files to the architecture directory. +_ARCH_SUBDIR=aarch64 .for _manpage in ${MAN} -MLINKS+=${_manpage} ../${_manpage} +MLINKS+=${_manpage} ${_ARCH_SUBDIR}/${_manpage} .endfor -MANSUBDIR=/aarch64 - .include diff --git a/share/man/man4/man4.arm/Makefile b/share/man/man4/man4.arm/Makefile index 2ac8dbb5fd8..76146f4ebdb 100644 --- a/share/man/man4/man4.arm/Makefile +++ b/share/man/man4/man4.arm/Makefile @@ -18,11 +18,13 @@ MAN= \ MLINKS= imx_wdog.4 imxwdt.4 MLINKS+= mge.4 if_mge.4 -# Link files to the parent directory +# Link files to the architecture directory +_ARCH_SUBDIR=arm +.for _manpage _link in ${MLINKS} +MLINKS+=${_link} ${_ARCH_SUBDIR}/${_link} +.endfor .for _manpage in ${MAN} -MLINKS+=${_manpage} ../${_manpage} +MLINKS+=${_manpage} ${_ARCH_SUBDIR}/${_manpage} .endfor -MANSUBDIR=/arm - .include diff --git a/share/man/man4/man4.i386/Makefile b/share/man/man4/man4.i386/Makefile index e3d2e66ca78..3dfc5f151f9 100644 --- a/share/man/man4/man4.i386/Makefile +++ b/share/man/man4/man4.i386/Makefile @@ -21,11 +21,13 @@ MLINKS= CPU_ELAN.4 CPU_SOEKRIS.4 MLINKS+=pae.4 PAE.4 MLINKS+=sbni.4 if_sbni.4 -# Link files to the parent directory +# Link files to the architecture directory +_ARCH_SUBDIR=i386 +.for _manpage _link in ${MLINKS} +MLINKS+=${_link} ${_ARCH_SUBDIR}/${_link} +.endfor .for _manpage in ${MAN} -MLINKS+=${_manpage} ../${_manpage} +MLINKS+=${_manpage} ${_ARCH_SUBDIR}/${_manpage} .endfor -MANSUBDIR=/i386 - .include diff --git a/share/man/man4/man4.powerpc/Makefile b/share/man/man4/man4.powerpc/Makefile index aa0e137fced..e6ade9778db 100644 --- a/share/man/man4/man4.powerpc/Makefile +++ b/share/man/man4/man4.powerpc/Makefile @@ -15,11 +15,13 @@ MAN= adb.4 \ snd_davbus.4 \ tsec.4 -# Link files to the parent directory +# Link files to the architecture directory +_ARCH_SUBDIR=powerpc +.for _manpage _link in ${MLINKS} +MLINKS+=${_link} ${_ARCH_SUBDIR}/${_link} +.endfor .for _manpage in ${MAN} -MLINKS+=${_manpage} ../${_manpage} +MLINKS+=${_manpage} ${_ARCH_SUBDIR}/${_manpage} .endfor -MANSUBDIR=/powerpc - .include diff --git a/usr.sbin/Makefile.amd64 b/usr.sbin/Makefile.amd64 index d4d185414f4..1f15259eb1a 100644 --- a/usr.sbin/Makefile.amd64 +++ b/usr.sbin/Makefile.amd64 @@ -2,11 +2,16 @@ # mptable: broken (not 64 bit clean) # pnpinfo: crashes (not really useful anyway) +_ARCH_SUBDIR=amd64 .if ${MK_ACPI} != "no" SUBDIR+= acpi .endif .if ${MK_APM} != "no" SUBDIR+= apm +# Link files to the architecture directory +.for _manpage in ${:!/bin/sh -c "/bin/ls ${_ARCH_SUBDIR}/.8"!:E} +MLINKS+=${_manpage} ${_ARCH_SUBDIR}/${_manpage} +.endfor .endif .if ${MK_BHYVE} != "no" SUBDIR+= bhyve diff --git a/usr.sbin/apm/Makefile b/usr.sbin/apm/Makefile index 27fa0c37d5c..f52453c6252 100644 --- a/usr.sbin/apm/Makefile +++ b/usr.sbin/apm/Makefile @@ -5,10 +5,6 @@ MAN= apm.8 MLINKS= apm.8 apmconf.8 MANSUBDIR= /${MACHINE_CPUARCH} -# Link files to the parent directory -MLINKS+= apm.8 ../apm.8 -MLINKS+= apmconf.8 ../apmconf.8 - PACKAGE=apm .include