release: Make azure cloudware images buildable as non-root

- Don't chroot to uninstall pkg since we don't install pkg in the first
  place.
- Use pw -R instead of chrooting.
- Add metalog entries.

Reviewed by:	cperciva, emaste
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D52451
This commit is contained in:
Mark Johnston
2025-09-16 16:53:13 +00:00
parent 779812d669
commit bab6b01bcf
+18 -12
View File
@@ -19,20 +19,25 @@ export NOSWAP=YES
export VM_BOOTPARTSOFFSET=1M
vm_extra_pre_umount() {
mount -t devfs devfs ${DESTDIR}/dev
# Remove the pkg package and repo databases as they will likely
# be out of date by the time the image is used. In unprivileged
# builds this is unnecessary as pkg will not be installed to
# begin with.
if [ -z "${NO_ROOT}" ]; then
mount -t devfs devfs ${DESTDIR}/dev
# The firstboot_pkgs rc.d script will download the repository
# catalogue and install or update pkg when the instance first
# launches, so these files would just be replaced anyway; removing
# them from the image allows it to boot faster.
chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
/usr/sbin/pkg delete -f -y pkg
rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports
rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports-kmods
# The firstboot_pkgs rc.d script will download the repository
# catalogue and install or update pkg when the instance first
# launches, so these files would just be replaced anyway; removing
# them from the image allows it to boot faster.
chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
/usr/sbin/pkg delete -f -y pkg
umount ${DESTDIR}/dev
rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports
rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports-kmods
fi
chroot ${DESTDIR} ${EMULATOR} pw usermod root -h -
umount ${DESTDIR}/dev
pw -R ${DESTDIR} usermod root -h -
cat << EOF >> ${DESTDIR}/etc/rc.conf
ifconfig_hn0="SYNCDHCP"
@@ -51,6 +56,7 @@ boot_serial="YES"
mlx4en_load="YES"
mlx5en_load="YES"
EOF
metalog_add_data ./boot/loader.conf
return 0
}