[edk2-devel] [PATCH v5 0/6] jansson edk2 port

Michael D Kinney michael.d.kinney at intel.com
Thu Dec 10 02:33:21 UTC 2020


Abner,

Some questions included below.

Mike


> -----Original Message-----
> From: Chang, Abner (HPS SW/FW Technologist) <abner.chang at hpe.com>
> Sent: Wednesday, December 9, 2020 6:14 PM
> To: devel at edk2.groups.io; gaoliming at byosoft.com.cn
> Cc: 'Sean Brogan' <sean.brogan at microsoft.com>; 'Bret Barkelew' <Bret.Barkelew at microsoft.com>; 'Andrew Fish'
> <afish at apple.com>; 'Laszlo Ersek' <lersek at redhat.com>; 'Leif Lindholm' <leif at nuviainc.com>; Kinney, Michael D
> <michael.d.kinney at intel.com>; Wang, Nickle (HPS SW) <nickle.wang at hpe.com>; O'Hanley, Peter (EXL) <peter.ohanley at hpe.com>
> Subject: RE: [edk2-devel] [PATCH v5 0/6] jansson edk2 port
> 
> 
> 
> > -----Original Message-----
> > From: devel at edk2.groups.io [mailto:devel at edk2.groups.io] On Behalf Of
> > gaoliming
> > Sent: Tuesday, December 8, 2020 2:40 PM
> > To: devel at edk2.groups.io; Chang, Abner (HPS SW/FW Technologist)
> > <abner.chang at hpe.com>
> > Cc: 'Sean Brogan' <sean.brogan at microsoft.com>; 'Bret Barkelew'
> > <Bret.Barkelew at microsoft.com>; 'Andrew Fish' <afish at apple.com>; 'Laszlo
> > Ersek' <lersek at redhat.com>; 'Leif Lindholm' <leif at nuviainc.com>; 'Michael
> > D Kinney' <michael.d.kinney at intel.com>; Wang, Nickle (HPS SW)
> > <nickle.wang at hpe.com>; O'Hanley, Peter (EXL) <peter.ohanley at hpe.com>
> > Subject: 回复: [edk2-devel] [PATCH v5 0/6] jansson edk2 port
> >
> > Abner:
> >   I have minor comments on the library header file.
> >
> > 1. JasonLib.h & BaseUcs2Utf8Lib.h. They don't need to include the additional
> > header files, such as Uefi.h and BaseLib.h, because the library header file
> > doesn't depend on the definitions from BaseLib.
> > 2. CrtLib.inf needs to list the required library class: BaseMemoryLib & PrintLib.
> 
> OK, I will wait couple days for other comments and address that all together.
> 
> Thanks
> >
> > Thanks
> > Liming
> > > -----邮件原件-----
> > > 发件人: bounce+27952+68426+4905953+8761045 at groups.io
> > > <bounce+27952+68426+4905953+8761045 at groups.io> 代表 Abner Chang
> > > 发送时间: 2020年12月8日 10:11
> > > 收件人: devel at edk2.groups.io
> > > 抄送: Sean Brogan <sean.brogan at microsoft.com>; Bret Barkelew
> > > <Bret.Barkelew at microsoft.com>; Andrew Fish <afish at apple.com>; Laszlo
> > > Ersek <lersek at redhat.com>; Leif Lindholm <leif at nuviainc.com>; Michael
> > > D Kinney <michael.d.kinney at intel.com>; Liming Gao
> > > <gaoliming at byosoft.com.cn>; Nickle Wang <nickle.wang at hpe.com>;
> > Peter
> > > O'Hanley <peter.ohanley at hpe.com>
> > > 主题: [edk2-devel] [PATCH v5 0/6] jansson edk2 port
> > >
> > > In v5, move BaseUcs2Utf8Lib to under RedfishPkg.
> > > In v4,
> > >        - Address review comments
> > >        - Seperate CRT functions to a individule library CrtLib under
> > >          RedfishPkg.
> > >        - Seperate UCS2-UTF8 functions to a individule library
> > >          BaseUcs2Utf8Lib under MdeModulePkg.
> > >
> > > In v3, Add jansson library as the required submoudle in
> > >        CiSettings.py for CI test.
> > > In v2, JsonLib is moved to under RedfishPkg.
> > >
> > > 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.
> > >
> > > * 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.

Can you explain the use case for this in more detail?
What are these native jannson applications and why do we need to build them in edk2?
If we have the jannson submodule, why can't these apps just use the standard jannson services?

