v7: Address Eric's comments:
    01, 03-09: Add Eric's r-b line.
    01: Commit message syntax fix.
        Remove trailing comma in copyright header.
        Remove 'glib.h' inclusion.
    02: New patch to make null_uuid.
    09: Fix missed qemu_uuid.
        Also update "qemu_uuid[]" to "qemu_uuid" in a comment.
    10: New patch to make uuid parse more robust against invalid formats.
    11: Add test cases suggested by Eric.
        Fix unwanted double dashes.
    12: Added MAINTAINERS patch.

v6: Fix initializer syntax that is disliked by centos6.

v5: Add union fields in QemuUUID to help the alignment necessary for bswap, and
    assert. [Richard]
    Update the test case initializer syntax accordingly.

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 Zheng (12):
  util: Add UUID API
  uuid: Make null_uuid static
  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
  uuid: Tighten uuid parse
  tests: Add uuid tests

 MAINTAINERS                |   6 ++
 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/ppc/spapr_rtas.c        |   3 +-
 hw/smbios/smbios.c         |  13 ++--
 hw/xenpv/xen_domainbuild.c |   6 +-
 include/qemu/uuid.h        |  59 +++++++++++++++
 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          | 177 +++++++++++++++++++++++++++++++++++++++++++++
 ui/spice-core.c            |   2 +-
 util/Makefile.objs         |   1 +
 util/uuid.c                | 114 +++++++++++++++++++++++++++++
 vl.c                       |   7 +-
 27 files changed, 424 insertions(+), 213 deletions(-)
 create mode 100644 include/qemu/uuid.h
 create mode 100644 tests/test-uuid.c
 create mode 100644 util/uuid.c


Reply via email to