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
This commit is contained in:
Bruce Rogers 2018-09-21 21:17:21 +00:00 committed by Git OBS Bridge
parent 96203b5c1d
commit 30332bdeae
10 changed files with 838 additions and 284 deletions

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Fri Sep 21 19:35:23 UTC 2018 - Bruce Rogers <brogers@suse.com>
- 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 <brogers@suse.com>

View File

@ -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

View File

@ -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

View File

@ -1,3 +1,22 @@
-------------------------------------------------------------------
Fri Sep 21 19:35:23 UTC 2018 - Bruce Rogers <brogers@suse.com>
- 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 <brogers@suse.com>

View File

@ -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

View File

@ -1,3 +1,22 @@
-------------------------------------------------------------------
Fri Sep 21 19:35:23 UTC 2018 - Bruce Rogers <brogers@suse.com>
- 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 <brogers@suse.com>

493
qemu.keyring Normal file
View File

@ -0,0 +1,493 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=YraJ
-----END PGP PUBLIC KEY BLOCK-----

184
qemu.spec
View File

@ -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

View File

@ -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

View File

@ -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`