diff --git a/release/tools/azure.conf b/release/tools/azure.conf --- a/release/tools/azure.conf +++ b/release/tools/azure.conf @@ -18,6 +18,16 @@ # https://learn.microsoft.com/en-us/partner-center/marketplace/azure-vm-certification-faq#vm-images-must-have-1-mb-of-free-space export VM_BOOTPARTSOFFSET=1M +# Hack for FreeBSD 15.0; should go away before 15.1. +MISSING_METALOGS=" +./usr/local/etc/pam.d/sudo +./usr/local/etc/ssl/cert.pem +./usr/local/etc/sudo.conf +./usr/local/etc/sudo_logsrvd.conf +./usr/local/etc/sudoers +./usr/local/etc/waagent.conf +" + vm_extra_pre_umount() { # Remove the pkg package and repo databases as they will likely # be out of date by the time the image is used. In unprivileged diff --git a/release/tools/ec2-cloud-init.conf b/release/tools/ec2-cloud-init.conf --- a/release/tools/ec2-cloud-init.conf +++ b/release/tools/ec2-cloud-init.conf @@ -9,6 +9,18 @@ # Services to enable in rc.conf(5). export VM_RC_LIST="${VM_RC_LIST} cloudinit sshd" +# Hack for FreeBSD 15.0; should go away before 15.1. +MISSING_METALOGS=" +./usr/local/etc/cloud/cloud.cfg +./usr/local/etc/cloud/cloud.cfg.d/05_logging.cfg +./usr/local/etc/cloud/cloud.cfg.d/99_freebsd.cfg +./usr/local/etc/pam.d/sudo +./usr/local/etc/ssl/cert.pem +./usr/local/etc/sudo.conf +./usr/local/etc/sudo_logsrvd.conf +./usr/local/etc/sudoers +" + vm_extra_pre_umount() { # Configuration common to all EC2 AMIs ec2_common diff --git a/release/tools/gce.conf b/release/tools/gce.conf --- a/release/tools/gce.conf +++ b/release/tools/gce.conf @@ -17,6 +17,16 @@ google_accounts_daemon google_clock_skew_daemon \ google_instance_setup google_network_daemon" +# Hack for FreeBSD 15.0; should go away before 15.1. +MISSING_METALOGS=" +./usr/local/etc/instance_configs.cfg.distro +./usr/local/etc/pam.d/sudo +./usr/local/etc/sudo.conf +./usr/local/etc/sudo_logsrvd.conf +./usr/local/etc/sudoers +./usr/local/etc/syslog.d/90-google.conf +" + vm_extra_install_base() { echo 'search google.internal' > ${DESTDIR}/etc/resolv.conf echo 'nameserver 169.254.169.254' >> ${DESTDIR}/etc/resolv.conf diff --git a/release/tools/oracle.conf b/release/tools/oracle.conf --- a/release/tools/oracle.conf +++ b/release/tools/oracle.conf @@ -39,6 +39,19 @@ sshd zfs" +# Hack for FreeBSD 15.0; should go away before 15.1. +MISSING_METALOGS=" +./usr/local/etc/cloud/cloud.cfg +./usr/local/etc/cloud/cloud.cfg.d/05_logging.cfg +./usr/local/etc/cloud/cloud.cfg.d/99_freebsd.cfg +./usr/local/etc/pam.d/sudo +./usr/local/etc/rsync/rsyncd.conf +./usr/local/etc/ssl/cert.pem +./usr/local/etc/sudo.conf +./usr/local/etc/sudo_logsrvd.conf +./usr/local/etc/sudoers +" + vm_extra_pre_umount() { cat <<-'EOF' >> ${DESTDIR}/etc/rc.conf dumpdev=AUTO diff --git a/release/tools/vmimage.subr b/release/tools/vmimage.subr --- a/release/tools/vmimage.subr +++ b/release/tools/vmimage.subr @@ -334,6 +334,16 @@ metalog_add_data ./var/db/services.db fi + if [ -n "${MISSING_METALOGS}" ]; then + # Hack to allow VM configurations to add files which + # weren't being added to METALOG appropriately. This + # is mainly a workaround for the @sample bug and it + # should go away before FreeBSD 15.1 ships. + for P in ${MISSING_METALOGS}; do + metalog_add_data ${P} + done + fi + # Sort METALOG file; makefs produces directories with 000 permissions # if their contents are seen before the directories themselves. env -i LC_COLLATE=C sort -u ${DESTDIR}/METALOG > ${DESTDIR}/METALOG.sorted