diff options
author | Eric Blake <eblake@redhat.com> | 2012-01-20 11:43:28 -0700 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2012-01-20 16:05:51 -0700 |
commit | c8d44e634c381572975f670cd91af6fae01d99c6 (patch) | |
tree | b204332c83e55eecb062fe11414dc6952da56a3a /generator.py | |
parent | e8fe76bdbf50f59fc2d7b89280601a053e6fd145 (diff) | |
download | libvirt-python-c8d44e634c381572975f670cd91af6fae01d99c6.tar.gz |
API: make declaration of _LAST enum values conditional
Although this is a public API break, it only affects users that
were compiling against *_LAST values, and can be trivially
worked around without impacting compilation against older
headers, by the user defining VIR_ENUM_SENTINELS before using
libvirt.h. It is not an ABI break, since enum values do not
appear as .so entry points. Meanwhile, it prevents users from
using non-stable enum values without explicitly acknowledging
the risk of doing so.
See this list discussion:
https://www.redhat.com/archives/libvir-list/2012-January/msg00804.html
* include/libvirt/libvirt.h.in: Hide all sentinels behind
LIBVIRT_ENUM_SENTINELS, and add missing sentinels.
* src/internal.h (VIR_DEPRECATED): Allow inclusion after
libvirt.h.
(LIBVIRT_ENUM_SENTINELS): Expose sentinels internally.
* daemon/libvirtd.h: Use the sentinels.
* src/remote/remote_protocol.x (includes): Don't expose sentinels.
* python/generator.py (enum): Likewise.
* tests/cputest.c (cpuTestCompResStr): Silence compiler warning.
* tools/virsh.c (vshDomainStateReasonToString)
(vshDomainControlStateToString): Likewise.
Diffstat (limited to 'generator.py')
-rwxr-xr-x | generator.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/generator.py b/generator.py index 6fee3a4..de635dc 100755 --- a/generator.py +++ b/generator.py @@ -205,7 +205,8 @@ def enum(type, name, value): value = 1 elif value == 'VIR_DOMAIN_AFFECT_CONFIG': value = 2 - enums[type][name] = value + if name[-5:] != '_LAST': + enums[type][name] = value def qemu_enum(type, name, value): if not qemu_enums.has_key(type): |