commit:     23563cc79951888cd3334ec4a5c261d73a411830
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 22 17:48:28 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Feb 22 17:51:44 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=23563cc7

sys-apps/gawk: add 5.4.0

Decided not to add a USE=debug for:

+9. Assertions in the C code are now enabled.  To disable them, manually
+   edit the various Makefiles after running configure and before
+   running make. You will need to add -DNDEBUG to the CFLAGS variable.

because it was enabled to avoid serious problems at runtime:
https://lists.gnu.org/archive/html/bug-gawk/2025-10/msg00042.html

(There was another discussion but I can't find it now.)

I also think a default-on USE=debug would confuse people, so just go
with the upstream default.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-apps/gawk/Manifest          |   2 +
 sys-apps/gawk/gawk-5.4.0.ebuild | 112 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 114 insertions(+)

diff --git a/sys-apps/gawk/Manifest b/sys-apps/gawk/Manifest
index 0efcc0864953..eae7dfd53138 100644
--- a/sys-apps/gawk/Manifest
+++ b/sys-apps/gawk/Manifest
@@ -2,3 +2,5 @@ DIST gawk-5.3.2.tar.xz 3749260 BLAKE2B 
8536777bb45c63d737ef08b3f1b98285cb29ec544
 DIST gawk-5.3.2.tar.xz.sig 488 BLAKE2B 
ea843fce8ca2b93a8006260e8022f3426daccc18b93bd75ef1fb18e391ce110a10682e75509d771ba9c419d1e22a584f66ff9a436512b76b039a85afed6c7596
 SHA512 
490f29271d06f374e25e13724f5944215734d0c6da465da5b2a723e83fa31a03c7a16e5c8853465561bc0676139588b1046c598554ccde4ae24563455ee28b65
 DIST gawk-5.3.66.tar.gz 6631201 BLAKE2B 
5bf2151f3f75b0239c94cfbfdbc8d767871cfafa5f595ca91cb2ffc504f2673a186405bd9ea051a6f872a6a8bfd0346b0987e5d807f9e8bea2b8e6396e62b00b
 SHA512 
03af8ad55dcb29ab61ad5cf7871e463f8f9582232d54ac04646a1694d1c362619079c923270716ef104902e0dab8f55718563329ae7534efeb337ce9010606db
 DIST gawk-5.3.67.tar.gz 6636798 BLAKE2B 
42e0d20b36e72f5568acb049b9005a7468bd969197620f18abf61d813243b5dd3b192a46ce2ebca2acb9249d3adc24b754b9e7254b8b41bb1ef054b6eaa5363d
 SHA512 
13ecb3784fc57a07e6eba6086c2c80f7829e63ac23649c1fc6dda1546d7fba82049f8280a1149b70685cad7422ec7c34b8220b864f4d19e4fd86a03bc898fd9e
+DIST gawk-5.4.0.tar.xz 3803276 BLAKE2B 
ce326dc386e62d288c4fe1268ba493f9c3a1e8af7dec90f95b2942588370f5a3538837d71dc4208534ace2aa84fce46ab6d5d681451b560fdf884aaf1b89fb11
 SHA512 
b212c6ffd235d5e7f98f0cae5a4fbe9a7139c420400710a747dc2c33dcbda445adc2f6f8ebab330c52c432da67b92be1806c628d261db826a72c89011b2d9d77
+DIST gawk-5.4.0.tar.xz.sig 488 BLAKE2B 
7e2c6e6fadba3fdd758563221c2f45b45512262f5f7ca49b6bf60993fc59825c7be7d526e8f014e0bc0304b74a07182d0701817db6726bafc5106c27f5687d3b
 SHA512 
428a35d7183032fa58eb6edcc8b352c956218086476d42b1f1064cdec58c1e233ec421559e859f4a5df235709c932e88b54303081b549e9ced3a82c4abaaf030

diff --git a/sys-apps/gawk/gawk-5.4.0.ebuild b/sys-apps/gawk/gawk-5.4.0.ebuild
new file mode 100644
index 000000000000..2682721d84e6
--- /dev/null
+++ b/sys-apps/gawk/gawk-5.4.0.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GAWK_IS_BETA=no
+
+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 flag-o-matic
+
+       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 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-3+ pma? ( AGPL-3+ )"
+SLOT="0"
+# The gawk docs claim MPFR support is "on parole" and may be removed,
+# https://www.gnu.org/software/gawk/manual/html_node/MPFR-On-Parole.html
+# however this is somewhat outdated information, see
+# 
https://public-inbox.org/libc-alpha/[email protected]/
+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
+
+src_prepare() {
+       default
+
+       use elibc_musl && append-cppflags -D__GNU_LIBRARY__
+
+       # 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
+}

Reply via email to