package rosa import "hakurei.app/internal/pkg" func (t Toolchain) newM4() (pkg.Artifact, string) { const ( version = "1.4.21" checksum = "pPa6YOo722Jw80l1OsH1tnUaklnPFjFT-bxGw5iAVrZTm1P8FQaWao_NXop46-pm" ) return t.NewPackage("m4", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/m4/m4-"+version+".tar.bz2", mustDecode(checksum), pkg.TarBzip2, ), &PackageAttr{ Writable: true, ScriptEarly: ` chmod +w tests/test-c32ispunct.sh && echo '#!/bin/sh' > tests/test-c32ispunct.sh `, }, (*MakeHelper)(nil), Diffutils, KernelHeaders, ), version } func init() { artifactsM[M4] = Metadata{ f: Toolchain.newM4, Name: "m4", Description: "a macro processor with GNU extensions", Website: "https://www.gnu.org/software/m4/", ID: 1871, } } func (t Toolchain) newBison() (pkg.Artifact, string) { const ( version = "3.8.2" checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y" ) return t.NewPackage("bison", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/bison/bison-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), nil, (*MakeHelper)(nil), M4, Diffutils, Sed, ), version } func init() { artifactsM[Bison] = Metadata{ f: Toolchain.newBison, Name: "bison", Description: "a general-purpose parser generator", Website: "https://www.gnu.org/software/bison/", ID: 193, } } func (t Toolchain) newSed() (pkg.Artifact, string) { const ( version = "4.9" checksum = "pe7HWH4PHNYrazOTlUoE1fXmhn2GOPFN_xE62i0llOr3kYGrH1g2_orDz0UtZ9Nt" ) return t.NewPackage("sed", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/sed/sed-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), nil, (*MakeHelper)(nil), Diffutils, ), version } func init() { artifactsM[Sed] = Metadata{ f: Toolchain.newSed, Name: "sed", Description: "a non-interactive command-line text editor", Website: "https://www.gnu.org/software/sed/", ID: 4789, } } func (t Toolchain) newAutoconf() (pkg.Artifact, string) { const ( version = "2.73" checksum = "yGabDTeOfaCUB0JX-h3REYLYzMzvpDwFmFFzHNR7QilChCUNE4hR6q7nma4viDYg" ) return t.NewPackage("autoconf", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/autoconf/autoconf-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), &PackageAttr{ Flag: TExclusive, }, &MakeHelper{ Check: []string{ `TESTSUITEFLAGS="-j$(nproc)"`, "check", }, }, M4, Perl, Bash, Diffutils, ), version } func init() { artifactsM[Autoconf] = Metadata{ f: Toolchain.newAutoconf, Name: "autoconf", Description: "M4 macros to produce self-contained configure script", Website: "https://www.gnu.org/software/autoconf/", Dependencies: P{ M4, Perl, }, ID: 141, } } func (t Toolchain) newAutomake() (pkg.Artifact, string) { const ( version = "1.18.1" checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG" ) return t.NewPackage("automake", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/automake/automake-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), &PackageAttr{ Writable: true, ScriptEarly: ` test_disable() { chmod +w "$2" && echo "$1" > "$2"; } test_disable '#!/bin/sh' t/objcxx-minidemo.sh test_disable '#!/bin/sh' t/objcxx-deps.sh test_disable '#!/bin/sh' t/dist-no-built-sources.sh test_disable '#!/bin/sh' t/distname.sh test_disable '#!/bin/sh' t/pr9.sh `, }, (*MakeHelper)(nil), Grep, Gzip, Autoconf, Diffutils, ), version } func init() { artifactsM[Automake] = Metadata{ f: Toolchain.newAutomake, Name: "automake", Description: "a tool for automatically generating Makefile.in files", Website: "https://www.gnu.org/software/automake/", Dependencies: P{ Autoconf, }, ID: 144, } } func (t Toolchain) newLibtool() (pkg.Artifact, string) { const ( version = "2.5.4" checksum = "pa6LSrQggh8mSJHQfwGjysAApmZlGJt8wif2cCLzqAAa2jpsTY0jZ-6stS3BWZ2Q" ) return t.NewPackage("libtool", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/libtool/libtool-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), nil, &MakeHelper{ Check: []string{ `TESTSUITEFLAGS="-j$(nproc)"`, "check", }, }, M4, Diffutils, ), version } func init() { artifactsM[Libtool] = Metadata{ f: Toolchain.newLibtool, Name: "libtool", Description: "a generic library support script", Website: "https://www.gnu.org/software/libtool/", ID: 1741, } } func (t Toolchain) newGzip() (pkg.Artifact, string) { const ( version = "1.14" checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q" ) return t.NewPackage("gzip", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/gzip/gzip-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), nil, &MakeHelper{ // dependency loop SkipCheck: true, }), version } func init() { artifactsM[Gzip] = Metadata{ f: Toolchain.newGzip, Name: "gzip", Description: "a popular data compression program", Website: "https://www.gnu.org/software/gzip/", ID: 1290, } } func (t Toolchain) newGettext() (pkg.Artifact, string) { const ( version = "1.0" checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC" ) return t.NewPackage("gettext", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/gettext/gettext-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), &PackageAttr{ Writable: true, ScriptEarly: ` test_disable() { chmod +w "$2" && echo "$1" > "$2"; } test_disable '#!/bin/sh' gettext-tools/tests/msgcat-22 test_disable '#!/bin/sh' gettext-tools/tests/msgconv-2 test_disable '#!/bin/sh' gettext-tools/tests/msgconv-8 test_disable '#!/bin/sh' gettext-tools/tests/xgettext-python-3 test_disable '#!/bin/sh' gettext-tools/tests/msgmerge-compendium-6 test_disable '#!/bin/sh' gettext-tools/tests/gettextpo-1 test_disable '#!/bin/sh' gettext-tools/tests/format-c-5 test_disable '#!/bin/sh' gettext-tools/gnulib-tests/test-c32ispunct.sh test_disable 'int main(){return 0;}' gettext-tools/gnulib-tests/test-stdcountof-h.c touch gettext-tools/autotools/archive.dir.tar `, }, (*MakeHelper)(nil), Diffutils, Gzip, Sed, KernelHeaders, ), version } func init() { artifactsM[Gettext] = Metadata{ f: Toolchain.newGettext, Name: "gettext", Description: "tools for producing multi-lingual messages", Website: "https://www.gnu.org/software/gettext/", ID: 898, } } func (t Toolchain) newDiffutils() (pkg.Artifact, string) { const ( version = "3.12" checksum = "9J5VAq5oA7eqwzS1Yvw-l3G5o-TccUrNQR3PvyB_lgdryOFAfxtvQfKfhdpquE44" ) return t.NewPackage("diffutils", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/diffutils/diffutils-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), &PackageAttr{ Writable: true, ScriptEarly: ` test_disable() { chmod +w "$2" && echo "$1" > "$2"; } test_disable '#!/bin/sh' gnulib-tests/test-c32ispunct.sh test_disable 'int main(){return 0;}' gnulib-tests/test-c32ispunct.c test_disable '#!/bin/sh' tests/cmp `, Flag: TEarly, }, (*MakeHelper)(nil)), version } func init() { artifactsM[Diffutils] = Metadata{ f: Toolchain.newDiffutils, Name: "diffutils", Description: "several programs related to finding differences between files", Website: "https://www.gnu.org/software/diffutils/", ID: 436, } } func (t Toolchain) newPatch() (pkg.Artifact, string) { const ( version = "2.8" checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR" ) return t.NewPackage("patch", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/patch/patch-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), &PackageAttr{ Writable: true, ScriptEarly: ` test_disable() { chmod +w "$2" && echo "$1" > "$2"; } test_disable '#!/bin/sh' tests/ed-style test_disable '#!/bin/sh' tests/need-filename `, Flag: TEarly, }, (*MakeHelper)(nil)), version } func init() { artifactsM[Patch] = Metadata{ f: Toolchain.newPatch, Name: "patch", Description: "a program to apply diff output to files", Website: "https://savannah.gnu.org/projects/patch/", ID: 2597, } } func (t Toolchain) newBash() (pkg.Artifact, string) { const ( version = "5.3" checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq" ) return t.NewPackage("bash", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/bash/bash-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), &PackageAttr{ Flag: TEarly, }, &MakeHelper{ Script: "ln -s bash /work/system/bin/sh\n", Configure: []KV{ {"without-bash-malloc"}, }, }), version } func init() { artifactsM[Bash] = Metadata{ f: Toolchain.newBash, Name: "bash", Description: "the Bourne Again SHell", Website: "https://www.gnu.org/software/bash/", ID: 166, } } func (t Toolchain) newCoreutils() (pkg.Artifact, string) { const ( version = "9.10" checksum = "o-B9wssRnZySzJUI1ZJAgw-bZtj1RC67R9po2AcM2OjjS8FQIl16IRHpC6IwO30i" ) return t.NewPackage("coreutils", version, pkg.NewHTTPGetTar( nil, "https://ftpmirror.gnu.org/gnu/coreutils/coreutils-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), &PackageAttr{ Writable: true, ScriptEarly: ` test_disable() { chmod +w "$2" && echo "$1" > "$2"; } test_disable '#!/bin/sh' gnulib-tests/test-c32ispunct.sh test_disable '#!/bin/sh' tests/split/line-bytes.sh test_disable '#!/bin/sh' tests/ls/hyperlink.sh test_disable 'int main(){return 0;}' gnulib-tests/test-chown.c test_disable 'int main(){return 0;}' gnulib-tests/test-fchownat.c test_disable 'int main(){return 0;}' gnulib-tests/test-lchown.c `, Patches: []KV{ {"tests-fix-job-control", `From 21d287324aa43aa3a31f39619ade0deac7fd6013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?=
Date: Tue, 24 Feb 2026 15:44:41 +0000
Subject: [PATCH] tests: fix job control triggering test termination
This avoids the test harness being terminated like:
make[1]: *** [Makefile:24419: check-recursive] Hangup
make[3]: *** [Makefile:24668: check-TESTS] Hangup
make: *** [Makefile:24922: check] Hangup
make[2]: *** [Makefile:24920: check-am] Hangup
make[4]: *** [Makefile:24685: tests/misc/usage_vs_refs.log] Error 129
...
This happened sometimes when the tests were being run non interactively.
For example when run like:
setsid make TESTS="tests/timeout/timeout.sh \
tests/tail/overlay-headers.sh" SUBDIRS=. -j2 check
Note the race window can be made bigger by adding a sleep
after tail is stopped in overlay-headers.sh
The race can trigger the kernel to induce its job control
mechanism to prevent stuck processes.
I.e. where it sends SIGHUP + SIGCONT to a process group
when it determines that group may become orphaned,
and there are stopped processes in that group.
* tests/tail/overlay-headers.sh: Use setsid(1) to keep the stopped
tail process in a separate process group, thus avoiding any kernel
job control protection mechanism.
* tests/timeout/timeout.sh: Use setsid(1) to avoid the kernel
checking the main process group when sleep(1) is reparented.
Fixes https://bugs.gnu.org/80477
---
tests/tail/overlay-headers.sh | 8 +++++++-
tests/timeout/timeout.sh | 11 ++++++++---
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/tests/tail/overlay-headers.sh b/tests/tail/overlay-headers.sh
index be9b6a7df..1e6da0a3f 100755
--- a/tests/tail/overlay-headers.sh
+++ b/tests/tail/overlay-headers.sh
@@ -20,6 +20,8 @@
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
print_ver_ tail sleep
+setsid true || skip_ 'setsid required to control groups'
+
# Function to count number of lines from tail
# while ignoring transient errors due to resource limits
countlines_ ()
@@ -54,7 +56,11 @@ echo start > file2 || framework_failure_
env sleep 60 & sleep=$!
# Note don't use timeout(1) here as it currently
-# does not propagate SIGCONT
+# does not propagate SIGCONT.
+# Note use setsid here to ensure we're in a separate process group
+# as we're going to STOP this tail process, and this can trigger
+# the kernel to send SIGHUP to a group if other tests have
+# processes that are reparented. (See tests/timeout/timeout.sh).
tail $fastpoll --pid=$sleep -f file1 file2 > out & pid=$!
# Ensure tail is running
diff --git a/tests/timeout/timeout.sh b/tests/timeout/timeout.sh
index 9a395416b..fbb043312 100755
--- a/tests/timeout/timeout.sh
+++ b/tests/timeout/timeout.sh
@@ -56,9 +56,14 @@ returns_ 124 timeout --foreground -s0 -k1 .1 sleep 10 && fail=1
) || fail=1
# Don't be confused when starting off with a child (Bug#9098).
-out=$(sleep .1 & exec timeout .5 sh -c 'sleep 2; echo foo')
-status=$?
-test "$out" = "" && test $status = 124 || fail=1
+# Use setsid to avoid sleep being in the test's process group, as
+# upon reparenting it can trigger an orphaned process group SIGHUP
+# (if there were stopped processes in other tests).
+if setsid true; then
+ out=$(setsid sleep .1 & exec timeout .5 sh -c 'sleep 2; echo foo')
+ status=$?
+ test "$out" = "" && test $status = 124 || fail=1
+fi
# Verify --verbose output
cat > exp <<\EOF
--
2.53.0
`},
},
Flag: TEarly,
}, &MakeHelper{
Configure: []KV{
{"enable-single-binary", "symlinks"},
},
},
Perl,
Bash,
KernelHeaders,
), version
}
func init() {
artifactsM[Coreutils] = Metadata{
f: Toolchain.newCoreutils,
Name: "coreutils",
Description: "the basic file, shell and text manipulation utilities",
Website: "https://www.gnu.org/software/coreutils/",
ID: 343,
}
}
func (t Toolchain) newTexinfo() (pkg.Artifact, string) {
const (
version = "7.3"
checksum = "RRmC8Xwdof7JuZJeWGAQ_GeASIHAuJFQMbNONXBz5InooKIQGmqmWRjGNGEr5n4-"
)
return t.NewPackage("texinfo", version, pkg.NewHTTPGetTar(
nil, "https://ftpmirror.gnu.org/gnu/texinfo/texinfo-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil, &MakeHelper{
// nonstandard glibc extension
SkipCheck: true,
},
Perl,
), version
}
func init() {
artifactsM[Texinfo] = Metadata{
f: Toolchain.newTexinfo,
Name: "texinfo",
Description: "the GNU square-wheel-reinvension of man pages",
Website: "https://www.gnu.org/software/texinfo/",
Dependencies: P{
Perl,
Gawk,
},
ID: 4958,
}
}
func (t Toolchain) newGperf() (pkg.Artifact, string) {
const (
version = "3.3"
checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7"
)
return t.NewPackage("gperf", version, pkg.NewHTTPGetTar(
nil, "https://ftpmirror.gnu.org/gperf/gperf-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil, (*MakeHelper)(nil),
Diffutils,
), version
}
func init() {
artifactsM[Gperf] = Metadata{
f: Toolchain.newGperf,
Name: "gperf",
Description: "a perfect hash function generator",
Website: "https://www.gnu.org/software/gperf/",
ID: 1237,
}
}
func (t Toolchain) newGawk() (pkg.Artifact, string) {
const (
version = "5.4.0"
checksum = "m0RkIolC-PI7EY5q8pcx5Y-0twlIW0Yp3wXXmV-QaHorSdf8BhZ7kW9F8iWomz0C"
)
return t.NewPackage("gawk", version, pkg.NewHTTPGetTar(
nil, "https://ftpmirror.gnu.org/gnu/gawk/gawk-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), &PackageAttr{
Flag: TEarly,
}, &MakeHelper{
// dependency loop
SkipCheck: true,
}), version
}
func init() {
artifactsM[Gawk] = Metadata{
f: Toolchain.newGawk,
Name: "gawk",
Description: "an implementation of awk with GNU extensions",
Website: "https://www.gnu.org/software/gawk/",
ID: 868,
}
}
func (t Toolchain) newGrep() (pkg.Artifact, string) {
const (
version = "3.12"
checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1"
)
return t.NewPackage("grep", version, pkg.NewHTTPGetTar(
nil, "https://ftpmirror.gnu.org/gnu/grep/grep-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), &PackageAttr{
Writable: true,
ScriptEarly: `
test_disable() { chmod +w "$2" && echo "$1" > "$2"; }
test_disable '#!/bin/sh' gnulib-tests/test-c32ispunct.sh
test_disable 'int main(){return 0;}' gnulib-tests/test-c32ispunct.c
`,
}, (*MakeHelper)(nil),
Diffutils,
), version
}
func init() {
artifactsM[Grep] = Metadata{
f: Toolchain.newGrep,
Name: "grep",
Description: "searches input for lines containing a match to a pattern",
Website: "https://www.gnu.org/software/grep/",
ID: 1251,
}
}
func (t Toolchain) newFindutils() (pkg.Artifact, string) {
const (
version = "4.10.0"
checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6"
)
return t.NewPackage("findutils", version, pkg.NewHTTPGet(
nil, "https://ftpmirror.gnu.org/gnu/findutils/findutils-"+version+".tar.xz",
mustDecode(checksum),
), &PackageAttr{
SourceKind: SourceKindTarXZ,
ScriptEarly: `
echo '#!/bin/sh' > gnulib-tests/test-c32ispunct.sh
echo 'int main(){return 0;}' > tests/xargs/test-sigusr.c
`,
}, (*MakeHelper)(nil),
Diffutils,
XZ,
Sed,
), version
}
func init() {
artifactsM[Findutils] = Metadata{
f: Toolchain.newFindutils,
Name: "findutils",
Description: "the basic directory searching utilities",
Website: "https://www.gnu.org/software/findutils/",
ID: 812,
}
}
func (t Toolchain) newBC() (pkg.Artifact, string) {
const (
version = "1.08.2"
checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy"
)
return t.NewPackage("bc", version, pkg.NewHTTPGetTar(
nil, "https://ftpmirror.gnu.org/gnu/bc/bc-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), &PackageAttr{
// source expected to be writable
Writable: true,
Chmod: true,
}, (*MakeHelper)(nil),
Texinfo,
), version
}
func init() {
artifactsM[BC] = Metadata{
f: Toolchain.newBC,
Name: "bc",
Description: "an arbitrary precision numeric processing language",
Website: "https://www.gnu.org/software/bc/",
ID: 170,
}
}
func (t Toolchain) newLibiconv() (pkg.Artifact, string) {
const (
version = "1.19"
checksum = "UibB6E23y4MksNqYmCCrA3zTFO6vJugD1DEDqqWYFZNuBsUWMVMcncb_5pPAr88x"
)
return t.NewPackage("libiconv", version, pkg.NewHTTPGetTar(
nil, "https://ftpmirror.gnu.org/gnu/libiconv/libiconv-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil, (*MakeHelper)(nil)), version
}
func init() {
artifactsM[Libiconv] = Metadata{
f: Toolchain.newLibiconv,
Name: "libiconv",
Description: "iconv implementation independent of glibc",
Website: "https://www.gnu.org/software/libiconv/",
ID: 10656,
}
}
func (t Toolchain) newTar() (pkg.Artifact, string) {
const (
version = "1.35"
checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA"
)
return t.NewPackage("tar", version, pkg.NewHTTPGetTar(
nil, "https://ftpmirror.gnu.org/gnu/tar/tar-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil, &MakeHelper{
Configure: []KV{
{"disable-acl"},
{"without-posix-acls"},
{"without-xattrs"},
},
Check: []string{
// very expensive
"TARTEST_SKIP_LARGE_FILES=1",
`TESTSUITEFLAGS="-j$(nproc)"`,
"check",
},
},
Diffutils,
Gzip,
Bzip2,
Zstd,
), version
}
func init() {
artifactsM[Tar] = Metadata{
f: Toolchain.newTar,
Name: "tar",
Description: "provides the ability to create tar archives",
Website: "https://www.gnu.org/software/tar/",
ID: 4939,
}
}
func (t Toolchain) newParallel() (pkg.Artifact, string) {
const (
version = "20260222"
checksum = "4wxjMi3G2zMxr9hvLcIn6D7_12A3e5UNObeTPhzn7mDAYwsZApmmkxfGPyllQQ7E"
)
return t.NewPackage("parallel", version, pkg.NewHTTPGetTar(
nil, "https://ftpmirror.gnu.org/gnu/parallel/parallel-"+version+".tar.bz2",
mustDecode(checksum),
pkg.TarBzip2,
), nil, (*MakeHelper)(nil),
Perl,
), version
}
func init() {
artifactsM[Parallel] = Metadata{
f: Toolchain.newParallel,
Name: "parallel",
Description: "a shell tool for executing jobs in parallel using one or more computers",
Website: "https://www.gnu.org/software/parallel/",
Dependencies: P{
Perl,
},
ID: 5448,
}
}
func (t Toolchain) newLibunistring() (pkg.Artifact, string) {
const (
version = "1.4.2"
checksum = "iW9BbfLoVlXjWoLTZ4AekQSu4cFBnLcZ4W8OHWbv0AhJNgD3j65_zqaLMzFKylg2"
)
return t.NewPackage("libunistring", version, pkg.NewHTTPGetTar(
nil, "https://ftp.gnu.org/gnu/libunistring/libunistring-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), &PackageAttr{
Writable: true,
ScriptEarly: `
test_disable() { chmod +w "$2" && echo "$1" > "$2"; }
test_disable '#!/bin/sh' tests/test-c32ispunct.sh
test_disable 'int main(){return 0;}' tests/test-c32ispunct.c
`,
}, (*MakeHelper)(nil),
Diffutils,
), version
}
func init() {
artifactsM[Libunistring] = Metadata{
f: Toolchain.newLibunistring,
Name: "libunistring",
Description: "provides functions for manipulating Unicode strings",
Website: "https://www.gnu.org/software/libunistring/",
ID: 1747,
}
}
func (t Toolchain) newLibtasn1() (pkg.Artifact, string) {
const (
version = "4.21.0"
checksum = "9DYI3UYbfYLy8JsKUcY6f0irskbfL0fHZA91Q-JEOA3kiUwpodyjemRsYRjUpjuq"
)
return t.NewPackage("libtasn1", version, pkg.NewHTTPGetTar(
nil, "https://ftpmirror.gnu.org/gnu/libtasn1/libtasn1-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil, (*MakeHelper)(nil)), version
}
func init() {
artifactsM[Libtasn1] = Metadata{
f: Toolchain.newLibtasn1,
Name: "libtasn1",
Description: "the ASN.1 library used by GnuTLS, p11-kit and some other packages",
Website: "https://www.gnu.org/software/libtasn1/",
ID: 1734,
}
}
func (t Toolchain) newReadline() (pkg.Artifact, string) {
const (
version = "8.3"
checksum = "r-lcGRJq_MvvBpOq47Z2Y1OI2iqrmtcqhTLVXR0xWo37ZpC2uT_md7gKq5o_qTMV"
)
return t.NewPackage("readline", version, pkg.NewHTTPGetTar(
nil, "https://ftp.gnu.org/gnu/readline/readline-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil, (*MakeHelper)(nil)), version
}
func init() {
artifactsM[Readline] = Metadata{
f: Toolchain.newReadline,
Name: "readline",
Description: "provides a set of functions for use by applications that allow users to edit command lines as they are typed in",
Website: "https://tiswww.cwru.edu/php/chet/readline/rltop.html",
ID: 4173,
}
}
func (t Toolchain) newGnuTLS() (pkg.Artifact, string) {
const (
version = "3.8.12"
checksum = "VPdP-nRydQQRJcnma-YA7CJYA_kzTJ2rb3QFeP6D27emSyInJ8sQ-Wzn518I38dl"
)
return t.NewPackage("gnutls", version, t.NewViaGit(
"https://gitlab.com/gnutls/gnutls.git",
"refs/tags/"+version,
mustDecode(checksum),
), &PackageAttr{
Patches: []KV{
{"bootstrap-remove-gtk-doc", `diff --git a/bootstrap.conf b/bootstrap.conf
index 1c3cc61e6..32bae9387 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -50,7 +50,6 @@ bison 2.4
gettext 0.17
git 1.4.4
gperf -
-gtkdocize -
perl 5.5
wget -
"
diff --git a/configure.ac b/configure.ac
index 5057536e5..731558a15 100644
--- a/configure.ac
+++ b/configure.ac
@@ -403,11 +403,6 @@ if test "$enable_fuzzer_target" != "no";then
AC_DEFINE([FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION], 1, [Enable fuzzer target -not for production])
fi
-dnl
-dnl check for gtk-doc
-dnl
-GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
-
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.19])
m4_ifdef([AM_GNU_GET][TEXT_REQUIRE_VERSION],[
diff --git a/doc/Makefile.am b/doc/Makefile.am
index fb1390d70..52f0ad9af 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -33,9 +33,6 @@ IMAGES = \
pkcs11-vision.png
SUBDIRS = examples scripts credentials latex
-if ENABLE_GTK_DOC
-SUBDIRS += reference
-endif
-include $(top_srcdir)/doc/doc.mk
diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am
index f10c8ed3c..b711b58ec 100644
--- a/doc/reference/Makefile.am
+++ b/doc/reference/Makefile.am
@@ -82,13 +82,4 @@ include $(top_srcdir)/gtk-doc.make
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += version.xml.in
-# Comment this out if you want 'make check' to test you doc status
-# and run some sanity checks
-if ENABLE_GTK_DOC
-TESTS_ENVIRONMENT = \
- DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
- SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
-#TESTS = $(GTKDOC_CHECK)
-endif
-
-include $(top_srcdir)/git.mk
`},
{"alpine-tests-certtool", `I think this tests is simply wrong.
When a PIN is given, the program should run in batch mode.
So the question for "Enter password" should _not_ be present.
DO NOT REMOVE UNLESS VERIFIED IT'S NOT ACTUALLY NECESSARY ANYMORE.
--- a/tests/cert-tests/certtool.sh 2019-02-07 07:33:45.960887338 +0000
+++ b/tests/cert-tests/certtool.sh 2019-02-07 07:36:14.550955051 +0000
@@ -49,7 +49,7 @@
#check whether password is being honoured
#some CI runners need GNUTLS_PIN (GNUTLS_PIN=${PASS})
- ${SETSID} "${CERTTOOL}" --generate-self-signed --load-privkey ${TMPFILE1} --template ${srcdir}/templates/template-test.tmpl --ask-pass >${TMPFILE2} 2>&1 <