I ask because this is a new concept for edk2 and I want to make sure it is really required.

> > >
> > > *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 <abner.chang at hpe.com>
> > >
> > > Cc: Sean Brogan <sean.brogan at microsoft.com>
> > > Cc: Bret Barkelew <Bret.Barkelew at microsoft.com>
> > > Cc: Andrew Fish <afish at apple.com>
> > > Cc: Laszlo Ersek <lersek at redhat.com>
> > > Cc: Leif Lindholm <leif at nuviainc.com>
> > > Cc: Michael D Kinney <michael.d.kinney at intel.com>
> > > Cc: Liming Gao <gaoliming at byosoft.com.cn>
> > > Cc: Nickle Wang <nickle.wang at hpe.com>
> > > Cc: Peter O'Hanley <peter.ohanley at hpe.com>
> > >
> > > Abner Chang (6):
> > >   RedfishPkg/Ucs2Utf8lib: UCS2 to UFT8 manipulation library
> > >   edk2: jansson submodule for edk2 JSON library
> > >   RedfishPkg/CrtLib: C runtime library
> > >   RedfishPkg/library: EDK2 port of jansson library
> > >   RedfishPkg: Add EDK2 port of jansson library to build
> > >   .pytool: Add required submodule for JsonLib
> > >
> > >  .gitmodules                                   |    3 +
> > >  .pytool/CISettings.py                         |    2 +
> > >  ReadMe.rst                                    |    1 +
> > >  RedfishPkg/Include/JanssonJsonMapping.h       |   63 +
> > >  RedfishPkg/Include/Library/BaseUcs2Utf8Lib.h  |   69 +
> > >  RedfishPkg/Include/Library/CrtLib.h           |  195 +++
> > >  RedfishPkg/Include/Library/JsonLib.h          |  768 ++++++++++++
> > >  .../Library/BaseUcs2Utf8Lib/BaseUcs2Utf8Lib.c |  417 +++++++
> > >  .../BaseUcs2Utf8Lib/BaseUcs2Utf8Lib.inf       |   31 +
> > >  RedfishPkg/Library/CrtLib/CrtLib.c            |  705 +++++++++++
> > >  RedfishPkg/Library/CrtLib/CrtLib.inf          |   37 +
> > >  RedfishPkg/Library/JsonLib/JsonLib.c          |  961 ++++++++++++++
> > >  RedfishPkg/Library/JsonLib/JsonLib.inf        |  101 ++
> > >  RedfishPkg/Library/JsonLib/Readme.rst         |   40 +
> > >  RedfishPkg/Library/JsonLib/assert.h           |   16 +
> > >  RedfishPkg/Library/JsonLib/errno.h            |   16 +
> > >  RedfishPkg/Library/JsonLib/jansson            |    1 +
> > >  RedfishPkg/Library/JsonLib/jansson_config.h   |   46 +
> > >  .../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                |    3 +
> > >  RedfishPkg/RedfishPkg.ci.yaml                 |   33 +
> > >  RedfishPkg/RedfishPkg.dec                     |   15 +
> > >  RedfishPkg/RedfishPkg.dsc                     |    3 +
> > >  34 files changed, 4811 insertions(+)
> > >  create mode 100644 RedfishPkg/Include/JanssonJsonMapping.h
> > >  create mode 100644 RedfishPkg/Include/Library/BaseUcs2Utf8Lib.h
> > >  create mode 100644 RedfishPkg/Include/Library/CrtLib.h
> > >  create mode 100644 RedfishPkg/Include/Library/JsonLib.h
> > >  create mode 100644
> > > RedfishPkg/Library/BaseUcs2Utf8Lib/BaseUcs2Utf8Lib.c
> > >  create mode 100644
> > > RedfishPkg/Library/BaseUcs2Utf8Lib/BaseUcs2Utf8Lib.inf
> > >  create mode 100644 RedfishPkg/Library/CrtLib/CrtLib.c
> > >  create mode 100644 RedfishPkg/Library/CrtLib/CrtLib.inf
> > >  create mode 100644 RedfishPkg/Library/JsonLib/JsonLib.c
> > >  create mode 100644 RedfishPkg/Library/JsonLib/JsonLib.inf
> > >  create mode 100644 RedfishPkg/Library/JsonLib/Readme.rst
> > >  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
> > >
> > > --
> > > 2.17.1
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
> >
> >
> > 
> >
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#68621): https://edk2.groups.io/g/devel/message/68621
Mute This Topic: https://groups.io/mt/78845733/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list