Re: etcupdate failed to build tree with read-only /usr/src
Date: Fri, 18 Apr 2025 02:40:24 UTC
On 2025-04-16 01:39, Dag-Erling Smørgrav wrote:
> Alastair Hogge <agh@riseup.net> writes:
>> After the build processes complete [...]
>>
>> $ doas su -
>> # cd /usr/src
>> # etcupdate -p
>> # env MAKEOBJDIRPREFIX=/tmp/fafnir make installkernel
>> # env MAKEOBJDIRPREFIX=/tmp/fafnir make installworld
>> # etcupdate
>>
>> Here etcupdate exits with, "Failed to build new tree."
>
> Since you just completed buildworld, you should be using `etcupdate -B`
> here. It will save you time and should work around the read-only issue.
Hmm I did try $(etcupdate -B), and I recall it also failing, so I
updated another host, and used -B with etcupdate, and it failed for
another reason:
>>> update command: rerun= tarball= preworld=
>>> update command: rerun= tarball= preworld=
>>> Building tree at /var/db/etcupdate/etcupdate-WXYm41T with make -DNO_FILEMON
make[1]: warning: /usr/src/: Read-only file system.
--------------------------------------------------------------
>>> Making hierarchy
--------------------------------------------------------------
cd /usr/src; make -f Makefile.inc1 distrib-dirs
make[2]: warning: /usr/src/: Read-only file system.
cd /usr/src/etc; MACHINE_ARCH=amd64 MACHINE=amd64 CPUTYPE=znver2
CC="cc -target x86_64-unknown-freebsd15.0
--sysroot=/net/fafnir/obj/usr/src/amd64.amd64/tmp
-B/net/fafnir/obj/usr/src/amd64.amd64/tmp/usr/bin" CXX="c++ -target
x86_64-unknown-freebsd15.0
--sysroot=/net/fafnir/obj/usr/src/amd64.amd64/tmp
-B/net/fafnir/obj/usr/src/amd64.amd64/tmp/usr/bin" CPP="cpp -target
x86_64-unknown-freebsd15.0
--sysroot=/net/fafnir/obj/usr/src/amd64.amd64/tmp
-B/net/fafnir/obj/usr/src/amd64.amd64/tmp/usr/bin" AS="as"
AR="ar" ELFCTL="elfctl" LD="ld" LLVM_LINK="" NM=nm OBJCOPY="objcopy"
RANLIB=ranlib STRINGS= SIZE="size" STRIPBIN="strip"
PATH=/net/fafnir/obj/usr/src/amd64.amd64/tmp/bin:/net/fafnir/obj/usr/src/amd64.amd64/tmp/usr/sbin:/net/fafnir/obj/usr/src/amd64.am
d64/tmp/usr/bin:/net/fafnir/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/net/fafnir/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/net/fafnir/obj/usr/src/amd64.amd64/tmp/legacy/bin:/net/fafnir/obj/usr/src/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/s
bin:/usr/bin make INSTALL="install -N /usr/src/etc" MTREE_CMD="mtree -N
/usr/src/etc" METALOG= distrib-dirs
for file in /usr/include/c++/v1/__string /usr/include/c++/v1/__tuple
/usr/libexec/kgdb; do if [ -f
/var/db/etcupdate/etcupdate-WXYm41T/${file} ]; then rm -f
/var/db/etcupdate/etcupdate-WXYm41T/${file}; fi; done
mtree -N /usr/src/etc -deU -i -f /usr/src/etc/mtree/BSD.root.dist -p
/var/db/etcupdate/etcupdate-WXYm41T/
ld-elf.so.1: Shared object "libmd.so.6" not found, required by "mtree"
*** Error code 1
Stop.
make[3]: stopped in /usr/src/etc
*** Error code 1
--
To good health,
Alastair