internal/rosa: migrate GNU software
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m48s
Test / Hakurei (push) Successful in 3m46s
Test / ShareFS (push) Successful in 3m47s
Test / Sandbox (race detector) (push) Successful in 5m21s
Test / Hakurei (race detector) (push) Successful in 6m35s
Test / Flake checks (push) Successful in 1m21s
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m48s
Test / Hakurei (push) Successful in 3m46s
Test / ShareFS (push) Successful in 3m47s
Test / Sandbox (race detector) (push) Successful in 5m21s
Test / Hakurei (race detector) (push) Successful in 6m35s
Test / Flake checks (push) Successful in 1m21s
These are quite trivial, so migrate them in one pass. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -164,7 +164,7 @@ func (*CMakeHelper) createDir() bool { return true }
|
|||||||
func (*CMakeHelper) wantsDir() string { return "/cure/" }
|
func (*CMakeHelper) wantsDir() string { return "/cure/" }
|
||||||
|
|
||||||
// script generates the cure script.
|
// script generates the cure script.
|
||||||
func (attr *CMakeHelper) script(s *S, name string) string {
|
func (attr *CMakeHelper) script(t Toolchain, name string) string {
|
||||||
if attr == nil {
|
if attr == nil {
|
||||||
attr = new(CMakeHelper)
|
attr = new(CMakeHelper)
|
||||||
}
|
}
|
||||||
@@ -180,7 +180,7 @@ func (attr *CMakeHelper) script(s *S, name string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
script := attr.Script
|
script := attr.Script
|
||||||
if !attr.SkipTest && s.opts&OptSkipCheck == 0 {
|
if !attr.SkipTest && t.opts&OptSkipCheck == 0 {
|
||||||
script += "\n" + test
|
script += "\n" + test
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,38 +42,6 @@ func skipGNUTests(tests ...int) string {
|
|||||||
return buf.String()
|
return buf.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t Toolchain) newM4() (pkg.Artifact, string) {
|
|
||||||
const (
|
|
||||||
version = "1.4.21"
|
|
||||||
checksum = "pPa6YOo722Jw80l1OsH1tnUaklnPFjFT-bxGw5iAVrZTm1P8FQaWao_NXop46-pm"
|
|
||||||
)
|
|
||||||
return t.NewPackage("m4", version, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/m4/m4-"+version+".tar.bz2",
|
|
||||||
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() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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) {
|
func (t Toolchain) newBison() (pkg.Artifact, string) {
|
||||||
const (
|
const (
|
||||||
version = "3.8.2"
|
version = "3.8.2"
|
||||||
@@ -109,705 +77,6 @@ func init() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t Toolchain) newAutoconf() (pkg.Artifact, string) {
|
|
||||||
const (
|
|
||||||
version = "2.73"
|
|
||||||
checksum = "yGabDTeOfaCUB0JX-h3REYLYzMzvpDwFmFFzHNR7QilChCUNE4hR6q7nma4viDYg"
|
|
||||||
)
|
|
||||||
return t.NewPackage("autoconf", version, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/autoconf/autoconf-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), &PackageAttr{
|
|
||||||
Flag: TExclusive,
|
|
||||||
}, &MakeHelper{
|
|
||||||
Check: []string{
|
|
||||||
"TESTSUITEFLAGS=" + jobsFlagE,
|
|
||||||
"check",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
M4,
|
|
||||||
Perl,
|
|
||||||
Bash,
|
|
||||||
Diffutils,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/automake/automake-"+version+".tar.gz",
|
|
||||||
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() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/libtool/libtool-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), nil, &MakeHelper{
|
|
||||||
// _Z2a2c: symbol not found
|
|
||||||
SkipCheck: t.stage.isStage0(),
|
|
||||||
|
|
||||||
Check: []string{
|
|
||||||
"TESTSUITEFLAGS=" + jobsFlagE,
|
|
||||||
"check",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
M4,
|
|
||||||
Diffutils,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/gzip/gzip-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), nil, &MakeHelper{
|
|
||||||
// dependency loop
|
|
||||||
SkipCheck: true,
|
|
||||||
}), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/gettext/gettext-"+version+".tar.gz",
|
|
||||||
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() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/diffutils/diffutils-"+version+".tar.gz",
|
|
||||||
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() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/patch/patch-"+version+".tar.gz",
|
|
||||||
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() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/bash/bash-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), &PackageAttr{
|
|
||||||
Flag: TEarly,
|
|
||||||
}, &MakeHelper{
|
|
||||||
Script: "ln -s bash /work/system/bin/sh\n",
|
|
||||||
Configure: []KV{
|
|
||||||
{"without-bash-malloc"},
|
|
||||||
},
|
|
||||||
}), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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.11"
|
|
||||||
checksum = "t8UMed5wpFEoC56aa42_yidfOAaRGzOfj7MRtQkkqgGbpXiskNA8bd-EmVSQkZie"
|
|
||||||
)
|
|
||||||
return t.NewPackage("coreutils", version, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/coreutils/coreutils-"+version+".tar.gz",
|
|
||||||
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/ls/hyperlink.sh
|
|
||||||
test_disable '#!/bin/sh' tests/misc/user.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
|
|
||||||
`,
|
|
||||||
|
|
||||||
Flag: TEarly,
|
|
||||||
}, &MakeHelper{
|
|
||||||
Configure: []KV{
|
|
||||||
{"enable-single-binary", "symlinks"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Perl,
|
|
||||||
Bash,
|
|
||||||
|
|
||||||
KernelHeaders,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/texinfo/texinfo-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), nil, &MakeHelper{
|
|
||||||
// nonstandard glibc extension
|
|
||||||
SkipCheck: true,
|
|
||||||
},
|
|
||||||
Perl,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gperf/gperf-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), nil, (*MakeHelper)(nil),
|
|
||||||
Diffutils,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/gawk/gawk-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), &PackageAttr{
|
|
||||||
Flag: TEarly,
|
|
||||||
}, &MakeHelper{
|
|
||||||
// dependency loop
|
|
||||||
SkipCheck: true,
|
|
||||||
}), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/grep/grep-"+version+".tar.gz",
|
|
||||||
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() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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{
|
|
||||||
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() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/bc/bc-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), &PackageAttr{
|
|
||||||
// source expected to be writable
|
|
||||||
Writable: true,
|
|
||||||
Chmod: true,
|
|
||||||
}, (*MakeHelper)(nil),
|
|
||||||
Texinfo,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/libiconv/libiconv-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), nil, (*MakeHelper)(nil)), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/tar/tar-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), nil, &MakeHelper{
|
|
||||||
Configure: []KV{
|
|
||||||
{"disable-acl"},
|
|
||||||
{"without-posix-acls"},
|
|
||||||
{"without-xattrs"},
|
|
||||||
},
|
|
||||||
Check: []string{
|
|
||||||
// very expensive
|
|
||||||
"TARTEST_SKIP_LARGE_FILES=1",
|
|
||||||
|
|
||||||
"TESTSUITEFLAGS=" + jobsFlagE,
|
|
||||||
"check",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Diffutils,
|
|
||||||
|
|
||||||
Gzip,
|
|
||||||
Bzip2,
|
|
||||||
Zstd,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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 = "20260422"
|
|
||||||
checksum = "eTsepxgqhXpMEhPd55qh-W5y4vjKn0x9TD2mzbJCNZYtFf4lT4Wzoqr74HGJYBEH"
|
|
||||||
)
|
|
||||||
return t.NewPackage("parallel", version, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/parallel/parallel-"+version+".tar.bz2",
|
|
||||||
checksum,
|
|
||||||
pkg.TarBzip2,
|
|
||||||
), &PackageAttr{
|
|
||||||
ScriptEarly: `
|
|
||||||
ln -s ../system/bin/bash /bin/
|
|
||||||
`,
|
|
||||||
}, (*MakeHelper)(nil),
|
|
||||||
Perl,
|
|
||||||
Bash,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/libunistring/libunistring-"+version+".tar.gz",
|
|
||||||
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() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/libtasn1/libtasn1-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), nil, (*MakeHelper)(nil)), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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, newTar(
|
|
||||||
"https://ftpmirror.gnu.org/gnu/readline/readline-"+version+".tar.gz",
|
|
||||||
checksum,
|
|
||||||
pkg.TarGzip,
|
|
||||||
), nil, &MakeHelper{
|
|
||||||
Configure: []KV{
|
|
||||||
{"with-curses"},
|
|
||||||
{"with-shared-termcap-library"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Ncurses,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
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",
|
|
||||||
|
|
||||||
Dependencies: P{
|
|
||||||
Ncurses,
|
|
||||||
},
|
|
||||||
|
|
||||||
ID: 4173,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t Toolchain) newGnuTLS() (pkg.Artifact, string) {
|
func (t Toolchain) newGnuTLS() (pkg.Artifact, string) {
|
||||||
const (
|
const (
|
||||||
version = "3.8.12"
|
version = "3.8.12"
|
||||||
@@ -1014,105 +283,6 @@ func init() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t Toolchain) newGMP() (pkg.Artifact, string) {
|
|
||||||
const (
|
|
||||||
version = "6.3.0"
|
|
||||||
checksum = "yrgbgEDWKDdMWVHh7gPbVl56-sRtVVhfvv0M_LX7xMUUk_mvZ1QOJEAnt7g4i3k5"
|
|
||||||
)
|
|
||||||
return t.NewPackage("gmp", version, newTar(
|
|
||||||
"https://gcc.gnu.org/pub/gcc/infrastructure/"+
|
|
||||||
"gmp-"+version+".tar.bz2",
|
|
||||||
checksum,
|
|
||||||
pkg.TarBzip2,
|
|
||||||
), &PackageAttr{
|
|
||||||
Env: []string{
|
|
||||||
"CC=cc",
|
|
||||||
},
|
|
||||||
}, (*MakeHelper)(nil),
|
|
||||||
M4,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
f: Toolchain.newGMP,
|
|
||||||
|
|
||||||
Name: "gmp",
|
|
||||||
Description: "a free library for arbitrary precision arithmetic",
|
|
||||||
Website: "https://gmplib.org/",
|
|
||||||
|
|
||||||
ID: 1186,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t Toolchain) newMPFR() (pkg.Artifact, string) {
|
|
||||||
const (
|
|
||||||
version = "4.2.2"
|
|
||||||
checksum = "wN3gx0zfIuCn9r3VAn_9bmfvAYILwrRfgBjYSD1IjLqyLrLojNN5vKyQuTE9kA-B"
|
|
||||||
)
|
|
||||||
return t.NewPackage("mpfr", version, newTar(
|
|
||||||
"https://gcc.gnu.org/pub/gcc/infrastructure/"+
|
|
||||||
"mpfr-"+version+".tar.bz2",
|
|
||||||
checksum,
|
|
||||||
pkg.TarBzip2,
|
|
||||||
), nil, (*MakeHelper)(nil),
|
|
||||||
GMP,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
f: Toolchain.newMPFR,
|
|
||||||
|
|
||||||
Name: "mpfr",
|
|
||||||
Description: "a C library for multiple-precision floating-point computations",
|
|
||||||
Website: "https://www.mpfr.org/",
|
|
||||||
|
|
||||||
Dependencies: P{
|
|
||||||
GMP,
|
|
||||||
},
|
|
||||||
|
|
||||||
ID: 2019,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t Toolchain) newMPC() (pkg.Artifact, string) {
|
|
||||||
const (
|
|
||||||
version = "1.4.1"
|
|
||||||
checksum = "ZffaZyWkvIw0iPvRe5EJ7O-VvHtSkbbb3K_7SgPtK810NvGan7nbF0T5-6tozjQN"
|
|
||||||
)
|
|
||||||
return t.NewPackage("mpc", version, newFromGitLab(
|
|
||||||
"gitlab.inria.fr",
|
|
||||||
"mpc/mpc",
|
|
||||||
version, checksum,
|
|
||||||
), &PackageAttr{
|
|
||||||
// does not find mpc-impl.h otherwise
|
|
||||||
EnterSource: true,
|
|
||||||
}, &MakeHelper{
|
|
||||||
InPlace: true,
|
|
||||||
Generate: "autoreconf -vfi",
|
|
||||||
},
|
|
||||||
Automake,
|
|
||||||
Libtool,
|
|
||||||
Texinfo,
|
|
||||||
|
|
||||||
MPFR,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.MustRegister(&Artifact{
|
|
||||||
f: Toolchain.newMPC,
|
|
||||||
|
|
||||||
Name: "mpc",
|
|
||||||
Description: "a C library for the arithmetic of complex numbers",
|
|
||||||
Website: "https://www.multiprecision.org/",
|
|
||||||
|
|
||||||
Dependencies: P{
|
|
||||||
MPFR,
|
|
||||||
},
|
|
||||||
|
|
||||||
ID: 1667,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t Toolchain) newGCC() (pkg.Artifact, string) {
|
func (t Toolchain) newGCC() (pkg.Artifact, string) {
|
||||||
const (
|
const (
|
||||||
version = "16.1.0"
|
version = "16.1.0"
|
||||||
|
|||||||
@@ -70,6 +70,8 @@ type MakeHelper struct {
|
|||||||
Make []string
|
Make []string
|
||||||
// Whether to skip the check target.
|
// Whether to skip the check target.
|
||||||
SkipCheck bool
|
SkipCheck bool
|
||||||
|
// Whether to skip the check target during stage0.
|
||||||
|
SkipCheckEarly bool
|
||||||
// Name of the check target, zero value is equivalent to "check".
|
// Name of the check target, zero value is equivalent to "check".
|
||||||
Check []string
|
Check []string
|
||||||
// Replaces the default install command.
|
// Replaces the default install command.
|
||||||
@@ -123,7 +125,7 @@ func (attr *MakeHelper) wantsDir() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// script generates the cure script.
|
// script generates the cure script.
|
||||||
func (attr *MakeHelper) script(s *S, name string) string {
|
func (attr *MakeHelper) script(t Toolchain, name string) string {
|
||||||
if attr == nil {
|
if attr == nil {
|
||||||
attr = new(MakeHelper)
|
attr = new(MakeHelper)
|
||||||
}
|
}
|
||||||
@@ -194,7 +196,8 @@ make \
|
|||||||
}
|
}
|
||||||
scriptMake += "\n"
|
scriptMake += "\n"
|
||||||
|
|
||||||
if !attr.SkipCheck && s.opts&OptSkipCheck == 0 {
|
if !attr.SkipCheck && t.opts&OptSkipCheck == 0 &&
|
||||||
|
(!attr.SkipCheckEarly || !t.stage.isStage0()) {
|
||||||
scriptMake += attr.ScriptCheckEarly + `make \
|
scriptMake += attr.ScriptCheckEarly + `make \
|
||||||
` + jobsFlagE + ` \
|
` + jobsFlagE + ` \
|
||||||
`
|
`
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ func (*MesonHelper) createDir() bool { return false }
|
|||||||
func (*MesonHelper) wantsDir() string { return `"$(mktemp -d)"` }
|
func (*MesonHelper) wantsDir() string { return `"$(mktemp -d)"` }
|
||||||
|
|
||||||
// script generates the cure script.
|
// script generates the cure script.
|
||||||
func (attr *MesonHelper) script(s *S, name string) string {
|
func (attr *MesonHelper) script(t Toolchain, name string) string {
|
||||||
if attr == nil {
|
if attr == nil {
|
||||||
attr = new(MesonHelper)
|
attr = new(MesonHelper)
|
||||||
}
|
}
|
||||||
@@ -117,7 +117,7 @@ func (attr *MesonHelper) script(s *S, name string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var scriptTest string
|
var scriptTest string
|
||||||
if !attr.SkipTest && s.opts&OptSkipCheck == 0 {
|
if !attr.SkipTest && t.opts&OptSkipCheck == 0 {
|
||||||
scriptTest = `
|
scriptTest = `
|
||||||
meson test \
|
meson test \
|
||||||
--print-errorlogs`
|
--print-errorlogs`
|
||||||
|
|||||||
@@ -1,5 +1,148 @@
|
|||||||
// GNU software with trivial packaging.
|
// GNU software with trivial packaging.
|
||||||
|
|
||||||
|
package m4 {
|
||||||
|
description = "a macro processor with GNU extensions";
|
||||||
|
website = "https://www.gnu.org/software/m4";
|
||||||
|
anitya = 1871;
|
||||||
|
|
||||||
|
version* = "1.4.21";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/m4/m4-"+version+".tar.bz2";
|
||||||
|
checksum = "pPa6YOo722Jw80l1OsH1tnUaklnPFjFT-bxGw5iAVrZTm1P8FQaWao_NXop46-pm";
|
||||||
|
compress = bzip2;
|
||||||
|
};
|
||||||
|
|
||||||
|
writable = true;
|
||||||
|
early = `
|
||||||
|
chmod +w tests/test-c32ispunct.sh && echo '#!/bin/sh' > tests/test-c32ispunct.sh
|
||||||
|
`;
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
diffutils,
|
||||||
|
|
||||||
|
kernel-headers,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package autoconf {
|
||||||
|
description = "M4 macros to produce self-contained configure script";
|
||||||
|
website = "https://www.gnu.org/software/autoconf";
|
||||||
|
anitya = 141;
|
||||||
|
|
||||||
|
version* = "2.73";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/autoconf/autoconf-"+version+".tar.gz";
|
||||||
|
checksum = "yGabDTeOfaCUB0JX-h3REYLYzMzvpDwFmFFzHNR7QilChCUNE4hR6q7nma4viDYg";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
// test suite is very expensive
|
||||||
|
exclusive = true;
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
check = [
|
||||||
|
"TESTSUITEFLAGS=" + jobsFlagE,
|
||||||
|
"check",
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
m4,
|
||||||
|
perl,
|
||||||
|
bash,
|
||||||
|
diffutils,
|
||||||
|
];
|
||||||
|
|
||||||
|
runtime = [
|
||||||
|
m4,
|
||||||
|
perl,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package automake {
|
||||||
|
description = "a tool for automatically generating Makefile.in files";
|
||||||
|
website = "https://www.gnu.org/software/automake";
|
||||||
|
anitya = 144;
|
||||||
|
|
||||||
|
version* = "1.18.1";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/automake/automake-"+version+".tar.gz";
|
||||||
|
checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
writable = true;
|
||||||
|
early = `
|
||||||
|
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
|
||||||
|
`;
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
grep,
|
||||||
|
gzip,
|
||||||
|
autoconf,
|
||||||
|
diffutils,
|
||||||
|
];
|
||||||
|
|
||||||
|
runtime = [ autoconf ];
|
||||||
|
}
|
||||||
|
|
||||||
|
package libtool {
|
||||||
|
description = "a generic library support script";
|
||||||
|
website = "https://www.gnu.org/software/libtool";
|
||||||
|
anitya = 1741;
|
||||||
|
|
||||||
|
version* = "2.5.4";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/libtool/libtool-"+version+".tar.gz";
|
||||||
|
checksum = "pa6LSrQggh8mSJHQfwGjysAApmZlGJt8wif2cCLzqAAa2jpsTY0jZ-6stS3BWZ2Q";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
// _Z2a2c: symbol not found
|
||||||
|
skipEarlyStageCheck = true;
|
||||||
|
|
||||||
|
check = [
|
||||||
|
"TESTSUITEFLAGS=" + jobsFlagE,
|
||||||
|
"check",
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
m4,
|
||||||
|
diffutils,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package gzip {
|
||||||
|
description = "a popular data compression program";
|
||||||
|
website = "https://www.gnu.org/software/gzip";
|
||||||
|
anitya = 1290;
|
||||||
|
|
||||||
|
version* = "1.14";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/gzip/gzip-"+version+".tar.gz";
|
||||||
|
checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
// dependency loop
|
||||||
|
skipCheck = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
package sed {
|
package sed {
|
||||||
description = "a non-interactive command-line text editor";
|
description = "a non-interactive command-line text editor";
|
||||||
website = "https://www.gnu.org/software/sed";
|
website = "https://www.gnu.org/software/sed";
|
||||||
@@ -20,3 +163,502 @@ package sed {
|
|||||||
kernel-headers,
|
kernel-headers,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
package diffutils {
|
||||||
|
description = "several programs related to finding differences between files";
|
||||||
|
website = "https://www.gnu.org/software/diffutils";
|
||||||
|
anitya = 436;
|
||||||
|
|
||||||
|
version* = "3.12";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/diffutils/diffutils-"+version+".tar.gz";
|
||||||
|
checksum = "9J5VAq5oA7eqwzS1Yvw-l3G5o-TccUrNQR3PvyB_lgdryOFAfxtvQfKfhdpquE44";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
writable = true;
|
||||||
|
early = `
|
||||||
|
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
|
||||||
|
`;
|
||||||
|
|
||||||
|
toyboxEarly = true;
|
||||||
|
exec = make {};
|
||||||
|
}
|
||||||
|
|
||||||
|
package patch {
|
||||||
|
description = "a program to apply diff output to files";
|
||||||
|
website = "https://savannah.gnu.org/projects/patch";
|
||||||
|
anitya = 2597;
|
||||||
|
|
||||||
|
version* = "2.8";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/patch/patch-"+version+".tar.gz";
|
||||||
|
checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
writable = true;
|
||||||
|
early = `
|
||||||
|
test_disable() { chmod +w "$2" && echo "$1" > "$2"; }
|
||||||
|
|
||||||
|
test_disable '#!/bin/sh' tests/ed-style
|
||||||
|
test_disable '#!/bin/sh' tests/need-filename
|
||||||
|
`;
|
||||||
|
|
||||||
|
toyboxEarly = true;
|
||||||
|
exec = make {};
|
||||||
|
}
|
||||||
|
|
||||||
|
package gawk {
|
||||||
|
description = "an implementation of awk with GNU extensions";
|
||||||
|
website = "https://www.gnu.org/software/gawk";
|
||||||
|
anitya = 868;
|
||||||
|
|
||||||
|
version* = "5.4.0";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/gawk/gawk-"+version+".tar.gz";
|
||||||
|
checksum = "m0RkIolC-PI7EY5q8pcx5Y-0twlIW0Yp3wXXmV-QaHorSdf8BhZ7kW9F8iWomz0C";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
toyboxEarly = true;
|
||||||
|
exec = make {
|
||||||
|
// dependency loop
|
||||||
|
skipCheck = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
package grep {
|
||||||
|
description = "searches input for lines containing a match to a pattern";
|
||||||
|
website = "https://www.gnu.org/software/grep";
|
||||||
|
anitya = 1251;
|
||||||
|
|
||||||
|
version* = "3.12";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/grep/grep-"+version+".tar.gz";
|
||||||
|
checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
writable = true;
|
||||||
|
early = `
|
||||||
|
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
|
||||||
|
`;
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [ diffutils ];
|
||||||
|
}
|
||||||
|
|
||||||
|
package gettext {
|
||||||
|
description = "tools for producing multi-lingual messages";
|
||||||
|
website = "https://www.gnu.org/software/gettext";
|
||||||
|
anitya = 898;
|
||||||
|
|
||||||
|
version* = "1.0";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/gettext/gettext-"+version+".tar.gz";
|
||||||
|
checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
writable = true;
|
||||||
|
early = `
|
||||||
|
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
|
||||||
|
`;
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
diffutils,
|
||||||
|
gzip,
|
||||||
|
sed,
|
||||||
|
|
||||||
|
kernel-headers,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package findutils {
|
||||||
|
description = "the basic directory searching utilities";
|
||||||
|
website = "https://www.gnu.org/software/findutils";
|
||||||
|
anitya = 812;
|
||||||
|
|
||||||
|
version* = "4.10.0";
|
||||||
|
source = remoteFile {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/findutils/findutils-"+version+".tar.xz";
|
||||||
|
checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6";
|
||||||
|
};
|
||||||
|
|
||||||
|
early = `
|
||||||
|
echo '#!/bin/sh' > gnulib-tests/test-c32ispunct.sh
|
||||||
|
echo 'int main(){return 0;}' > tests/xargs/test-sigusr.c
|
||||||
|
`;
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
diffutils,
|
||||||
|
xz,
|
||||||
|
sed,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package bash {
|
||||||
|
description = "the Bourne Again SHell";
|
||||||
|
website = "https://www.gnu.org/software/bash";
|
||||||
|
anitya = 166;
|
||||||
|
|
||||||
|
version* = "5.3";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/bash/bash-"+version+".tar.gz";
|
||||||
|
checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
toyboxEarly = true;
|
||||||
|
exec = make {
|
||||||
|
configure = {
|
||||||
|
"without-bash-malloc";
|
||||||
|
};
|
||||||
|
postInstall = "ln -s bash /work/system/bin/sh\n";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
package coreutils {
|
||||||
|
description = "the basic file, shell and text manipulation utilities";
|
||||||
|
website = "https://www.gnu.org/software/coreutils";
|
||||||
|
anitya = 343;
|
||||||
|
|
||||||
|
version* = "9.11";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/coreutils/coreutils-"+version+".tar.gz";
|
||||||
|
checksum = "t8UMed5wpFEoC56aa42_yidfOAaRGzOfj7MRtQkkqgGbpXiskNA8bd-EmVSQkZie";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
toyboxEarly = true;
|
||||||
|
writable = true;
|
||||||
|
early = `
|
||||||
|
test_disable() { chmod +w "$2" && echo "$1" > "$2"; }
|
||||||
|
|
||||||
|
test_disable '#!/bin/sh' gnulib-tests/test-c32ispunct.sh
|
||||||
|
test_disable '#!/bin/sh' tests/ls/hyperlink.sh
|
||||||
|
test_disable '#!/bin/sh' tests/misc/user.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
|
||||||
|
`;
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
configure = {
|
||||||
|
"enable-single-binary": "symlinks";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
perl,
|
||||||
|
bash,
|
||||||
|
|
||||||
|
kernel-headers,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package tar {
|
||||||
|
description = "provides the ability to create tar archives";
|
||||||
|
website = "https://www.gnu.org/software/tar";
|
||||||
|
anitya = 4939;
|
||||||
|
|
||||||
|
version* = "1.35";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/tar/tar-"+version+".tar.gz";
|
||||||
|
checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
configure = {
|
||||||
|
"disable-acl";
|
||||||
|
"without-posix-acls";
|
||||||
|
"without-xattrs";
|
||||||
|
};
|
||||||
|
|
||||||
|
check = [
|
||||||
|
// very expensive
|
||||||
|
"TARTEST_SKIP_LARGE_FILES=1",
|
||||||
|
|
||||||
|
"TESTSUITEFLAGS=" + jobsFlagE,
|
||||||
|
"check",
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
diffutils,
|
||||||
|
|
||||||
|
gzip,
|
||||||
|
bzip2,
|
||||||
|
zstd,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package texinfo {
|
||||||
|
description = "the GNU square-wheel-reinvension of man pages";
|
||||||
|
website = "https://www.gnu.org/software/texinfo";
|
||||||
|
anitya = 4958;
|
||||||
|
|
||||||
|
version* = "7.3";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/texinfo/texinfo-"+version+".tar.gz";
|
||||||
|
checksum = "RRmC8Xwdof7JuZJeWGAQ_GeASIHAuJFQMbNONXBz5InooKIQGmqmWRjGNGEr5n4-";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
// nonstandard glibc extension
|
||||||
|
skipCheck = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [ perl ];
|
||||||
|
|
||||||
|
runtime = [
|
||||||
|
perl,
|
||||||
|
gawk,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package gperf {
|
||||||
|
description = "a perfect hash function generator";
|
||||||
|
website = "https://www.gnu.org/software/gperf";
|
||||||
|
anitya = 1237;
|
||||||
|
|
||||||
|
version* = "3.3";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gperf/gperf-"+version+".tar.gz";
|
||||||
|
checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [ diffutils ];
|
||||||
|
}
|
||||||
|
|
||||||
|
package bc {
|
||||||
|
description = "an arbitrary precision numeric processing language";
|
||||||
|
website = "https://www.gnu.org/software/bc";
|
||||||
|
anitya = 170;
|
||||||
|
|
||||||
|
version* = "1.08.2";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/bc/bc-"+version+".tar.gz";
|
||||||
|
checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
// source expected to be writable
|
||||||
|
writable = true;
|
||||||
|
chmod = true;
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
texinfo,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package libiconv {
|
||||||
|
description = "iconv implementation independent of glibc";
|
||||||
|
website = "https://www.gnu.org/software/libiconv";
|
||||||
|
anitya = 10656;
|
||||||
|
|
||||||
|
version* = "1.19";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/libiconv/libiconv-"+version+".tar.gz";
|
||||||
|
checksum = "UibB6E23y4MksNqYmCCrA3zTFO6vJugD1DEDqqWYFZNuBsUWMVMcncb_5pPAr88x";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
}
|
||||||
|
|
||||||
|
package parallel {
|
||||||
|
description = "a shell tool for executing jobs in parallel using one or more computers";
|
||||||
|
website = "https://www.gnu.org/software/parallel";
|
||||||
|
anitya = 5448;
|
||||||
|
|
||||||
|
version* = "20260422";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/parallel/parallel-"+version+".tar.bz2";
|
||||||
|
checksum = "eTsepxgqhXpMEhPd55qh-W5y4vjKn0x9TD2mzbJCNZYtFf4lT4Wzoqr74HGJYBEH";
|
||||||
|
compress = bzip2;
|
||||||
|
};
|
||||||
|
|
||||||
|
early = `
|
||||||
|
ln -s ../system/bin/bash /bin/
|
||||||
|
`;
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
perl,
|
||||||
|
bash,
|
||||||
|
];
|
||||||
|
|
||||||
|
runtime = [ perl ];
|
||||||
|
}
|
||||||
|
|
||||||
|
package libunistring {
|
||||||
|
description = "provides functions for manipulating Unicode strings";
|
||||||
|
website = "https://www.gnu.org/software/libunistring";
|
||||||
|
anitya = 1747;
|
||||||
|
|
||||||
|
version* = "1.4.2";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/libunistring/libunistring-"+version+".tar.gz";
|
||||||
|
checksum = "iW9BbfLoVlXjWoLTZ4AekQSu4cFBnLcZ4W8OHWbv0AhJNgD3j65_zqaLMzFKylg2";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
writable = true;
|
||||||
|
early = `
|
||||||
|
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
|
||||||
|
`;
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
diffutils,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package libtasn1 {
|
||||||
|
description = "the ASN.1 library used by GnuTLS, p11-kit and some other packages";
|
||||||
|
website = "https://www.gnu.org/software/libtasn1";
|
||||||
|
anitya = 1734;
|
||||||
|
|
||||||
|
version* = "4.21.0";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/libtasn1/libtasn1-"+version+".tar.gz";
|
||||||
|
checksum = "9DYI3UYbfYLy8JsKUcY6f0irskbfL0fHZA91Q-JEOA3kiUwpodyjemRsYRjUpjuq";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
}
|
||||||
|
|
||||||
|
package 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";
|
||||||
|
anitya = 4173;
|
||||||
|
|
||||||
|
version* = "8.3";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://ftpmirror.gnu.org/gnu/readline/readline-"+version+".tar.gz";
|
||||||
|
checksum = "r-lcGRJq_MvvBpOq47Z2Y1OI2iqrmtcqhTLVXR0xWo37ZpC2uT_md7gKq5o_qTMV";
|
||||||
|
compress = gzip;
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
configure = {
|
||||||
|
"with-curses";
|
||||||
|
"with-shared-termcap-library";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [ ncurses ];
|
||||||
|
runtime = [ ncurses ];
|
||||||
|
}
|
||||||
|
|
||||||
|
package gmp {
|
||||||
|
description = "a free library for arbitrary precision arithmetic";
|
||||||
|
website = "https://gmplib.org";
|
||||||
|
anitya = 1186;
|
||||||
|
|
||||||
|
version* = "6.3.0";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://gcc.gnu.org/pub/gcc/infrastructure/"+
|
||||||
|
"gmp-"+version+".tar.bz2";
|
||||||
|
checksum = "yrgbgEDWKDdMWVHh7gPbVl56-sRtVVhfvv0M_LX7xMUUk_mvZ1QOJEAnt7g4i3k5";
|
||||||
|
compress = bzip2;
|
||||||
|
};
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"CC=cc",
|
||||||
|
];
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [ m4 ];
|
||||||
|
}
|
||||||
|
|
||||||
|
package mpfr {
|
||||||
|
description = "a C library for multiple-precision floating-point computations";
|
||||||
|
website = "https://www.mpfr.org";
|
||||||
|
anitya = 2019;
|
||||||
|
|
||||||
|
version* = "4.2.2";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://gcc.gnu.org/pub/gcc/infrastructure/"+
|
||||||
|
"mpfr-"+version+".tar.bz2";
|
||||||
|
checksum = "wN3gx0zfIuCn9r3VAn_9bmfvAYILwrRfgBjYSD1IjLqyLrLojNN5vKyQuTE9kA-B";
|
||||||
|
compress = bzip2;
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {};
|
||||||
|
|
||||||
|
inputs = [ gmp ];
|
||||||
|
runtime = [ gmp ];
|
||||||
|
}
|
||||||
|
|
||||||
|
package mpc {
|
||||||
|
description = "a C library for the arithmetic of complex numbers";
|
||||||
|
website = "https://www.multiprecision.org";
|
||||||
|
anitya = 1667;
|
||||||
|
|
||||||
|
version* = "1.4.1";
|
||||||
|
source = remoteGitLab {
|
||||||
|
domain = "gitlab.inria.fr";
|
||||||
|
suffix = "mpc/mpc";
|
||||||
|
ref = version;
|
||||||
|
checksum = "ZffaZyWkvIw0iPvRe5EJ7O-VvHtSkbbb3K_7SgPtK810NvGan7nbF0T5-6tozjQN";
|
||||||
|
};
|
||||||
|
|
||||||
|
// does not find mpc-impl.h otherwise
|
||||||
|
enterSource = true;
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
inPlace = true;
|
||||||
|
generate = "autoreconf -vfi";
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
automake,
|
||||||
|
libtool,
|
||||||
|
texinfo,
|
||||||
|
|
||||||
|
mpfr,
|
||||||
|
];
|
||||||
|
|
||||||
|
runtime = [ mpfr ];
|
||||||
|
}
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ func (*PipHelper) createDir() bool { return false }
|
|||||||
func (*PipHelper) wantsDir() string { return `"$(mktemp -d)"` }
|
func (*PipHelper) wantsDir() string { return `"$(mktemp -d)"` }
|
||||||
|
|
||||||
// script generates the pip3 install command.
|
// script generates the pip3 install command.
|
||||||
func (attr *PipHelper) script(_ *S, name string) string {
|
func (attr *PipHelper) script(_ Toolchain, name string) string {
|
||||||
if attr == nil {
|
if attr == nil {
|
||||||
attr = new(PipHelper)
|
attr = new(PipHelper)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -388,7 +388,7 @@ type Helper interface {
|
|||||||
// also empty. The special value helperInPlace omits the cd statement.
|
// also empty. The special value helperInPlace omits the cd statement.
|
||||||
wantsDir() string
|
wantsDir() string
|
||||||
// script returns the helper-specific segment of cure script.
|
// script returns the helper-specific segment of cure script.
|
||||||
script(s *S, name string) string
|
script(t Toolchain, name string) string
|
||||||
}
|
}
|
||||||
|
|
||||||
// PackageAttr holds build-system-agnostic attributes.
|
// PackageAttr holds build-system-agnostic attributes.
|
||||||
@@ -531,7 +531,7 @@ cd '/usr/src/` + name + `/'
|
|||||||
extraRes,
|
extraRes,
|
||||||
attr.KnownChecksum,
|
attr.KnownChecksum,
|
||||||
attr.Env,
|
attr.Env,
|
||||||
scriptEarly+helper.script(t.S, name),
|
scriptEarly+helper.script(t, name),
|
||||||
slices.Concat(attr.Paths, []pkg.ExecPath{
|
slices.Concat(attr.Paths, []pkg.ExecPath{
|
||||||
pkg.Path(AbsUsrSrc.Append(
|
pkg.Path(AbsUsrSrc.Append(
|
||||||
name+sourceSuffix,
|
name+sourceSuffix,
|
||||||
@@ -545,11 +545,11 @@ cd '/usr/src/` + name + `/'
|
|||||||
const (
|
const (
|
||||||
// jobsE is expression for preferred job count set by [pkg].
|
// jobsE is expression for preferred job count set by [pkg].
|
||||||
jobsE = `"$` + pkg.EnvJobs + `"`
|
jobsE = `"$` + pkg.EnvJobs + `"`
|
||||||
// jobsE is expression for flag with preferred job count.
|
// jobsFlagE is expression for flag with preferred job count.
|
||||||
jobsFlagE = `"-j$` + pkg.EnvJobs + `"`
|
jobsFlagE = `"-j$` + pkg.EnvJobs + `"`
|
||||||
// jobsLE is expression for twice of preferred job count set by [pkg].
|
// jobsLE is expression for twice of preferred job count set by [pkg].
|
||||||
jobsLE = `"$(expr ` + jobsE + ` '*' 2)"`
|
jobsLE = `"$(expr ` + jobsE + ` '*' 2)"`
|
||||||
// jobsE is expression for flag with double of preferred job count.
|
// jobsLFlagE is expression for flag with double of preferred job count.
|
||||||
jobsLFlagE = `"-j$(expr ` + jobsE + ` '*' 2)"`
|
jobsLFlagE = `"-j$(expr ` + jobsE + ` '*' 2)"`
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -624,7 +624,7 @@ func init() {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
if err = native.EvaluateFS(sub); err != nil {
|
if err = native.EvaluateFS(sub); err != nil {
|
||||||
println(err)
|
println(err.Error())
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -382,11 +382,17 @@ func (s *S) getS() []azalea.Frame {
|
|||||||
return unique.Make(azalea.Ident(name))
|
return unique.Make(azalea.Ident(name))
|
||||||
}
|
}
|
||||||
s.s = make([]azalea.Frame, 1, 1<<4)
|
s.s = make([]azalea.Frame, 1, 1<<4)
|
||||||
|
s.s[0].Val = map[unique.Handle[azalea.Ident]]any{
|
||||||
|
k("jobsE"): jobsE,
|
||||||
|
k("jobsFlagE"): jobsFlagE,
|
||||||
|
k("jobsLE"): jobsLE,
|
||||||
|
k("jobsLFlagE"): jobsLFlagE,
|
||||||
|
}
|
||||||
s.s[0].Func = map[unique.Handle[azalea.Ident]]azalea.F{
|
s.s[0].Func = map[unique.Handle[azalea.Ident]]azalea.F{
|
||||||
|
|
||||||
// intenral/pkg built-ins
|
// intenral/pkg built-ins
|
||||||
|
|
||||||
unique.Make(azalea.Ident("remoteTar")): {F: func(
|
k("remoteTar"): {F: func(
|
||||||
args azalea.FArgs,
|
args azalea.FArgs,
|
||||||
) (v any, set bool, err error) {
|
) (v any, set bool, err error) {
|
||||||
var url, checksum string
|
var url, checksum string
|
||||||
@@ -398,7 +404,7 @@ func (s *S) getS() []azalea.Frame {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
v = newTar(url, checksum, compress)
|
v = pkg.NewHTTPGetTar(nil, url, mustDecode(checksum), compress)
|
||||||
set = true
|
set = true
|
||||||
return
|
return
|
||||||
}, V: map[unique.Handle[azalea.Ident]]any{
|
}, V: map[unique.Handle[azalea.Ident]]any{
|
||||||
@@ -407,9 +413,43 @@ func (s *S) getS() []azalea.Frame {
|
|||||||
k("bzip2"): uint32(pkg.TarBzip2),
|
k("bzip2"): uint32(pkg.TarBzip2),
|
||||||
}},
|
}},
|
||||||
|
|
||||||
|
k("remoteFile"): {F: func(
|
||||||
|
args azalea.FArgs,
|
||||||
|
) (v any, set bool, err error) {
|
||||||
|
var url, checksum string
|
||||||
|
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
|
||||||
|
k("url"): &url,
|
||||||
|
k("checksum"): &checksum,
|
||||||
|
}); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
v = pkg.NewHTTPGet(nil, url, mustDecode(checksum))
|
||||||
|
set = true
|
||||||
|
return
|
||||||
|
}},
|
||||||
|
|
||||||
|
// convenience functions
|
||||||
|
|
||||||
|
unique.Make(azalea.Ident("remoteGitLab")): {F: func(
|
||||||
|
args azalea.FArgs,
|
||||||
|
) (v any, set bool, err error) {
|
||||||
|
var domain, suffix, ref, checksum string
|
||||||
|
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
|
||||||
|
k("domain"): &domain,
|
||||||
|
k("suffix"): &suffix,
|
||||||
|
k("ref"): &ref,
|
||||||
|
k("checksum"): &checksum,
|
||||||
|
}); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
v = newFromGitLab(domain, suffix, ref, checksum)
|
||||||
|
set = true
|
||||||
|
return
|
||||||
|
}},
|
||||||
|
|
||||||
// high-level helpers
|
// high-level helpers
|
||||||
|
|
||||||
unique.Make(azalea.Ident("make")): {F: func(
|
k("make"): {F: func(
|
||||||
args azalea.FArgs,
|
args azalea.FArgs,
|
||||||
) (v any, set bool, err error) {
|
) (v any, set bool, err error) {
|
||||||
var attr MakeHelper
|
var attr MakeHelper
|
||||||
@@ -429,6 +469,8 @@ func (s *S) getS() []azalea.Frame {
|
|||||||
k("skipCheck"): &attr.SkipCheck,
|
k("skipCheck"): &attr.SkipCheck,
|
||||||
k("check"): &attr.Check,
|
k("check"): &attr.Check,
|
||||||
k("install"): &attr.Install,
|
k("install"): &attr.Install,
|
||||||
|
|
||||||
|
k("skipEarlyStageCheck"): &attr.SkipCheckEarly,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -479,6 +521,8 @@ func (ctx *evalContext) f(
|
|||||||
var (
|
var (
|
||||||
attr PackageAttr
|
attr PackageAttr
|
||||||
patches []string
|
patches []string
|
||||||
|
excl bool
|
||||||
|
early bool
|
||||||
|
|
||||||
anitya int64
|
anitya int64
|
||||||
version string
|
version string
|
||||||
@@ -501,6 +545,8 @@ func (ctx *evalContext) f(
|
|||||||
k("env"): &attr.Env,
|
k("env"): &attr.Env,
|
||||||
k("early"): &attr.ScriptEarly,
|
k("early"): &attr.ScriptEarly,
|
||||||
k("patches"): &patches,
|
k("patches"): &patches,
|
||||||
|
k("exclusive"): &excl,
|
||||||
|
k("toyboxEarly"): &early,
|
||||||
|
|
||||||
k("exec"): &helper,
|
k("exec"): &helper,
|
||||||
k("inputs"): &inputs,
|
k("inputs"): &inputs,
|
||||||
@@ -526,6 +572,12 @@ func (ctx *evalContext) f(
|
|||||||
unsafe.String(unsafe.SliceData(p), len(p)),
|
unsafe.String(unsafe.SliceData(p), len(p)),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if excl {
|
||||||
|
attr.Flag |= TExclusive
|
||||||
|
}
|
||||||
|
if early {
|
||||||
|
attr.Flag |= TEarly
|
||||||
|
}
|
||||||
|
|
||||||
meta.ID = int(anitya)
|
meta.ID = int(anitya)
|
||||||
meta.f = func(t Toolchain) (pkg.Artifact, string) {
|
meta.f = func(t Toolchain) (pkg.Artifact, string) {
|
||||||
|
|||||||
Reference in New Issue
Block a user