[XEN PATCH 00/11] Allow to build libxl and other tools with json-c instead of yajl

Anthony PERARD posted 11 patches 4 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20250808145602.41716-1-anthony@xenproject.org
There is a newer version of this series
CHANGELOG.md                              |   2 +
README                                    |   2 +-
config/Tools.mk.in                        |   2 +
tools/config.h.in                         |   3 +
tools/configure                           | 136 +++++-
tools/configure.ac                        |  10 +-
tools/include/libxl_json.h                |  30 +-
tools/libs/light/Makefile                 |   7 +-
tools/libs/light/gentypes.py              | 160 ++++++-
tools/libs/light/idl.py                   |   7 +-
tools/libs/light/libxl_cpuid.c            | 119 +++++
tools/libs/light/libxl_internal.h         |  25 +-
tools/libs/light/libxl_json.c             | 557 +++++++++++++++++++++-
tools/libs/light/libxl_qmp.c              |  53 ++
tools/libs/light/libxl_types.idl          |   7 +-
tools/libs/light/libxl_types_internal.idl |   3 +-
tools/libs/stat/Makefile                  |   3 +-
tools/libs/stat/xenstat_qmp.c             | 126 ++++-
tools/xl/Makefile                         |   2 +-
tools/xl/xl.h                             |   3 +
tools/xl/xl_info.c                        | 105 +++-
tools/xl/xl_misc.c                        |   3 -
22 files changed, 1313 insertions(+), 52 deletions(-)
[XEN PATCH 00/11] Allow to build libxl and other tools with json-c instead of yajl
Posted by Anthony PERARD 4 months, 1 week ago
From: Anthony PERARD <anthony.perard@vates.tech>

Patch series available in this git branch:
https://xenbits.xenproject.org/git-http/people/aperard/xen-unstable.git br.libxl-libjsonc-v1

Hi,

The library YAJL has been unmaintained for several years, without an obvious
fork to pick.

On the other and the library json-c is been maintained and use by several other
project, it's probably already installed on your machine. So this patch series
intend to allow to build the Xen toolstack again json-c, and forgo yajl.

Just in case, YAJL is can still be used.

There's bit of libxl API that exposes YAJL, mainly so it can be used by `xl` to
call libxl_domain_config_gen_json(). It was exposed via the "libxl_json.h"
headers. This functions and others won't be available when libxl is build
against json-c.

Cheers,

Anthony PERARD (11):
  xl: move printf_info prototype to an header
  libxl: Remove duplicate libxl_domain_config_gen_json prototype
  libxl: remove duplicated libxl__yajl_gen_asciiz() prototype
  tools/configure: Introduce deps on json-c lib for libxl
  libxl: Convert libxl__json_parse() to use json-c
  libxl: convert libxl__json_object_to_yajl_gen to
    libxl__json_object_to_libjsonc_object
  libxl: libxl__object_to_json() to json-c
  libxl: convert libxl__json_object_to_json() to json_object
  tools/libxenstat: Use json-c when available
  configure: Use json-c by default, fallback to yajl
  Update CHANGELOG and README with dependency on json-c

 CHANGELOG.md                              |   2 +
 README                                    |   2 +-
 config/Tools.mk.in                        |   2 +
 tools/config.h.in                         |   3 +
 tools/configure                           | 136 +++++-
 tools/configure.ac                        |  10 +-
 tools/include/libxl_json.h                |  30 +-
 tools/libs/light/Makefile                 |   7 +-
 tools/libs/light/gentypes.py              | 160 ++++++-
 tools/libs/light/idl.py                   |   7 +-
 tools/libs/light/libxl_cpuid.c            | 119 +++++
 tools/libs/light/libxl_internal.h         |  25 +-
 tools/libs/light/libxl_json.c             | 557 +++++++++++++++++++++-
 tools/libs/light/libxl_qmp.c              |  53 ++
 tools/libs/light/libxl_types.idl          |   7 +-
 tools/libs/light/libxl_types_internal.idl |   3 +-
 tools/libs/stat/Makefile                  |   3 +-
 tools/libs/stat/xenstat_qmp.c             | 126 ++++-
 tools/xl/Makefile                         |   2 +-
 tools/xl/xl.h                             |   3 +
 tools/xl/xl_info.c                        | 105 +++-
 tools/xl/xl_misc.c                        |   3 -
 22 files changed, 1313 insertions(+), 52 deletions(-)

-- 
Anthony PERARD
Re: [XEN PATCH 00/11] Allow to build libxl and other tools with json-c instead of yajl
Posted by Andrew Cooper 4 months, 1 week ago
On 08/08/2025 3:55 pm, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
>
> Patch series available in this git branch:
> https://xenbits.xenproject.org/git-http/people/aperard/xen-unstable.git br.libxl-libjsonc-v1
>
> Hi,
>
> The library YAJL has been unmaintained for several years, without an obvious
> fork to pick.
>
> On the other and the library json-c is been maintained and use by several other
> project, it's probably already installed on your machine. So this patch series
> intend to allow to build the Xen toolstack again json-c, and forgo yajl.
>
> Just in case, YAJL is can still be used.
>
> There's bit of libxl API that exposes YAJL, mainly so it can be used by `xl` to
> call libxl_domain_config_gen_json(). It was exposed via the "libxl_json.h"
> headers. This functions and others won't be available when libxl is build
> against json-c.
>
> Cheers,
>
> Anthony PERARD (11):
>   xl: move printf_info prototype to an header
>   libxl: Remove duplicate libxl_domain_config_gen_json prototype
>   libxl: remove duplicated libxl__yajl_gen_asciiz() prototype

First three, trivially Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

I'll look at the rest when I've got a bit more time.