Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
@@ -0,0 +1,27 @@
#!/bin/sh
cd test
for i in `grep -E "^[a-z0-9_-]*:$" Maketests |awk -F: '{print $1}'`; do
unset LANG
grep -q "^$i$" skipped.txt
if [ $? -eq 0 ]; then
echo "SKIP: $i"
continue
fi
srcdir=`pwd` AWKPROG=gawk AWK=gawk CMP=cmp make -f Maketests $i >$i.tmp 2>&1
if [ -e _$i ]; then
cat _$i
grep -q "support not compiled in" _$i
if [ $? -eq 0 ]; then
echo "SKIP: $i"
continue
fi
fi
grep -q "Error" $i.tmp
if [ $? -eq 0 ]; then
echo "FAIL: $i"
else
echo "PASS: $i"
rm -f $i.tmp
fi
done
@@ -0,0 +1,87 @@
SUMMARY = "GNU awk text processing utility"
DESCRIPTION = "The GNU version of awk, a text processing utility. \
Awk interprets a special-purpose programming language to do \
quick and easy text pattern matching and reformatting jobs."
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"
PACKAGECONFIG ??= "readline"
PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr, mpfr"
SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \
file://run-ptest \
"
SRC_URI[sha256sum] = "945aef7ccff101f20b22a10802bc005e994ab2b8ea3e724cc1a197c62f41f650"
inherit autotools gettext texinfo update-alternatives
FILES:${PN} += "${datadir}/awk"
FILES:${PN}-dev += "${libdir}/${BPN}/*.la"
PACKAGES =+ "${PN}-gawkbug"
FILES:${PN}-gawkbug += "${bindir}/gawkbug"
ALTERNATIVE:${PN} = "awk"
ALTERNATIVE_TARGET[awk] = "${bindir}/gawk"
ALTERNATIVE_PRIORITY = "100"
do_install:append() {
# remove the link since we don't package it
rm ${D}${bindir}/awk
# Strip non-reproducible build flags (containing build paths)
sed -i -e 's|^CC.*|CC=""|g' -e 's|^CFLAGS.*|CFLAGS=""|g' ${D}${bindir}/gawkbug
}
inherit ptest
do_install_ptest() {
mkdir ${D}${PTEST_PATH}/test
ln -s ${bindir}/gawk ${D}${PTEST_PATH}/gawk
# The list of tests is all targets in Maketests, apart from the dummy Gt-dummy
TESTS=$(awk -F: '$1 == "Gt-dummy" { next } /[[:alnum:]]+:$/ { print $1 }' ${S}/test/Maketests)
for i in $TESTS Maketests inclib.awk; do
cp ${S}/test/$i* ${D}${PTEST_PATH}/test
done
sed -i \
-e 's|#!${base_bindir}/awk|#!${bindir}/awk|g' ${D}${PTEST_PATH}/test/*.awk
sed -i -e "s|GAWKLOCALE|LANG|g" ${D}${PTEST_PATH}/test/Maketests
# These tests require an unloaded host as otherwise timing sensitive tests can fail
# https://bugzilla.yoctoproject.org/show_bug.cgi?id=14371
rm -f ${D}${PTEST_PATH}/test/time.*
rm -f ${D}${PTEST_PATH}/test/timeout.*
for t in time timeout; do
echo $t >> ${D}${PTEST_PATH}/test/skipped.txt
done
}
do_install_ptest:append:libc-musl() {
# Reported https://lists.gnu.org/archive/html/bug-gawk/2021-02/msg00005.html
rm -f ${D}${PTEST_PATH}/test/clos1way6.*
# Needs en_US.UTF-8 but then does not work with musl
rm -f ${D}${PTEST_PATH}/test/backsmalls1.*
# Needs en_US.UTF-8 but then does not work with musl
rm -f ${D}${PTEST_PATH}/test/commas.*
# The below two need LANG=C inside the make rule for musl
rm -f ${D}${PTEST_PATH}/test/rebt8b1.*
rm -f ${D}${PTEST_PATH}/test/regx8bit.*
for t in clos1way6 backsmalls1 commas rebt8b1 regx8bit; do
echo $t >> ${D}${PTEST_PATH}/test/skipped.txt
done
}
RDEPENDS:${PN}-ptest += "make locale-base-en-us"
RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us.iso-8859-1"
RDEPENDS:${PN}-ptest:append:libc-musl = " musl-locales"
BBCLASSEXTEND = "native nativesdk"