1#!/bin/sh 2# 3# SPDX-License-Identifier: BSD-2-Clause 4# 5# Copyright (c) 2024 The FreeBSD Foundation 6# 7# This software was developed by Cybermancer Infosec <bofh@FreeBSD.org> 8# under sponsorship from the FreeBSD Foundation. 9# 10# Set to a list of third-party software to enable in rc.conf(5). 11export VM_RC_LIST="auditd freebsdci" 12 13if [ "${CITYPE}" != "smoke" ]; then 14export VM_EXTRA_PACKAGES="coreutils devel/py-pytest gdb jq ksh93 net/py-dpkt net/scapy nist-kat nmap perl5 python python3 sudo sysutils/porch tcptestsuite" 15 16 if [ "${TARGET}" = "amd64" ]; then 17 export VM_EXTRA_PACKAGES="${VM_EXTRA_PACKAGES} linux-c7-ltp" 18 fi 19fi 20 21vm_extra_pre_umount() { 22cat << EOF >> ${DESTDIR}/boot/loader.conf 23autoboot_delay=1 24beastie_disable="YES" 25loader_logo="none" 26console="comconsole,vidconsole" 27net.fibs=3 28net.inet.ip.fw.default_to_accept=1 29mac_bsdextended_load="YES" 30vfs.zfs.arc_max=4294967296 31kern.vty=sc 32EOF 33cat << EOF >> ${DESTDIR}/etc/kyua/kyua.conf 34test_suites.FreeBSD.ci = 'true' 35test_suites.FreeBSD.fibs = '1 2' 36test_suites.FreeBSD.allow_sysctl_side_effects = '1' 37test_suites.FreeBSD.cam_test_device = '/dev/ada0' 38test_suites.FreeBSD.disks = '/dev/vtbd2 /dev/vtbd3 /dev/vtbd4 /dev/vtbd5 /dev/vtbd6' 39EOF 40cat << EOF >> ${DESTDIR}/etc/rc.conf 41kld_list="" # Load modules needed by tests 42kld_list="${kld_list} blake2" # sys/opencrypto 43kld_list="${kld_list} cryptodev" # sys/opencrypto 44kld_list="${kld_list} dummymbuf" # sys/netpfil 45kld_list="${kld_list} fusefs" # sys/fs/fusefs 46kld_list="${kld_list} ipsec" # sys/netipsec 47kld_list="${kld_list} mac_portacl" # sys/mac/portacl 48kld_list="${kld_list} mqueuefs" # sys/kern/mqueue_test 49kld_list="${kld_list} pfsync" # sys/netpfil/pf (loads pf) 50kld_list="${kld_list} pflog" # sys/netpfil/pf 51kld_list="${kld_list} ipl" # sys/sbin/ipf (loads ipfilter) 52kld_list="${kld_list} ipfw" # sys/netpfil/ipfw (loads ipfw) 53kld_list="${kld_list} ipfw_nat" # sys/netpfil/ipfw (loads ipfw_nat) 54kld_list="${kld_list} ipdivert" # sys/netinet (loads ipdivert) 55kld_list="${kld_list} dummynet" # sys/netpfil/common 56kld_list="${kld_list} carp" # sys/netinet/carp 57kld_list="${kld_list} if_stf" # sys/net/if_stf 58background_fsck="NO" 59sendmail_enable="NONE" 60cron_enable="NO" 61syslogd_enable="NO" 62newsyslog_enable="NO" 63EOF 64if [ "${CITYPE}" = "smoke" ]; then 65cat << EOF >> ${DESTDIR}/etc/rc.conf 66freebsdci_type="smoke" 67EOF 68elif [ "${CITYPE}" = "full" ]; then 69cat << EOF >> ${DESTDIR}/etc/rc.conf 70freebsdci_type="full" 71EOF 72fi 73cat << EOF >> ${DESTDIR}/etc/sysctl.conf 74kern.cryptodevallowsoft=1 75kern.ipc.tls.enable=1 76net.add_addr_allfibs=0 77security.mac.bsdextended.enabled=0 78vfs.aio.enable_unsafe=1 79vfs.usermount=1 80EOF 81cat << EOF >> ${DESTDIR}/etc/fstab 82fdesc /dev/fd fdescfs rw 0 0 83EOF 84 mkdir -p ${DESTDIR}/usr/local/etc/rc.d 85 cp -p ${scriptdir}/../../tests/ci/tools/freebsdci ${DESTDIR}/usr/local/etc/rc.d/ 86 touch ${DESTDIR}/firstboot 87 88 return 0 89} 90 91vm_extra_pkg_rmcache() { 92 if [ -e ${DESTDIR}/usr/local/sbin/pkg ]; then 93 mount -t devfs devfs ${DESTDIR}/dev 94 chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \ 95 /usr/local/sbin/pkg clean -a 96 umount_loop ${DESTDIR}/dev 97 fi 98 99 return 0 100} 101