mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-23 11:41:07 +01:00
Change how packages are installed into VM images: Rather than chrooting
into the image and running 'pkg install' from there, use 'pkg fetch' to download packages into a temporary location and then 'pkg add' to install them into the image. This simplifies the code by avoiding the need to copy /etc/resolv.conf into the image and then delete it later, and makes it possible to cross build (e.g., to create an amd64 image when running on i386 hardware; or in the future for building disk images for embedded platforms). Because pkg was implicitly installed when VM_EXTRA_PACKAGES was non-empty, add it to VM_EXTRA_PACKAGES in azure.conf and openstack.conf to maintain the current behaviour. By default repo-FreeBSD.sqlite is copied into the image, (a) to match previous behaviour, where the file would be downloaded by the chrooted pkg invocation; and (b) because it may be useful for testing purposes, e.g., to see why a package didn't get installed. Because this file is large (46 MB) and not likely to be useful in -RELEASE images which are being launched into Clouds several months later, it can be disabled by setting NOREPOSQLITE. As far as I know this commit does not change the disk images produced in any filesystem-visible way.
This commit is contained in:
parent
4e7bc9f0f7
commit
32dbc82982
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/projects/release-vmimage/; revision=274773
@ -5,7 +5,7 @@
|
||||
|
||||
# Set to a list of packages to install.
|
||||
# Example:
|
||||
#export VM_EXTRA_PACKAGES="www/apache24"
|
||||
#export VM_EXTRA_PACKAGES="www/apache24 ports-mgmt/pkg"
|
||||
export VM_EXTRA_PACKAGES=
|
||||
|
||||
# Set to a list of third-party software to enable in rc.conf(5).
|
||||
@ -17,7 +17,6 @@ vm_extra_install_base() {
|
||||
fetch -o ${DESTDIR}/usr/sbin/waagent \
|
||||
http://people.freebsd.org/~gjb/waagent
|
||||
chmod +x ${DESTDIR}/usr/sbin/waagent
|
||||
rm -f ${DESTDIR}/etc/resolv.conf
|
||||
|
||||
return 0
|
||||
}
|
||||
@ -33,8 +32,6 @@ vm_extra_pre_umount() {
|
||||
echo 'console="comconsole vidconsole"' >> ${DESTDIR}/boot/loader.conf
|
||||
echo 'comconsole_speed="115200"' >> ${DESTDIR}/boot/loader.conf
|
||||
|
||||
rm -f ${DESTDIR}/etc/resolv.conf
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
|
||||
# Set to a list of packages to install.
|
||||
export VM_EXTRA_PACKAGES="net/cloud-init"
|
||||
export VM_EXTRA_PACKAGES="net/cloud-init ports-mgmt/pkg"
|
||||
|
||||
# Set to a list of third-party software to enable in rc.conf(5).
|
||||
export VM_RC_LIST="cloudinit"
|
||||
@ -13,7 +13,6 @@ vm_extra_install_base() {
|
||||
fetch -o ${DESTDIR}/usr/sbin/waagent \
|
||||
http://people.freebsd.org/~gjb/waagent
|
||||
chmod +x ${DESTDIR}/usr/sbin/waagent
|
||||
rm -f ${DESTDIR}/etc/resolv.conf
|
||||
|
||||
return 0
|
||||
}
|
||||
@ -22,7 +21,5 @@ vm_extra_pre_umount() {
|
||||
echo 'sshd_enable="YES"' >> ${DESTDIR}/etc/rc.conf
|
||||
echo 'ifconfig_DEFAULT="SYNCDHCP"' >> ${DESTDIR}/etc/rc.conf
|
||||
|
||||
rm -f ${DESTDIR}/etc/resolv.conf
|
||||
|
||||
return 0
|
||||
}
|
||||
|
@ -90,8 +90,6 @@ vm_install_base() {
|
||||
chroot ${DESTDIR} /etc/rc.d/ldconfig forcestart
|
||||
umount ${DESTDIR}/dev
|
||||
|
||||
cp /etc/resolv.conf ${DESTDIR}/etc/resolv.conf
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -114,15 +112,18 @@ vm_extra_enable_services() {
|
||||
}
|
||||
|
||||
vm_extra_install_packages() {
|
||||
mkdir -p ${DESTDIR}/dev
|
||||
mount -t devfs devfs ${DESTDIR}/dev
|
||||
chroot ${DESTDIR} env ASSUME_ALWAYS_YES=yes \
|
||||
/usr/sbin/pkg bootstrap -y
|
||||
if [ ! -z "${VM_EXTRA_PACKAGES}" ]; then
|
||||
chroot ${DESTDIR} env ASSUME_ALWAYS_YES=yes \
|
||||
/usr/sbin/pkg install -y ${VM_EXTRA_PACKAGES}
|
||||
PKGSDIR=`mktemp -d`
|
||||
ABI=`/usr/sbin/pkg -c ${DESTDIR} config abi`
|
||||
/usr/sbin/pkg -o ABI=${ABI} fetch -o ${PKGSDIR} -d -y ${VM_EXTRA_PACKAGES}
|
||||
for PKG in ${PKGSDIR}/All/*; do
|
||||
/usr/sbin/pkg -c ${DESTDIR} add -M - < ${PKG}
|
||||
done
|
||||
rm -r ${PKGSDIR}
|
||||
if [ -z "${NOREPOSQLITE}" ]; then
|
||||
cp /var/db/pkg/repo-FreeBSD.sqlite ${DESTDIR}/var/db/pkg
|
||||
fi
|
||||
fi
|
||||
umount ${DESTDIR}/dev
|
||||
|
||||
return 0
|
||||
}
|
||||
@ -138,8 +139,6 @@ vm_extra_pre_umount() {
|
||||
# Prototype. When overridden, installs additional ports within the
|
||||
# virtual machine environment.
|
||||
|
||||
rm -f ${DESTDIR}/etc/resolv.conf
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user