Re: git: df90aeac24c9 - main - Fix build with -DNO_ROOT
- In reply to: Fernando Apesteguía : "git: df90aeac24c9 - main - Fix build with -DNO_ROOT"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 11 Jun 2022 23:34:09 UTC
I bisected an error to this commit:
# make -sssss 'DESTDIR=/mnt/tmp' distribution
ls: amd64/.8: No such file or directory
make[3]: "/bin/sh -c "/bin/ls amd64/.8"" returned non-zero status
On 11/26/21, Fernando Apesteguía <fernape@freebsd.org> wrote:
> The branch main has been updated by fernape (doc, ports committer):
>
> URL:
> https://cgit.FreeBSD.org/src/commit/?id=df90aeac24c9d3621f294e6638a31499b56f4f6b
>
> commit df90aeac24c9d3621f294e6638a31499b56f4f6b
> Author: Fernando Apesteguía <fernape@FreeBSD.org>
> AuthorDate: 2021-11-26 10:55:50 +0000
> Commit: Fernando Apesteguía <fernape@FreeBSD.org>
> CommitDate: 2021-11-26 11:51:08 +0000
>
> 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 | 26 ++++++++++++++++----------
> 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, 39 insertions(+), 26 deletions(-)
>
> diff --git a/share/man/man4/man4.aarch64/Makefile
> b/share/man/man4/man4.aarch64/Makefile
> index 6d0e427e6b28..d1fbced3b0a8 100644
> --- a/share/man/man4/man4.aarch64/Makefile
> +++ b/share/man/man4/man4.aarch64/Makefile
> @@ -4,6 +4,17 @@
>
> MAN= \
> armv8crypto.4 \
> + enetc.4 \
> + felix.4 \
> + rk_gpio.4 \
> + rk_grf.4 \
> + rk_i2c.4 \
> + rk_pinctrl.4 \
> +
> +# 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 \
> @@ -11,18 +22,13 @@ MAN= \
> aw_spi.4 \
> aw_syscon.4 \
> bcm283x_pwm.4 \
> - enetc.4 \
> - felix.4 \
> - rk_gpio.4 \
> - rk_grf.4 \
> - rk_i2c.4 \
> - rk_pinctrl.4 \
>
> -# Link files to the parent directory
> +.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 <bsd.prog.mk>
> diff --git a/share/man/man4/man4.arm/Makefile
> b/share/man/man4/man4.arm/Makefile
> index 2ac8dbb5fd81..76146f4ebdb7 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 <bsd.prog.mk>
> diff --git a/share/man/man4/man4.i386/Makefile
> b/share/man/man4/man4.i386/Makefile
> index e3d2e66ca78d..3dfc5f151f9f 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 <bsd.prog.mk>
> diff --git a/share/man/man4/man4.powerpc/Makefile
> b/share/man/man4/man4.powerpc/Makefile
> index aa0e137fcedd..e6ade9778db3 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 <bsd.prog.mk>
> diff --git a/usr.sbin/Makefile.amd64 b/usr.sbin/Makefile.amd64
> index d4d185414f41..1f15259eb1ac 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 27fa0c37d5cf..f52453c62522 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 <bsd.prog.mk>
>
--
Mateusz Guzik <mjguzik gmail.com>