| #!/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" |
| 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)) |