QEMU is a generic and open source machine emulator and virtualizer.
QEMU can be used in several different ways. The most common is for System Emulation, where it provides a virtual model of an entire machine (CPU, memory and emulated devices) to run a guest OS. In this mode the CPU may be fully emulated, or it may work with a hypervisor such as KVM or Xen to allow the guest to run directly on the host CPU.
Note that this package is produced using a Git based workflow. Please refer to README.PACKAGING before making modifications.
Embed a build result badge whereever you need it. Select from
the options below and copy the result over to your README or on
your website, and enjoy it refresh automatically whenever the
build result changes.
- Build PPC firmwares from sources on non-PPC builds as well (bsc#1193545)
- Build RiscV firmwares on non-RiscV builds as well
- While there, refactor (and simplify!) the firmware building logic and code
* Patches added:
Makefile-define-endianess-for-cross-buil.patch
- Include vmxcap in the qemu-tools package (is being very useful for debugging bsc#1193364)
- The qemu package should require qemu-x86, qemu-arm, etc, as there's no point installing it without _any_ of them. Additionally, right now, the user does not get a working qemu, if recommended packages are disabled (e.g., on MicroOS or SLE Micro). bsc#1196087
- Give clearer instructions on how to modify the package patches from the output of update_git.sh (docs change only, no functional change)
- qemu,kvm: potential privilege escalation via virtiofsd (bsc#1195161, CVE-2022-0358)
* Patches added:
virtiofsd-Drop-membership-of-all-supplem.patch
I'm sorry, maybe I still missing something about Obsoletes & Friends enough... Can you help me understand why qemu-kvm would be missing for all arches? In fact, I'm not only Obsoleting it, I'm also Providing it, isn't that fine?
FWIW, I've done a few tests with this repository enabled, and it seemed to work:
$ zypper lr
Repository priorities in effect: > (See 'zypper lr -P' for details)
90 (raised priority) : 1 repository
99 (default priority) : 4 repositories
$ zypper in --from 1 qemu-kvm
Loading repository data...
Reading installed packages...
'qemu-kvm' not found in package names. Trying capabilities.
Resolving package dependencies...
The following 37 NEW packages are going to be installed:
acl canokey-qemu kernel-devel kernel-macros libaio1 libcapstone4 libefa1 libfdt1 libibverbs libibverbs1 libjpeg8 liblzo2-2 libmana1 libmlx4-1 libmlx5-1 libndctl6 libnuma1 libpixman-1-0 libpmem1 libpng16-16 librdmacm1 libslirp0 libsnappy1 liburing2 libvdeplug3 libxdp1
libyajl2 qemu qemu-accel-tcg-x86 qemu-ipxe qemu-ovmf-x86_64 qemu-seabios qemu-vgabios qemu-x86 rdma-core system-user-qemu xen-libs
I.e., as you can see, no qemu-kvm package is being installed:
$ rpm -qa|grep qemu-kvm
$
And:
$ zypper in --from 1 qemu-kvm
Loading repository data...
Reading installed packages...
'qemu-kvm' not found in package names. Trying capabilities.
'qemu' providing 'qemu-kvm' is already installed.
Resolving package dependencies...
Nothing to do.
$ zypper se --provides qemu-kvm
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
---+----------------------+----------------------------------------------------+-----------
| os-autoinst-qemu-kvm | Convenience package providing os-autoinst+qemu-kvm | package
| qemu | Machine emulator and virtualizer | srcpackage
i+ | qemu | Machine emulator and virtualizer | package
Furthermore, if I have the actual qemu-kvm package installed, with <= it is automatically removed, which is what I want... So things look good to me. What am I missing?
Mmm... I guess I can try with "Obsoletes: qemu-kvm < %{version}-%{release}
But, yes, the actual qemu-kvm package must be removed, because now the qemu pacakge Obsoletes it, by providing everything that it was providing before (i.e., one symlink).
I don't understand what you mean with "Doesn't the package require other packages to build or install?"
Ok, I've now tested Obsoletes: qemu-kvm < %{version}-%{release}, and no, it does not do what I want and need, while Obsoletes: qemu-kvm = %{version} does. And the SR has been accepted already, so I'm sticking to that
Comments 5
qemu-kvm ist missing now for all arch!
And this wrong:
Pacakges we OBSOLETE (and CONFLICT)
Obsoletes: kvm <= %{version} Obsoletes: qemu-kvm <= %{version} Obsoletes: qemu-sgabios <= 8
Should be <, not <=
I'm sorry, maybe I still missing something about Obsoletes & Friends enough... Can you help me understand why qemu-kvm would be missing for all arches? In fact, I'm not only Obsoleting it, I'm also Providing it, isn't that fine?
FWIW, I've done a few tests with this repository enabled, and it seemed to work:
I.e., as you can see, no
qemu-kvm
package is being installed:$ rpm -qa|grep qemu-kvm $
And:
Furthermore, if I have the actual
qemu-kvm
package installed, with<=
it is automatically removed, which is what I want... So things look good to me. What am I missing?First a short answer. An offered version (=) cannot be obsolete (<=) at the same time.
And why should qemu-kvm be removed? Doesn't the package require other packages to build or install?
Mmm... I guess I can try with "Obsoletes: qemu-kvm < %{version}-%{release}
But, yes, the actual qemu-kvm package must be removed, because now the qemu pacakge Obsoletes it, by providing everything that it was providing before (i.e., one symlink).
I don't understand what you mean with "Doesn't the package require other packages to build or install?"
Ok, I've now tested
Obsoletes: qemu-kvm < %{version}-%{release}
, and no, it does not do what I want and need, whileObsoletes: qemu-kvm = %{version}
does. And the SR has been accepted already, so I'm sticking to that