From: Randy MacLeod Date: Tue, 7 Oct 2025 20:46:13 +0000 (-0400) Subject: gawk: disable persistent memory allocator due to licensing X-Git-Tag: uninative-5.0~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d7b6887dfbe2817ceb03d44a59210f65bbb25390;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git gawk: disable persistent memory allocator due to licensing In gawk-5.2, a feature that allows gawk to preserve memory between runs: https://www.gnu.org/software/gawk/manual/html_node/Persistent-Memory.html was added. The files that implement this, support/pma.[ch], are licensed under the AGPL3 which some entities perfer to avoid. Force people to knowingly opt into using this feature and license using: PACKAGECONFIG:append:pn-gawk = " pma-if-64bit" where pma is an abbreviation for persistent memory allocator and the "-if-64bit" suffix is a indicator to users that the feature only works for 64 bit targets. Also add AGPL to LICENSE and LICENSE:${PN}, when using pma. Correct the license to be AGPL-3.0-or-later. There hasn't been a change in the license terms, at least for main.c, haven't changed significantly in the last 15 years: License-Update: Reflects conditional AGPL use and more as described above. Testing requires a non-root account and following the example in the link above: $ truncate -s data.pma $ chmod 0600 data.pma $ GAWK_PERSIST_FILE=data.pma gawk 'BEGIN { print ++i }' 1 $ GAWK_PERSIST_FILE=data.pma gawk 'BEGIN { print ++i }' 2 $ GAWK_PERSIST_FILE=data.pma gawk 'BEGIN { print ++i }' 3 This works on qemu[x86-|arm|riscv]64 but not on qemu[arm|x86] where the --enable-pma is ignored because there is a requirement and build-time test for 8 byte void pointers in m4/pma.m4: if test "$SKIP_PERSIST_MALLOC" = no && test $ac_cv_sizeof_void_p -eq 8 Finally, remove an old comment about GPLv2, GPLv3 versions of gawk since this is no longer important as the GPLv2 version is not maintained. Signed-off-by: Randy MacLeod Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-extended/gawk/gawk_5.3.2.bb b/meta/recipes-extended/gawk/gawk_5.3.2.bb index 833fe78bf9a..0448d90ba7b 100644 --- a/meta/recipes-extended/gawk/gawk_5.3.2.bb +++ b/meta/recipes-extended/gawk/gawk_5.3.2.bb @@ -6,14 +6,21 @@ HOMEPAGE = "https://www.gnu.org/software/gawk/" BUGTRACKER = "bug-gawk@gnu.org" SECTION = "console/utils" -# gawk <= 3.1.5: GPL-2.0-only -# gawk >= 3.1.6: GPL-3.0-only -LICENSE = "GPL-3.0-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +LICENSE = "GPL-3.0-or-later & AGPL-3.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://support/pma.c;md5=bb0026ee5e8b950e67d670dd2d60cc93;beginline=8;endline=19 \ + file://support/pma.h;md5=bb0026ee5e8b950e67d670dd2d60cc93;beginline=8;endline=19" + +LICENSE:${PN} = "GPL-3.0-or-later" +LICENSE:${PN}:append = " ${@bb.utils.contains('PACKAGECONFIG', 'pma-if-64bit', ' & AGPL-3.0-or-later', '', d)}" PACKAGECONFIG ??= "readline mpfr" PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr, mpfr" +# pma: persistent memory allocator: +# Disabled by default due to AGPL license. +# Note that PMA works only for 64-bit targets and is automatically disabled at configure time otherwise. +PACKAGECONFIG[pma-if-64bit] = "--enable-pma,--disable-pma, " SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \ file://run-ptest \