Re: git: f2d00f8fb185 - main - devel/jwt-cpp: A header only C++ library to JWT

From: Daniel Engberg <diizzy_at_FreeBSD.org>
Date: Wed, 28 May 2025 16:58:11 UTC
On 2025-05-28 14:54, Xavier Beaudouin wrote:
> The branch main has been updated by kiwi:
>
> URL:https://cgit.FreeBSD.org/ports/commit/?id=f2d00f8fb185f6d510f19d87d2ab3bab88de263a
>
> commit f2d00f8fb185f6d510f19d87d2ab3bab88de263a
> Author:     Xavier Beaudouin<kiwi@FreeBSD.org>
> AuthorDate: 2025-05-28 06:52:24 +0000
> Commit:     Xavier Beaudouin<kiwi@FreeBSD.org>
> CommitDate: 2025-05-28 12:53:46 +0000
>
>      devel/jwt-cpp: A header only C++ library to JWT
>      
>      A header only library for creating and validating JSON Web Tokens
>      in C++11.
>      The objective is to deliver a versatile and universally applicable
>      collection of algorithms, classes, and data structures, fostering
>      adaptability and seamless integration with other libraries.
>      
>      This header library will be used as a build dependency of
>      www/domoticz and www/domoticz-devel starting 2025.1.
>      
>      Approved by:    0mp (mentor)
>      Differential Revision:https://reviews.freebsd.org/D50569
> ---
>   devel/Makefile          |  1 +
>   devel/jwt-cpp/Makefile  | 28 ++++++++++++++++++++++++++++
>   devel/jwt-cpp/distinfo  |  3 +++
>   devel/jwt-cpp/pkg-descr |  5 +++++
>   devel/jwt-cpp/pkg-plist | 15 +++++++++++++++
>   5 files changed, 52 insertions(+)
>
> diff --git a/devel/Makefile b/devel/Makefile
> index 75ec22dd9cf9..61520105f23d 100644
> --- a/devel/Makefile
> +++ b/devel/Makefile
> @@ -1107,6 +1107,7 @@
>       SUBDIR += judy
>       SUBDIR += jujutsu
>       SUBDIR += jwasm
> +    SUBDIR += jwt-cpp
>       SUBDIR += kBuild
>       SUBDIR += kapptemplate
>       SUBDIR += kassert
> diff --git a/devel/jwt-cpp/Makefile b/devel/jwt-cpp/Makefile
> new file mode 100644
> index 000000000000..0a0b8efc6ef8
> --- /dev/null
> +++ b/devel/jwt-cpp/Makefile
> @@ -0,0 +1,28 @@
> +PORTNAME=	jwt-cpp
> +DISTVERSIONPREFIX=	v
> +DISTVERSION=	0.7.1
> +CATEGORIES=	devel
> +
> +MAINTAINER=	kiwi@FreeBSD.org
> +COMMENT=	C++ library for jwt
> +WWW=		https://thalhammer.github.io/jwt-cpp/
> +
> +LICENSE=	MIT
> +
> +BUILD_DEPENDS=	nlohmann-json>=3.11:devel/nlohmann-json
> +
> +USES=		cmake pkgconfig
> +
> +USE_GITHUB=	yes
> +GH_ACCOUNT=	Thalhammer
> +
> +CMAKE_ON=	JWT_ENABLE_COVERAGE \
> +		JWT_ENABLE_FUZZING \
> +		JWT_EXTERNAL_NLOHMANN_JSON
> +
> +CMAKE_OFF=	JWT_BUILD_EXAMPLES \
> +		JWT_BUILD_TESTS \
> +		JWT_BUILD_DOCS \
> +		JWT_EXTERNAL_PICOJSON
> +
> +.include <bsd.port.mk>
> diff --git a/devel/jwt-cpp/distinfo b/devel/jwt-cpp/distinfo
> new file mode 100644
> index 000000000000..d6d2d5b80740
> --- /dev/null
> +++ b/devel/jwt-cpp/distinfo
> @@ -0,0 +1,3 @@
> +TIMESTAMP = 1747916819
> +SHA256 (Thalhammer-jwt-cpp-v0.7.1_GH0.tar.gz) = e52f247d5e62fac5da6191170998271a70ce27f747f2ce8fde9b09f96a5375a4
> +SIZE (Thalhammer-jwt-cpp-v0.7.1_GH0.tar.gz) = 159954
> diff --git a/devel/jwt-cpp/pkg-descr b/devel/jwt-cpp/pkg-descr
> new file mode 100644
> index 000000000000..e84769cf0c26
> --- /dev/null
> +++ b/devel/jwt-cpp/pkg-descr
> @@ -0,0 +1,5 @@
> +A header only library for creating and validating JSON web tokens in C++.
> +
> +The objective is to deliver a versatile and universally applicable collection
> +of algorithms, classes, and data structures, fostering adaptability and
> +seamless integration with other libraries that you may already be employing.
> diff --git a/devel/jwt-cpp/pkg-plist b/devel/jwt-cpp/pkg-plist
> new file mode 100644
> index 000000000000..ae1f5fc1911d
> --- /dev/null
> +++ b/devel/jwt-cpp/pkg-plist
> @@ -0,0 +1,15 @@
> +cmake/jwt-cpp-config-version.cmake
> +cmake/jwt-cpp-config.cmake
> +cmake/jwt-cpp-targets.cmake
> +include/jwt-cpp/base.h
> +include/jwt-cpp/jwt.h
> +include/jwt-cpp/traits/boost-json/defaults.h
> +include/jwt-cpp/traits/boost-json/traits.h
> +include/jwt-cpp/traits/danielaparker-jsoncons/defaults.h
> +include/jwt-cpp/traits/danielaparker-jsoncons/traits.h
> +include/jwt-cpp/traits/defaults.h.mustache
> +include/jwt-cpp/traits/kazuho-picojson/defaults.h
> +include/jwt-cpp/traits/kazuho-picojson/traits.h
> +include/jwt-cpp/traits/nlohmann-json/defaults.h
> +include/jwt-cpp/traits/nlohmann-json/traits.h
> +include/picojson/picojson.h

Hi,

Can you please review more carefully?

Any reason why upstream release archive isn't used?

https://docs.freebsd.org/en/books/porters-handbook/book/#makefile-master_sites-github

https://github.com/Thalhammer/jwt-cpp/releases/tag/v0.7.1

nlohmann-json is only required when examples or tests are enabled

https://github.com/Thalhammer/jwt-cpp/blob/v0.7.1/CMakeLists.txt#L30

LICENSE_FILE entry is missing

Why is pkgconfig a dependency?

Any reason as to why coverage and fuzzing is enabled (by default)?

cmake/*.cmake is not the correct path for helpers

plist fails

===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: 
include/jwt-cpp/traits/open-source-parsers-jsoncpp/defaults.h
Error: Orphaned: include/jwt-cpp/traits/open-source-parsers-jsoncpp/traits.h

Best regards,

Daniel