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>