From 319735548ced25094cd8478019b49fbc4b4d0fd1 Mon Sep 17 00:00:00 2001 From: "Artem Y. Polyakov" Date: Thu, 8 Oct 2020 08:47:26 -0700 Subject: [PATCH] Set of fixes to run with custom QEMU --- docker/fc31/support-qemu.sh | 86 ++++++++++++++++++---------------- docker/fc31/support.Dockerfile | 4 ++ plugins/cmd_images.py | 21 +++++---- plugins/mkt_utils.py | 2 +- 4 files changed, 63 insertions(+), 50 deletions(-) diff --git a/docker/fc31/support-qemu.sh b/docker/fc31/support-qemu.sh index 36023c0..5581990 100644 --- a/docker/fc31/support-qemu.sh +++ b/docker/fc31/support-qemu.sh @@ -1,7 +1,8 @@ #!/bin/bash # --- # git_url: git@github.com:artpol84/qemu.git -# git_commit: 0261e73224a48e99b2dabb065437ae21b3e08944 +# bkp_git_commit: 0261e73224a48e99b2dabb065437ae21b3e08944 +# git_commit: 16d97a001da # git_modules: yes cat < mlx-qemu.spec @@ -17,47 +18,52 @@ License: Proprietary %build -ls ./configure \ - --prefix=/opt/qemu-sr \ - '--block-drv-ro-whitelist=vmdk,vhdx,vpc' \ - '--block-drv-rw-whitelist=qcow,qcow2,raw,file,host_device,nbd,iscsi,vvfat' \ - '--disable-brlapi' \ - '--disable-capstone' \ - '--disable-curl' \ - '--disable-curses' \ - '--disable-debug-tcg' \ - '--disable-docs' \ - '--disable-guest-agent' \ - '--disable-glusterfs' \ - '--disable-gtk' \ - '--disable-libusb' \ - '--disable-live-block-migration' \ - '--disable-nettle' \ - '--disable-qom-cast-debug' \ - '--disable-rdma' \ - '--disable-replication' \ - '--disable-sparse' \ - '--disable-smartcard' \ - '--disable-sdl' \ - '--disable-strip' \ - '--disable-tools' \ - '--disable-vde' \ - '--disable-vhost-scsi' \ - '--disable-vnc-jpeg' \ - '--disable-vnc-png' \ - '--disable-vnc-sasl' \ - '--disable-xen' \ - '--enable-fdt' \ - '--enable-kvm' \ - '--enable-linux-aio' \ - '--enable-seccomp' \ - '--enable-spice' \ - '--enable-trace-backend=dtrace' \ - '--enable-usb-redir' \ - '--enable-vnc' \ + --prefix=/opt/qemu-sr \ + --disable-strip \ + --disable-qom-cast-debug \ + --extra-ldflags="-pie -Wl,-z,relro -Wl,-z,now" \ + --extra-cflags="-fPIE -DPIE" \ + --enable-trace-backends=simple,dtrace \ + --with-trace-file=/var/log/traces \ + --enable-werror \ + --disable-xen \ + --disable-virtfs \ + --enable-kvm \ + --enable-libusb \ + --enable-spice \ + --enable-seccomp \ + --disable-fdt \ + --disable-docs \ + --disable-sdl \ + --disable-debug-tcg \ + --disable-sparse \ + --disable-brlapi \ + --disable-vde \ + --disable-curses \ + --disable-curl \ + --enable-vnc-sasl \ + --enable-linux-aio \ + --enable-lzo \ + --enable-snappy \ + --enable-usb-redir \ + --enable-vnc-png \ + --disable-vnc-jpeg \ + --disable-vhost-scsi \ + --target-list=x86_64-softmmu \ + --block-drv-rw-whitelist=qcow2,raw,file,host_device,blkdebug,nbd,iscsi,gluster,rbd \ + --block-drv-ro-whitelist=vmdk,vhdx,vpc \ + --enable-debug-info \ -# '--enable-virtfs' \ + +# --enable-debug + +# --audio-drv-list=alsa \ +# --enable-rbd \ +# --disable-bluez \ +# --enable-glusterfs \ + +./scripts/git-submodule.sh update make %{?_smp_mflags} diff --git a/docker/fc31/support.Dockerfile b/docker/fc31/support.Dockerfile index 49195e5..046b420 100644 --- a/docker/fc31/support.Dockerfile +++ b/docker/fc31/support.Dockerfile @@ -54,4 +54,8 @@ RUN dnf install -y \ uuid-devel \ valgrind-devel \ zlib-devel \ + lzo-devel \ + snappy-devel \ + cyrus-sasl-devel \ + libpng-devel \ && dnf clean dbcache packages diff --git a/plugins/cmd_images.py b/plugins/cmd_images.py index 687bff1..cd37c53 100644 --- a/plugins/cmd_images.py +++ b/plugins/cmd_images.py @@ -105,15 +105,17 @@ def _fetch_git(self): except subprocess.CalledProcessError: shutil.rmtree(self.git_dir) - with in_directory(self.git_dir): - self.git_id = git_commit_id(git_ref, fail_is_none=True) - if self.git_id is None: - git_call(["fetch", "--tags", git_url]) + if not self.git_modules: + with in_directory(self.git_dir): + self.git_id = git_commit_id(git_ref, fail_is_none=True) + if self.git_id is None: + git_call(["fetch", "--tags", git_url]) + self.git_id = git_commit_id(git_ref) + else: + with in_directory(self.git_dir): + git_call(["fetch"]) self.git_id = git_commit_id(git_ref) - - with in_directory(self.git_dir): - if self.git_modules: - git_call(["checkout", "-b", "work", self.git_id ]) + git_call(["checkout", self.git_id ]) git_call(["submodule", "update", "--init", "--recursive"]) @@ -181,7 +183,8 @@ def _setup_git(self, dfn): else: subprocess.check_call([ "tar", "--create", "--mtime=Jan 1 2010", "--file", self.tarfn, - "--exclude", ".git", "--transform", "s|^|opt/src/|", "."]) + "--transform", "s|^|opt/src/|", "."]) +# "--exclude", ".git", "--transform", "s|^|opt/src/|", "."]) def _setup_nfs(self, dfn): for nfs_fn, inf in self.spec.get("nfs_files", {}).items(): diff --git a/plugins/mkt_utils.py b/plugins/mkt_utils.py index 83b0747..3590430 100644 --- a/plugins/mkt_utils.py +++ b/plugins/mkt_utils.py @@ -81,7 +81,7 @@ def set_def_qemu_args(): # # This is really annoying, disable it by telling SeaBIOS to use a bogus # serial port for its output. - "-fw_cfg": ["etc/sercon-port,string=2"], + "-fw_cfg": ["opt/sercon-port,string=2"], "-smp": "%s" % int( multiprocessing.cpu_count() / 2) } return qemu_args