From eecd75a62239257eb2235bfe8697c73887a9a080 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 29 Jan 2024 00:57:18 +0000 Subject: gentoo auto-resync : 29:01:2024 - 00:57:18 --- sys-apps/gawk/Manifest | 2 + sys-apps/gawk/files/gawk-5.3.0-str2wstr.patch | 193 ++++++++++++++++++++++++++ sys-apps/gawk/gawk-5.3.0-r1.ebuild | 140 +++++++++++++++++++ 3 files changed, 335 insertions(+) create mode 100644 sys-apps/gawk/files/gawk-5.3.0-str2wstr.patch create mode 100644 sys-apps/gawk/gawk-5.3.0-r1.ebuild (limited to 'sys-apps/gawk') diff --git a/sys-apps/gawk/Manifest b/sys-apps/gawk/Manifest index 0811df4d646f..600c86935206 100644 --- a/sys-apps/gawk/Manifest +++ b/sys-apps/gawk/Manifest @@ -1,3 +1,4 @@ +AUX gawk-5.3.0-str2wstr.patch 6052 BLAKE2B 6173dad2b2c246aa355d77cc2411fe272ade5a6ae13bf2abd7e275af83d5c63d6eeed68e6d789b8cec49c4db1bb336eed1373009f74c5819fd454e49dc9d2d90 SHA512 5038182b65d4ae3224a96371e5aec5fa73dc863508c5ad7e2c569cea5b87a30ce401925845276d5ee827d4dda98732b7ce075e3cf900df6e91de3b995da87970 DIST gawk-5.2.1.tar.xz 3411420 BLAKE2B 5dbbfe92ed4c11a38b2f995e9267dd2e392a9f393af1c63aaf3c5dd6d1681c01db900e05a118831125f914fcffe2218de7f30891ccc6f64abc5f572aef5feeff SHA512 f81da3e61987d1460326dc79fdbabacfd4660219bf66ec8ba18877500fd24e160761e401a5b868067f82bec46a6a808098f3f6a1f4c8b710e439cd3f99ffa56c DIST gawk-5.2.1.tar.xz.sig 488 BLAKE2B 5dcdc9ae90d4744a968cc750526a9c1c38915f85c56c2eca80b219ba8519c927ab55b7f569d55054b0499f7bf37d3413b97e9d3cf36f5573f9ecd4855663064e SHA512 97a9cfb069f235bef31892ec6e5c56ee6a8733129ae3d02e871d5407de4d7a6140fc0a87001b2b21e3cffd714d1b4d164876de47144dfdce6dea92c670ed0217 DIST gawk-5.2.2.tar.xz 3402872 BLAKE2B 49dd69d3e2414867d60fe42b74b39bc6858114aeeb9305ade7bfd64f1933b3c93d59d127362b614cb4b73e29279ed3b4ea9fa0da94fce98ca9925980d17b5d0c SHA512 90611e4daba7226d5ce8230843bf479dc71c0101740c005d851ef7c5b935b6cd4c42089b858abc1619adc05ed25fc7234f993690a76d2ea0b8e61bcbb7dc5a58 @@ -6,5 +7,6 @@ DIST gawk-5.3.0.tar.xz 3436180 BLAKE2B 1bab754626a51679e4d6fe4552bc965f402a51d17 DIST gawk-5.3.0.tar.xz.sig 488 BLAKE2B 9d35eca94424cc39bb52b0b790e0db0b9ee51099c40da0a8be7bc60450d227735ba51dcfc10a08f6765d2037054cb9324f0fba100ea2ad08cf56dac1e2c11ac0 SHA512 b0fd75375bee6ca113bb99b07a868729bb90a50d06bc4ff124603594cd9ba564433f69a26e8d01c30f4e4fbfb70ecad2ffa14ed93142b9a1aab2e38ae71b7903 EBUILD gawk-5.2.1.ebuild 3496 BLAKE2B 9a4d3f135042a74b3ee1ebf8cab8bd1fd5cd3de3259263a613e00e3ec428dd5547478ec05e3ec99be9d6f3da12e65a08ddca93d1c8f955e2607040723ed6aaed SHA512 6b68989e974cdec04f906214d29c2239dba1d7c9940b254367fcf16911e6e3f4899ec5925cc8b5a57c211dd918cc3b578c7fce811d522e6df23f8706f0cd1264 EBUILD gawk-5.2.2.ebuild 3498 BLAKE2B dd3221f86087b32d638b99bf691e79a4e65c8c429f4275e53bd810f18aec6030c1a96de4db1ba6bba18b7313f78f345b93d0983b00682df4808f34e874142faf SHA512 80748c7d364b75b25f58326f4923c99c423d9edf4afb0a2705b6291fed5eecf728dd8f2cc7dfd0d2b43ea9d4f93007e7c4642cc704e3fbf7d00814fdea74cc0f +EBUILD gawk-5.3.0-r1.ebuild 3481 BLAKE2B e566d9f42c9540000b2727b8787915d0392320a2dd2a17615d4f011d6dd8305eaab8dbfc4f11c0a0e195b35456e690255d08c8f734b1384db46309cfe4daa3c6 SHA512 1dd1b9af1d670669d670677a2164f194bbecddbac21d4c338b9cab3eab50e75724d77aee586d7139aa911185ec4cb4171b13b8d3a2cff2cf621b45a2c818d807 EBUILD gawk-5.3.0.ebuild 3425 BLAKE2B 6288b4a3d2e265a36d9535694c5050a2405856d84c020d83e37c64cdb62d6d97341e35b181b936a2bea51ec0cb762438442f4ae032c59cbff80cdf20d2d54e30 SHA512 153bbe3bf749c81126edfc04d310a293ae984ae662fa27d02577ef0ad88bc19a2803950104f75e65ba6886a97bdcd666f4a8be7178011c7e13ec2b1075ece3ba MISC metadata.xml 654 BLAKE2B e04183a376da2006e727296257a18431f2e4f29fdabcee48edebb1c9dbf099c846af6bfe90d9e551ec4536c2dd034a80b47e6a1b8e442a89c1228929bef7d956 SHA512 9bb5a19c4b9a8ff7669c7ae7320a88d64eb68b4897f06d2046f71efe562a4846cb8c611bcc03b0111dfde19b40275f3357a5cd6285d4d5f0b4464a9c8b3eacb2 diff --git a/sys-apps/gawk/files/gawk-5.3.0-str2wstr.patch b/sys-apps/gawk/files/gawk-5.3.0-str2wstr.patch new file mode 100644 index 000000000000..078ba8b1c746 --- /dev/null +++ b/sys-apps/gawk/files/gawk-5.3.0-str2wstr.patch @@ -0,0 +1,193 @@ +https://bugs.gentoo.org/921503 +https://lists.gnu.org/archive/html/bug-gawk/2024-01/msg00013.html +https://git.savannah.gnu.org/cgit/gawk.git/commit/?h=gawk-5.3-stable&id=e05040b5d81b5a0e809fc56df2a7c3d654c77e1d + +From e05040b5d81b5a0e809fc56df2a7c3d654c77e1d Mon Sep 17 00:00:00 2001 +From: "Arnold D. Robbins" +Date: Sun, 28 Jan 2024 20:24:09 +0200 +Subject: Bug fix in str2wstr. + +--- + node.c | 26 ++++++++++++++------------ + pc/Makefile.tst | 6 ++++++ + test/Makefile.am | 5 ++++- + test/Makefile.in | 10 +++++++++- + test/Maketests | 5 +++++ + test/match4.awk | 1 + + test/match4.ok | 1 + + 10 files changed, 56 insertions(+), 14 deletions(-) + create mode 100644 test/match4.awk + create mode 100644 test/match4.ok + +diff --git a/node.c b/node.c +index de12f05..5aac5e8 100644 +--- a/node.c ++++ b/node.c +@@ -816,6 +816,20 @@ str2wstr(NODE *n, size_t **ptr) + assert((n->flags & (STRING|STRCUR)) != 0); + + /* ++ * For use by do_match, create and fill in an array. ++ * For each byte `i' in n->stptr (the original string), ++ * a[i] is equal to `j', where `j' is the corresponding wchar_t ++ * in the converted wide string. ++ * ++ * This is needed even for Nnull_string or Null_field. ++ * ++ * Create the array. ++ */ ++ if (ptr != NULL) { ++ ezalloc(*ptr, size_t *, sizeof(size_t) * (n->stlen + 1), "str2wstr"); ++ } ++ ++ /* + * Don't convert global null string or global null field + * variables to a wide string. They are both zero-length anyway. + * This also avoids future double-free errors while releasing +@@ -848,18 +862,6 @@ str2wstr(NODE *n, size_t **ptr) + emalloc(n->wstptr, wchar_t *, sizeof(wchar_t) * (n->stlen + 1), "str2wstr"); + wsp = n->wstptr; + +- /* +- * For use by do_match, create and fill in an array. +- * For each byte `i' in n->stptr (the original string), +- * a[i] is equal to `j', where `j' is the corresponding wchar_t +- * in the converted wide string. +- * +- * Create the array. +- */ +- if (ptr != NULL) { +- ezalloc(*ptr, size_t *, sizeof(size_t) * (n->stlen + 1), "str2wstr"); +- } +- + sp = n->stptr; + src_count = n->stlen; + memset(& mbs, 0, sizeof(mbs)); +diff --git a/pc/Makefile.tst b/pc/Makefile.tst +index daf3c56..9ab61c7 100644 +--- a/pc/Makefile.tst ++++ b/pc/Makefile.tst +@@ -180,6 +180,7 @@ BASIC_TESTS = \ + substr swaplns synerr1 synerr2 synerr3 tailrecurse tradanch \ + trailbs tweakfld uninit2 uninit3 uninit4 uninit5 uninitialized \ + unterm uparrfs uplus wideidx wideidx2 widesub widesub2 widesub3 \ ++ match4 \ + widesub4 wjposer1 zero2 zeroe0 zeroflag + + UNIX_TESTS = \ +@@ -2602,6 +2603,11 @@ widesub3: + AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + ++match4: ++ @echo $@ ++ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ++ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ++ + widesub4: + @echo $@ $(ZOS_FAIL) + @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \ +diff --git a/test/Makefile.am b/test/Makefile.am +index a876b3a..e1e1f3f 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -1,7 +1,7 @@ + # + # test/Makefile.am --- automake input file for gawk + # +-# Copyright (C) 1988-2023 the Free Software Foundation, Inc. ++# Copyright (C) 1988-2024 the Free Software Foundation, Inc. + # + # This file is part of GAWK, the GNU implementation of the + # AWK Programming Language. +@@ -763,6 +763,8 @@ EXTRA_DIST = \ + match3.awk \ + match3.in \ + match3.ok \ ++ match4.awk \ ++ match4.ok \ + math.awk \ + math.ok \ + mbfw1.awk \ +@@ -1544,6 +1546,7 @@ BASIC_TESTS = \ + substr swaplns synerr1 synerr2 synerr3 tailrecurse tradanch \ + trailbs tweakfld uninit2 uninit3 uninit4 uninit5 uninitialized \ + unterm uparrfs uplus wideidx wideidx2 widesub widesub2 widesub3 \ ++ match4 \ + widesub4 wjposer1 zero2 zeroe0 zeroflag + + UNIX_TESTS = \ +diff --git a/test/Makefile.in b/test/Makefile.in +index 1ef143f..681a85b 100644 +--- a/test/Makefile.in ++++ b/test/Makefile.in +@@ -17,7 +17,7 @@ + # + # test/Makefile.am --- automake input file for gawk + # +-# Copyright (C) 1988-2023 the Free Software Foundation, Inc. ++# Copyright (C) 1988-2024 the Free Software Foundation, Inc. + # + # This file is part of GAWK, the GNU implementation of the + # AWK Programming Language. +@@ -1027,6 +1027,8 @@ EXTRA_DIST = \ + match3.awk \ + match3.in \ + match3.ok \ ++ match4.awk \ ++ match4.ok \ + math.awk \ + math.ok \ + mbfw1.awk \ +@@ -1808,6 +1810,7 @@ BASIC_TESTS = \ + substr swaplns synerr1 synerr2 synerr3 tailrecurse tradanch \ + trailbs tweakfld uninit2 uninit3 uninit4 uninit5 uninitialized \ + unterm uparrfs uplus wideidx wideidx2 widesub widesub2 widesub3 \ ++ match4 \ + widesub4 wjposer1 zero2 zeroe0 zeroflag + + UNIX_TESTS = \ +@@ -4414,6 +4417,11 @@ widesub3: + AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + ++match4: ++ @echo $@ ++ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ++ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ++ + widesub4: + @echo $@ $(ZOS_FAIL) + @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \ +diff --git a/test/Maketests b/test/Maketests +index bac220f..9a00140 100644 +--- a/test/Maketests ++++ b/test/Maketests +@@ -1288,6 +1288,11 @@ widesub3: + AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + ++match4: ++ @echo $@ ++ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ++ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ++ + widesub4: + @echo $@ $(ZOS_FAIL) + @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \ +diff --git a/test/match4.awk b/test/match4.awk +new file mode 100644 +index 0000000..e50150a +--- /dev/null ++++ b/test/match4.awk +@@ -0,0 +1 @@ ++BEGIN { print match (m, /a?/) } +diff --git a/test/match4.ok b/test/match4.ok +new file mode 100644 +index 0000000..d00491f +--- /dev/null ++++ b/test/match4.ok +@@ -0,0 +1 @@ ++1 +-- +cgit v1.1 diff --git a/sys-apps/gawk/gawk-5.3.0-r1.ebuild b/sys-apps/gawk/gawk-5.3.0-r1.ebuild new file mode 100644 index 000000000000..b5dcc51606c4 --- /dev/null +++ b/sys-apps/gawk/gawk-5.3.0-r1.ebuild @@ -0,0 +1,140 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +#GAWK_IS_BETA=yes + +DESCRIPTION="GNU awk pattern-matching language" +HOMEPAGE="https://www.gnu.org/software/gawk/gawk.html" + +if [[ ${GAWK_IS_BETA} == yes || ${PV} == *_beta* ]] ; then + if [[ ${PV} == *_beta* ]] ; then + # Beta versioning is sometimes for the release prior, e.g. + # 5.2.1_beta is labelled upstream as 5.2.0b. + MY_PV=${PV/_beta/b} + MY_PV=$(ver_cut 1-2 ${MY_PV}).$(($(ver_cut 3 ${MY_PV}) - 1))$(ver_cut 4- ${MY_PV}) + MY_P=${PN}-${MY_PV} + + S="${WORKDIR}"/${MY_P} + else + MY_P=${P} + fi + + SRC_URI="https://www.skeeve.com/gawk/${MY_P}.tar.gz" +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gawk.asc + inherit verify-sig + + SRC_URI="mirror://gnu/gawk/${P}.tar.xz" + SRC_URI+=" verify-sig? ( mirror://gnu/gawk/${P}.tar.xz.sig )" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="GPL-3+" +SLOT="0" +# While tempting to enable mpfr by default as e.g. Fedora do, as of 5.2.x, +# MPFR support is "on parole" and may be removed: +# https://www.gnu.org/software/gawk/manual/html_node/MPFR-On-Parole.html. +IUSE="mpfr pma nls readline" + +RDEPEND=" + mpfr? ( + dev-libs/gmp:= + dev-libs/mpfr:= + ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + >=sys-apps/texinfo-7.1 + >=sys-devel/bison-3.5.4 + nls? ( sys-devel/gettext ) +" + +if [[ ${GAWK_IS_BETA} != yes ]] ; then + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-gawk )" +fi + +PATCHES=( + "${FILESDIR}"/${P}-str2wstr.patch +) + +src_prepare() { + default + + # Use symlinks rather than hardlinks, and disable version links + sed -i \ + -e '/^LN =/s:=.*:= $(LN_S):' \ + -e '/install-exec-hook:/s|$|\nfoo:|' \ + Makefile.in doc/Makefile.in || die + + # bug #413327 + sed -i '/^pty1:$/s|$|\n_pty1:|' test/Makefile.in || die + + # Fix standards conflict on Solaris + if [[ ${CHOST} == *-solaris* ]] ; then + sed -i \ + -e '/\<_XOPEN_SOURCE\>/s/1$/600/' \ + -e '/\<_XOPEN_SOURCE_EXTENDED\>/s/1//' \ + extension/inplace.c || die + fi +} + +src_configure() { + # README says gawk may not work properly if built with non-Bison. + # We already BDEPEND on Bison, so just unset YACC rather than + # guessing if we need to do yacc.bison or bison -y. + unset YACC + + local myeconfargs=( + --cache-file="${S}"/config.cache + --libexec='$(libdir)/misc' + $(use_with mpfr) + $(use_enable nls) + $(use_enable pma) + $(use_with readline) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + # Automatic dodocs barfs + rm -rf README_d || die + + default + + # Install headers + insinto /usr/include/awk + doins *.h + rm "${ED}"/usr/include/awk/config.h || die +} + +pkg_postinst() { + # Symlink creation here as the links do not belong to gawk, but to any awk + if has_version app-admin/eselect && has_version app-eselect/eselect-awk ; then + eselect awk update ifunset + else + local l + for l in "${EROOT}"/usr/share/man/man1/gawk.1* "${EROOT}"/usr/bin/gawk ; do + if [[ -e ${l} ]] && ! [[ -e ${l/gawk/awk} ]] ; then + ln -s "${l##*/}" "${l/gawk/awk}" || die + fi + done + + if ! [[ -e ${EROOT}/bin/awk ]] ; then + # /bin might not exist yet (stage1) + [[ -d "${EROOT}/bin" ]] || mkdir "${EROOT}/bin" || die + + ln -s "../usr/bin/gawk" "${EROOT}/bin/awk" || die + fi + fi +} + +pkg_postrm() { + if has_version app-admin/eselect && has_version app-eselect/eselect-awk ; then + eselect awk update ifunset + fi +} -- cgit v1.2.3