v4: Use memcpy instead of pointer type cast. [Richard] Keep parameter order consistent with libuuid. [Jeff] qemu_uuid_convert -> qemu_uuid_bswap. [Jeff]
v3: Negative tests. [Daniel] Update QemuUUID type from array to struct. [Markus] Add qemu_uuid_unparse_strdup. Add qemu_uuid_convert. Redirect configure obsoleted option message to stderr. [Jeff] vdi: uuid_convert -> qemu_uuid_convert. Fix commit message syntax errors in vpc patch. [Jeff] Further cleanup around qemu_uuid. v2: Fix the endianness wrongness. [Jeff] Add tests/test-uuid.c. [Denial] Add r-b of Stefan Weil to the VDI patch. The facts how we use libuuid now are not particularly pleasant. - VHDX driver depends on uuid, but is unconditionally checked in iotests 109. If it is not built, the test would fail, leaving no hint about that. In fact this even makes the feature implementation a bit ugly because it compromises the write protection on block 0 with image probing, silently. - A few other libuuid users, in block/ and crypto/, use it as an optional dependency, and compromises certain functionalities if it is not available. - On the other hand, there are already a few uuid function fallbacks in those callers, as well as some duplicated sscanf, snprintf and g_strdup_printf around UUID_FMT, which can be replaced with UUID parse/unparse routines. So instead of making libuuid a hard requirement, let's simply move the fallbacks to util and implement the random version of uuid generation, and be done with it. Fam Fam Zheng (9): util: Add UUID API vhdx: Use QEMU UUID API vdi: Use QEMU UUID API vpc: Use QEMU UUID API crypto: Switch to QEMU UUID API tests: No longer dependent on CONFIG_UUID configure: Remove detection code for UUID vl: Switch qemu_uuid to QemuUUID tests: Add uuid tests arch_init.c | 19 ----- block/Makefile.objs | 2 +- block/iscsi.c | 2 +- block/vdi.c | 73 +++++-------------- block/vhdx-endian.c | 3 - block/vhdx.c | 9 ++- block/vpc.c | 10 +-- configure | 70 ++---------------- crypto/block-luks.c | 26 ++----- hw/ipmi/ipmi_bmc_sim.c | 2 +- hw/nvram/fw_cfg.c | 2 +- hw/ppc/spapr.c | 7 +- hw/smbios/smbios.c | 11 +-- hw/xenpv/xen_domainbuild.c | 6 +- include/qemu/uuid.h | 48 +++++++++++++ include/sysemu/sysemu.h | 7 +- qmp.c | 11 +-- stubs/uuid.c | 2 +- tests/Makefile.include | 2 + tests/test-crypto-block.c | 2 +- tests/test-uuid.c | 173 +++++++++++++++++++++++++++++++++++++++++++++ util/Makefile.objs | 1 + util/uuid.c | 92 ++++++++++++++++++++++++ vl.c | 7 +- 24 files changed, 377 insertions(+), 210 deletions(-) create mode 100644 include/qemu/uuid.h create mode 100644 tests/test-uuid.c create mode 100644 util/uuid.c -- 2.7.4