diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-02-21 18:09:51 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-02-21 18:09:51 +0900 |
| commit | 56567307ec793ab96c665950f6c643965ada3ea9 (patch) | |
| tree | da89f9a85eadb6e3b8d8e950ce9711ce51227dc9 | |
| parent | 0264a1ef094fe3a8a43fb1f47a06c17415df5bf9 (diff) | |
internal/rosa: gnu tar artifact
Initially, libarchive was going to be used, but its test suite simply does not want to work under musl, not even with libiconv. The ticket last discussing this ceased any activity in 2020.
Signed-off-by: Ophestra <cat@gensokyo.uk>
| -rw-r--r-- | internal/rosa/all.go | 2 | ||||
| -rw-r--r-- | internal/rosa/gnu.go | 32 |
2 files changed, 34 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go index f6ae0341..aabc8a27 100644 --- a/internal/rosa/all.go +++ b/internal/rosa/all.go @@ -82,6 +82,7 @@ const ( Setuptools SquashfsTools TamaGo + Tar Texinfo Toybox toyboxEarly @@ -204,6 +205,7 @@ func ResolveName(name string) (p PArtifact, ok bool) { "setuptools": Setuptools, "squashfs-tools": SquashfsTools, "tamago": TamaGo, + "tar": Tar, "texinfo": Texinfo, "toybox": Toybox, "unzip": Unzip, diff --git a/internal/rosa/gnu.go b/internal/rosa/gnu.go index 358d9549..9e6951ec 100644 --- a/internal/rosa/gnu.go +++ b/internal/rosa/gnu.go @@ -419,6 +419,38 @@ func (t Toolchain) newLibiconv() pkg.Artifact { } func init() { artifactsF[Libiconv] = Toolchain.newLibiconv } +func (t Toolchain) newTar() pkg.Artifact { + const ( + version = "1.35" + checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA" + ) + return t.NewViaMake("tar", version, pkg.NewHTTPGetTar( + nil, "https://ftpmirror.gnu.org/gnu/tar/tar-"+version+".tar.gz", + mustDecode(checksum), + pkg.TarGzip, + ), &MakeAttr{ + Env: []string{ + // very expensive + "TARTEST_SKIP_LARGE_FILES=1", + }, + Configure: [][2]string{ + {"disable-acl"}, + {"without-posix-acls"}, + {"without-xattrs"}, + }, + Make: []string{ + `TESTSUITEFLAGS="-j$(nproc)"`, + }, + }, + t.Load(Diffutils), + + t.Load(Gzip), + t.Load(Bzip2), + t.Load(Zstd), + ) +} +func init() { artifactsF[Tar] = Toolchain.newTar } + func (t Toolchain) newBinutils() pkg.Artifact { const ( version = "2.45" |
