From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.groups.io with SMTP id smtpd.web08.6917.1606810503682286240 for ; Tue, 01 Dec 2020 00:15:03 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=AsPEHev6; spf=pass (domain: redhat.com, ip: 63.128.21.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606810502; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DtoYk72t0fnaIGbYSH2o55ddpSr1cLoHNhhjcLM12Q0=; b=AsPEHev67/OmofYdwxjR62YA8vNVwPtInkq/t3fY6RZOrqZlQwTMxOKw0MuaEwzb78hDen PpVJcT3sRAF9BW/2xaj0ogV1KDFNo80wzXEk1GTDIaB7P/UlogG/77bJvQnJkRA0CPc3y9 v4HYq5i3W7D3yDeVpu7WhOGbaCmTgvY= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-320-zjTssJKWMQGbg7gEEXRbDQ-1; Tue, 01 Dec 2020 03:15:00 -0500 X-MC-Unique: zjTssJKWMQGbg7gEEXRbDQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 92B79107ACF6; Tue, 1 Dec 2020 08:14:58 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-112-80.ams2.redhat.com [10.36.112.80]) by smtp.corp.redhat.com (Postfix) with ESMTP id 71B8B189C7; Tue, 1 Dec 2020 08:14:56 +0000 (UTC) Subject: Re: [PATCH v2 0/3] jansson edk2 port To: Abner Chang , devel@edk2.groups.io Cc: Jian J Wang , Hao A Wu , Andrew Fish , Leif Lindholm , Michael D Kinney , Nickle Wang , Peter O'Hanley References: <20201201022544.14608-1-abner.chang@hpe.com> From: "Laszlo Ersek" Message-ID: <1bdfa8f7-9ae5-cdd5-b4c4-09f7774d8637@redhat.com> Date: Tue, 1 Dec 2020 09:14:55 +0100 MIME-Version: 1.0 In-Reply-To: <20201201022544.14608-1-abner.chang@hpe.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 12/01/20 03:25, Abner Chang wrote: > edk2 JSON library is based on jansson open source > (https://github.com/akheron/jansson) and wrapped as an edk2 > library. edk2 JsonLib will be used by edk2 Redfish feature > drivers (not contributed yet) and the edk2 port of libredfish > library (not contributed yet) based on DMTF GitHub > (https://github.com/DMTF/libredfish). > > Jansson is licensed under the MIT license(refer to ReadMe.rst under edk2). > It is used in production and its API is stable. In UEFI/EDKII environment, > Redfish project consumes jansson to achieve JSON operations. I'd like to defer this review to the other stewards. Thanks Laszlo > > * Jansson version on edk2: 2.13.1 > > * EDKII jansson library wrapper: > - JsonLib.h: > This is the denifitions of EDKII JSON APIs which are mapped to > jannson funcitons accordingly. > > - JanssonJsonLibMapping.h: > This is the wrapper file to map funcitons and definitions used in > native jannson applications to edk2 JsonLib. This avoids the > modifications on native jannson applications to be built under > edk2 environment. > > *Known issue: > Build fail with jansson/src/load.c, overrride and add code in load.c > to conditionally use stdin according to HAVE_UNISTD_H macro. > The PR is submitted to jansson open source community. > https://github.com/akheron/jansson/pull/558 > > Signed-off-by: Abner Chang > > Cc: Jian J Wang > Cc: Hao A Wu > Cc: Andrew Fish > Cc: Laszlo Ersek > Cc: Leif Lindholm > Cc: Michael D Kinney > Cc: Nickle Wang > Cc: Peter O'Hanley > > Abner Chang (3): > edk2: jansson submodule for edk2 JSON library > RedfishPkg/library: EDK2 port of jansson library > RedfishPkg: Add EDK2 port of jansson library to build > > .gitmodules | 3 + > ReadMe.rst | 1 + > .../Include/Library/JanssonJsonLibMapping.h | 63 + > RedfishPkg/Include/Library/JsonLib.h | 767 ++++++++++++ > .../Library/JsonLib/JanssonCrtLibSupport.c | 705 +++++++++++ > .../Library/JsonLib/JanssonCrtLibSupport.h | 198 +++ > RedfishPkg/Library/JsonLib/JsonLib.c | 960 ++++++++++++++ > RedfishPkg/Library/JsonLib/JsonLib.inf | 103 ++ > RedfishPkg/Library/JsonLib/JsonUtilities.c | 417 +++++++ > RedfishPkg/Library/JsonLib/JsonUtilities.h | 69 + > RedfishPkg/Library/JsonLib/Readme.txt | 40 + > RedfishPkg/Library/JsonLib/assert.h | 16 + > RedfishPkg/Library/JsonLib/errno.h | 16 + > RedfishPkg/Library/JsonLib/jansson | 1 + > RedfishPkg/Library/JsonLib/jansson_config.h | 60 + > .../Library/JsonLib/jansson_private_config.h | 19 + > RedfishPkg/Library/JsonLib/limits.h | 16 + > RedfishPkg/Library/JsonLib/load.c | 1111 +++++++++++++++++ > RedfishPkg/Library/JsonLib/math.h | 16 + > RedfishPkg/Library/JsonLib/stdarg.h | 15 + > RedfishPkg/Library/JsonLib/stddef.h | 16 + > RedfishPkg/Library/JsonLib/stdio.h | 15 + > RedfishPkg/Library/JsonLib/stdlib.h | 16 + > RedfishPkg/Library/JsonLib/string.h | 16 + > RedfishPkg/Library/JsonLib/sys/time.h | 15 + > RedfishPkg/Library/JsonLib/sys/types.h | 15 + > RedfishPkg/Library/JsonLib/time.h | 15 + > RedfishPkg/RedfishLibs.dsc.inc | 1 + > RedfishPkg/RedfishPkg.ci.yaml | 33 +- > RedfishPkg/RedfishPkg.dec | 5 + > RedfishPkg/RedfishPkg.dsc | 1 + > 31 files changed, 4743 insertions(+), 1 deletion(-) > create mode 100644 RedfishPkg/Include/Library/JanssonJsonLibMapping.h > create mode 100644 RedfishPkg/Include/Library/JsonLib.h > create mode 100644 RedfishPkg/Library/JsonLib/JanssonCrtLibSupport.c > create mode 100644 RedfishPkg/Library/JsonLib/JanssonCrtLibSupport.h > create mode 100644 RedfishPkg/Library/JsonLib/JsonLib.c > create mode 100644 RedfishPkg/Library/JsonLib/JsonLib.inf > create mode 100644 RedfishPkg/Library/JsonLib/JsonUtilities.c > create mode 100644 RedfishPkg/Library/JsonLib/JsonUtilities.h > create mode 100644 RedfishPkg/Library/JsonLib/Readme.txt > create mode 100644 RedfishPkg/Library/JsonLib/assert.h > create mode 100644 RedfishPkg/Library/JsonLib/errno.h > create mode 160000 RedfishPkg/Library/JsonLib/jansson > create mode 100644 RedfishPkg/Library/JsonLib/jansson_config.h > create mode 100644 RedfishPkg/Library/JsonLib/jansson_private_config.h > create mode 100644 RedfishPkg/Library/JsonLib/limits.h > create mode 100644 RedfishPkg/Library/JsonLib/load.c > create mode 100644 RedfishPkg/Library/JsonLib/math.h > create mode 100644 RedfishPkg/Library/JsonLib/stdarg.h > create mode 100644 RedfishPkg/Library/JsonLib/stddef.h > create mode 100644 RedfishPkg/Library/JsonLib/stdio.h > create mode 100644 RedfishPkg/Library/JsonLib/stdlib.h > create mode 100644 RedfishPkg/Library/JsonLib/string.h > create mode 100644 RedfishPkg/Library/JsonLib/sys/time.h > create mode 100644 RedfishPkg/Library/JsonLib/sys/types.h > create mode 100644 RedfishPkg/Library/JsonLib/time.h >