aboutsummaryrefslogtreecommitdiff
path: root/release/tools
diff options
context:
space:
mode:
Diffstat (limited to 'release/tools')
-rw-r--r--release/tools/ec2-builder.conf7
-rw-r--r--release/tools/ec2-small.conf7
-rw-r--r--release/tools/oci-image-notoolchain.conf1
-rw-r--r--release/tools/vagrant.conf25
-rw-r--r--release/tools/vmimage.subr41
5 files changed, 45 insertions, 36 deletions
diff --git a/release/tools/ec2-builder.conf b/release/tools/ec2-builder.conf
index cf4276fc80ec..a55485fec0cd 100644
--- a/release/tools/ec2-builder.conf
+++ b/release/tools/ec2-builder.conf
@@ -7,17 +7,16 @@
export VMSIZE=8000m
# Flags to installworld/kernel: We don't want debug symbols (kernel or
-# userland), 32-bit libraries, tests, or the debugger.
+# userland), 32-bit libraries, or tests.
export INSTALLOPTS="WITHOUT_DEBUG_FILES=YES WITHOUT_KERNEL_SYMBOLS=YES \
- WITHOUT_LIB32=YES WITHOUT_TESTS=YES WITHOUT_LLDB=YES"
+ WITHOUT_LIB32=YES WITHOUT_TESTS=YES"
# Equivalent to INSTALLOPTS for pkgbase
vm_extra_filter_base_packages() {
grep -v \
-e '.*-dbg$' \
-e '.*-lib32$' \
- -e '^FreeBSD-tests.*' \
- -e '^FreeBSD-lldb.*'
+ -e '^FreeBSD-set-tests'
}
# Packages to install into the image we're creating. In addition to packages
diff --git a/release/tools/ec2-small.conf b/release/tools/ec2-small.conf
index 32d02cbb79e4..acaffbbc0c42 100644
--- a/release/tools/ec2-small.conf
+++ b/release/tools/ec2-small.conf
@@ -10,17 +10,16 @@
export VMSIZE=5000m
# Flags to installworld/kernel: We don't want debug symbols (kernel or
-# userland), 32-bit libraries, tests, or the debugger.
+# userland), 32-bit libraries, or tests.
export INSTALLOPTS="WITHOUT_DEBUG_FILES=YES WITHOUT_KERNEL_SYMBOLS=YES \
- WITHOUT_LIB32=YES WITHOUT_TESTS=YES WITHOUT_LLDB=YES"
+ WITHOUT_LIB32=YES WITHOUT_TESTS=YES"
# Equivalent to INSTALLOPTS for pkgbase
vm_extra_filter_base_packages() {
grep -v \
-e '.*-dbg$' \
-e '.*-lib32$' \
- -e '^FreeBSD-tests.*' \
- -e '^FreeBSD-lldb.*'
+ -e '^FreeBSD-set-tests'
}
# Packages to install into the image we're creating. In addition to packages
diff --git a/release/tools/oci-image-notoolchain.conf b/release/tools/oci-image-notoolchain.conf
index e251281a7357..a769b53f9ff6 100644
--- a/release/tools/oci-image-notoolchain.conf
+++ b/release/tools/oci-image-notoolchain.conf
@@ -24,7 +24,6 @@ oci_image_build() {
FreeBSD-fd \
FreeBSD-fetch \
FreeBSD-ftp \
- FreeBSD-ftpd \
FreeBSD-inetd \
FreeBSD-ipf \
FreeBSD-ipfw \
diff --git a/release/tools/vagrant.conf b/release/tools/vagrant.conf
index 7ab0e1238693..5b0f38b740a6 100644
--- a/release/tools/vagrant.conf
+++ b/release/tools/vagrant.conf
@@ -14,14 +14,16 @@ export VM_EXTRA_PACKAGES="${VM_EXTRA_PACKAGES} shells/bash \
export VM_RC_LIST="firstboot_freebsd_update firstboot_pkgs growfs"
vagrant_common () {
- # 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.
- env ASSUME_ALWAYS_YES=yes pkg -c ${DESTDIR} clean -y -a
- env ASSUME_ALWAYS_YES=yes pkg -c ${DESTDIR} delete -f -y pkg
- rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports
- rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports-kmods
+ if [ -z "${NO_ROOT}" ]; then
+ # 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.
+ pkg -c ${DESTDIR} clean -y -a
+ pkg -c ${DESTDIR} delete -f -y pkg
+ rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports
+ rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports-kmods
+ fi
# Vagrant instances use DHCP to get their network configuration.
echo 'ifconfig_DEFAULT="SYNCDHCP"' >> ${DESTDIR}/etc/rc.conf
@@ -40,8 +42,7 @@ vagrant_common () {
# Create the vagrant user with a password of vagrant
/usr/sbin/pw -R ${DESTDIR} \
groupadd vagrant -g 1001
- chroot ${DESTDIR} mkdir -p /home/vagrant
- /usr/sbin/pw -R ${DESTDIR} \
+ /usr/sbin/pw -R ${DESTDIR} -M ${DESTDIR}/METALOG \
useradd vagrant \
-m -M 0755 -w yes -n vagrant -u 1001 -g 1001 -G 0 \
-c 'Vagrant User' -d '/home/vagrant' -s '/bin/csh'
@@ -58,11 +59,11 @@ vagrant_common () {
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > ${DESTDIR}/home/vagrant/.ssh/authorized_keys
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN1YdxBpNlzxDqfJyw/QKow1F+wvG9hXGoqiysfJOn5Y vagrant insecure public key" >> ${DESTDIR}/home/vagrant/.ssh/authorized_keys
chmod 600 ${DESTDIR}/home/vagrant/.ssh/authorized_keys
- metalog_add_data ./home/vagrant/.ssh/authorized_keys 0600
chmod 700 ${DESTDIR}/home/vagrant/.ssh
chown -R 1001 ${DESTDIR}/home/vagrant/.ssh
- echo "./home/vagrant/.ssh type=dir uid=1001 gid=1001 mode=0700" >> METALOG
+ echo "./home/vagrant/.ssh type=dir uid=1001 gid=1001 mode=0700" >> ${DESTDIR}/METALOG
+ echo "./home/vagrant/.ssh/authorized_keys type=file uid=1001 gid=1001 mode=0600" >> ${DESTDIR}/METALOG
# Reboot quickly, Don't wait at the panic screen
echo 'debug.trace_on_panic=1' >> ${DESTDIR}/etc/sysctl.conf
diff --git a/release/tools/vmimage.subr b/release/tools/vmimage.subr
index 577abaac73cf..131ebe37db6c 100644
--- a/release/tools/vmimage.subr
+++ b/release/tools/vmimage.subr
@@ -70,15 +70,15 @@ vm_copy_base() {
return 0
}
-vm_filter_base_packages() {
- # Reads a list of all base system packages from stdin.
- # Writes a list of base system packages to install to stdout.
- grep -v -e '^FreeBSD-src.*' -e '^FreeBSD-kernel.*'
- # There are several kernel variants available in separate packages.
- # For VMs it is sufficient to install only the generic kernel.
- echo "FreeBSD-kernel-man"
- echo "FreeBSD-kernel-generic"
- echo "FreeBSD-kernel-generic-dbg"
+vm_base_packages_list() {
+ # Output a list of package sets equivalent to what we get from
+ # "installworld installkernel distribution", aka. the full base
+ # system.
+ for S in base lib32 kernels; do
+ echo FreeBSD-set-$S
+ echo FreeBSD-set-$S-dbg
+ done
+ echo FreeBSD-set-tests
}
vm_extra_filter_base_packages() {
@@ -94,10 +94,12 @@ vm_install_base() {
local pkg_cmd
pkg_cmd="pkg --rootdir ${DESTDIR} --repo-conf-dir ${PKGBASE_REPO_DIR}
-o ASSUME_ALWAYS_YES=yes -o IGNORE_OSVERSION=yes
- -o INSTALL_AS_USER=yes "
+ -o ABI=${PKG_ABI} -o INSTALL_AS_USER=yes "
+ if [ -n "${NO_ROOT}" ]; then
+ pkg_cmd="$pkg_cmd -o METALOG=METALOG"
+ fi
$pkg_cmd update
- selected=$($pkg_cmd rquery -U -r FreeBSD-base %n | \
- vm_filter_base_packages | vm_extra_filter_base_packages)
+ selected=$(vm_base_packages_list | vm_extra_filter_base_packages)
$pkg_cmd install -U -r FreeBSD-base $selected
else
cd ${WORLDDIR} && \
@@ -198,6 +200,7 @@ vm_extra_install_packages() {
for pkg in ${VM_EXTRA_PACKAGES}; do
INSTALL_AS_USER=yes \
${PKG_CMD} \
+ -o ABI=${PKG_ABI} \
-o METALOG=${DESTDIR}/METALOG.pkg \
-o REPOS_DIR=${PKG_REPOS_DIR} \
-o PKG_DBDIR=${DESTDIR}/var/db/pkg \
@@ -249,9 +252,17 @@ vm_emulation_cleanup() {
}
vm_extra_pkg_rmcache() {
- if [ -e ${DESTDIR}/usr/local/sbin/pkg ]; then
- chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
- /usr/local/sbin/pkg clean -y -a
+ if [ -n "${NO_ROOT}" ]; then
+ ${PKG_CMD} \
+ -o ASSUME_ALWAYS_YES=yes \
+ -o INSTALL_AS_USER=yes \
+ -r ${DESTDIR} \
+ clean -y -a
+ else
+ if [ -e ${DESTDIR}/usr/local/sbin/pkg ]; then
+ chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
+ /usr/local/sbin/pkg clean -y -a
+ fi
fi
return 0