676d1f3e2f
The image copy is only really needed because xz doesn't know to properly decompress a file not named properly. Instead of decompressing to stdout, and having to rely on a shell, let's just create a link instead of copying the file. Signed-off-by: Cleber Rosa <crosa@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190613130718.3763-2-crosa@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
47 lines
1.4 KiB
Python
Executable File
47 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python
|
|
#
|
|
# OpenBSD 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 OpenBSDVM(basevm.BaseVM):
|
|
name = "openbsd"
|
|
arch = "x86_64"
|
|
BUILD_SCRIPT = """
|
|
set -e;
|
|
rm -rf /var/tmp/qemu-test.*
|
|
cd $(mktemp -d /var/tmp/qemu-test.XXXXXX);
|
|
tar -xf /dev/rsd1c;
|
|
./configure --cc=x86_64-unknown-openbsd6.1-gcc-4.9.4 --python=python2.7 {configure_opts};
|
|
gmake --output-sync -j{jobs} {verbose};
|
|
# XXX: "gmake check" seems to always hang or fail
|
|
#gmake --output-sync -j{jobs} check {verbose};
|
|
"""
|
|
|
|
def build_image(self, img):
|
|
cimg = self._download_with_cache("http://download.patchew.org/openbsd-6.1-amd64.img.xz",
|
|
sha256sum='8c6cedc483e602cfee5e04f0406c64eb99138495e8ca580bc0293bcf0640c1bf')
|
|
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])
|
|
if os.path.exists(img):
|
|
os.remove(img)
|
|
os.rename(img_tmp, img)
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(basevm.main(OpenBSDVM))
|