Features/LegacyRemoval: Difference between revisions

From QEMU
m (Huth moved page Features/LegacyInterfacesRemoval to Features/LegacyRemoval: It's not only about interfaces, but also machine types)
(Make the introduction more generic (not only about interfaces))
Line 1: Line 1:
QEMU has a lot of interfaces (like command line options or HMP commands) which have to be considered as deprecated since other more generic interfaces have been established instead. We likely don't want to carry the old interfaces around forever. But we also do not want to remove them immediately to give the users and upper layer software stacks (like libvirt) a chance to migrate to the new interfaces step by step. So this page is about collecting information and ideas about which interfaces are considered as obsolete and when they should be removed.
=== Problem description ===
 
QEMU has a lot of interfaces (like command line options or HMP commands) and old features (like certain machine types) which are considered as deprecated since other more generic interfaces/features have been established instead. We likely don't want to carry the old code around forever. But we also do not want to remove it immediately to give the users and upper layer software stacks (like libvirt) a chance to migrate to the new interfaces step by step. So this page is about collecting information and ideas about which interfaces/features are considered as obsolete and when they should be removed.


=== Rules for removing an interface ===
=== Rules for removing an interface ===

Revision as of 11:19, 8 March 2017

Problem description

QEMU has a lot of interfaces (like command line options or HMP commands) and old features (like certain machine types) which are considered as deprecated since other more generic interfaces/features have been established instead. We likely don't want to carry the old code around forever. But we also do not want to remove it immediately to give the users and upper layer software stacks (like libvirt) a chance to migrate to the new interfaces step by step. So this page is about collecting information and ideas about which interfaces/features are considered as obsolete and when they should be removed.

Rules for removing an interface

Before an interface can be removed, there needs to be a clear transition plan for doing so. This means it should be added to this wiki page, and that there have to be at least two public releases of QEMU where the interface still works, but issues a warning when used. Two public releases are required so that the users have at least one development cycle to complain if they think that there is a good reason that the interface should not be removed. The warning should say that the interface is deprecated / going away soon, with a pointer to documentation or similar information about its replacement syntax.

Deprecated command line parameters

Parameter Rationale Deprecated in Removal in
-net channel Replaced by "-netdev user,guestfwd=..."

(and is even not documented, i.e. hardly used in the wild)

v2.6.0 v3.0.0
-smb Replaced by "-netdev user,smb=..." v2.6.0 v3.0.0 ?
-tftp Replaced by "-netdev user,tftp=..." v2.6.0 v3.0.0 ?
-bootp Replaced by "-netdev user,bootfile=..." v2.6.0 v3.0.0 ?
-redir Replaced by "-netdev user,hostfwd=..." v2.6.0 v3.0.0 ?
-usbdevice Replaced by the generic -device parameter not yet ?

Deprecated HMP commands

Command Rationale Deprecated in Removal in
host_net_add Replaced by "netdev_add" not yet ?
host_net_remove Replaced by "netdev_del" not yet ?

Deprecated machines

Machine Rationale Deprecated in Removal in
prep (ppc) Obsoleted by the "40p" machine not yet ?