1#!/usr/bin/env python 2# 3# NetBSD VM image 4# 5# Copyright 2017 Red Hat Inc. 6# 7# Authors: 8# Fam Zheng <famz@redhat.com> 9# 10# This code is licensed under the GPL version 2 or later. See 11# the COPYING file in the top-level directory. 12# 13 14import os 15import sys 16import subprocess 17import basevm 18 19class NetBSDVM(basevm.BaseVM): 20 name = "netbsd" 21 arch = "x86_64" 22 BUILD_SCRIPT = """ 23 set -e; 24 rm -rf /var/tmp/qemu-test.* 25 cd $(mktemp -d /var/tmp/qemu-test.XXXXXX); 26 tar -xf /dev/rld1a; 27 ./configure --python=python2.7 {configure_opts}; 28 gmake --output-sync -j{jobs} {target} {verbose}; 29 """ 30 31 # Workaround for NetBSD + IPv6 + slirp issues. 32 # NetBSD seems to ignore the ICMPv6 Destination Unreachable 33 # messages generated by slirp. When the host has no IPv6 34 # connectivity, this causes every connection to ftp.NetBSD.org 35 # take more than a minute to be established. 36 ipv6 = False 37 38 def build_image(self, img): 39 cimg = self._download_with_cache("http://download.patchew.org/netbsd-7.1-amd64.img.xz", 40 sha256sum='b633d565b0eac3d02015cd0c81440bd8a7a8df8512615ac1ee05d318be015732') 41 img_tmp_xz = img + ".tmp.xz" 42 img_tmp = img + ".tmp" 43 sys.stderr.write("Extracting the image...\n") 44 subprocess.check_call(["ln", "-f", cimg, img_tmp_xz]) 45 subprocess.check_call(["xz", "--keep", "-dvf", img_tmp_xz]) 46 os.rename(img_tmp, img) 47 48if __name__ == "__main__": 49 sys.exit(basevm.main(NetBSDVM)) 50