summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/gawk')
-rw-r--r--sys-apps/gawk/Manifest7
-rw-r--r--sys-apps/gawk/files/gawk-5.3.0-str2wstr.patch193
-rw-r--r--sys-apps/gawk/gawk-4.2.1-r1.ebuild93
-rw-r--r--sys-apps/gawk/gawk-5.0.0.ebuild93
-rw-r--r--sys-apps/gawk/gawk-5.0.1.ebuild97
-rw-r--r--sys-apps/gawk/gawk-5.2.2.ebuild139
-rw-r--r--sys-apps/gawk/gawk-5.3.0-r1.ebuild140
-rw-r--r--sys-apps/gawk/metadata.xml26
8 files changed, 493 insertions, 295 deletions
diff --git a/sys-apps/gawk/Manifest b/sys-apps/gawk/Manifest
index 04104bc29ee5..6021ab2da4cd 100644
--- a/sys-apps/gawk/Manifest
+++ b/sys-apps/gawk/Manifest
@@ -1,3 +1,4 @@
-DIST gawk-4.2.1.tar.xz 2985412 BLAKE2B ea0635904ae8af8943d545b21affbfad64de5a688a615e22e1af2634583d0002094c0668c3260837184f965452ccf84141fff705bbf42d55b6d55c7516c24d8b SHA512 0e3006a795dc3ac91359a7d2590c0cccbfd39b18a1d491617d68505c55a2800355b1439050681b4fcacf65fb0d533151a046babe0fd774503037bab363ef2ae4
-DIST gawk-5.0.0.tar.xz 3000432 BLAKE2B d7885442c615e2b7986d6cb617db3ac376a5e572ab2aca3c6b2bd0f43feca4374f310bbf2e2a875b617df97cfebf98cb983d169468d51db39058b83eb9771afa SHA512 9eb663bbcad53165b7ddb7d72cfb8377252b68004733a9eb8c191b2ddddaff857e48ba811280311384243eb67574fbe7ac9edf4e507f9a82d67b4b2adff8ef6e
-DIST gawk-5.0.1.tar.xz 3136004 BLAKE2B 1dd8a9bca2488f2d3c946406b01fcbdce0487922ece49fe2121c39d6d10bcfcb6a056edbbf88ba6c22772ef88a250fc8ffcba33ead399c0d7c8f5d19d0e896d3 SHA512 ff9842a91035f843482d93eac8a35cddf2ce16acaa43a0112c1efff08802aebf705ee70d47eff74a190dca7be330c31f7204ad27cb63bdee65333f9b9c984212
+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
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" <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
diff --git a/sys-apps/gawk/gawk-4.2.1-r1.ebuild b/sys-apps/gawk/gawk-4.2.1-r1.ebuild
deleted file mode 100644
index b64c6634b595..000000000000
--- a/sys-apps/gawk/gawk-4.2.1-r1.ebuild
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit toolchain-funcs multilib
-
-DESCRIPTION="GNU awk pattern-matching language"
-HOMEPAGE="https://www.gnu.org/software/gawk/gawk.html"
-SRC_URI="mirror://gnu/gawk/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="forced-sandbox mpfr nls readline"
-
-RDEPEND="
- dev-libs/gmp:0=
- mpfr? ( dev-libs/mpfr:0= )
- readline? ( sys-libs/readline:0= )
-"
-DEPEND="${RDEPEND}
- nls? ( sys-devel/gettext )"
-
-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
- sed -i '/^pty1:$/s|$|\n_pty1:|' test/Makefile.in #413327
- # 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
-
- if use forced-sandbox ; then
- # Upstream doesn't want to add a configure flag for this.
- # https://lists.gnu.org/archive/html/bug-sed/2018-03/msg00001.html
- sed -i \
- -e '/^int do_flags = false;/s:false:DO_SANDBOX:' \
- main.c || die
- # Make sure the sed took.
- grep -q '^int do_flags = DO_SANDBOX;' main.c || die "forcing sandbox failed"
- fi
-}
-
-src_configure() {
- export ac_cv_libsigsegv=no
- local myeconfargs=(
- --libexec='$(libdir)/misc'
- $(use_with mpfr)
- $(use_enable nls)
- $(use_with readline)
- )
- econf "${myeconfargs[@]}"
-}
-
-src_install() {
- rm -rf README_d # automatic dodocs barfs
- 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
- [[ -e ${l} && ! -e ${l/gawk/awk} ]] && ln -s "${l##*/}" "${l/gawk/awk}"
- done
- [[ ! -e ${EROOT}/bin/awk ]] && ln -s "../usr/bin/gawk" "${EROOT}/bin/awk"
- fi
-}
-
-pkg_postrm() {
- if has_version app-admin/eselect \
- && has_version app-eselect/eselect-awk ; then
- eselect awk update ifunset
- fi
-}
diff --git a/sys-apps/gawk/gawk-5.0.0.ebuild b/sys-apps/gawk/gawk-5.0.0.ebuild
deleted file mode 100644
index 23099a18b386..000000000000
--- a/sys-apps/gawk/gawk-5.0.0.ebuild
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit toolchain-funcs multilib
-
-DESCRIPTION="GNU awk pattern-matching language"
-HOMEPAGE="https://www.gnu.org/software/gawk/gawk.html"
-SRC_URI="mirror://gnu/gawk/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="forced-sandbox mpfr nls readline"
-
-RDEPEND="
- dev-libs/gmp:0=
- mpfr? ( dev-libs/mpfr:0= )
- readline? ( sys-libs/readline:0= )
-"
-DEPEND="${RDEPEND}
- nls? ( sys-devel/gettext )"
-
-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
- sed -i '/^pty1:$/s|$|\n_pty1:|' test/Makefile.in #413327
- # 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
-
- if use forced-sandbox ; then
- # Upstream doesn't want to add a configure flag for this.
- # https://lists.gnu.org/archive/html/bug-sed/2018-03/msg00001.html
- sed -i \
- -e '/^int do_flags = false;/s:false:DO_SANDBOX:' \
- main.c || die
- # Make sure the sed took.
- grep -q '^int do_flags = DO_SANDBOX;' main.c || die "forcing sandbox failed"
- fi
-}
-
-src_configure() {
- export ac_cv_libsigsegv=no
- local myeconfargs=(
- --libexec='$(libdir)/misc'
- $(use_with mpfr)
- $(use_enable nls)
- $(use_with readline)
- )
- econf "${myeconfargs[@]}"
-}
-
-src_install() {
- rm -rf README_d # automatic dodocs barfs
- 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
- [[ -e ${l} && ! -e ${l/gawk/awk} ]] && ln -s "${l##*/}" "${l/gawk/awk}"
- done
- [[ ! -e ${EROOT}/bin/awk ]] && ln -s "../usr/bin/gawk" "${EROOT}/bin/awk"
- fi
-}
-
-pkg_postrm() {
- if has_version app-admin/eselect \
- && has_version app-eselect/eselect-awk ; then
- eselect awk update ifunset
- fi
-}
diff --git a/sys-apps/gawk/gawk-5.0.1.ebuild b/sys-apps/gawk/gawk-5.0.1.ebuild
deleted file mode 100644
index d395bd25d3fc..000000000000
--- a/sys-apps/gawk/gawk-5.0.1.ebuild
+++ /dev/null
@@ -1,97 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs multilib
-
-DESCRIPTION="GNU awk pattern-matching language"
-HOMEPAGE="https://www.gnu.org/software/gawk/gawk.html"
-SRC_URI="mirror://gnu/gawk/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="forced-sandbox mpfr nls readline"
-
-RDEPEND="
- dev-libs/gmp:0=
- mpfr? ( dev-libs/mpfr:0= )
- readline? ( sys-libs/readline:0= )
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- nls? ( sys-devel/gettext )
-"
-
-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
- sed -i '/^pty1:$/s|$|\n_pty1:|' test/Makefile.in || die #413327
- # 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
-
- if use forced-sandbox ; then
- # Upstream doesn't want to add a configure flag for this.
- # https://lists.gnu.org/archive/html/bug-sed/2018-03/msg00001.html
- sed -i \
- -e '/^int do_flags = false;/s:false:DO_SANDBOX:' \
- main.c || die
- # Make sure the sed took.
- grep -q '^int do_flags = DO_SANDBOX;' main.c || die "forcing sandbox failed"
- fi
-}
-
-src_configure() {
- export ac_cv_libsigsegv=no
- local myeconfargs=(
- --libexec='$(libdir)/misc'
- $(use_with mpfr)
- $(use_enable nls)
- $(use_with readline)
- )
- econf "${myeconfargs[@]}"
-}
-
-src_install() {
- rm -rf README_d # automatic dodocs barfs
- 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
- 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
-}
diff --git a/sys-apps/gawk/gawk-5.2.2.ebuild b/sys-apps/gawk/gawk-5.2.2.ebuild
new file mode 100644
index 000000000000..41e94d8b51af
--- /dev/null
+++ b/sys-apps/gawk/gawk-5.2.2.ebuild
@@ -0,0 +1,139 @@
+# 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 ~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-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
+}
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..7c1825b7c51d
--- /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
+}
diff --git a/sys-apps/gawk/metadata.xml b/sys-apps/gawk/metadata.xml
index 58cec04bdcb0..66b0edfce4ae 100644
--- a/sys-apps/gawk/metadata.xml
+++ b/sys-apps/gawk/metadata.xml
@@ -1,12 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
- <email>base-system@gentoo.org</email>
- <name>Gentoo Base System</name>
-</maintainer>
-<use>
- <flag name="forced-sandbox">Always enable --sandbox mode for simpler/secure runtime (disables e/r/w commands)</flag>
- <flag name="mpfr">use mpfr for high precision arithmetic (-M / --bignum)</flag>
-</use>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <use>
+ <flag name="mpfr">
+ Use <pkg>dev-libs/mpfr</pkg> for high precision arithmetic (-M / --bignum)
+ </flag>
+ <flag name="pma">
+ Experimental Persistent Memory Allocator (PMA) support which allows persistence
+ of variables, arrays, and user-defined functions across runs.
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="savannah">gawk</remote-id>
+ </upstream>
</pkgmetadata>