From 61271a6c5589baffb0df9c245e4026c281afdf7e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 6 Nov 2025 21:45:08 +0100 Subject: [PATCH] package/asterisk: fix build caused by libjwt bump In commit 770f9154978c40ce5b7718174108b37c5310869d, libjwt was bumped from 1.17.2 to 3.2.0, which is a big bump. And the libjwt website states "Version 3 of LibJWT is a complete overhaul of the code. Please see documentation for usage." And indeed, this version bump breaks the build of Asterisk: res_stir_shaken/attestation.c: In function 'pack_payload': res_stir_shaken/attestation.c:357:9: error: implicit declaration of function 'jwt_add_grants_json' [-Wimplicit-function-declaration] 357 | jwt_add_grants_json(jwt, payload_str); | ^~~~~~~~~~~~~~~~~~~ In file included from /home/autobuild/autobuild/instance-11/output-1/build/asterisk-22.3.0/include/asterisk/module.h:39, from res_stir_shaken/attestation.c:24: res_stir_shaken/attestation.c: In function '_dtor_jwt': res_stir_shaken/attestation.c:367:38: error: implicit declaration of function 'jwt_free'; did you mean 'jwks_free'? [-Wimplicit-function-declaration] 367 | RAII_VAR(jwt_t *, jwt, NULL, jwt_free); | ^~~~~~~~ To fix this, let's use the bundled version of libjwt in Asterisk, since even Asterisk master hasn't been fixed to be compatible with libjwt 3.x. Of course, this raises the question of whether the separate libjwt package should be removed, as it is anyway only used by Asterisk. Fixes: http://autobuild.buildroot.net/results/2d39791c65c5b71b0533d4b2bce5f073f5919552/ Cc: Waldemar Brodkorb Signed-off-by: Thomas Petazzoni [Bernd: Added libopenssl dependency needed by bundled libjwt] Signed-off-by: Bernd Kuhls Signed-off-by: Peter Korsgaard --- package/asterisk/Config.in | 3 ++- package/asterisk/asterisk.hash | 2 ++ package/asterisk/asterisk.mk | 7 ++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/package/asterisk/Config.in b/package/asterisk/Config.in index 71c741acfd..3db6e5375a 100644 --- a/package/asterisk/Config.in +++ b/package/asterisk/Config.in @@ -10,10 +10,11 @@ config BR2_PACKAGE_ASTERISK select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_LIBEDIT select BR2_PACKAGE_LIBILBC - select BR2_PACKAGE_LIBJWT select BR2_PACKAGE_LIBPJSIP select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_LIBXML2 + select BR2_PACKAGE_OPENSSL # bundled libjwt + select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL # bundled libjwt select BR2_PACKAGE_SQLITE select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID diff --git a/package/asterisk/asterisk.hash b/package/asterisk/asterisk.hash index c09a5bc183..26175667c3 100644 --- a/package/asterisk/asterisk.hash +++ b/package/asterisk/asterisk.hash @@ -3,6 +3,8 @@ sha256 8a94650b6f348af1f1c9cce7ed3585d280f3a31b0d3820084a42b03712df95d5 asteri # Locally computed sha256 58bb83cec4d431f48d006e455d821668450f8cf6b6c95f090def47062fa3a60c pjproject-2.15.1.tar.bz2 +sha256 6775095bcd417d375faddc1f17cdd7706ad8aa9b9b02404990c4b0ee218ee379 libjwt-1.15.3.tar.gz + # sha1 from: http://downloads.asterisk.org/pub/telephony/sounds/releases # sha256 locally computed sha1 721c512feaea102700d5bdce952fdc0bb29dc640 asterisk-core-sounds-en-gsm-1.6.1.tar.gz diff --git a/package/asterisk/asterisk.mk b/package/asterisk/asterisk.mk index 0d40ebf2b4..9a071fb8e0 100644 --- a/package/asterisk/asterisk.mk +++ b/package/asterisk/asterisk.mk @@ -13,11 +13,13 @@ ASTERISK_SITE = $(call github,asterisk,asterisk,$(ASTERISK_VERSION)) # segfaults. The reason behind this is unclear. # https://github.com/asterisk/asterisk/issues/671 ASTERISK_PJSIP_URL = https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.15.1/ +ASTERISK_LIBJWT_URL = https://raw.githubusercontent.com/asterisk/third-party/master/libjwt/1.15.3/ ASTERISK_SOUNDS_BASE_URL = http://downloads.asterisk.org/pub/telephony/sounds/releases ASTERISK_EXTRA_DOWNLOADS = \ $(ASTERISK_SOUNDS_BASE_URL)/asterisk-core-sounds-en-gsm-1.6.1.tar.gz \ $(ASTERISK_SOUNDS_BASE_URL)/asterisk-moh-opsound-wav-2.03.tar.gz \ - $(ASTERISK_PJSIP_URL)/pjproject-2.15.1.tar.bz2 + $(ASTERISK_PJSIP_URL)/pjproject-2.15.1.tar.bz2 \ + $(ASTERISK_LIBJWT_URL)/libjwt-1.15.3.tar.gz ASTERISK_LICENSE = GPL-2.0, BSD-3-Clause (SHA1, resample), BSD-4-Clause (db1-ast) ASTERISK_LICENSE_FILES = \ @@ -39,7 +41,6 @@ ASTERISK_DEPENDENCIES = \ jansson \ libcurl \ libedit \ - libjwt \ libpjsip \ libxml2 \ sqlite \ @@ -94,7 +95,7 @@ ASTERISK_CONF_OPTS = \ --with-jansson \ --with-libcurl \ --with-ilbc \ - --with-libjwt="$(STAGING_DIR)/usr" \ + --with-libjwt-bundled \ --with-libxml2 \ --with-libedit="$(STAGING_DIR)/usr" \ --with-pjproject-bundled \