SHA256
1
0
forked from pool/qemu

Accepting request 862991 from home:bfrogers:branches:Virtualization

- Convert qemu-kvm from a script to a symlink. This method of
  invoking the QEMU emulator has been deprecated for some time,
  but is still provided. It has as it's origins a version of QEMU
  which had KVM acceleration enabled by default. In it's recent
  incarnation it is a script which adds '-machine accel=kvm' to the
  beginning of the list of command line options passed to the
  emulator. This method collides with the now preferred method of
  specifying acceleration options by using -accel. qemu-kvm is now
  changed to simply be a symlink to the same QEMU binary which the
  prior script exec'd. This new approach takes advantage of a built
  in QEMU feature where if QEMU is invoked using a program name
  ending in 'kvm', KVM emulation is enabled. This approach is
  better in that it is more compatible with any other command line
  option that may be added for specifying acceleration (not that
  you should do that).
  For those who have taken advantage of the fact that you can add
  additional command line options to the qemu-kvm script, or doing
  other things in that script you will just need to create an
  alternate script "emulator" to achieve the same. It's possible
  that there may be some very subtle behavioral difference in the
  switch from a script to a symlink, but given that qemu-kvm is a
  deprecated package, we're not going to worry about that.

OBS-URL: https://build.opensuse.org/request/show/862991
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=601
This commit is contained in:
Bruce Rogers 2021-01-13 22:38:56 +00:00 committed by Git OBS Bridge
parent 5b17093cb1
commit 58189e6be2
3 changed files with 38 additions and 28 deletions

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Jan 13 19:48:17 UTC 2021 - Bruce Rogers <brogers@suse.com>
- Convert qemu-kvm from a script to a symlink. This method of
invoking the QEMU emulator has been deprecated for some time,
but is still provided. It has as it's origins a version of QEMU
which had KVM acceleration enabled by default. In it's recent
incarnation it is a script which adds '-machine accel=kvm' to the
beginning of the list of command line options passed to the
emulator. This method collides with the now preferred method of
specifying acceleration options by using -accel. qemu-kvm is now
changed to simply be a symlink to the same QEMU binary which the
prior script exec'd. This new approach takes advantage of a built
in QEMU feature where if QEMU is invoked using a program name
ending in 'kvm', KVM emulation is enabled. This approach is
better in that it is more compatible with any other command line
option that may be added for specifying acceleration (not that
you should do that).
For those who have taken advantage of the fact that you can add
additional command line options to the qemu-kvm script, or doing
other things in that script you will just need to create an
alternate script "emulator" to achieve the same. It's possible
that there may be some very subtle behavioral difference in the
switch from a script to a symlink, but given that qemu-kvm is a
deprecated package, we're not going to worry about that.
-------------------------------------------------------------------
Tue Jan 5 14:56:10 UTC 2021 - Bruce Rogers <brogers@suse.com>

View File

@ -507,10 +507,10 @@ Obsoletes: kvm < %{qemuver}
%description kvm
%{generic_qemu_description}
This package simply provides a shell script wrapper for the QEMU program which
does the actual machine emulation and virtualization for this architecture. The
wrapper simply adds command-line parameters to ensure that the KVM accelerator
is invoked. It provides no additional benefit, and is considered deprecated.
This package provides a symlink to the main QEMU emulator used for KVM
virtualization. The symlink is named qemu-kvm, which causes the QEMU program
to enable the KVM accelerator, due to the name reference ending with 'kvm'.
This package is an artifact of the early origins of QEMU, and is deprecated.
%endif
%package lang
@ -1643,22 +1643,14 @@ 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-s390x/supported.txt
%if %{legacy_qemu_kvm}
cat > %{buildroot}%_bindir/qemu-kvm << 'EOF'
#!/bin/sh
%ifarch s390x
exec %_bindir/qemu-system-s390x -machine accel=kvm "$@"
%else
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
install -d %{buildroot}%_docdir/qemu-kvm
%ifarch s390x
ln -s qemu-system-s390x %{buildroot}%_bindir/qemu-kvm
ln -s ../qemu-s390x/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt
rst2html --exit-status=2 %{buildroot}%_docdir/qemu-s390x/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.html
%else
ln -s qemu-system-x86_64 %{buildroot}%_bindir/qemu-kvm
ln -s ../qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt
rst2html --exit-status=2 %{buildroot}%_docdir/qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.html
%endif

View File

@ -440,10 +440,10 @@ Obsoletes: kvm < %{qemuver}
%description kvm
%{generic_qemu_description}
This package simply provides a shell script wrapper for the QEMU program which
does the actual machine emulation and virtualization for this architecture. The
wrapper simply adds command-line parameters to ensure that the KVM accelerator
is invoked. It provides no additional benefit, and is considered deprecated.
This package provides a symlink to the main QEMU emulator used for KVM
virtualization. The symlink is named qemu-kvm, which causes the QEMU program
to enable the KVM accelerator, due to the name reference ending with 'kvm'.
This package is an artifact of the early origins of QEMU, and is deprecated.
%endif
%package lang
@ -1510,22 +1510,14 @@ 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-s390x/supported.txt
%if %{legacy_qemu_kvm}
cat > %{buildroot}%_bindir/qemu-kvm << 'EOF'
#!/bin/sh
%ifarch s390x
exec %_bindir/qemu-system-s390x -machine accel=kvm "$@"
%else
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
install -d %{buildroot}%_docdir/qemu-kvm
%ifarch s390x
ln -s qemu-system-s390x %{buildroot}%_bindir/qemu-kvm
ln -s ../qemu-s390x/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt
rst2html --exit-status=2 %{buildroot}%_docdir/qemu-s390x/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.html
%else
ln -s qemu-system-x86_64 %{buildroot}%_bindir/qemu-kvm
ln -s ../qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt
rst2html --exit-status=2 %{buildroot}%_docdir/qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.html
%endif