sys-apps/gawk: Sync with Gentoo

It's from Gentoo commit dceae59e55864f85d1dca1463f5a4cf912ff7e9d.
This commit is contained in:
Flatcar Buildbot 2025-01-27 07:10:12 +00:00 committed by Krzesimir Nowak
parent 0c6b117e68
commit c48cb5e443
4 changed files with 0 additions and 476 deletions

View File

@ -1,6 +1,2 @@
DIST gawk-5.2.2.tar.xz 3402872 BLAKE2B 49dd69d3e2414867d60fe42b74b39bc6858114aeeb9305ade7bfd64f1933b3c93d59d127362b614cb4b73e29279ed3b4ea9fa0da94fce98ca9925980d17b5d0c SHA512 90611e4daba7226d5ce8230843bf479dc71c0101740c005d851ef7c5b935b6cd4c42089b858abc1619adc05ed25fc7234f993690a76d2ea0b8e61bcbb7dc5a58
DIST gawk-5.2.2.tar.xz.sig 488 BLAKE2B ad737580d7eeb556187a3eeb269decb484398ca91b0fbf08da7f78bba92328ca2fb566b00f8e880fb7c5f0f956e49f8ab9fddc73209902c420666d5413e8a467 SHA512 563911c3771feddf64810ef2480705fd470c90380c0e258940cedeef3f15d594ef657ddab267a6d958321333d466b77c9b83be2392549c959245324950fb32ed
DIST gawk-5.3.0.tar.xz 3436180 BLAKE2B 1bab754626a51679e4d6fe4552bc965f402a51d176eab30686bf19c74085fd15507b51514c3c46d38f68d3e98da4326c138411abe12e4d8793cec617b2533f3c SHA512 c274a62c7420e7b7769b8ed94db40024bd5917ff49bd50a77ad6df1f16ecf116968aaf85da94015479466bf5570b370b6fdd197f95212ae0c3509dfcb7d9e35a
DIST gawk-5.3.0.tar.xz.sig 488 BLAKE2B 9d35eca94424cc39bb52b0b790e0db0b9ee51099c40da0a8be7bc60450d227735ba51dcfc10a08f6765d2037054cb9324f0fba100ea2ad08cf56dac1e2c11ac0 SHA512 b0fd75375bee6ca113bb99b07a868729bb90a50d06bc4ff124603594cd9ba564433f69a26e8d01c30f4e4fbfb70ecad2ffa14ed93142b9a1aab2e38ae71b7903
DIST gawk-5.3.1.tar.xz 3510032 BLAKE2B be9132324344c0b052e954e004a942ff7c6b14b86b73cda491d7a33485f60341be4d8da1a06d1d7a27445b9b39a528bcce3eee9c2a3f8756de21bdc57a33f54d SHA512 c6b4c50ce565e6355ca162955072471e37541c51855c0011e834243a7390db8811344b0c974335844770e408e1f63d72d0d81459a081c392e0245c726019eaff
DIST gawk-5.3.1.tar.xz.sig 488 BLAKE2B 2abafbb965912a194d047bed3ac1ef33a2b44dce0bc4b1a83a6ca3e2ecf676da0ad8333bb3817f0f32c7d67ab8662dc6086c9e1d6f2185a93d786390197fc643 SHA512 3e13b1bd598b7d4c715c802dcc9db298aeab12721620692f9dd76d3941fdfd87381f660c93be5cc04b6cd7378a6464b9033c93419dfcb514dcc33da8d0d9f502

View File

@ -1,193 +0,0 @@
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" <arnold@skeeve.com>
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

View File

@ -1,139 +0,0 @@
# Copyright 1999-2023 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 ~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-6.7
>=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
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() {
# Avoid automagic dependency on libsigsegv
export ac_cv_libsigsegv=no
# 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
}

View File

@ -1,140 +0,0 @@
# 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 ~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
}