aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/gnu.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-02-21 18:09:51 +0900
committerOphestra <cat@gensokyo.uk>2026-02-21 18:09:51 +0900
commit56567307ec793ab96c665950f6c643965ada3ea9 (patch)
treeda89f9a85eadb6e3b8d8e950ce9711ce51227dc9 /internal/rosa/gnu.go
parent0264a1ef094fe3a8a43fb1f47a06c17415df5bf9 (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>
Diffstat (limited to 'internal/rosa/gnu.go')
-rw-r--r--internal/rosa/gnu.go32
1 files changed, 32 insertions, 0 deletions
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"