#!/usr/bin/env python # # NetBSD VM image # # Copyright 2017 Red Hat Inc. # # Authors: # Fam Zheng # # This code is licensed under the GPL version 2 or later. See # the COPYING file in the top-level directory. # import os import sys import subprocess import basevm class NetBSDVM(basevm.BaseVM): name = "netbsd" arch = "x86_64" BUILD_SCRIPT = """ set -e; rm -rf /var/tmp/qemu-test.* cd $(mktemp -d /var/tmp/qemu-test.XXXXXX); tar -xf /dev/rld1a; ./configure --python=python2.7 {configure_opts}; gmake --output-sync -j{jobs} {target} {verbose}; """ # Workaround for NetBSD + IPv6 + slirp issues. # NetBSD seems to ignore the ICMPv6 Destination Unreachable # messages generated by slirp. When the host has no IPv6 # connectivity, this causes every connection to ftp.NetBSD.org # take more than a minute to be established. ipv6 = False def build_image(self, img): cimg = self._download_with_cache("http://download.patchew.org/netbsd-7.1-amd64.img.xz", sha256sum='b633d565b0eac3d02015cd0c81440bd8a7a8df8512615ac1ee05d318be015732') img_tmp_xz = img + ".tmp.xz" img_tmp = img + ".tmp" sys.stderr.write("Extracting the image...\n") subprocess.check_call(["ln", "-f", cimg, img_tmp_xz]) subprocess.check_call(["xz", "--keep", "-dvf", img_tmp_xz]) os.rename(img_tmp, img) if __name__ == "__main__": sys.exit(basevm.main(NetBSDVM))