1#!/usr/bin/env python 2# 3# OpenBSD 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 OpenBSDVM(basevm.BaseVM): 20 name = "openbsd" 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/rsd1c; 27 ./configure --cc=x86_64-unknown-openbsd6.1-gcc-4.9.4 --python=python2.7 {configure_opts}; 28 gmake --output-sync -j{jobs} {verbose}; 29 # XXX: "gmake check" seems to always hang or fail 30 #gmake --output-sync -j{jobs} check {verbose}; 31 """ 32 33 def build_image(self, img): 34 cimg = self._download_with_cache("http://download.patchew.org/openbsd-6.1-amd64.img.xz", 35 sha256sum='8c6cedc483e602cfee5e04f0406c64eb99138495e8ca580bc0293bcf0640c1bf') 36 img_tmp_xz = img + ".tmp.xz" 37 img_tmp = img + ".tmp" 38 subprocess.check_call(["cp", "-f", cimg, img_tmp_xz]) 39 subprocess.check_call(["xz", "-df", img_tmp_xz]) 40 if os.path.exists(img): 41 os.remove(img) 42 os.rename(img_tmp, img) 43 44if __name__ == "__main__": 45 sys.exit(basevm.main(OpenBSDVM)) 46