From 30332bdeae78105e015d5a8d4a51fd8fd4f750296e039d695e0515bbbf3a68aa Mon Sep 17 00:00:00 2001 From: Bruce Rogers Date: Fri, 21 Sep 2018 21:17:21 +0000 Subject: [PATCH] Accepting request 637104 from home:bfrogers:branches:Virtualization versioning correctness, and misc spec file improvements OBS-URL: https://build.opensuse.org/request/show/637104 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=428 --- qemu-linux-user.changes | 10 + qemu-linux-user.spec | 14 +- qemu-linux-user.spec.in | 13 +- qemu-testsuite.changes | 19 ++ qemu-testsuite.spec | 184 +++++++-------- qemu.changes | 19 ++ qemu.keyring | 493 ++++++++++++++++++++++++++++++++++++++++ qemu.spec | 184 +++++++-------- qemu.spec.in | 183 +++++++-------- update_git.sh | 3 +- 10 files changed, 838 insertions(+), 284 deletions(-) create mode 100644 qemu.keyring diff --git a/qemu-linux-user.changes b/qemu-linux-user.changes index 60de484..ae2f993 100644 --- a/qemu-linux-user.changes +++ b/qemu-linux-user.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Sep 21 19:35:23 UTC 2018 - Bruce Rogers + +- Make spec file improvements, including the following: +* Add qemu.keyring to enable package source verification +* Create srcname macro to identify source file name separately from + package name +* Sort some entries +* Minor file tweaks as done by osc format_spec_file service + ------------------------------------------------------------------- Fri Sep 14 21:19:22 UTC 2018 - Bruce Rogers diff --git a/qemu-linux-user.spec b/qemu-linux-user.spec index fd3e301..3427554 100644 --- a/qemu-linux-user.spec +++ b/qemu-linux-user.spec @@ -16,15 +16,20 @@ # +%define srcname qemu Name: qemu-linux-user -Url: http://www.qemu.org/ +Url: https://www.qemu.org/ Summary: CPU emulator for user space License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT Group: System/Emulators/PC Version: 3.0.0 Release: 0 -Source: qemu-3.0.0.tar.xz -# Upstream First -- http://wiki.qemu-project.org/Contribute/SubmitAPatch +%define qemuver 3.0.0 +Source: https://wiki.qemu.org/download/%{srcname}-%{version}.tar.xz +Source99: https://wiki.qemu.org/download/%{srcname}-%{version}.tar.xz.sig +Source100: %{srcname}.keyring +Source400: update_git.sh +# Upstream First -- https://wiki.qemu-project.org/Contribute/SubmitAPatch # This patch queue is auto-generated from https://github.com/openSUSE/qemu Patch0001: 0001-XXX-dont-dump-core-on-sigabort.patch Patch0002: 0002-qemu-binfmt-conf-Modify-default-pat.patch @@ -69,7 +74,6 @@ Patch0040: 0040-linux-headers-update.patch Patch0041: 0041-s390x-kvm-add-etoken-facility.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. -Source400: update_git.sh ExcludeArch: s390 BuildRoot: %{_tmppath}/%{name}-%{version}-build #!BuildIgnore: gcc-PIE @@ -98,7 +102,7 @@ architecture. The syscall interface is intercepted and execution below the syscall layer occurs on the native hardware and operating system. %prep -%setup -q -n qemu-3.0.0 +%setup -q -n %{srcname}-%{version} %patch0001 -p1 %patch0002 -p1 %patch0003 -p1 diff --git a/qemu-linux-user.spec.in b/qemu-linux-user.spec.in index 69c2a28..cbb6a26 100644 --- a/qemu-linux-user.spec.in +++ b/qemu-linux-user.spec.in @@ -16,20 +16,23 @@ # +%define srcname qemu Name: qemu-linux-user -Url: http://www.qemu.org/ +Url: https://www.qemu.org/ Summary: CPU emulator for user space License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT Group: System/Emulators/PC QEMU_VERSION Release: 0 -Source: qemu-3.0.0.tar.xz -# Upstream First -- http://wiki.qemu-project.org/Contribute/SubmitAPatch +Source: https://wiki.qemu.org/download/%{srcname}-%{version}.tar.xz +Source99: https://wiki.qemu.org/download/%{srcname}-%{version}.tar.xz.sig +Source100: %{srcname}.keyring +Source400: update_git.sh +# Upstream First -- https://wiki.qemu-project.org/Contribute/SubmitAPatch # This patch queue is auto-generated from https://github.com/openSUSE/qemu PATCH_FILES # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. -Source400: update_git.sh ExcludeArch: s390 BuildRoot: %{_tmppath}/%{name}-%{version}-build #!BuildIgnore: gcc-PIE @@ -58,7 +61,7 @@ architecture. The syscall interface is intercepted and execution below the syscall layer occurs on the native hardware and operating system. %prep -%setup -q -n qemu-3.0.0 +%setup -q -n %{srcname}-%{version} PATCH_EXEC %build diff --git a/qemu-testsuite.changes b/qemu-testsuite.changes index 092ebf3..9b83c46 100644 --- a/qemu-testsuite.changes +++ b/qemu-testsuite.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Fri Sep 21 19:35:23 UTC 2018 - Bruce Rogers + +- Correct some versioning as follows: +* Accurately reflect the qemu-ipxe package version value by adding + "+" at the end +* Don't overwrite seabios .version file, since now (for quite some + time actually) upstream tarball creation creates this file and + the value we are writing to it is actually wrong +- Make spec file improvements, including the following: +* Add qemu.keyring to enable package source verification +* Create srcname macro to identify source file name separately from + package name +* Create alternate to %version to avoid subpackage ordering + causing inadvertantly wrong %version value at point of use +* Sort some entries +* Be more consistent with macro syntax usage +* Minor file tweaks as done by osc format_spec_file service + ------------------------------------------------------------------- Fri Sep 14 21:16:52 UTC 2018 - Bruce Rogers diff --git a/qemu-testsuite.spec b/qemu-testsuite.spec index 114e47a..f94c841 100644 --- a/qemu-testsuite.spec +++ b/qemu-testsuite.spec @@ -104,15 +104,18 @@ %define _udevrulesdir /lib/udev/rules.d %endif +%define srcname qemu Name: qemu-testsuite -Url: http://www.qemu.org/ +Url: https://www.qemu.org/ Summary: Machine emulator and virtualizer License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT Group: System/Emulators/PC Version: 3.0.0 Release: 0 -Source: http://wiki.qemu.org/download/qemu-3.0.0.tar.xz -Source99: http://wiki.qemu.org/download/qemu-3.0.0.tar.xz.sig +%define qemuver 3.0.0 +Source: https://wiki.qemu.org/download/%{srcname}-%{version}.tar.xz +Source99: https://wiki.qemu.org/download/%{srcname}-%{version}.tar.xz.sig +Source100: %{srcname}.keyring Source1: 80-kvm.rules Source2: 71-sev.rules Source3: qemu-ifup @@ -127,7 +130,11 @@ Source11: supported.ppc.txt Source12: supported.x86.txt Source13: supported.s390.txt Source14: supported.arm.txt -# Upstream First -- http://wiki.qemu-project.org/Contribute/SubmitAPatch +# this is to make lint happy +Source300: qemu-rpmlintrc +Source301: ipxe-stub-out-the-SAN-req-s-in-int13.patch +Source400: update_git.sh +# Upstream First -- https://wiki.qemu-project.org/Contribute/SubmitAPatch # This patch queue is auto-generated from https://github.com/openSUSE/qemu Patch0001: 0001-XXX-dont-dump-core-on-sigabort.patch Patch0002: 0002-qemu-binfmt-conf-Modify-default-pat.patch @@ -198,10 +205,6 @@ Patch1500: skiboot-hdata-i2c.c-fix-building-with-gcc8.patch # ui/keycodemapdb (Currently no patches) -# this is to make lint happy -Source300: qemu-rpmlintrc -Source301: ipxe-stub-out-the-SAN-req-s-in-int13.patch -Source400: update_git.sh ExcludeArch: s390 %if "%{name}" == "qemu-testsuite" ExcludeArch: s390x @@ -344,30 +347,30 @@ BuildRequires: zlib-devel BuildRequires: python-base %endif BuildRequires: bc -BuildRequires: qemu-arm = %{version} -BuildRequires: qemu-block-curl = %{version} -BuildRequires: qemu-block-dmg = %{version} -BuildRequires: qemu-extra = %{version} -BuildRequires: qemu-guest-agent = %{version} -BuildRequires: qemu-ppc = %{version} -BuildRequires: qemu-s390 = %{version} -BuildRequires: qemu-tools = %{version} -BuildRequires: qemu-ui-curses = %{version} -BuildRequires: qemu-ui-gtk = %{version} -%if 0%{?is_opensuse} -BuildRequires: qemu-ui-sdl = %{version} -%endif -BuildRequires: qemu-x86 = %{version} +BuildRequires: qemu-arm = %{qemuver} +BuildRequires: qemu-block-curl = %{qemuver} +BuildRequires: qemu-block-dmg = %{qemuver} %if 0%{?with_glusterfs} -BuildRequires: qemu-block-gluster = %{version} +BuildRequires: qemu-block-gluster = %{qemuver} %endif %if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120100 ) -BuildRequires: qemu-block-iscsi = %{version} +BuildRequires: qemu-block-iscsi = %{qemuver} %endif %if 0%{?with_rbd} -BuildRequires: qemu-block-rbd = %{version} +BuildRequires: qemu-block-rbd = %{qemuver} %endif -BuildRequires: qemu-block-ssh = %{version} +BuildRequires: qemu-block-ssh = %{qemuver} +BuildRequires: qemu-extra = %{qemuver} +BuildRequires: qemu-guest-agent = %{qemuver} +BuildRequires: qemu-ppc = %{qemuver} +BuildRequires: qemu-s390 = %{qemuver} +BuildRequires: qemu-tools = %{qemuver} +BuildRequires: qemu-ui-curses = %{qemuver} +BuildRequires: qemu-ui-gtk = %{qemuver} +%if 0%{?is_opensuse} +BuildRequires: qemu-ui-sdl = %{qemuver} +%endif +BuildRequires: qemu-x86 = %{qemuver} %endif Requires(pre): shadow Requires(post): coreutils @@ -416,7 +419,7 @@ Suggests: qemu-block-ssh Suggests: qemu-extra Suggests: qemu-lang %if 0%{?is_opensuse} -Recommends: qemu-ksm = %{version} +Recommends: qemu-ksm = %{qemuver} %endif %define ppc_default_built_firmware {%nil} @@ -485,7 +488,7 @@ This package acts as an umbrella package to the other QEMU sub-packages. %package x86 Summary: Machine emulator and virtualizer for x86 architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Requires: qemu-ipxe Requires: qemu-seabios Requires: qemu-sgabios @@ -505,7 +508,7 @@ This package provides i386 and x86_64 emulation. %package ppc Summary: Machine emulator and virtualizer for Power architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Recommends: qemu-ipxe Recommends: qemu-vgabios @@ -521,7 +524,7 @@ This package provides ppc and ppc64 emulation. %package s390 Summary: Machine emulator and virtualizer for S/390 architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} %description s390 QEMU provides full machine emulation and cross architecture usage. It closely @@ -535,7 +538,7 @@ This package provides s390x emulation. %package arm Summary: Machine emulator and virtualizer for ARM architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Recommends: qemu-ipxe Recommends: qemu-vgabios Recommends: ovmf @@ -553,7 +556,7 @@ This package provides arm emulation. %package extra Summary: Machine emulator and virtualizer for "extra" architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Recommends: qemu-ipxe Recommends: qemu-vgabios @@ -574,13 +577,13 @@ Url: http://www.linux-kvm.org Summary: Wrapper to enable KVM acceleration under QEMU Group: System/Emulators/PC %ifarch %ix86 x86_64 -Requires: qemu-x86 = %{version} +Requires: qemu-x86 = %{qemuver} %endif %ifarch s390x -Requires: qemu-s390 = %{version} +Requires: qemu-s390 = %{qemuver} %endif -Provides: kvm = %{version} -Obsoletes: kvm < %{version} +Provides: kvm = %{qemuver} +Obsoletes: kvm < %{qemuver} %description kvm QEMU provides full machine emulation and cross architecture usage. It closely @@ -610,15 +613,15 @@ in QEMU are not localized. # Nor can we have modules require the right version of qemu and qemu-tools # as Xen reuses our qemu-tools but does not want our qemu and qemu-x86. %define qemu_module_conflicts \ -Conflicts: qemu < %{version}-%{release} \ -Conflicts: qemu > %{version}-%{release} \ -Conflicts: qemu-tools < %{version}-%{release} \ -Conflicts: qemu-tools > %{version}-%{release} +Conflicts: %name < %{qemuver}-%{release} \ +Conflicts: %name > %{qemuver}-%{release} \ +Conflicts: qemu-tools < %{qemuver}-%{release} \ +Conflicts: qemu-tools > %{qemuver}-%{release} %package block-curl Summary: cURL block support for QEMU Group: System/Emulators/PC -Provides: qemu:%_libdir/%name/block-curl.so +Provides: %name:%_libdir/%name/block-curl.so %{qemu_module_conflicts} %description block-curl @@ -738,7 +741,7 @@ This package contains a module for SDL based audio support for QEMU. %package tools Summary: Tools for QEMU Group: System/Emulators/PC -Provides: qemu:%_libexecdir/qemu-bridge-helper +Provides: %name:%_libexecdir/qemu-bridge-helper Requires(pre): permissions Requires(pre): shadow Recommends: qemu-block-curl @@ -753,7 +756,7 @@ a virtfs helper, ivshmem, disk utilities and scripts for various purposes. %package guest-agent Summary: Guest agent for QEMU Group: System/Emulators/PC -Provides: qemu:%_bindir/qemu-ga +Provides: %name:%_bindir/qemu-ga Requires(pre): shadow Requires(post): udev Supplements: modalias(acpi*:QEMU0002%3A*) @@ -772,7 +775,7 @@ Group: System/Emulators/PC Version: 1.11.2 Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description seabios SeaBIOS is an open source implementation of a 16bit x86 BIOS. SeaBIOS @@ -784,7 +787,7 @@ Group: System/Emulators/PC Version: 1.11.2 Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description vgabios VGABIOS provides the video ROM BIOSes for the following variants of VGA @@ -797,7 +800,7 @@ Group: System/Emulators/PC Version: 8 Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description sgabios The Google Serial Graphics Adapter BIOS or SGABIOS provides a means for legacy @@ -807,10 +810,10 @@ were attached. %package ipxe Summary: PXE ROMs for QEMU NICs Group: System/Emulators/PC -Version: 1.0.0 +Version: 1.0.0+ Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description ipxe Provides Preboot Execution Environment (PXE) ROM support for various emulated @@ -834,7 +837,7 @@ This package provides a service file for starting and stopping KSM. %endif # !qemu-testsuite %prep -%setup -q -n qemu-3.0.0 +%setup -q -n %{srcname}-%{qemuver} %patch0001 -p1 %patch0002 -p1 %patch0003 -p1 @@ -914,7 +917,6 @@ do done %build -echo '%{version}' > roms/seabios/.version ./configure \ --prefix=%_prefix \ --sysconfdir=%_sysconfdir \ @@ -1165,18 +1167,18 @@ make %{?_smp_mflags} -C roms slof %else # qemu-testsuite -ln -s %{_bindir}/qemu-img qemu-img -ln -s %{_bindir}/qemu-ga qemu-ga -ln -s %{_bindir}/qemu-io qemu-io +ln -s %_bindir/qemu-img qemu-img +ln -s %_bindir/qemu-ga qemu-ga +ln -s %_bindir/qemu-io qemu-io for i in %built_firmware do - ln -s %{_datadir}/qemu/$i pc-bios/$i + ln -s %_datadir/%name/$i pc-bios/$i done for conf in default-configs/*-softmmu.mak; do arch=`echo "$conf" | sed -e 's|default-configs/\(.*\)-softmmu.mak|\1|g'` - ln -s %{_bindir}/qemu-system-$arch $arch-softmmu/qemu-system-$arch + ln -s %_bindir/qemu-system-$arch $arch-softmmu/qemu-system-$arch done # Compile the QOM test binary first, so that ... @@ -1192,10 +1194,10 @@ make check-report.html V=1 %check %if "%{name}" == "qemu-testsuite" -export QEMU_PROG=%{_bindir}/qemu-system-x86_64 -export QEMU_IMG_PROG=%{_bindir}/qemu-img -export QEMU_IO_PROG=%{_bindir}/qemu-io -export QEMU_NBD_PROG=%{_bindir}/qemu-nbd +export QEMU_PROG=%_bindir/qemu-system-x86_64 +export QEMU_IMG_PROG=%_bindir/qemu-img +export QEMU_IO_PROG=%_bindir/qemu-io +export QEMU_NBD_PROG=%_bindir/qemu-nbd make check-block V=1 # Create minimal gzip format file @@ -1221,41 +1223,41 @@ make install DESTDIR=%{buildroot} %ifnarch %ix86 x86_64 for f in %{x86_extra_built_firmware_list} \ %{x86_64_only_extra_built_firmware_list}; do - unlink %{buildroot}%{_datadir}/%name/$f + unlink %{buildroot}%_datadir/%name/$f done %endif %find_lang %name -install -D -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/qemu/bridge.conf -install -D -m 0755 %{SOURCE3} %{buildroot}/usr/share/qemu/qemu-ifup +install -D -m 0644 %{SOURCE4} %{buildroot}%_sysconfdir/%name/bridge.conf +install -D -m 0755 %{SOURCE3} %{buildroot}%_datadir/%name/qemu-ifup install -D -p -m 0644 %{SOURCE8} %{buildroot}%{_udevrulesdir}/80-qemu-ga.rules -install -D -m 0755 scripts/analyze-migration.py %{buildroot}%{_bindir}/analyze-migration.py -install -D -m 0755 scripts/vmstate-static-checker.py %{buildroot}%{_bindir}/vmstate-static-checker.py -mkdir -p %{buildroot}%{_libexecdir}/supportconfig/plugins -install -D -m 0755 %{SOURCE9} %{buildroot}%{_libexecdir}/supportconfig/plugins/qemu +install -D -m 0755 scripts/analyze-migration.py %{buildroot}%_bindir/analyze-migration.py +install -D -m 0755 scripts/vmstate-static-checker.py %{buildroot}%_bindir/vmstate-static-checker.py +mkdir -p %{buildroot}%_libexecdir/supportconfig/plugins +install -D -m 0755 %{SOURCE9} %{buildroot}%_libexecdir/supportconfig/plugins/%name %if 0%{?is_opensuse} == 0 -install -D -m 0644 %{SOURCE11} %{buildroot}%{_docdir}/qemu-ppc/supported.txt -install -D -m 0644 %{SOURCE12} %{buildroot}%{_docdir}/qemu-x86/supported.txt -install -D -m 0644 %{SOURCE13} %{buildroot}%{_docdir}/qemu-s390/supported.txt -install -D -m 0644 %{SOURCE14} %{buildroot}%{_docdir}/qemu-arm/supported.txt +install -D -m 0644 %{SOURCE11} %{buildroot}%_docdir/qemu-ppc/supported.txt +install -D -m 0644 %{SOURCE12} %{buildroot}%_docdir/qemu-x86/supported.txt +install -D -m 0644 %{SOURCE13} %{buildroot}%_docdir/qemu-s390/supported.txt +install -D -m 0644 %{SOURCE14} %{buildroot}%_docdir/qemu-arm/supported.txt %endif %if %{legacy_qemu_kvm} -cat > %{buildroot}%{_bindir}/qemu-kvm << 'EOF' +cat > %{buildroot}%_bindir/qemu-kvm << 'EOF' #!/bin/sh %ifarch s390x -exec %{_bindir}/qemu-system-s390x -machine accel=kvm "$@" +exec %_bindir/qemu-system-s390x -machine accel=kvm "$@" %else -exec %{_bindir}/qemu-system-x86_64 -machine accel=kvm "$@" +exec %_bindir/qemu-system-x86_64 -machine accel=kvm "$@" %endif EOF -chmod 755 %{buildroot}%{_bindir}/qemu-kvm -install -D -m 0644 %{SOURCE5} %{buildroot}%{_mandir}/man1/qemu-kvm.1.gz +chmod 755 %{buildroot}%_bindir/qemu-kvm +install -D -m 0644 %{SOURCE5} %{buildroot}%_mandir/man1/qemu-kvm.1.gz %if 0%{?is_opensuse} == 0 -install -d %{buildroot}%{_docdir}/qemu-kvm +install -d %{buildroot}%_docdir/qemu-kvm %ifarch s390x -ln -s ../qemu-s390/supported.txt %{buildroot}%{_docdir}/qemu-kvm/kvm-supported.txt +ln -s ../qemu-s390/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt %else -ln -s ../qemu-x86/supported.txt %{buildroot}%{_docdir}/qemu-kvm/kvm-supported.txt +ln -s ../qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt %endif %endif %endif @@ -1270,24 +1272,24 @@ install -D -p -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/qemu-ga@.service install -D -p -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/ksm.service %endif %ifarch s390x -install -D -m 0644 %{SOURCE10} %{buildroot}%{_libexecdir}/modules-load.d/kvm.conf +install -D -m 0644 %{SOURCE10} %{buildroot}%_libexecdir/modules-load.d/kvm.conf %endif %fdupes -s %{buildroot} %else # qemu-testsuite -install -D -m 0644 check-report.html %{buildroot}%{_datadir}/qemu/check-report.html -install -D -m 0644 check-report.xml %{buildroot}%{_datadir}/qemu/check-report.xml +install -D -m 0644 check-report.html %{buildroot}%_datadir/qemu/check-report.html +install -D -m 0644 check-report.xml %{buildroot}%_datadir/qemu/check-report.xml %endif %if "%{name}" != "qemu-testsuite" %pre -%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm -%{_bindir}/getent group qemu >/dev/null || %{_sbindir}/groupadd -r qemu -%{_bindir}/getent passwd qemu >/dev/null || \ - %{_sbindir}/useradd -r -g qemu -G kvm -d / -s /sbin/nologin \ +%_bindir/getent group kvm >/dev/null || %_sbindir/groupadd -r kvm +%_bindir/getent group qemu >/dev/null || %_sbindir/groupadd -r qemu +%_bindir/getent passwd qemu >/dev/null || + %_sbindir/useradd -r -g qemu -G kvm -d / -s /sbin/nologin \ -c "qemu user" qemu %if %{kvm_available} @@ -1297,8 +1299,8 @@ if [ $(stat -L -c "%i" /proc/1/root/) = $(stat -L -c "%i" /) ]; then setfacl --remove-all /dev/kvm &> /dev/null || : %ifarch s390x if [ -c /dev/kvm ]; then - %{_bindir}/chmod 0666 /dev/kvm - %{_bindir}/chgrp kvm /dev/kvm + %_bindir/chmod 0666 /dev/kvm + %_bindir/chgrp kvm /dev/kvm fi %endif %udev_rules_update @@ -1313,7 +1315,7 @@ fi %endif %pre tools -%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm +%_bindir/getent group kvm >/dev/null || %_sbindir/groupadd -r kvm %post tools %set_permissions %_libexecdir/qemu-bridge-helper @@ -1321,7 +1323,7 @@ fi %verify_permissions %_libexecdir/qemu-bridge-helper %pre guest-agent -%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm +%_bindir/getent group kvm >/dev/null || %_sbindir/groupadd -r kvm %service_add_pre qemu-ga@.service %post guest-agent @@ -1365,7 +1367,7 @@ fi %_docdir/%name/qemu-qmp-ref.html %_docdir/%name/qemu-ga-ref.txt %_docdir/%name/qemu-ga-ref.html -%_mandir/man1/qemu.1.gz +%_mandir/man1/%name.1.gz %_mandir/man7/qemu-block-drivers.7.gz %_mandir/man7/qemu-qmp-ref.7.gz %_mandir/man7/qemu-ga-ref.7.gz @@ -1378,7 +1380,7 @@ fi %_datadir/%name/qemu-ifup %dir %_libexecdir/supportconfig %dir %_libexecdir/supportconfig/plugins -%_libexecdir/supportconfig/plugins/qemu +%_libexecdir/supportconfig/plugins/%name %if %{kvm_available} %ifarch %ix86 x86_64 %{_udevrulesdir}/71-sev.rules diff --git a/qemu.changes b/qemu.changes index 092ebf3..9b83c46 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Fri Sep 21 19:35:23 UTC 2018 - Bruce Rogers + +- Correct some versioning as follows: +* Accurately reflect the qemu-ipxe package version value by adding + "+" at the end +* Don't overwrite seabios .version file, since now (for quite some + time actually) upstream tarball creation creates this file and + the value we are writing to it is actually wrong +- Make spec file improvements, including the following: +* Add qemu.keyring to enable package source verification +* Create srcname macro to identify source file name separately from + package name +* Create alternate to %version to avoid subpackage ordering + causing inadvertantly wrong %version value at point of use +* Sort some entries +* Be more consistent with macro syntax usage +* Minor file tweaks as done by osc format_spec_file service + ------------------------------------------------------------------- Fri Sep 14 21:16:52 UTC 2018 - Bruce Rogers diff --git a/qemu.keyring b/qemu.keyring new file mode 100644 index 0000000..9986850 --- /dev/null +++ b/qemu.keyring @@ -0,0 +1,493 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=YraJ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/qemu.spec b/qemu.spec index 965dc28..bc72f9f 100644 --- a/qemu.spec +++ b/qemu.spec @@ -104,15 +104,18 @@ %define _udevrulesdir /lib/udev/rules.d %endif +%define srcname qemu Name: qemu -Url: http://www.qemu.org/ +Url: https://www.qemu.org/ Summary: Machine emulator and virtualizer License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT Group: System/Emulators/PC Version: 3.0.0 Release: 0 -Source: http://wiki.qemu.org/download/qemu-3.0.0.tar.xz -Source99: http://wiki.qemu.org/download/qemu-3.0.0.tar.xz.sig +%define qemuver 3.0.0 +Source: https://wiki.qemu.org/download/%{srcname}-%{version}.tar.xz +Source99: https://wiki.qemu.org/download/%{srcname}-%{version}.tar.xz.sig +Source100: %{srcname}.keyring Source1: 80-kvm.rules Source2: 71-sev.rules Source3: qemu-ifup @@ -127,7 +130,11 @@ Source11: supported.ppc.txt Source12: supported.x86.txt Source13: supported.s390.txt Source14: supported.arm.txt -# Upstream First -- http://wiki.qemu-project.org/Contribute/SubmitAPatch +# this is to make lint happy +Source300: qemu-rpmlintrc +Source301: ipxe-stub-out-the-SAN-req-s-in-int13.patch +Source400: update_git.sh +# Upstream First -- https://wiki.qemu-project.org/Contribute/SubmitAPatch # This patch queue is auto-generated from https://github.com/openSUSE/qemu Patch0001: 0001-XXX-dont-dump-core-on-sigabort.patch Patch0002: 0002-qemu-binfmt-conf-Modify-default-pat.patch @@ -198,10 +205,6 @@ Patch1500: skiboot-hdata-i2c.c-fix-building-with-gcc8.patch # ui/keycodemapdb (Currently no patches) -# this is to make lint happy -Source300: qemu-rpmlintrc -Source301: ipxe-stub-out-the-SAN-req-s-in-int13.patch -Source400: update_git.sh ExcludeArch: s390 %if "%{name}" == "qemu-testsuite" ExcludeArch: s390x @@ -344,30 +347,30 @@ BuildRequires: zlib-devel BuildRequires: python-base %endif BuildRequires: bc -BuildRequires: qemu-arm = %{version} -BuildRequires: qemu-block-curl = %{version} -BuildRequires: qemu-block-dmg = %{version} -BuildRequires: qemu-extra = %{version} -BuildRequires: qemu-guest-agent = %{version} -BuildRequires: qemu-ppc = %{version} -BuildRequires: qemu-s390 = %{version} -BuildRequires: qemu-tools = %{version} -BuildRequires: qemu-ui-curses = %{version} -BuildRequires: qemu-ui-gtk = %{version} -%if 0%{?is_opensuse} -BuildRequires: qemu-ui-sdl = %{version} -%endif -BuildRequires: qemu-x86 = %{version} +BuildRequires: qemu-arm = %{qemuver} +BuildRequires: qemu-block-curl = %{qemuver} +BuildRequires: qemu-block-dmg = %{qemuver} %if 0%{?with_glusterfs} -BuildRequires: qemu-block-gluster = %{version} +BuildRequires: qemu-block-gluster = %{qemuver} %endif %if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120100 ) -BuildRequires: qemu-block-iscsi = %{version} +BuildRequires: qemu-block-iscsi = %{qemuver} %endif %if 0%{?with_rbd} -BuildRequires: qemu-block-rbd = %{version} +BuildRequires: qemu-block-rbd = %{qemuver} %endif -BuildRequires: qemu-block-ssh = %{version} +BuildRequires: qemu-block-ssh = %{qemuver} +BuildRequires: qemu-extra = %{qemuver} +BuildRequires: qemu-guest-agent = %{qemuver} +BuildRequires: qemu-ppc = %{qemuver} +BuildRequires: qemu-s390 = %{qemuver} +BuildRequires: qemu-tools = %{qemuver} +BuildRequires: qemu-ui-curses = %{qemuver} +BuildRequires: qemu-ui-gtk = %{qemuver} +%if 0%{?is_opensuse} +BuildRequires: qemu-ui-sdl = %{qemuver} +%endif +BuildRequires: qemu-x86 = %{qemuver} %endif Requires(pre): shadow Requires(post): coreutils @@ -416,7 +419,7 @@ Suggests: qemu-block-ssh Suggests: qemu-extra Suggests: qemu-lang %if 0%{?is_opensuse} -Recommends: qemu-ksm = %{version} +Recommends: qemu-ksm = %{qemuver} %endif %define ppc_default_built_firmware {%nil} @@ -485,7 +488,7 @@ This package acts as an umbrella package to the other QEMU sub-packages. %package x86 Summary: Machine emulator and virtualizer for x86 architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Requires: qemu-ipxe Requires: qemu-seabios Requires: qemu-sgabios @@ -505,7 +508,7 @@ This package provides i386 and x86_64 emulation. %package ppc Summary: Machine emulator and virtualizer for Power architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Recommends: qemu-ipxe Recommends: qemu-vgabios @@ -521,7 +524,7 @@ This package provides ppc and ppc64 emulation. %package s390 Summary: Machine emulator and virtualizer for S/390 architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} %description s390 QEMU provides full machine emulation and cross architecture usage. It closely @@ -535,7 +538,7 @@ This package provides s390x emulation. %package arm Summary: Machine emulator and virtualizer for ARM architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Recommends: qemu-ipxe Recommends: qemu-vgabios Recommends: ovmf @@ -553,7 +556,7 @@ This package provides arm emulation. %package extra Summary: Machine emulator and virtualizer for "extra" architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Recommends: qemu-ipxe Recommends: qemu-vgabios @@ -574,13 +577,13 @@ Url: http://www.linux-kvm.org Summary: Wrapper to enable KVM acceleration under QEMU Group: System/Emulators/PC %ifarch %ix86 x86_64 -Requires: qemu-x86 = %{version} +Requires: qemu-x86 = %{qemuver} %endif %ifarch s390x -Requires: qemu-s390 = %{version} +Requires: qemu-s390 = %{qemuver} %endif -Provides: kvm = %{version} -Obsoletes: kvm < %{version} +Provides: kvm = %{qemuver} +Obsoletes: kvm < %{qemuver} %description kvm QEMU provides full machine emulation and cross architecture usage. It closely @@ -610,15 +613,15 @@ in QEMU are not localized. # Nor can we have modules require the right version of qemu and qemu-tools # as Xen reuses our qemu-tools but does not want our qemu and qemu-x86. %define qemu_module_conflicts \ -Conflicts: qemu < %{version}-%{release} \ -Conflicts: qemu > %{version}-%{release} \ -Conflicts: qemu-tools < %{version}-%{release} \ -Conflicts: qemu-tools > %{version}-%{release} +Conflicts: %name < %{qemuver}-%{release} \ +Conflicts: %name > %{qemuver}-%{release} \ +Conflicts: qemu-tools < %{qemuver}-%{release} \ +Conflicts: qemu-tools > %{qemuver}-%{release} %package block-curl Summary: cURL block support for QEMU Group: System/Emulators/PC -Provides: qemu:%_libdir/%name/block-curl.so +Provides: %name:%_libdir/%name/block-curl.so %{qemu_module_conflicts} %description block-curl @@ -738,7 +741,7 @@ This package contains a module for SDL based audio support for QEMU. %package tools Summary: Tools for QEMU Group: System/Emulators/PC -Provides: qemu:%_libexecdir/qemu-bridge-helper +Provides: %name:%_libexecdir/qemu-bridge-helper Requires(pre): permissions Requires(pre): shadow Recommends: qemu-block-curl @@ -753,7 +756,7 @@ a virtfs helper, ivshmem, disk utilities and scripts for various purposes. %package guest-agent Summary: Guest agent for QEMU Group: System/Emulators/PC -Provides: qemu:%_bindir/qemu-ga +Provides: %name:%_bindir/qemu-ga Requires(pre): shadow Requires(post): udev Supplements: modalias(acpi*:QEMU0002%3A*) @@ -772,7 +775,7 @@ Group: System/Emulators/PC Version: 1.11.2 Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description seabios SeaBIOS is an open source implementation of a 16bit x86 BIOS. SeaBIOS @@ -784,7 +787,7 @@ Group: System/Emulators/PC Version: 1.11.2 Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description vgabios VGABIOS provides the video ROM BIOSes for the following variants of VGA @@ -797,7 +800,7 @@ Group: System/Emulators/PC Version: 8 Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description sgabios The Google Serial Graphics Adapter BIOS or SGABIOS provides a means for legacy @@ -807,10 +810,10 @@ were attached. %package ipxe Summary: PXE ROMs for QEMU NICs Group: System/Emulators/PC -Version: 1.0.0 +Version: 1.0.0+ Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description ipxe Provides Preboot Execution Environment (PXE) ROM support for various emulated @@ -834,7 +837,7 @@ This package provides a service file for starting and stopping KSM. %endif # !qemu-testsuite %prep -%setup -q -n qemu-3.0.0 +%setup -q -n %{srcname}-%{qemuver} %patch0001 -p1 %patch0002 -p1 %patch0003 -p1 @@ -914,7 +917,6 @@ do done %build -echo '%{version}' > roms/seabios/.version ./configure \ --prefix=%_prefix \ --sysconfdir=%_sysconfdir \ @@ -1165,18 +1167,18 @@ make %{?_smp_mflags} -C roms slof %else # qemu-testsuite -ln -s %{_bindir}/qemu-img qemu-img -ln -s %{_bindir}/qemu-ga qemu-ga -ln -s %{_bindir}/qemu-io qemu-io +ln -s %_bindir/qemu-img qemu-img +ln -s %_bindir/qemu-ga qemu-ga +ln -s %_bindir/qemu-io qemu-io for i in %built_firmware do - ln -s %{_datadir}/qemu/$i pc-bios/$i + ln -s %_datadir/%name/$i pc-bios/$i done for conf in default-configs/*-softmmu.mak; do arch=`echo "$conf" | sed -e 's|default-configs/\(.*\)-softmmu.mak|\1|g'` - ln -s %{_bindir}/qemu-system-$arch $arch-softmmu/qemu-system-$arch + ln -s %_bindir/qemu-system-$arch $arch-softmmu/qemu-system-$arch done # Compile the QOM test binary first, so that ... @@ -1192,10 +1194,10 @@ make check-report.html V=1 %check %if "%{name}" == "qemu-testsuite" -export QEMU_PROG=%{_bindir}/qemu-system-x86_64 -export QEMU_IMG_PROG=%{_bindir}/qemu-img -export QEMU_IO_PROG=%{_bindir}/qemu-io -export QEMU_NBD_PROG=%{_bindir}/qemu-nbd +export QEMU_PROG=%_bindir/qemu-system-x86_64 +export QEMU_IMG_PROG=%_bindir/qemu-img +export QEMU_IO_PROG=%_bindir/qemu-io +export QEMU_NBD_PROG=%_bindir/qemu-nbd make check-block V=1 # Create minimal gzip format file @@ -1221,41 +1223,41 @@ make install DESTDIR=%{buildroot} %ifnarch %ix86 x86_64 for f in %{x86_extra_built_firmware_list} \ %{x86_64_only_extra_built_firmware_list}; do - unlink %{buildroot}%{_datadir}/%name/$f + unlink %{buildroot}%_datadir/%name/$f done %endif %find_lang %name -install -D -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/qemu/bridge.conf -install -D -m 0755 %{SOURCE3} %{buildroot}/usr/share/qemu/qemu-ifup +install -D -m 0644 %{SOURCE4} %{buildroot}%_sysconfdir/%name/bridge.conf +install -D -m 0755 %{SOURCE3} %{buildroot}%_datadir/%name/qemu-ifup install -D -p -m 0644 %{SOURCE8} %{buildroot}%{_udevrulesdir}/80-qemu-ga.rules -install -D -m 0755 scripts/analyze-migration.py %{buildroot}%{_bindir}/analyze-migration.py -install -D -m 0755 scripts/vmstate-static-checker.py %{buildroot}%{_bindir}/vmstate-static-checker.py -mkdir -p %{buildroot}%{_libexecdir}/supportconfig/plugins -install -D -m 0755 %{SOURCE9} %{buildroot}%{_libexecdir}/supportconfig/plugins/qemu +install -D -m 0755 scripts/analyze-migration.py %{buildroot}%_bindir/analyze-migration.py +install -D -m 0755 scripts/vmstate-static-checker.py %{buildroot}%_bindir/vmstate-static-checker.py +mkdir -p %{buildroot}%_libexecdir/supportconfig/plugins +install -D -m 0755 %{SOURCE9} %{buildroot}%_libexecdir/supportconfig/plugins/%name %if 0%{?is_opensuse} == 0 -install -D -m 0644 %{SOURCE11} %{buildroot}%{_docdir}/qemu-ppc/supported.txt -install -D -m 0644 %{SOURCE12} %{buildroot}%{_docdir}/qemu-x86/supported.txt -install -D -m 0644 %{SOURCE13} %{buildroot}%{_docdir}/qemu-s390/supported.txt -install -D -m 0644 %{SOURCE14} %{buildroot}%{_docdir}/qemu-arm/supported.txt +install -D -m 0644 %{SOURCE11} %{buildroot}%_docdir/qemu-ppc/supported.txt +install -D -m 0644 %{SOURCE12} %{buildroot}%_docdir/qemu-x86/supported.txt +install -D -m 0644 %{SOURCE13} %{buildroot}%_docdir/qemu-s390/supported.txt +install -D -m 0644 %{SOURCE14} %{buildroot}%_docdir/qemu-arm/supported.txt %endif %if %{legacy_qemu_kvm} -cat > %{buildroot}%{_bindir}/qemu-kvm << 'EOF' +cat > %{buildroot}%_bindir/qemu-kvm << 'EOF' #!/bin/sh %ifarch s390x -exec %{_bindir}/qemu-system-s390x -machine accel=kvm "$@" +exec %_bindir/qemu-system-s390x -machine accel=kvm "$@" %else -exec %{_bindir}/qemu-system-x86_64 -machine accel=kvm "$@" +exec %_bindir/qemu-system-x86_64 -machine accel=kvm "$@" %endif EOF -chmod 755 %{buildroot}%{_bindir}/qemu-kvm -install -D -m 0644 %{SOURCE5} %{buildroot}%{_mandir}/man1/qemu-kvm.1.gz +chmod 755 %{buildroot}%_bindir/qemu-kvm +install -D -m 0644 %{SOURCE5} %{buildroot}%_mandir/man1/qemu-kvm.1.gz %if 0%{?is_opensuse} == 0 -install -d %{buildroot}%{_docdir}/qemu-kvm +install -d %{buildroot}%_docdir/qemu-kvm %ifarch s390x -ln -s ../qemu-s390/supported.txt %{buildroot}%{_docdir}/qemu-kvm/kvm-supported.txt +ln -s ../qemu-s390/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt %else -ln -s ../qemu-x86/supported.txt %{buildroot}%{_docdir}/qemu-kvm/kvm-supported.txt +ln -s ../qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt %endif %endif %endif @@ -1270,24 +1272,24 @@ install -D -p -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/qemu-ga@.service install -D -p -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/ksm.service %endif %ifarch s390x -install -D -m 0644 %{SOURCE10} %{buildroot}%{_libexecdir}/modules-load.d/kvm.conf +install -D -m 0644 %{SOURCE10} %{buildroot}%_libexecdir/modules-load.d/kvm.conf %endif %fdupes -s %{buildroot} %else # qemu-testsuite -install -D -m 0644 check-report.html %{buildroot}%{_datadir}/qemu/check-report.html -install -D -m 0644 check-report.xml %{buildroot}%{_datadir}/qemu/check-report.xml +install -D -m 0644 check-report.html %{buildroot}%_datadir/qemu/check-report.html +install -D -m 0644 check-report.xml %{buildroot}%_datadir/qemu/check-report.xml %endif %if "%{name}" != "qemu-testsuite" %pre -%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm -%{_bindir}/getent group qemu >/dev/null || %{_sbindir}/groupadd -r qemu -%{_bindir}/getent passwd qemu >/dev/null || \ - %{_sbindir}/useradd -r -g qemu -G kvm -d / -s /sbin/nologin \ +%_bindir/getent group kvm >/dev/null || %_sbindir/groupadd -r kvm +%_bindir/getent group qemu >/dev/null || %_sbindir/groupadd -r qemu +%_bindir/getent passwd qemu >/dev/null || + %_sbindir/useradd -r -g qemu -G kvm -d / -s /sbin/nologin \ -c "qemu user" qemu %if %{kvm_available} @@ -1297,8 +1299,8 @@ if [ $(stat -L -c "%i" /proc/1/root/) = $(stat -L -c "%i" /) ]; then setfacl --remove-all /dev/kvm &> /dev/null || : %ifarch s390x if [ -c /dev/kvm ]; then - %{_bindir}/chmod 0666 /dev/kvm - %{_bindir}/chgrp kvm /dev/kvm + %_bindir/chmod 0666 /dev/kvm + %_bindir/chgrp kvm /dev/kvm fi %endif %udev_rules_update @@ -1313,7 +1315,7 @@ fi %endif %pre tools -%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm +%_bindir/getent group kvm >/dev/null || %_sbindir/groupadd -r kvm %post tools %set_permissions %_libexecdir/qemu-bridge-helper @@ -1321,7 +1323,7 @@ fi %verify_permissions %_libexecdir/qemu-bridge-helper %pre guest-agent -%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm +%_bindir/getent group kvm >/dev/null || %_sbindir/groupadd -r kvm %service_add_pre qemu-ga@.service %post guest-agent @@ -1365,7 +1367,7 @@ fi %_docdir/%name/qemu-qmp-ref.html %_docdir/%name/qemu-ga-ref.txt %_docdir/%name/qemu-ga-ref.html -%_mandir/man1/qemu.1.gz +%_mandir/man1/%name.1.gz %_mandir/man7/qemu-block-drivers.7.gz %_mandir/man7/qemu-qmp-ref.7.gz %_mandir/man7/qemu-ga-ref.7.gz @@ -1378,7 +1380,7 @@ fi %_datadir/%name/qemu-ifup %dir %_libexecdir/supportconfig %dir %_libexecdir/supportconfig/plugins -%_libexecdir/supportconfig/plugins/qemu +%_libexecdir/supportconfig/plugins/%name %if %{kvm_available} %ifarch %ix86 x86_64 %{_udevrulesdir}/71-sev.rules diff --git a/qemu.spec.in b/qemu.spec.in index 2544e6f..63eb637 100644 --- a/qemu.spec.in +++ b/qemu.spec.in @@ -104,15 +104,17 @@ %define _udevrulesdir /lib/udev/rules.d %endif +%define srcname qemu Name: qemu -Url: http://www.qemu.org/ +Url: https://www.qemu.org/ Summary: Machine emulator and virtualizer License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT Group: System/Emulators/PC QEMU_VERSION Release: 0 -Source: http://wiki.qemu.org/download/qemu-3.0.0.tar.xz -Source99: http://wiki.qemu.org/download/qemu-3.0.0.tar.xz.sig +Source: https://wiki.qemu.org/download/%{srcname}-%{version}.tar.xz +Source99: https://wiki.qemu.org/download/%{srcname}-%{version}.tar.xz.sig +Source100: %{srcname}.keyring Source1: 80-kvm.rules Source2: 71-sev.rules Source3: qemu-ifup @@ -127,7 +129,11 @@ Source11: supported.ppc.txt Source12: supported.x86.txt Source13: supported.s390.txt Source14: supported.arm.txt -# Upstream First -- http://wiki.qemu-project.org/Contribute/SubmitAPatch +# this is to make lint happy +Source300: qemu-rpmlintrc +Source301: ipxe-stub-out-the-SAN-req-s-in-int13.patch +Source400: update_git.sh +# Upstream First -- https://wiki.qemu-project.org/Contribute/SubmitAPatch # This patch queue is auto-generated from https://github.com/openSUSE/qemu PATCH_FILES # Please do not add QEMU patches manually here. @@ -158,10 +164,6 @@ Patch1500: skiboot-hdata-i2c.c-fix-building-with-gcc8.patch # ui/keycodemapdb (Currently no patches) -# this is to make lint happy -Source300: qemu-rpmlintrc -Source301: ipxe-stub-out-the-SAN-req-s-in-int13.patch -Source400: update_git.sh ExcludeArch: s390 %if "%{name}" == "qemu-testsuite" ExcludeArch: s390x @@ -304,30 +306,30 @@ BuildRequires: zlib-devel BuildRequires: python-base %endif BuildRequires: bc -BuildRequires: qemu-arm = %{version} -BuildRequires: qemu-block-curl = %{version} -BuildRequires: qemu-block-dmg = %{version} -BuildRequires: qemu-extra = %{version} -BuildRequires: qemu-guest-agent = %{version} -BuildRequires: qemu-ppc = %{version} -BuildRequires: qemu-s390 = %{version} -BuildRequires: qemu-tools = %{version} -BuildRequires: qemu-ui-curses = %{version} -BuildRequires: qemu-ui-gtk = %{version} -%if 0%{?is_opensuse} -BuildRequires: qemu-ui-sdl = %{version} -%endif -BuildRequires: qemu-x86 = %{version} +BuildRequires: qemu-arm = %{qemuver} +BuildRequires: qemu-block-curl = %{qemuver} +BuildRequires: qemu-block-dmg = %{qemuver} %if 0%{?with_glusterfs} -BuildRequires: qemu-block-gluster = %{version} +BuildRequires: qemu-block-gluster = %{qemuver} %endif %if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120100 ) -BuildRequires: qemu-block-iscsi = %{version} +BuildRequires: qemu-block-iscsi = %{qemuver} %endif %if 0%{?with_rbd} -BuildRequires: qemu-block-rbd = %{version} +BuildRequires: qemu-block-rbd = %{qemuver} %endif -BuildRequires: qemu-block-ssh = %{version} +BuildRequires: qemu-block-ssh = %{qemuver} +BuildRequires: qemu-extra = %{qemuver} +BuildRequires: qemu-guest-agent = %{qemuver} +BuildRequires: qemu-ppc = %{qemuver} +BuildRequires: qemu-s390 = %{qemuver} +BuildRequires: qemu-tools = %{qemuver} +BuildRequires: qemu-ui-curses = %{qemuver} +BuildRequires: qemu-ui-gtk = %{qemuver} +%if 0%{?is_opensuse} +BuildRequires: qemu-ui-sdl = %{qemuver} +%endif +BuildRequires: qemu-x86 = %{qemuver} %endif Requires(pre): shadow Requires(post): coreutils @@ -376,7 +378,7 @@ Suggests: qemu-block-ssh Suggests: qemu-extra Suggests: qemu-lang %if 0%{?is_opensuse} -Recommends: qemu-ksm = %{version} +Recommends: qemu-ksm = %{qemuver} %endif %define ppc_default_built_firmware {%nil} @@ -445,7 +447,7 @@ This package acts as an umbrella package to the other QEMU sub-packages. %package x86 Summary: Machine emulator and virtualizer for x86 architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Requires: qemu-ipxe Requires: qemu-seabios Requires: qemu-sgabios @@ -465,7 +467,7 @@ This package provides i386 and x86_64 emulation. %package ppc Summary: Machine emulator and virtualizer for Power architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Recommends: qemu-ipxe Recommends: qemu-vgabios @@ -481,7 +483,7 @@ This package provides ppc and ppc64 emulation. %package s390 Summary: Machine emulator and virtualizer for S/390 architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} %description s390 QEMU provides full machine emulation and cross architecture usage. It closely @@ -495,7 +497,7 @@ This package provides s390x emulation. %package arm Summary: Machine emulator and virtualizer for ARM architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Recommends: qemu-ipxe Recommends: qemu-vgabios Recommends: ovmf @@ -513,7 +515,7 @@ This package provides arm emulation. %package extra Summary: Machine emulator and virtualizer for "extra" architectures Group: System/Emulators/PC -Requires: qemu = %{version} +Requires: %name = %{qemuver} Recommends: qemu-ipxe Recommends: qemu-vgabios @@ -534,13 +536,13 @@ Url: http://www.linux-kvm.org Summary: Wrapper to enable KVM acceleration under QEMU Group: System/Emulators/PC %ifarch %ix86 x86_64 -Requires: qemu-x86 = %{version} +Requires: qemu-x86 = %{qemuver} %endif %ifarch s390x -Requires: qemu-s390 = %{version} +Requires: qemu-s390 = %{qemuver} %endif -Provides: kvm = %{version} -Obsoletes: kvm < %{version} +Provides: kvm = %{qemuver} +Obsoletes: kvm < %{qemuver} %description kvm QEMU provides full machine emulation and cross architecture usage. It closely @@ -570,15 +572,15 @@ in QEMU are not localized. # Nor can we have modules require the right version of qemu and qemu-tools # as Xen reuses our qemu-tools but does not want our qemu and qemu-x86. %define qemu_module_conflicts \ -Conflicts: qemu < %{version}-%{release} \ -Conflicts: qemu > %{version}-%{release} \ -Conflicts: qemu-tools < %{version}-%{release} \ -Conflicts: qemu-tools > %{version}-%{release} +Conflicts: %name < %{qemuver}-%{release} \ +Conflicts: %name > %{qemuver}-%{release} \ +Conflicts: qemu-tools < %{qemuver}-%{release} \ +Conflicts: qemu-tools > %{qemuver}-%{release} %package block-curl Summary: cURL block support for QEMU Group: System/Emulators/PC -Provides: qemu:%_libdir/%name/block-curl.so +Provides: %name:%_libdir/%name/block-curl.so %{qemu_module_conflicts} %description block-curl @@ -698,7 +700,7 @@ This package contains a module for SDL based audio support for QEMU. %package tools Summary: Tools for QEMU Group: System/Emulators/PC -Provides: qemu:%_libexecdir/qemu-bridge-helper +Provides: %name:%_libexecdir/qemu-bridge-helper Requires(pre): permissions Requires(pre): shadow Recommends: qemu-block-curl @@ -713,7 +715,7 @@ a virtfs helper, ivshmem, disk utilities and scripts for various purposes. %package guest-agent Summary: Guest agent for QEMU Group: System/Emulators/PC -Provides: qemu:%_bindir/qemu-ga +Provides: %name:%_bindir/qemu-ga Requires(pre): shadow Requires(post): udev Supplements: modalias(acpi*:QEMU0002%3A*) @@ -732,7 +734,7 @@ Group: System/Emulators/PC SEABIOS_VERSION Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description seabios SeaBIOS is an open source implementation of a 16bit x86 BIOS. SeaBIOS @@ -744,7 +746,7 @@ Group: System/Emulators/PC SEABIOS_VERSION Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description vgabios VGABIOS provides the video ROM BIOSes for the following variants of VGA @@ -757,7 +759,7 @@ Group: System/Emulators/PC Version: 8 Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description sgabios The Google Serial Graphics Adapter BIOS or SGABIOS provides a means for legacy @@ -767,10 +769,10 @@ were attached. %package ipxe Summary: PXE ROMs for QEMU NICs Group: System/Emulators/PC -Version: 1.0.0 +Version: 1.0.0+ Release: 0 BuildArch: noarch -Conflicts: qemu < 1.6.0 +Conflicts: %name < 1.6.0 %description ipxe Provides Preboot Execution Environment (PXE) ROM support for various emulated @@ -794,7 +796,7 @@ This package provides a service file for starting and stopping KSM. %endif # !qemu-testsuite %prep -%setup -q -n qemu-3.0.0 +%setup -q -n %{srcname}-%{qemuver} PATCH_EXEC pushd roms/seabios @@ -834,7 +836,6 @@ do done %build -echo '%{version}' > roms/seabios/.version ./configure \ --prefix=%_prefix \ --sysconfdir=%_sysconfdir \ @@ -1085,18 +1086,18 @@ make %{?_smp_mflags} -C roms slof %else # qemu-testsuite -ln -s %{_bindir}/qemu-img qemu-img -ln -s %{_bindir}/qemu-ga qemu-ga -ln -s %{_bindir}/qemu-io qemu-io +ln -s %_bindir/qemu-img qemu-img +ln -s %_bindir/qemu-ga qemu-ga +ln -s %_bindir/qemu-io qemu-io for i in %built_firmware do - ln -s %{_datadir}/qemu/$i pc-bios/$i + ln -s %_datadir/%name/$i pc-bios/$i done for conf in default-configs/*-softmmu.mak; do arch=`echo "$conf" | sed -e 's|default-configs/\(.*\)-softmmu.mak|\1|g'` - ln -s %{_bindir}/qemu-system-$arch $arch-softmmu/qemu-system-$arch + ln -s %_bindir/qemu-system-$arch $arch-softmmu/qemu-system-$arch done # Compile the QOM test binary first, so that ... @@ -1112,10 +1113,10 @@ make check-report.html V=1 %check %if "%{name}" == "qemu-testsuite" -export QEMU_PROG=%{_bindir}/qemu-system-x86_64 -export QEMU_IMG_PROG=%{_bindir}/qemu-img -export QEMU_IO_PROG=%{_bindir}/qemu-io -export QEMU_NBD_PROG=%{_bindir}/qemu-nbd +export QEMU_PROG=%_bindir/qemu-system-x86_64 +export QEMU_IMG_PROG=%_bindir/qemu-img +export QEMU_IO_PROG=%_bindir/qemu-io +export QEMU_NBD_PROG=%_bindir/qemu-nbd make check-block V=1 # Create minimal gzip format file @@ -1141,41 +1142,41 @@ make install DESTDIR=%{buildroot} %ifnarch %ix86 x86_64 for f in %{x86_extra_built_firmware_list} \ %{x86_64_only_extra_built_firmware_list}; do - unlink %{buildroot}%{_datadir}/%name/$f + unlink %{buildroot}%_datadir/%name/$f done %endif %find_lang %name -install -D -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/qemu/bridge.conf -install -D -m 0755 %{SOURCE3} %{buildroot}/usr/share/qemu/qemu-ifup +install -D -m 0644 %{SOURCE4} %{buildroot}%_sysconfdir/%name/bridge.conf +install -D -m 0755 %{SOURCE3} %{buildroot}%_datadir/%name/qemu-ifup install -D -p -m 0644 %{SOURCE8} %{buildroot}%{_udevrulesdir}/80-qemu-ga.rules -install -D -m 0755 scripts/analyze-migration.py %{buildroot}%{_bindir}/analyze-migration.py -install -D -m 0755 scripts/vmstate-static-checker.py %{buildroot}%{_bindir}/vmstate-static-checker.py -mkdir -p %{buildroot}%{_libexecdir}/supportconfig/plugins -install -D -m 0755 %{SOURCE9} %{buildroot}%{_libexecdir}/supportconfig/plugins/qemu +install -D -m 0755 scripts/analyze-migration.py %{buildroot}%_bindir/analyze-migration.py +install -D -m 0755 scripts/vmstate-static-checker.py %{buildroot}%_bindir/vmstate-static-checker.py +mkdir -p %{buildroot}%_libexecdir/supportconfig/plugins +install -D -m 0755 %{SOURCE9} %{buildroot}%_libexecdir/supportconfig/plugins/%name %if 0%{?is_opensuse} == 0 -install -D -m 0644 %{SOURCE11} %{buildroot}%{_docdir}/qemu-ppc/supported.txt -install -D -m 0644 %{SOURCE12} %{buildroot}%{_docdir}/qemu-x86/supported.txt -install -D -m 0644 %{SOURCE13} %{buildroot}%{_docdir}/qemu-s390/supported.txt -install -D -m 0644 %{SOURCE14} %{buildroot}%{_docdir}/qemu-arm/supported.txt +install -D -m 0644 %{SOURCE11} %{buildroot}%_docdir/qemu-ppc/supported.txt +install -D -m 0644 %{SOURCE12} %{buildroot}%_docdir/qemu-x86/supported.txt +install -D -m 0644 %{SOURCE13} %{buildroot}%_docdir/qemu-s390/supported.txt +install -D -m 0644 %{SOURCE14} %{buildroot}%_docdir/qemu-arm/supported.txt %endif %if %{legacy_qemu_kvm} -cat > %{buildroot}%{_bindir}/qemu-kvm << 'EOF' +cat > %{buildroot}%_bindir/qemu-kvm << 'EOF' #!/bin/sh %ifarch s390x -exec %{_bindir}/qemu-system-s390x -machine accel=kvm "$@" +exec %_bindir/qemu-system-s390x -machine accel=kvm "$@" %else -exec %{_bindir}/qemu-system-x86_64 -machine accel=kvm "$@" +exec %_bindir/qemu-system-x86_64 -machine accel=kvm "$@" %endif EOF -chmod 755 %{buildroot}%{_bindir}/qemu-kvm -install -D -m 0644 %{SOURCE5} %{buildroot}%{_mandir}/man1/qemu-kvm.1.gz +chmod 755 %{buildroot}%_bindir/qemu-kvm +install -D -m 0644 %{SOURCE5} %{buildroot}%_mandir/man1/qemu-kvm.1.gz %if 0%{?is_opensuse} == 0 -install -d %{buildroot}%{_docdir}/qemu-kvm +install -d %{buildroot}%_docdir/qemu-kvm %ifarch s390x -ln -s ../qemu-s390/supported.txt %{buildroot}%{_docdir}/qemu-kvm/kvm-supported.txt +ln -s ../qemu-s390/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt %else -ln -s ../qemu-x86/supported.txt %{buildroot}%{_docdir}/qemu-kvm/kvm-supported.txt +ln -s ../qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt %endif %endif %endif @@ -1190,24 +1191,24 @@ install -D -p -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/qemu-ga@.service install -D -p -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/ksm.service %endif %ifarch s390x -install -D -m 0644 %{SOURCE10} %{buildroot}%{_libexecdir}/modules-load.d/kvm.conf +install -D -m 0644 %{SOURCE10} %{buildroot}%_libexecdir/modules-load.d/kvm.conf %endif %fdupes -s %{buildroot} %else # qemu-testsuite -install -D -m 0644 check-report.html %{buildroot}%{_datadir}/qemu/check-report.html -install -D -m 0644 check-report.xml %{buildroot}%{_datadir}/qemu/check-report.xml +install -D -m 0644 check-report.html %{buildroot}%_datadir/qemu/check-report.html +install -D -m 0644 check-report.xml %{buildroot}%_datadir/qemu/check-report.xml %endif %if "%{name}" != "qemu-testsuite" %pre -%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm -%{_bindir}/getent group qemu >/dev/null || %{_sbindir}/groupadd -r qemu -%{_bindir}/getent passwd qemu >/dev/null || \ - %{_sbindir}/useradd -r -g qemu -G kvm -d / -s /sbin/nologin \ +%_bindir/getent group kvm >/dev/null || %_sbindir/groupadd -r kvm +%_bindir/getent group qemu >/dev/null || %_sbindir/groupadd -r qemu +%_bindir/getent passwd qemu >/dev/null || + %_sbindir/useradd -r -g qemu -G kvm -d / -s /sbin/nologin \ -c "qemu user" qemu %if %{kvm_available} @@ -1217,8 +1218,8 @@ if [ $(stat -L -c "%i" /proc/1/root/) = $(stat -L -c "%i" /) ]; then setfacl --remove-all /dev/kvm &> /dev/null || : %ifarch s390x if [ -c /dev/kvm ]; then - %{_bindir}/chmod 0666 /dev/kvm - %{_bindir}/chgrp kvm /dev/kvm + %_bindir/chmod 0666 /dev/kvm + %_bindir/chgrp kvm /dev/kvm fi %endif %udev_rules_update @@ -1233,7 +1234,7 @@ fi %endif %pre tools -%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm +%_bindir/getent group kvm >/dev/null || %_sbindir/groupadd -r kvm %post tools %set_permissions %_libexecdir/qemu-bridge-helper @@ -1241,7 +1242,7 @@ fi %verify_permissions %_libexecdir/qemu-bridge-helper %pre guest-agent -%{_bindir}/getent group kvm >/dev/null || %{_sbindir}/groupadd -r kvm +%_bindir/getent group kvm >/dev/null || %_sbindir/groupadd -r kvm %service_add_pre qemu-ga@.service %post guest-agent @@ -1285,7 +1286,7 @@ fi %_docdir/%name/qemu-qmp-ref.html %_docdir/%name/qemu-ga-ref.txt %_docdir/%name/qemu-ga-ref.html -%_mandir/man1/qemu.1.gz +%_mandir/man1/%name.1.gz %_mandir/man7/qemu-block-drivers.7.gz %_mandir/man7/qemu-qmp-ref.7.gz %_mandir/man7/qemu-ga-ref.7.gz @@ -1298,7 +1299,7 @@ fi %_datadir/%name/qemu-ifup %dir %_libexecdir/supportconfig %dir %_libexecdir/supportconfig/plugins -%_libexecdir/supportconfig/plugins/qemu +%_libexecdir/supportconfig/plugins/%name %if %{kvm_available} %ifarch %ix86 x86_64 %{_udevrulesdir}/71-sev.rules diff --git a/update_git.sh b/update_git.sh index 34da513..50e9c15 100644 --- a/update_git.sh +++ b/update_git.sh @@ -105,8 +105,9 @@ rm -rf $GIT_DIR done elif [ "$line" = "QEMU_VERSION" ]; then echo "Version: $QEMU_VERSION" + echo "%define qemuver $QEMU_VERSION" elif [[ "$line" =~ ^Source: ]]; then - QEMU_TARBALL=qemu-`echo "$line" | cut -d '-' -f 2-` + QEMU_TARBALL=qemu-$QEMU_VERSION.tar.xz VERSION_FILE=${QEMU_TARBALL%.tar.xz}/roms/seabios/.version SEABIOS_VERSION=`tar JxfO "$QEMU_TARBALL" "$VERSION_FILE"` SEABIOS_VERSION=`echo $SEABIOS_VERSION | cut -d '-' -f 2`