def setup_vm(): global vm_proc, termserv_proc info('Starting up VM') sh('bhyveload -m ${RAM_SIZE} -d ${OBJDIR}/test-root.ufs ${VM_NAME}') vm_proc = sh_spawn( 'bhyve -m ${RAM_SIZE} -A -H -P', '-s 0:0,hostbridge', '-s 1:0,virtio-net,${tapdev}', '-s 2:0,ahci-hd,${OBJDIR}/test-root.ufs', '-s 3:0,ahci-hd,${OBJDIR}/test-swap.bin', '-s 31,lpc -l com1,${CONSOLE_MASTER}', '${VM_NAME}' ) pid = vm_proc.pid logfile = objdir(e('logs/bhyve.${pid}.log')) info('Starting telnet server on port {0}', e('${TELNET_PORT}')) info('Console log file is {0}', logfile) termserv_proc = sh_spawn( 'python', '${BUILD_TOOLS}/terminal-server.py', '-l ${logfile}', '-c ${CONSOLE_SLAVE}', '-p ${TELNET_PORT}' ) on_abort(shutdown_vm)
def umount_packages(): sh('umount -f ${WORLD_DESTDIR}/usr/ports/packages') on_abort(None) # If doing a SDK build, we can nuke the local.conf and enable FreeBSD pkg if e('${SDK}') == "yes": info('SDK: Enabling pkgng repo') sh('sed -i "" "s|: no|: yes|g" ${WORLD_DESTDIR}/usr/local/etc/pkg/repos/FreeBSD.conf' ) sh('rm ${WORLD_DESTDIR}/usr/local/etc/pkg/repos/local.conf')
def setup_vm(): global vm_proc, termserv_proc info('Starting up VM') sh('bhyveload -m ${RAM_SIZE} -d ${OBJDIR}/test-root.ufs ${VM_NAME}') vm_proc = sh_spawn('bhyve -m ${RAM_SIZE} -A -H -P', '-s 0:0,hostbridge', '-s 1:0,virtio-net,${tapdev}', '-s 2:0,ahci-hd,${OBJDIR}/test-root.ufs', '-s 3:0,ahci-hd,${OBJDIR}/test-swap.bin', '-s 31,lpc -l com1,${CONSOLE_MASTER}', '${VM_NAME}') pid = vm_proc.pid logfile = objdir(e('logs/bhyve.${pid}.log')) info('Starting telnet server on port {0}', e('${TELNET_PORT}')) info('Console log file is {0}', logfile) termserv_proc = sh_spawn('python', '${BUILD_TOOLS}/terminal-server.py', '-l ${logfile}', '-c ${CONSOLE_SLAVE}', '-p ${TELNET_PORT}') on_abort(shutdown_vm)
def umount_packages(): sh('umount ${INSTUFS_DESTDIR}/usr/ports/packages') on_abort(None)
def mount_packages(): on_abort(umount_packages) jailname = readfile(e('${OBJDIR}/jailname')) sh('mkdir -p ${INSTUFS_DESTDIR}/usr/ports/packages') sh('mount -t nullfs ${OBJDIR}/ports/packages/${jailname}-p ${INSTUFS_DESTDIR}/usr/ports/packages')
def umount_packages(): sh('umount -f ${INSTUFS_DESTDIR}/usr/ports/packages') on_abort(None)
def mount_packages(): on_abort(umount_packages) jailname = readfile(e('${OBJDIR}/jailname')) sh('mkdir -p ${INSTUFS_DESTDIR}/usr/ports/packages') sh('mount -t nullfs ${OBJDIR}/ports/data/packages/${jailname}-p ${INSTUFS_DESTDIR}/usr/ports/packages' )
def cleanup_gui(): # FIXME: This triggers a kernel panic possible because of long path names # with spaces and double dashes in it. info('Cleaning up gui modules') sh('rm -rf ${BE_ROOT}/gui/node_modules') if __name__ == '__main__': if env('SKIP_PORTS'): info('Skipping ports build as instructed by setting SKIP_PORTS') sys.exit(0) cleanup_gui() create_overlay() on_abort(cleanup_env) obtain_jail_name() calculate_make_jobs() create_poudriere_config() create_make_conf() create_ports_list() prepare_jail() merge_port_trees() prepare_env() signal.signal(signal.SIGTERM, terminate) signal.signal(signal.SIGINT, terminate) signal.signal(signal.SIGINFO, siginfo) run() cleanup_env()
def umount_packages(): sh('umount ${WORLD_DESTDIR}/usr/ports/packages') on_abort(None)