15cd2b138SFam Zheng#!/usr/bin/env python 25cd2b138SFam Zheng# 35cd2b138SFam Zheng# NetBSD VM image 45cd2b138SFam Zheng# 55cd2b138SFam Zheng# Copyright 2017 Red Hat Inc. 65cd2b138SFam Zheng# 75cd2b138SFam Zheng# Authors: 85cd2b138SFam Zheng# Fam Zheng <famz@redhat.com> 95cd2b138SFam Zheng# 105cd2b138SFam Zheng# This code is licensed under the GPL version 2 or later. See 115cd2b138SFam Zheng# the COPYING file in the top-level directory. 125cd2b138SFam Zheng# 135cd2b138SFam Zheng 145cd2b138SFam Zhengimport os 155cd2b138SFam Zhengimport sys 165cd2b138SFam Zhengimport subprocess 175cd2b138SFam Zhengimport basevm 185cd2b138SFam Zheng 195cd2b138SFam Zhengclass NetBSDVM(basevm.BaseVM): 205cd2b138SFam Zheng name = "netbsd" 2131719c37SPhilippe Mathieu-Daudé arch = "x86_64" 225cd2b138SFam Zheng BUILD_SCRIPT = """ 235cd2b138SFam Zheng set -e; 2444b69d50SPeter Maydell rm -rf /var/tmp/qemu-test.* 255cd2b138SFam Zheng cd $(mktemp -d /var/tmp/qemu-test.XXXXXX); 265cd2b138SFam Zheng tar -xf /dev/rld1a; 275cd2b138SFam Zheng ./configure --python=python2.7 {configure_opts}; 285c2ec9b6SAlex Bennée gmake --output-sync -j{jobs} {target} {verbose}; 295cd2b138SFam Zheng """ 305cd2b138SFam Zheng 31*6d46e602SEduardo Habkost # Workaround for NetBSD + IPv6 + slirp issues. 32*6d46e602SEduardo Habkost # NetBSD seems to ignore the ICMPv6 Destination Unreachable 33*6d46e602SEduardo Habkost # messages generated by slirp. When the host has no IPv6 34*6d46e602SEduardo Habkost # connectivity, this causes every connection to ftp.NetBSD.org 35*6d46e602SEduardo Habkost # take more than a minute to be established. 36*6d46e602SEduardo Habkost ipv6 = False 37*6d46e602SEduardo Habkost 385cd2b138SFam Zheng def build_image(self, img): 395cd2b138SFam Zheng cimg = self._download_with_cache("http://download.patchew.org/netbsd-7.1-amd64.img.xz", 405cd2b138SFam Zheng sha256sum='b633d565b0eac3d02015cd0c81440bd8a7a8df8512615ac1ee05d318be015732') 415cd2b138SFam Zheng img_tmp_xz = img + ".tmp.xz" 425cd2b138SFam Zheng img_tmp = img + ".tmp" 43920fff90SPhilippe Mathieu-Daudé sys.stderr.write("Extracting the image...\n") 44676d1f3eSCleber Rosa subprocess.check_call(["ln", "-f", cimg, img_tmp_xz]) 45676d1f3eSCleber Rosa subprocess.check_call(["xz", "--keep", "-dvf", img_tmp_xz]) 465cd2b138SFam Zheng os.rename(img_tmp, img) 475cd2b138SFam Zheng 485cd2b138SFam Zhengif __name__ == "__main__": 495cd2b138SFam Zheng sys.exit(basevm.main(NetBSDVM)) 50