Message ID | 20240620165742.1711389-10-berrange@redhat.com |
---|---|
State | New |
Headers | show |
Series | hw: define and enforce a standard lifecycle for versioned machines | expand |
On 20/06/2024 18.57, Daniel P. Berrangé wrote: > The new deprecation and deletion policy for versioned machine types is > being introduced in QEMU 9.1.0. > > Under the new policy a number of old machine types (any prior to 2.12) > would be liable for immediate deletion which would be a violation of our > historical deprecation and removal policy > > Thus automatic deletions (by skipping QOM registration) are temporarily > gated on existance of the env variable "QEMU_DELETE_MACHINES" / QEMU > version number >= 10.1.0. This allows opt-in testing of the automatic > deletion logic, while activating it fully in QEMU >= 10.1.0. > > This whole commit should be reverted in the 10.1.0 dev cycle or shortly > thereafter. > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > include/hw/boards.h | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > > diff --git a/include/hw/boards.h b/include/hw/boards.h > index 187ed76646..ef6f18f2c1 100644 > --- a/include/hw/boards.h > +++ b/include/hw/boards.h > @@ -686,11 +686,28 @@ struct MachineState { > * suitable period of time has passed, it will cause > * execution of the method to return, avoiding registration > * of the machine > + * > + * The new deprecation and deletion policy for versioned > + * machine types was introduced in QEMU 9.1.0. > + * > + * Under the new policy a number of old machine types (any > + * prior to 2.12) would be liable for immediate deletion > + * which would be a violation of our historical deprecation > + * and removal policy > + * > + * Thus deletions are temporarily gated on existance of > + * the env variable "QEMU_DELETE_MACHINES" / QEMU version > + * number >= 10.1.0. This gate can be deleted in the 10.1.0 > + * dev cycle > */ > #define MACHINE_VER_DELETION(...) \ > do { \ > if (MACHINE_VER_SHOULD_DELETE(__VA_ARGS__)) { \ > - return; \ > + if (getenv("QEMU_DELETE_MACHINES") || \ > + QEMU_VERSION_MAJOR > 10 || (QEMU_VERSION_MAJOR == 10 && \ > + QEMU_VERSION_MINOR >= 1)) { \ > + return; \ > + } \ > } \ > } while (0) > Reviewed-by: Thomas Huth <thuth@redhat.com>
diff --git a/include/hw/boards.h b/include/hw/boards.h index 187ed76646..ef6f18f2c1 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -686,11 +686,28 @@ struct MachineState { * suitable period of time has passed, it will cause * execution of the method to return, avoiding registration * of the machine + * + * The new deprecation and deletion policy for versioned + * machine types was introduced in QEMU 9.1.0. + * + * Under the new policy a number of old machine types (any + * prior to 2.12) would be liable for immediate deletion + * which would be a violation of our historical deprecation + * and removal policy + * + * Thus deletions are temporarily gated on existance of + * the env variable "QEMU_DELETE_MACHINES" / QEMU version + * number >= 10.1.0. This gate can be deleted in the 10.1.0 + * dev cycle */ #define MACHINE_VER_DELETION(...) \ do { \ if (MACHINE_VER_SHOULD_DELETE(__VA_ARGS__)) { \ - return; \ + if (getenv("QEMU_DELETE_MACHINES") || \ + QEMU_VERSION_MAJOR > 10 || (QEMU_VERSION_MAJOR == 10 && \ + QEMU_VERSION_MINOR >= 1)) { \ + return; \ + } \ } \ } while (0)
The new deprecation and deletion policy for versioned machine types is being introduced in QEMU 9.1.0. Under the new policy a number of old machine types (any prior to 2.12) would be liable for immediate deletion which would be a violation of our historical deprecation and removal policy Thus automatic deletions (by skipping QOM registration) are temporarily gated on existance of the env variable "QEMU_DELETE_MACHINES" / QEMU version number >= 10.1.0. This allows opt-in testing of the automatic deletion logic, while activating it fully in QEMU >= 10.1.0. This whole commit should be reverted in the 10.1.0 dev cycle or shortly thereafter. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- include/hw/boards.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-)