qemu-common has a dep on python, and has nothing that is critical for
the operation of the userspace emulators. At most the qemu-trace-stap
tool is useful, but we shouldn't force install of qemu-common just for
that. qemu-user-static needs to be lightweight as its used to support
cross-arch execution in scenarios where container/image size matters.
In dropping qemu-common as a dep, we just need to ensure we still have
the license files present.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
The static build of QEMU installs a copy of 'qemu-trace-stap' python
script, which gets renamed to 'qemu-trace-stap-static' by an overly
enthusiastic wildcard. This ends up adding a python dependency to
the qemu-user-static RPM, which is unhelpful.
Anyone who wants to trace QEMU user binaries with the stap helper
can easily install qemu-common as desired.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Pulled in by qemu-* but not qemu-*-core, like we do for device modules.
There's a virtual Provides: vhostuser-backend(fs) indicating this
packages is a vhost-user.json fs provider.
Use that for the qemu dep, as in the future there will be alternate
virtiofsd impl packages in Fedora
Signed-off-by: Cole Robinson <crobinso@redhat.com>
* Drop use of %dnl which centos 8 RPM doesn't support
* Use internal capstone copy on centos8
* Don't try to use jack driver on centos
Signed-off-by: Cole Robinson <crobinso@redhat.com>
s390x and ppc64le tests are still busted. I think s390x is koji
build OS related, so maybe a rebase to new fedora will fix it.
Signed-off-by: Cole Robinson <crobinso@redhat.com>
This will use gnutls's internal implementation as the
default crypto engine:
Crypto
TLS priority : "@QEMU,SYSTEM"
GNUTLS support : YES
GNUTLS crypto : YES
libgcrypt : NO
nettle : NO
crypto afalg : NO
rng-none : NO
Linux keyring : YES
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1998452
There should be no functional difference here, but it's not
obvious at a glance how qemu handles globally defined CFLAGS + LDFLAGS
with --extra-cflags and --extra-ldflags.
Reproduce the desired behavior with explicit configure options and
RPM variables
Signed-off-by: Cole Robinson <crobinso@redhat.com>
This is the historical intended behavior in the buildroot, but for
local builds, or with clang, qemu would detect a c++ compiler on the
host. So explicitly make the check fail by passing /bin/false
Signed-off-by: Cole Robinson <crobinso@redhat.com>
Commit 7a925b3802 ("spec: More RHEL merging") placed the %description
section right up against the list of Requires. This resulted in RPM
silently ignoring the Requires and adding them to the description
instead. As a result the qemu metapackage was totally broken.
Fixes: commit 7a925b3802
Fedora CI can't handle subpackages with Conflicts. There's ongoing
work to make it happen:
https://pagure.io/fedora-ci/general/issue/184
Once that lands we can re-enable these conflicts.
Signed-off-by: Cole Robinson <crobinso@redhat.com>
There's only one remaining ambiguous python shebang in qemu.git, and
it's not for anything we care about.
Also redhat-rpm-config brp-mangle-shebangs added in 2018 will do
/usr/bin/env python3 -> /usr/bin/python3 automatically for us
Signed-off-by: Cole Robinson <crobinso@redhat.com>
* Add tools_only path to only build qemu-img and qemu-guest-agent
* Add a -tests subpackage
* Install tracetool, simpletrace, dump-guest-memory
* Add vhost modprobe file
* Sync qemu-guest-agent file lists
* Use udevrulesdir from systemd
* Add more seabios and seavgabios roms
* More use of %{name} to make paths more generic
* Group all fedora specific %install content at the end
* Drop the rpath stripping, in my testing it's not needed anymore
* Drop the s390x iotests skippage from last year
Signed-off-by: Cole Robinson <crobinso@redhat.com>
This moves the %build section to be closer to RHEL qemu-kvm content.
It's a bit tedious but it ensures we enable every feature we actually
think we are enabling :)
Add some macros to facilitate sharing this layout with the RHEL spec
The only functional change is now we use gcrypt instead of nettle.
I'm not sure if that was intentional before, but gcrypt is requested
on RHEL so I'm guessing that's what we want for Fedora too
Signed-off-by: Cole Robinson <crobinso@redhat.com>
This should not be any functional change, just some BuildRequires
movement and macro tweaking with the goal of sharing the first block
of deps with the RHEL/centos qemu-kvm spec
Signed-off-by: Cole Robinson <crobinso@redhat.com>
Since QEMU 4.0 upstream supported automatically favoring KVM if the
executable ends with "kvm". Unlike the script that is currently in
use, this allows the user to specify an alternative accelerator with
"-accel".
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
The ELN stream builds Fedora packages in a psuedo-RHEL build root and
does not ship all the things that Fedora expects to be present. In
particular glib2-static is missing in ELN build roots, so we need to
disable the user mode static build.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* Drop deprecated targets: moxie, unicore32, lm32, tilegx, ppc64abi32
* Use qemu-pr-helper units from qemu contrib/
* Drop ivshmem-tools package, upstream doesn't install it anymore
* New spice device modules
Signed-off-by: Cole Robinson <crobinso@redhat.com>
The conditionals for completely skipping testing, or ignoring all test
failures are much too big a hammer. They are resulting in seriously
broken QEMU binaries making their way into the rawhide repos.
When failures happen the smallest possible number of individual tests
need to be disabled/skipped, but *only* if failure is confined to the
test suite. If there are problems affecting functionality in QEMU
itself, the build should not be forced through, instead QEMU must be
fixed before a build is made.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
The tests were not actually passing, the spec file had been set to
ignore all test failures, and as a result we were shipping completely
fubar builds.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Drop podlators since QEMU no longer uses POD for man pages.
Drop all version numbers, since we can assume Fedora has new enough
packages.
Make comments a little more consistent.
Drop rados2-devel as it is implied by rbd-devel
Use rbd-devel instead of rbd1-devel due to rename
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
From Igor Mammedov:
QEMU doesn't need iasl for building since 2.6,
where we switched to generating acpi tables
using internal aml_foo() API and stopped using
precompiled templates.
Signed-off-by: Cole Robinson <crobinso@redhat.com>
If it ever breaks, it can be skipped by setting the %qemu_sanity_check
variable to 0.
This ensures it does not bit-rot again in future and actually adds some
value to the build.
It has to be skipped for ARM for now due to inability to select the
machine type.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
In a mock build root the kernel probably won't exist in /boot and the
QEMU sanity check script won't search /lib/modules. So we must find the
vmlinuz file and pass it explicitly.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
One part of the spec file checked %{kernel_arches} while the other
checked %{hostqemu}. In fact both conditions need to be valid in
order to be able to run the sanity check. Introduce an explicit
%{qemu_sanity_check} variable to express this rule.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Rawhide grubby deps are currently broken. And I'm not sure if
this is even still required for qemu-sanity-check, so let's see
Signed-off-by: Cole Robinson <crobinso@redhat.com>