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=" 15archivers/gtar 16devel/git 17devel/gdb 18devel/py-pytest 19perl5 20lang/python 21lang/python3 22net/isc-dhcp44-server 23net/ndisc6 24net/py-dpkt 25net/scapy 26net/tcptestsuite 27security/nist-kat 28security/nmap 29security/openvpn 30security/sudo 31shells/ksh93 32sysutils/coreutils 33sysutils/porch 34sysutils/sg3_utils 35textproc/jq 36" 37 38 if [ "${TARGET}" = "amd64" ]; then 39 export VM_EXTRA_PACKAGES="${VM_EXTRA_PACKAGES} devel/linux-ltp" 40 fi 41fi 42 43vm_extra_pre_umount() { 44cat << EOF >> ${DESTDIR}/boot/loader.conf 45autoboot_delay=1 46beastie_disable="YES" 47loader_logo="none" 48console="comconsole,vidconsole" 49net.fibs=3 50net.inet.ip.fw.default_to_accept=1 51mac_bsdextended_load="YES" 52vfs.zfs.arc_max=4294967296 53kern.vty=sc 54EOF 55cat << EOF >> ${DESTDIR}/etc/kyua/kyua.conf 56test_suites.FreeBSD.ci = 'true' 57test_suites.FreeBSD.fibs = '1 2' 58test_suites.FreeBSD.allow_sysctl_side_effects = '1' 59test_suites.FreeBSD.cam_test_device = '/dev/ada0' 60test_suites.FreeBSD.disks = '/dev/vtbd2 /dev/vtbd3 /dev/vtbd4 /dev/vtbd5 /dev/vtbd6' 61EOF 62cat << EOF >> ${DESTDIR}/etc/rc.conf 63kld_list="" # Load modules needed by tests 64kld_list="\${kld_list} accf_data" # sys/kern/socket_accf 65kld_list="\${kld_list} accf_dns" # sys/kern/socket_accf 66kld_list="\${kld_list} accf_http" # sys/kern/socket_accf 67kld_list="\${kld_list} accf_tls" # sys/kern/socket_accf 68kld_list="\${kld_list} blake2" # sys/opencrypto 69kld_list="\${kld_list} carp" # sys/netinet/carp 70kld_list="\${kld_list} cryptodev" # sys/opencrypto 71kld_list="\${kld_list} dummymbuf" # sys/netpfil 72kld_list="\${kld_list} dummynet" # sys/netpfil/common 73kld_list="\${kld_list} fusefs" # sys/fs/fusefs 74kld_list="\${kld_list} if_bridge" # sys/net/if_bridge_test 75kld_list="\${kld_list} if_enc" # sys/netpfil/pf 76kld_list="\${kld_list} if_epair" # sys/net/if_epair_test 77kld_list="\${kld_list} if_ovpn" # sys/net/if_ovpn 78kld_list="\${kld_list} if_stf" # sys/net/if_stf 79kld_list="\${kld_list} ipdivert" # sys/netinet (loads ipdivert) 80kld_list="\${kld_list} ipfw" # sys/netpfil/ipfw (loads ipfw) 81kld_list="\${kld_list} ipfw_nat" # sys/netpfil/ipfw (loads ipfw_nat) 82kld_list="\${kld_list} ipl" # sys/sbin/ipf (loads ipfilter) 83kld_list="\${kld_list} ipsec" # sys/netipsec 84kld_list="\${kld_list} mac_portacl" # sys/mac/portacl 85kld_list="\${kld_list} mqueuefs" # sys/kern/mqueue_test 86kld_list="\${kld_list} pf" # sys/netpfil/pf 87kld_list="\${kld_list} pflog" # sys/netpfil/pf 88kld_list="\${kld_list} pflow" # sys/netpfil/pf 89kld_list="\${kld_list} pfsync" # sys/netpfil/pf (loads pf) 90kld_list="\${kld_list} sctp" # sys/netpfil/pf 91kld_list="\${kld_list} tarfs" # sys/fs/tarfs 92kld_list="\${kld_list} tcpmd5" # sys/netinet 93background_fsck="NO" 94sendmail_enable="NONE" 95cron_enable="NO" 96syslogd_enable="NO" 97newsyslog_enable="NO" 98EOF 99if [ "${CITYPE}" = "smoke" ]; then 100cat << EOF >> ${DESTDIR}/etc/rc.conf 101freebsdci_type="smoke" 102EOF 103elif [ "${CITYPE}" = "full" ]; then 104cat << EOF >> ${DESTDIR}/etc/rc.conf 105freebsdci_type="full" 106freebsdci_test_filters="${KYUA_TEST_FILTERS}" 107EOF 108fi 109cat << EOF >> ${DESTDIR}/etc/sysctl.conf 110kern.cryptodevallowsoft=1 111kern.ipc.tls.enable=1 112net.add_addr_allfibs=0 113security.mac.bsdextended.enabled=0 114vfs.aio.enable_unsafe=1 115vfs.usermount=1 116EOF 117cat << EOF >> ${DESTDIR}/etc/fstab 118fdesc /dev/fd fdescfs rw 0 0 119EOF 120 mkdir -p ${DESTDIR}/usr/local/etc/rc.d 121 cp -p ${scriptdir}/../../tests/ci/tools/freebsdci ${DESTDIR}/usr/local/etc/rc.d/ 122 123 return 0 124} 125 126vm_extra_pkg_rmcache() { 127 if [ -e ${DESTDIR}/usr/local/sbin/pkg ]; then 128 mount -t devfs devfs ${DESTDIR}/dev 129 chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \ 130 /usr/local/sbin/pkg clean -a 131 umount_loop ${DESTDIR}/dev 132 fi 133 134 return 0 135} 136