2017-09-05 05:11:56 +03:00
|
|
|
#!/usr/bin/env python
|
|
|
|
#
|
|
|
|
# NetBSD VM image
|
|
|
|
#
|
|
|
|
# Copyright 2017 Red Hat Inc.
|
|
|
|
#
|
|
|
|
# Authors:
|
|
|
|
# Fam Zheng <famz@redhat.com>
|
|
|
|
#
|
|
|
|
# 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"
|
2018-10-13 03:40:30 +03:00
|
|
|
arch = "x86_64"
|
2017-09-05 05:11:56 +03:00
|
|
|
BUILD_SCRIPT = """
|
|
|
|
set -e;
|
2018-08-20 15:48:11 +03:00
|
|
|
rm -rf /var/tmp/qemu-test.*
|
2017-09-05 05:11:56 +03:00
|
|
|
cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
|
|
|
|
tar -xf /dev/rld1a;
|
|
|
|
./configure --python=python2.7 {configure_opts};
|
2019-01-21 19:48:15 +03:00
|
|
|
gmake --output-sync -j{jobs} {target} {verbose};
|
2017-09-05 05:11:56 +03:00
|
|
|
"""
|
|
|
|
|
2019-10-18 21:17:05 +03:00
|
|
|
# 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
|
|
|
|
|
2017-09-05 05:11:56 +03:00
|
|
|
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"
|
2019-01-29 20:53:46 +03:00
|
|
|
sys.stderr.write("Extracting the image...\n")
|
2019-06-13 16:07:15 +03:00
|
|
|
subprocess.check_call(["ln", "-f", cimg, img_tmp_xz])
|
|
|
|
subprocess.check_call(["xz", "--keep", "-dvf", img_tmp_xz])
|
2017-09-05 05:11:56 +03:00
|
|
|
os.rename(img_tmp, img)
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
sys.exit(basevm.main(NetBSDVM))
|