internal/rosa: pass stage alongside state
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m57s
Test / ShareFS (push) Successful in 3m45s
Test / Hakurei (push) Successful in 3m50s
Test / Sandbox (race detector) (push) Successful in 5m19s
Test / Hakurei (race detector) (push) Successful in 6m31s
Test / Flake checks (push) Successful in 1m17s

This cleans up many function signatures.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-17 16:44:13 +09:00
parent 30eb0d6a61
commit 38bc2c7508
89 changed files with 563 additions and 558 deletions

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newAttr(s *S) (pkg.Artifact, string) {
func (t Toolchain) newAttr() (pkg.Artifact, string) {
const (
version = "2.5.2"
checksum = "YWEphrz6vg1sUMmHHVr1CRo53pFXRhq_pjN-AlG8UgwZK1y6m7zuDhxqJhD0SV0l"
)
return s.NewPackage(t, "attr", version, newTar(
return t.NewPackage("attr", version, newTar(
"https://download.savannah.nongnu.org/releases/attr/"+
"attr-"+version+".tar.gz",
checksum,
@@ -76,12 +76,12 @@ func init() {
})
}
func (t Toolchain) newACL(s *S) (pkg.Artifact, string) {
func (t Toolchain) newACL() (pkg.Artifact, string) {
const (
version = "2.3.2"
checksum = "-fY5nwH4K8ZHBCRXrzLdguPkqjKI6WIiGu4dBtrZ1o0t6AIU73w8wwJz_UyjIS0P"
)
return s.NewPackage(t, "acl", version, newTar(
return t.NewPackage("acl", version, newTar(
"https://download.savannah.nongnu.org/releases/acl/"+
"acl-"+version+".tar.gz",
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newArgpStandalone(s *S) (pkg.Artifact, string) {
func (t Toolchain) newArgpStandalone() (pkg.Artifact, string) {
const (
version = "1.3"
checksum = "vtW0VyO2pJ-hPyYmDI2zwSLS8QL0sPAUKC1t3zNYbwN2TmsaE-fADhaVtNd3eNFl"
)
return s.NewPackage(t, "argp-standalone", version, newTar(
return t.NewPackage("argp-standalone", version, newTar(
"http://www.lysator.liu.se/~nisse/misc/"+
"argp-standalone-"+version+".tar.gz",
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newBzip2(s *S) (pkg.Artifact, string) {
func (t Toolchain) newBzip2() (pkg.Artifact, string) {
const (
version = "1.0.8"
checksum = "cTLykcco7boom-s05H1JVsQi1AtChYL84nXkg_92Dm1Xt94Ob_qlMg_-NSguIK-c"
)
return s.NewPackage(t, "bzip2", version, newTar(
return t.NewPackage("bzip2", version, newTar(
"https://sourceware.org/pub/bzip2/bzip2-"+version+".tar.gz",
checksum,
pkg.TarGzip,

View File

@@ -8,12 +8,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newCMake(s *S) (pkg.Artifact, string) {
func (t Toolchain) newCMake() (pkg.Artifact, string) {
const (
version = "4.3.2"
checksum = "6QylwRVKletndTSkZTV2YBRwgd_9rUVgav_QW23HpjUgV21AVYZOUOal8tdBDmO7"
)
return s.NewPackage(t, "cmake", version, newFromGitHubRelease(
return t.NewPackage("cmake", version, newFromGitHubRelease(
"Kitware/CMake",
"v"+version,
"cmake-"+version+".tar.gz",

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newConnman(s *S) (pkg.Artifact, string) {
func (t Toolchain) newConnman() (pkg.Artifact, string) {
const (
version = "2.0"
checksum = "MhVTdJOhndnZn2SWd8URKo_Pj7Zvc14tntEbrVOf9L3yVWJvpb3v3Q6104tWJgtW"
)
return s.NewPackage(t, "connman", version, newTar(
return t.NewPackage("connman", version, newTar(
"https://git.kernel.org/pub/scm/network/connman/connman.git/"+
"snapshot/connman-"+version+".tar.gz",
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newCurl(s *S) (pkg.Artifact, string) {
func (t Toolchain) newCurl() (pkg.Artifact, string) {
const (
version = "8.20.0"
checksum = "xyHXwrngIRGMasuzhn-I5MSCOhktwINbsWt1f_LuR-5jRVvyx_g6U1EQfDLEbr9r"
)
return s.NewPackage(t, "curl", version, newTar(
return t.NewPackage("curl", version, newTar(
"https://curl.se/download/curl-"+version+".tar.bz2",
checksum,
pkg.TarBzip2,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newDBus(s *S) (pkg.Artifact, string) {
func (t Toolchain) newDBus() (pkg.Artifact, string) {
const (
version = "1.16.2"
checksum = "INwOuNdrDG7XW5ilW_vn8JSxEa444rRNc5ho97i84I1CNF09OmcFcV-gzbF4uCyg"
)
return s.NewPackage(t, "dbus", version, newFromGitLab(
return t.NewPackage("dbus", version, newFromGitLab(
"gitlab.freedesktop.org",
"dbus/dbus",
"dbus-"+version,
@@ -45,12 +45,12 @@ func init() {
})
}
func (t Toolchain) newXDGDBusProxy(s *S) (pkg.Artifact, string) {
func (t Toolchain) newXDGDBusProxy() (pkg.Artifact, string) {
const (
version = "0.1.7"
checksum = "UW5Pe-TP-XAaN-kTbxrkOQ7eYdmlAQlr2pdreLtPT0uwdAz-7rzDP8V_8PWuZBup"
)
return s.NewPackage(t, "xdg-dbus-proxy", version, newFromGitHub(
return t.NewPackage("xdg-dbus-proxy", version, newFromGitHub(
"flatpak/xdg-dbus-proxy",
version,
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newDTC(s *S) (pkg.Artifact, string) {
func (t Toolchain) newDTC() (pkg.Artifact, string) {
const (
version = "1.7.2"
checksum = "vUoiRynPyYRexTpS6USweT5p4SVHvvVJs8uqFkkVD-YnFjwf6v3elQ0-Etrh00Dt"
)
return s.NewPackage(t, "dtc", version, newTar(
return t.NewPackage("dtc", version, newTar(
"https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/"+
"dtc-v"+version+".tar.gz",
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newElfutils(s *S) (pkg.Artifact, string) {
func (t Toolchain) newElfutils() (pkg.Artifact, string) {
const (
version = "0.195"
checksum = "JrGnBD38w8Mj0ZxDw3fKlRBFcLvRKu8rcYnX35R9yTlUSYnzTazyLboG-a2CsJlu"
)
return s.NewPackage(t, "elfutils", version, newTar(
return t.NewPackage("elfutils", version, newTar(
"https://sourceware.org/elfutils/ftp/"+
version+"/elfutils-"+version+".tar.bz2",
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newFakeroot(s *S) (pkg.Artifact, string) {
func (t Toolchain) newFakeroot() (pkg.Artifact, string) {
const (
version = "1.37.2"
checksum = "4ve-eDqVspzQ6VWDhPS0NjW3aSenBJcPAJq_BFT7OOFgUdrQzoTBxZWipDAGWxF8"
)
return s.NewPackage(t, "fakeroot", version, newFromGitLab(
return t.NewPackage("fakeroot", version, newFromGitLab(
"salsa.debian.org",
"clint/fakeroot",
"upstream/"+version,

View File

@@ -4,12 +4,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newFlex(s *S) (pkg.Artifact, string) {
func (t Toolchain) newFlex() (pkg.Artifact, string) {
const (
version = "2.6.4"
checksum = "p9POjQU7VhgOf3x5iFro8fjhy0NOanvA7CTeuWS_veSNgCixIJshTrWVkc5XLZkB"
)
return s.NewPackage(t, "flex", version, newFromGitHubRelease(
return t.NewPackage("flex", version, newFromGitHubRelease(
"westes/flex",
"v"+version,
"flex-"+version+".tar.gz",

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newFreetype(s *S) (pkg.Artifact, string) {
func (t Toolchain) newFreetype() (pkg.Artifact, string) {
const (
version = "2.14.3"
checksum = "-WfLv8fVJNyCHpP_lriiDzOcVbBL9ajdQ3tl8AzIIUa9-8sVpU9irxOmSMgRHWYz"
)
return s.NewPackage(t, "freetype", version, newTar(
return t.NewPackage("freetype", version, newTar(
"https://download.savannah.gnu.org/releases/freetype/"+
"freetype-"+version+".tar.gz",
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newFuse(s *S) (pkg.Artifact, string) {
func (t Toolchain) newFuse() (pkg.Artifact, string) {
const (
version = "3.18.2"
checksum = "iL-7b7eUtmlVSf5cSq0dzow3UiqSjBmzV3cI_ENPs1tXcHdktkG45j1V12h-4jZe"
)
return s.NewPackage(t, "fuse", version, newFromGitHubRelease(
return t.NewPackage("fuse", version, newFromGitHubRelease(
"libfuse/libfuse",
"fuse-"+version,
"fuse-"+version+".tar.gz",

View File

@@ -7,12 +7,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newGit(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGit() (pkg.Artifact, string) {
const (
version = "2.54.0"
checksum = "7vGKtFOJGqY8DO4e8UMRax7dLgImXKQz5MMalec6MlgYrsarffSJjgOughwRFpSH"
)
return s.NewPackage(t, "git", version, newTar(
return t.NewPackage("git", version, newTar(
"https://www.kernel.org/pub/software/scm/git/"+
"git-"+version+".tar.gz",
checksum,
@@ -106,15 +106,14 @@ func init() {
}
// NewViaGit returns a [pkg.Artifact] for cloning a git repository.
func (s *S) NewViaGit(
t Toolchain,
func (t Toolchain) NewViaGit(
url, rev string,
checksum pkg.Checksum,
) pkg.Artifact {
return s.New(t, strings.TrimSuffix(
return t.New(strings.TrimSuffix(
path.Base(url),
".git",
)+"-src-"+path.Base(rev), THostNet, s.AppendPresets(t, nil,
)+"-src-"+path.Base(rev), THostNet, t.Append(nil,
NSSCACert,
Git,
), &checksum, nil, `
@@ -132,6 +131,6 @@ rm -rf /work/.git
}
// newTagRemote is a helper around NewViaGit for a tag on a git remote.
func (s *S) newTagRemote(t Toolchain, url, tag, checksum string) pkg.Artifact {
return s.NewViaGit(t, url, "refs/tags/"+tag, mustDecode(checksum))
func (t Toolchain) newTagRemote(url, tag, checksum string) pkg.Artifact {
return t.NewViaGit(url, "refs/tags/"+tag, mustDecode(checksum))
}

View File

@@ -7,12 +7,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newSPIRVHeaders(s *S) (pkg.Artifact, string) {
func (t Toolchain) newSPIRVHeaders() (pkg.Artifact, string) {
const (
version = "1.4.341.0"
checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD"
)
return s.NewPackage(t, "spirv-headers", version, newFromGitHub(
return t.NewPackage("spirv-headers", version, newFromGitHub(
"KhronosGroup/SPIRV-Headers",
"vulkan-sdk-"+version,
checksum,
@@ -52,12 +52,12 @@ func init() {
})
}
func (t Toolchain) newSPIRVTools(s *S) (pkg.Artifact, string) {
func (t Toolchain) newSPIRVTools() (pkg.Artifact, string) {
const (
version = "2026.1"
checksum = "ZSQPQx8NltCDzQLk4qlaVxyWRWeI_JtsjEpeFt3kezTanl9DTHfLixSUCezMFBjv"
)
return s.NewPackage(t, "spirv-tools", version, newFromGitHub(
return t.NewPackage("spirv-tools", version, newFromGitHub(
"KhronosGroup/SPIRV-Tools",
"v"+version,
checksum,
@@ -89,12 +89,12 @@ func init() {
})
}
func (t Toolchain) newGlslang(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGlslang() (pkg.Artifact, string) {
const (
version = "16.3.0"
checksum = "xyqDf8k3-D0_BXHGi0uLgMglnJ05Rf3j73QgbDs3sGtKNdBIQhY8JfqX1NcNoJQN"
)
return s.NewPackage(t, "glslang", version, newFromGitHub(
return t.NewPackage("glslang", version, newFromGitHub(
"KhronosGroup/glslang",
version,
checksum,
@@ -127,7 +127,7 @@ func init() {
})
}
func (t Toolchain) newSPIRVLLVMTranslator(s *S) (pkg.Artifact, string) {
func (t Toolchain) newSPIRVLLVMTranslator() (pkg.Artifact, string) {
const (
version = "22.1.2"
checksum = "JZAaV5ewYcm-35YA_U2BM2IcsQouZtX1BLZR0zh2vSlfEXMsT5OCtY4Gh5RJkcGy"
@@ -137,7 +137,7 @@ func (t Toolchain) newSPIRVLLVMTranslator(s *S) (pkg.Artifact, string) {
"cooperative_matrix_constant_null.spvasm",
}
switch s.arch {
switch t.arch {
case "arm64":
skipChecks = append(skipChecks,
// LLVM ERROR: unsupported calling convention
@@ -183,7 +183,7 @@ func (t Toolchain) newSPIRVLLVMTranslator(s *S) (pkg.Artifact, string) {
)
}
return s.NewPackage(t, "spirv-llvm-translator", version, newFromGitHub(
return t.NewPackage("spirv-llvm-translator", version, newFromGitHub(
"KhronosGroup/SPIRV-LLVM-Translator",
"v"+version, checksum,
), &PackageAttr{

View File

@@ -42,12 +42,12 @@ func skipGNUTests(tests ...int) string {
return buf.String()
}
func (t Toolchain) newM4(s *S) (pkg.Artifact, string) {
func (t Toolchain) newM4() (pkg.Artifact, string) {
const (
version = "1.4.21"
checksum = "pPa6YOo722Jw80l1OsH1tnUaklnPFjFT-bxGw5iAVrZTm1P8FQaWao_NXop46-pm"
)
return s.NewPackage(t, "m4", version, newTar(
return t.NewPackage("m4", version, newTar(
"https://ftpmirror.gnu.org/gnu/m4/m4-"+version+".tar.bz2",
checksum,
pkg.TarBzip2,
@@ -74,12 +74,12 @@ func init() {
})
}
func (t Toolchain) newBison(s *S) (pkg.Artifact, string) {
func (t Toolchain) newBison() (pkg.Artifact, string) {
const (
version = "3.8.2"
checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y"
)
return s.NewPackage(t, "bison", version, newTar(
return t.NewPackage("bison", version, newTar(
"https://ftpmirror.gnu.org/gnu/bison/bison-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -109,12 +109,12 @@ func init() {
})
}
func (t Toolchain) newSed(s *S) (pkg.Artifact, string) {
func (t Toolchain) newSed() (pkg.Artifact, string) {
const (
version = "4.10"
checksum = "TXTRFQJCyflb-bpBRI2S5Y1DpplwvT7-KfXtpqN4AdZgZ5OtI6yStn1-bkhDKx51"
)
return s.NewPackage(t, "sed", version, newTar(
return t.NewPackage("sed", version, newTar(
"https://ftpmirror.gnu.org/gnu/sed/sed-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -136,12 +136,12 @@ func init() {
})
}
func (t Toolchain) newAutoconf(s *S) (pkg.Artifact, string) {
func (t Toolchain) newAutoconf() (pkg.Artifact, string) {
const (
version = "2.73"
checksum = "yGabDTeOfaCUB0JX-h3REYLYzMzvpDwFmFFzHNR7QilChCUNE4hR6q7nma4viDYg"
)
return s.NewPackage(t, "autoconf", version, newTar(
return t.NewPackage("autoconf", version, newTar(
"https://ftpmirror.gnu.org/gnu/autoconf/autoconf-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -176,12 +176,12 @@ func init() {
})
}
func (t Toolchain) newAutomake(s *S) (pkg.Artifact, string) {
func (t Toolchain) newAutomake() (pkg.Artifact, string) {
const (
version = "1.18.1"
checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG"
)
return s.NewPackage(t, "automake", version, newTar(
return t.NewPackage("automake", version, newTar(
"https://ftpmirror.gnu.org/gnu/automake/automake-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -220,18 +220,18 @@ func init() {
})
}
func (t Toolchain) newLibtool(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibtool() (pkg.Artifact, string) {
const (
version = "2.5.4"
checksum = "pa6LSrQggh8mSJHQfwGjysAApmZlGJt8wif2cCLzqAAa2jpsTY0jZ-6stS3BWZ2Q"
)
return s.NewPackage(t, "libtool", version, newTar(
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.isStage0(),
SkipCheck: t.stage.isStage0(),
Check: []string{
"TESTSUITEFLAGS=" + jobsFlagE,
@@ -254,12 +254,12 @@ func init() {
})
}
func (t Toolchain) newGzip(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGzip() (pkg.Artifact, string) {
const (
version = "1.14"
checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q"
)
return s.NewPackage(t, "gzip", version, newTar(
return t.NewPackage("gzip", version, newTar(
"https://ftpmirror.gnu.org/gnu/gzip/gzip-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -280,12 +280,12 @@ func init() {
})
}
func (t Toolchain) newGettext(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGettext() (pkg.Artifact, string) {
const (
version = "1.0"
checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC"
)
return s.NewPackage(t, "gettext", version, newTar(
return t.NewPackage("gettext", version, newTar(
"https://ftpmirror.gnu.org/gnu/gettext/gettext-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -326,12 +326,12 @@ func init() {
})
}
func (t Toolchain) newDiffutils(s *S) (pkg.Artifact, string) {
func (t Toolchain) newDiffutils() (pkg.Artifact, string) {
const (
version = "3.12"
checksum = "9J5VAq5oA7eqwzS1Yvw-l3G5o-TccUrNQR3PvyB_lgdryOFAfxtvQfKfhdpquE44"
)
return s.NewPackage(t, "diffutils", version, newTar(
return t.NewPackage("diffutils", version, newTar(
"https://ftpmirror.gnu.org/gnu/diffutils/diffutils-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -359,12 +359,12 @@ func init() {
})
}
func (t Toolchain) newPatch(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPatch() (pkg.Artifact, string) {
const (
version = "2.8"
checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR"
)
return s.NewPackage(t, "patch", version, newTar(
return t.NewPackage("patch", version, newTar(
"https://ftpmirror.gnu.org/gnu/patch/patch-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -391,12 +391,12 @@ func init() {
})
}
func (t Toolchain) newBash(s *S) (pkg.Artifact, string) {
func (t Toolchain) newBash() (pkg.Artifact, string) {
const (
version = "5.3"
checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq"
)
return s.NewPackage(t, "bash", version, newTar(
return t.NewPackage("bash", version, newTar(
"https://ftpmirror.gnu.org/gnu/bash/bash-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -421,12 +421,12 @@ func init() {
})
}
func (t Toolchain) newCoreutils(s *S) (pkg.Artifact, string) {
func (t Toolchain) newCoreutils() (pkg.Artifact, string) {
const (
version = "9.11"
checksum = "t8UMed5wpFEoC56aa42_yidfOAaRGzOfj7MRtQkkqgGbpXiskNA8bd-EmVSQkZie"
)
return s.NewPackage(t, "coreutils", version, newTar(
return t.NewPackage("coreutils", version, newTar(
"https://ftpmirror.gnu.org/gnu/coreutils/coreutils-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -467,12 +467,12 @@ func init() {
})
}
func (t Toolchain) newTexinfo(s *S) (pkg.Artifact, string) {
func (t Toolchain) newTexinfo() (pkg.Artifact, string) {
const (
version = "7.3"
checksum = "RRmC8Xwdof7JuZJeWGAQ_GeASIHAuJFQMbNONXBz5InooKIQGmqmWRjGNGEr5n4-"
)
return s.NewPackage(t, "texinfo", version, newTar(
return t.NewPackage("texinfo", version, newTar(
"https://ftpmirror.gnu.org/gnu/texinfo/texinfo-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -500,12 +500,12 @@ func init() {
})
}
func (t Toolchain) newGperf(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGperf() (pkg.Artifact, string) {
const (
version = "3.3"
checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7"
)
return s.NewPackage(t, "gperf", version, newTar(
return t.NewPackage("gperf", version, newTar(
"https://ftpmirror.gnu.org/gperf/gperf-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -525,12 +525,12 @@ func init() {
})
}
func (t Toolchain) newGawk(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGawk() (pkg.Artifact, string) {
const (
version = "5.4.0"
checksum = "m0RkIolC-PI7EY5q8pcx5Y-0twlIW0Yp3wXXmV-QaHorSdf8BhZ7kW9F8iWomz0C"
)
return s.NewPackage(t, "gawk", version, newTar(
return t.NewPackage("gawk", version, newTar(
"https://ftpmirror.gnu.org/gnu/gawk/gawk-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -553,12 +553,12 @@ func init() {
})
}
func (t Toolchain) newGrep(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGrep() (pkg.Artifact, string) {
const (
version = "3.12"
checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1"
)
return s.NewPackage(t, "grep", version, newTar(
return t.NewPackage("grep", version, newTar(
"https://ftpmirror.gnu.org/gnu/grep/grep-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -586,12 +586,12 @@ func init() {
})
}
func (t Toolchain) newFindutils(s *S) (pkg.Artifact, string) {
func (t Toolchain) newFindutils() (pkg.Artifact, string) {
const (
version = "4.10.0"
checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6"
)
return s.NewPackage(t, "findutils", version, pkg.NewHTTPGet(
return t.NewPackage("findutils", version, pkg.NewHTTPGet(
nil, "https://ftpmirror.gnu.org/gnu/findutils/findutils-"+version+".tar.xz",
mustDecode(checksum),
), &PackageAttr{
@@ -617,12 +617,12 @@ func init() {
})
}
func (t Toolchain) newBC(s *S) (pkg.Artifact, string) {
func (t Toolchain) newBC() (pkg.Artifact, string) {
const (
version = "1.08.2"
checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy"
)
return s.NewPackage(t, "bc", version, newTar(
return t.NewPackage("bc", version, newTar(
"https://ftpmirror.gnu.org/gnu/bc/bc-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -646,12 +646,12 @@ func init() {
})
}
func (t Toolchain) newLibiconv(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibiconv() (pkg.Artifact, string) {
const (
version = "1.19"
checksum = "UibB6E23y4MksNqYmCCrA3zTFO6vJugD1DEDqqWYFZNuBsUWMVMcncb_5pPAr88x"
)
return s.NewPackage(t, "libiconv", version, newTar(
return t.NewPackage("libiconv", version, newTar(
"https://ftpmirror.gnu.org/gnu/libiconv/libiconv-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -669,12 +669,12 @@ func init() {
})
}
func (t Toolchain) newTar(s *S) (pkg.Artifact, string) {
func (t Toolchain) newTar() (pkg.Artifact, string) {
const (
version = "1.35"
checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA"
)
return s.NewPackage(t, "tar", version, newTar(
return t.NewPackage("tar", version, newTar(
"https://ftpmirror.gnu.org/gnu/tar/tar-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -711,12 +711,12 @@ func init() {
})
}
func (t Toolchain) newParallel(s *S) (pkg.Artifact, string) {
func (t Toolchain) newParallel() (pkg.Artifact, string) {
const (
version = "20260422"
checksum = "eTsepxgqhXpMEhPd55qh-W5y4vjKn0x9TD2mzbJCNZYtFf4lT4Wzoqr74HGJYBEH"
)
return s.NewPackage(t, "parallel", version, newTar(
return t.NewPackage("parallel", version, newTar(
"https://ftpmirror.gnu.org/gnu/parallel/parallel-"+version+".tar.bz2",
checksum,
pkg.TarBzip2,
@@ -745,12 +745,12 @@ func init() {
})
}
func (t Toolchain) newLibunistring(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibunistring() (pkg.Artifact, string) {
const (
version = "1.4.2"
checksum = "iW9BbfLoVlXjWoLTZ4AekQSu4cFBnLcZ4W8OHWbv0AhJNgD3j65_zqaLMzFKylg2"
)
return s.NewPackage(t, "libunistring", version, newTar(
return t.NewPackage("libunistring", version, newTar(
"https://ftpmirror.gnu.org/gnu/libunistring/libunistring-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -778,12 +778,12 @@ func init() {
})
}
func (t Toolchain) newLibtasn1(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibtasn1() (pkg.Artifact, string) {
const (
version = "4.21.0"
checksum = "9DYI3UYbfYLy8JsKUcY6f0irskbfL0fHZA91Q-JEOA3kiUwpodyjemRsYRjUpjuq"
)
return s.NewPackage(t, "libtasn1", version, newTar(
return t.NewPackage("libtasn1", version, newTar(
"https://ftpmirror.gnu.org/gnu/libtasn1/libtasn1-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -801,12 +801,12 @@ func init() {
})
}
func (t Toolchain) newReadline(s *S) (pkg.Artifact, string) {
func (t Toolchain) newReadline() (pkg.Artifact, string) {
const (
version = "8.3"
checksum = "r-lcGRJq_MvvBpOq47Z2Y1OI2iqrmtcqhTLVXR0xWo37ZpC2uT_md7gKq5o_qTMV"
)
return s.NewPackage(t, "readline", version, newTar(
return t.NewPackage("readline", version, newTar(
"https://ftpmirror.gnu.org/gnu/readline/readline-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -835,21 +835,21 @@ func init() {
})
}
func (t Toolchain) newGnuTLS(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGnuTLS() (pkg.Artifact, string) {
const (
version = "3.8.12"
checksum = "VPdP-nRydQQRJcnma-YA7CJYA_kzTJ2rb3QFeP6D27emSyInJ8sQ-Wzn518I38dl"
)
var configureExtra []KV
switch s.arch {
switch t.arch {
case "arm64":
configureExtra = []KV{
{"disable-hardware-acceleration"},
}
}
return s.NewPackage(t, "gnutls", version, s.newTagRemote(t,
return t.NewPackage("gnutls", version, t.newTagRemote(
"https://gitlab.com/gnutls/gnutls.git",
version, checksum,
), &PackageAttr{
@@ -1016,12 +1016,12 @@ func init() {
})
}
func (t Toolchain) newBinutils(s *S) (pkg.Artifact, string) {
func (t Toolchain) newBinutils() (pkg.Artifact, string) {
const (
version = "2.46.0"
checksum = "4kK1_EXQipxSqqyvwD4LbiMLFKCUApjq6PeG4XJP4dzxYGqDeqXfh8zLuTyOuOVR"
)
return s.NewPackage(t, "binutils", version, newTar(
return t.NewPackage("binutils", version, newTar(
"https://ftpmirror.gnu.org/gnu/binutils/binutils-"+version+".tar.bz2",
checksum,
pkg.TarBzip2,
@@ -1041,12 +1041,12 @@ func init() {
})
}
func (t Toolchain) newGMP(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGMP() (pkg.Artifact, string) {
const (
version = "6.3.0"
checksum = "yrgbgEDWKDdMWVHh7gPbVl56-sRtVVhfvv0M_LX7xMUUk_mvZ1QOJEAnt7g4i3k5"
)
return s.NewPackage(t, "gmp", version, newTar(
return t.NewPackage("gmp", version, newTar(
"https://gcc.gnu.org/pub/gcc/infrastructure/"+
"gmp-"+version+".tar.bz2",
checksum,
@@ -1071,12 +1071,12 @@ func init() {
})
}
func (t Toolchain) newMPFR(s *S) (pkg.Artifact, string) {
func (t Toolchain) newMPFR() (pkg.Artifact, string) {
const (
version = "4.2.2"
checksum = "wN3gx0zfIuCn9r3VAn_9bmfvAYILwrRfgBjYSD1IjLqyLrLojNN5vKyQuTE9kA-B"
)
return s.NewPackage(t, "mpfr", version, newTar(
return t.NewPackage("mpfr", version, newTar(
"https://gcc.gnu.org/pub/gcc/infrastructure/"+
"mpfr-"+version+".tar.bz2",
checksum,
@@ -1101,12 +1101,12 @@ func init() {
})
}
func (t Toolchain) newMPC(s *S) (pkg.Artifact, string) {
func (t Toolchain) newMPC() (pkg.Artifact, string) {
const (
version = "1.4.1"
checksum = "ZffaZyWkvIw0iPvRe5EJ7O-VvHtSkbbb3K_7SgPtK810NvGan7nbF0T5-6tozjQN"
)
return s.NewPackage(t, "mpc", version, newFromGitLab(
return t.NewPackage("mpc", version, newFromGitLab(
"gitlab.inria.fr",
"mpc/mpc",
version, checksum,
@@ -1140,19 +1140,19 @@ func init() {
})
}
func (t Toolchain) newGCC(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGCC() (pkg.Artifact, string) {
const (
version = "16.1.0"
checksum = "4ASoWbxaA2FW7PAB0zzHDPC5XnNhyaAyjtDPpGzceSLeYnEIXsNYZR3PA_Zu5P0K"
)
var configureExtra []KV
switch s.arch {
switch t.arch {
case "amd64", "arm64":
configureExtra = append(configureExtra, KV{"with-multilib-list", "''"})
}
return s.NewPackage(t, "gcc", version, newTar(
return t.NewPackage("gcc", version, newTar(
"https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/"+
"gcc-"+version+"/gcc-"+version+".tar.gz",
checksum,

View File

@@ -7,9 +7,9 @@ import (
)
// newGoBootstrap returns the Go bootstrap toolchain.
func (s *S) newGoBootstrap(t Toolchain) pkg.Artifact {
func (t Toolchain) newGoBootstrap() pkg.Artifact {
const checksum = "8o9JL_ToiQKadCTb04nvBDkp8O1xiWOolAxVEqaTGodieNe4lOFEjlOxN3bwwe23"
return s.New(t, "go1.4-bootstrap", 0, s.AppendPresets(t, nil,
return t.New("go1.4-bootstrap", 0, t.Append(nil,
Bash,
), nil, []string{
"CGO_ENABLED=0",
@@ -28,18 +28,17 @@ chmod -R +w ..
}
// newGo returns a specific version of the Go toolchain.
func (s *S) newGo(
t Toolchain,
func (t Toolchain) newGo(
version, checksum string,
env []string,
script string,
extra ...pkg.Artifact,
) pkg.Artifact {
name := "all"
if s.opts&OptSkipCheck != 0 {
if t.opts&OptSkipCheck != 0 {
name = "make"
}
return s.New(t, "go"+version, 0, s.AppendPresets(t, extra,
return t.New("go"+version, 0, t.Append(extra,
Bash,
), nil, slices.Concat([]string{
"CC=cc",
@@ -66,27 +65,27 @@ ln -s \
)))
}
func (t Toolchain) newGoLatest(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGoLatest() (pkg.Artifact, string) {
var (
bootstrapEnv []string
bootstrapExtra []pkg.Artifact
finalEnv []string
)
switch s.arch {
switch t.arch {
case "amd64":
bootstrapExtra = append(bootstrapExtra, s.newGoBootstrap(t))
bootstrapExtra = append(bootstrapExtra, t.newGoBootstrap())
case "arm64", "riscv64":
bootstrapEnv = append(bootstrapEnv, "GOROOT_BOOTSTRAP=/system")
bootstrapExtra = s.AppendPresets(t, bootstrapExtra, gcc)
bootstrapExtra = t.Append(bootstrapExtra, gcc)
finalEnv = append(finalEnv, "CGO_ENABLED=0")
default:
panic("unsupported target " + s.arch)
panic("unsupported target " + t.arch)
}
go119 := s.newGo(t,
go119 := t.newGo(
"1.19",
"9_e0aFHsIkVxWVGsp9T2RvvjOc3p4n9o9S8tkNe9Cvgzk_zI2FhRQB7ioQkeAAro",
append(bootstrapEnv, "CGO_ENABLED=0"), `
@@ -102,13 +101,13 @@ echo \
os/rawconn_test.go
`, bootstrapExtra...)
go121 := s.newGo(t,
go121 := t.newGo(
"1.21.13",
"YtrDka402BOAEwywx03Vz4QlVwoBiguJHzG7PuythMCPHXS8CVMLvzmvgEbu4Tzu",
[]string{"CGO_ENABLED=0"}, `
sed -i \
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+s.arch+`/obj.go
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
rm \
crypto/tls/handshake_client_test.go \
@@ -120,23 +119,23 @@ echo \
`, go119,
)
go123 := s.newGo(t,
go123 := t.newGo(
"1.23.12",
"wcI32bl1tkqbgcelGtGWPI4RtlEddd-PTd76Eb-k7nXA5LbE9yTNdIL9QSOOxMOs",
[]string{"CGO_ENABLED=0"}, `
sed -i \
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+s.arch+`/obj.go
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
`, go121,
)
go125 := s.newGo(t,
go125 := t.newGo(
"1.25.10",
"TwKwatkpwal-j9U2sDSRPEdM3YesI4Gm88YgGV59wtU-L85K9gA7UPy9SCxn6PMb",
[]string{"CGO_ENABLED=0"}, `
sed -i \
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+s.arch+`/obj.go
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
rm \
os/root_unix_test.go \
@@ -148,13 +147,13 @@ rm \
version = "1.26.3"
checksum = "lEiFocZFnN5fKvZzmwVdqc9pYUjAuhzqZGbuiOqxUP4XdcY8yECisKcqsQ_eNn1N"
)
return s.newGo(t,
return t.newGo(
version,
checksum,
finalEnv, `
sed -i \
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+s.arch+`/obj.go
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
sed -i \
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
internal/runtime/gc/scan/scan_amd64.go

View File

@@ -5,12 +5,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newGLib(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGLib() (pkg.Artifact, string) {
const (
version = "2.88.1"
checksum = "Rkszn6W4RHjyspyqfXdVAVawdwDJCuS0Zu0f7qot7tbJhnw2fUDoUUJB40m-1MCX"
)
return s.NewPackage(t, "glib", version, s.newTagRemote(t,
return t.NewPackage("glib", version, t.newTagRemote(
"https://gitlab.gnome.org/GNOME/glib.git",
version, checksum,
), &PackageAttr{

View File

@@ -2,8 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (s *S) newHakurei(
t Toolchain,
func (t Toolchain) newHakurei(
suffix, script string,
withHostname bool,
) pkg.Artifact {
@@ -15,7 +14,7 @@ go build -o /bin/hostname /usr/src/hostname/main.go
hostname = ""
}
return s.New(t, "hakurei"+suffix+"-"+hakureiVersion, 0, s.AppendPresets(t, nil,
return t.New("hakurei"+suffix+"-"+hakureiVersion, 0, t.Append(nil,
Go,
PkgConfig,
@@ -39,8 +38,8 @@ go build -o /bin/hostname /usr/src/hostname/main.go
cd /usr/src/hakurei
HAKUREI_VERSION='v`+hakureiVersion+`'
`+script, pkg.Path(AbsUsrSrc.Append("hakurei"), true, s.NewPatchedSource(
t, "hakurei", hakureiVersion, hakureiSource, false, hakureiPatches...,
`+script, pkg.Path(AbsUsrSrc.Append("hakurei"), true, t.NewPatchedSource(
"hakurei", hakureiVersion, hakureiSource, false, hakureiPatches...,
)), pkg.Path(AbsUsrSrc.Append("hostname", "main.go"), false, pkg.NewFile(
"hostname.go",
[]byte(`
@@ -60,8 +59,8 @@ func main() {
}
func init() {
native.MustRegister(&Artifact{
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
return s.newHakurei(t, "", `
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newHakurei("", `
mkdir -p /work/system/libexec/hakurei/
echo "Building hakurei for $(go env GOOS)/$(go env GOARCH)."
@@ -96,12 +95,12 @@ mkdir -p /work/system/bin/
ID: 388834,
})
native.MustRegister(&Artifact{
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
f: func(t Toolchain) (pkg.Artifact, string) {
name := "all"
if s.opts&OptSkipCheck != 0 {
if t.opts&OptSkipCheck != 0 {
name = "make"
}
return s.newHakurei(t, "-dist", `
return t.newHakurei("-dist", `
export HAKUREI_VERSION
DESTDIR=/work /usr/src/hakurei/`+name+`.sh
`, true), hakureiVersion

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newHwdata(s *S) (pkg.Artifact, string) {
func (t Toolchain) newHwdata() (pkg.Artifact, string) {
const (
version = "0.407"
checksum = "6p1XD0CRuzt6hLfjv4ShKBW934BexmoPkRrmwxD4J63fBVCzVBRHyF8pVJdW_Xjm"
)
return s.NewPackage(t, "hwdata", version, newFromGitHub(
return t.NewPackage("hwdata", version, newFromGitHub(
"vcrhonek/hwdata",
"v"+version, checksum,
), &PackageAttr{

View File

@@ -10,8 +10,8 @@ func init() {
Name: "earlyinit",
Description: "Rosa OS initramfs init program",
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
return s.newHakurei(t, "-early-init", `
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newHakurei("-early-init", `
mkdir -p /work/system/libexec/hakurei/
echo '# Building earlyinit.'
@@ -26,12 +26,12 @@ echo
},
})
}
func (t Toolchain) newImageSystem(s *S) (pkg.Artifact, string) {
return s.New(t, "system.img", TNoToolchain, s.AppendPresets(t, nil,
func (t Toolchain) newImageSystem() (pkg.Artifact, string) {
return t.New("system.img", TNoToolchain, t.Append(nil,
SquashfsTools,
), nil, nil, `
mksquashfs /mnt/system /work/system.img
`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, s.AppendPresets(t, nil,
`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.Append(nil,
Musl,
Mksh,
Toybox,
@@ -49,8 +49,8 @@ func init() {
f: Toolchain.newImageSystem,
})
}
func (t Toolchain) newImageInitramfs(s *S) (pkg.Artifact, string) {
return s.New(t, "initramfs", TNoToolchain, s.AppendPresets(t, nil,
func (t Toolchain) newImageInitramfs() (pkg.Artifact, string) {
return t.New("initramfs", TNoToolchain, t.Append(nil,
Zstd,
EarlyInit,
GenInitCPIO,

View File

@@ -11,8 +11,8 @@ var kernelSource = newTar(
pkg.TarGzip,
)
func (t Toolchain) newKernelSource(s *S) (pkg.Artifact, string) {
return s.New(t, "kernel-"+kernelVersion+"-src", 0, nil, nil, nil, `
func (t Toolchain) newKernelSource() (pkg.Artifact, string) {
return t.New("kernel-"+kernelVersion+"-src", 0, nil, nil, nil, `
mkdir -p /work/usr/src/
cp -r /usr/src/linux /work/usr/src/
chmod -R +w /work/usr/src/linux/
@@ -28,9 +28,9 @@ func init() {
})
}
func (t Toolchain) newKernelHeaders(s *S) (pkg.Artifact, string) {
func (t Toolchain) newKernelHeaders() (pkg.Artifact, string) {
const checksum = "lCmBNcMeUmXifg0vecKOPy3GAaFcJSmOPnf3wit9xYTDSTsFADPt1xxUFfmTn1fD"
return s.NewPackage(t, "kernel-headers", kernelVersion, kernelSource, &PackageAttr{
return t.NewPackage("kernel-headers", kernelVersion, kernelSource, &PackageAttr{
Flag: TEarly,
KnownChecksum: new(mustDecode(checksum)),
@@ -76,8 +76,8 @@ func init() {
})
}
func (t Toolchain) newKernel(s *S) (pkg.Artifact, string) {
return s.NewPackage(t, "kernel", kernelVersion, kernelSource, &PackageAttr{
func (t Toolchain) newKernel() (pkg.Artifact, string) {
return t.NewPackage("kernel", kernelVersion, kernelSource, &PackageAttr{
Env: []string{
"PATH=/system/sbin",
},
@@ -1283,8 +1283,8 @@ func init() {
})
}
func (t Toolchain) newGenInitCPIO(s *S) (pkg.Artifact, string) {
return s.New(t, "gen_init_cpio-"+kernelVersion, 0, nil, nil, nil, `
func (t Toolchain) newGenInitCPIO() (pkg.Artifact, string) {
return t.New("gen_init_cpio-"+kernelVersion, 0, nil, nil, nil, `
mkdir -p /work/system/bin/
cc -o /work/system/bin/gen_init_cpio /usr/src/linux/usr/gen_init_cpio.c
`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource)), kernelVersion
@@ -1298,12 +1298,12 @@ func init() {
})
}
func (t Toolchain) newFirmware(s *S) (pkg.Artifact, string) {
func (t Toolchain) newFirmware() (pkg.Artifact, string) {
const (
version = "20260410"
checksum = "J8PdQlGqwrivpskPzbL6xacqR6mlKtXpe5RpzFfVzKPAgG81ZRXsc3qrxwdGJbil"
)
return s.NewPackage(t, "firmware", version, newFromGitLab(
return t.NewPackage("firmware", version, newFromGitLab(
"gitlab.com",
"kernel-firmware/linux-firmware",
version,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newKmod(s *S) (pkg.Artifact, string) {
func (t Toolchain) newKmod() (pkg.Artifact, string) {
const (
version = "34.2"
checksum = "0K7POeTKxMhExsaTsnKAC6LUNsRSfe6sSZxWONPbOu-GI_pXOw3toU_BIoqfBhJV"
)
return s.NewPackage(t, "kmod", version, newTar(
return t.NewPackage("kmod", version, newTar(
"https://www.kernel.org/pub/linux/utils/kernel/"+
"kmod/kmod-"+version+".tar.gz",
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibarchive(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibarchive() (pkg.Artifact, string) {
const (
version = "3.8.7"
checksum = "CUJK4MDQmZmATClgQBH2Wt-7Ts4iiSUlg1J_TVb6-5IK3rVUgVLIMc5k-bnWB9w3"
)
return s.NewPackage(t, "libarchive", version, newFromGitHub(
return t.NewPackage("libarchive", version, newFromGitHub(
"libarchive/libarchive",
"v"+version, checksum,
), &PackageAttr{

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibmd(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibmd() (pkg.Artifact, string) {
const (
version = "1.2.0"
checksum = "1rJ6joAO0wwMZvSfnRNkc1MOhywyAq7SM8VmF92NvDtv7Qdl1LRbjm5fg_DFFtGj"
)
return s.NewPackage(t, "libmd", version, s.newTagRemote(t,
return t.NewPackage("libmd", version, t.newTagRemote(
"https://git.hadrons.org/git/libmd.git",
version, checksum,
), nil, &MakeHelper{
@@ -32,12 +32,12 @@ func init() {
})
}
func (t Toolchain) newLibbsd(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibbsd() (pkg.Artifact, string) {
const (
version = "0.12.2"
checksum = "NVS0xFLTwSP8JiElEftsZ-e1_C-IgJhHrHE77RwKt5178M7r087waO-zYx2_dfGX"
)
return s.NewPackage(t, "libbsd", version, s.newTagRemote(t,
return t.NewPackage("libbsd", version, t.newTagRemote(
"https://gitlab.freedesktop.org/libbsd/libbsd.git",
version, checksum,
), nil, &MakeHelper{

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibcap(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibcap() (pkg.Artifact, string) {
const (
version = "2.78"
checksum = "wFdUkBhFMD9InPnrBZyegWrlPSAg_9JiTBC-eSFyWWlmbzL2qjh2mKxr9Kx2a8ut"
)
return s.NewPackage(t, "libcap", version, newTar(
return t.NewPackage("libcap", version, newTar(
"https://git.kernel.org/pub/scm/libs/libcap/libcap.git/"+
"snapshot/libcap-"+version+".tar.gz",
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibconfig(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibconfig() (pkg.Artifact, string) {
const (
version = "1.8.2"
checksum = "fD32hjeAZuTz98g6WYHRwsxphrgrEFqxi5Z1jlJemPckPBfxpS3i5HgshAuA6vmT"
)
return s.NewPackage(t, "libconfig", version, newFromGitHub(
return t.NewPackage("libconfig", version, newFromGitHub(
"hyperrealm/libconfig",
"v"+version,
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibdisplayInfo(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibdisplayInfo() (pkg.Artifact, string) {
const (
version = "0.3.0"
checksum = "yjOqPUHHYgRtpqGw5RI1n2Q1_hO5j0LiFNMbjcRWV4Nf71XwwoC9fZMlKBDeLchT"
)
return s.NewPackage(t, "libdisplay-info", version, newFromGitLab(
return t.NewPackage("libdisplay-info", version, newFromGitLab(
"gitlab.freedesktop.org",
"emersion/libdisplay-info",
version, checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibepoxy(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibepoxy() (pkg.Artifact, string) {
const (
version = "1.5.10"
checksum = "OHI8wshrlGw6BMGrmSyejJtwzM2gPhyFJrTsKxULyKMmYrfgcOe7Iw2ibVoUND_Q"
)
return s.NewPackage(t, "libepoxy", version, newFromGitHub(
return t.NewPackage("libepoxy", version, newFromGitHub(
"anholt/libepoxy",
version,
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibev(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibev() (pkg.Artifact, string) {
const (
version = "4.33"
checksum = "774eSXV_4k8PySRprUDChbEwsw-kzjIFnJ3MpNOl5zDpamBRvC3BqPyRxvkwcL6_"
)
return s.NewPackage(t, "libev", version, newTar(
return t.NewPackage("libev", version, newTar(
"https://dist.schmorp.de/libev/Attic/libev-"+version+".tar.gz",
checksum,
pkg.TarGzip,

View File

@@ -6,12 +6,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newLibexpat(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibexpat() (pkg.Artifact, string) {
const (
version = "2.8.1"
checksum = "iMEtbOJhQfGof2GxSlxffQSI1va_NDDQ9VIuqcPbNZ0291Dr8wttD5QecYyjIQap"
)
return s.NewPackage(t, "libexpat", version, newFromGitHubRelease(
return t.NewPackage("libexpat", version, newFromGitHubRelease(
"libexpat/libexpat",
"R_"+strings.ReplaceAll(version, ".", "_"),
"expat-"+version+".tar.bz2",

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibffi(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibffi() (pkg.Artifact, string) {
const (
version = "3.5.2"
checksum = "2_Q-ZNBBbVhltfL5zEr0wljxPegUimTK4VeMSiwJEGksls3n4gj3lV0Ly3vviSFH"
)
return s.NewPackage(t, "libffi", version, newFromGitHubRelease(
return t.NewPackage("libffi", version, newFromGitHubRelease(
"libffi/libffi",
"v"+version,
"libffi-"+version+".tar.gz",

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibgd(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibgd() (pkg.Artifact, string) {
const (
version = "2.3.3"
checksum = "8T-sh1_FJT9K9aajgxzh8ot6vWIF-xxjcKAHvTak9MgGUcsFfzP8cAvvv44u2r36"
)
return s.NewPackage(t, "libgd", version, newFromGitHubRelease(
return t.NewPackage("libgd", version, newFromGitHubRelease(
"libgd/libgd",
"gd-"+version,
"libgd-"+version+".tar.gz", checksum,

View File

@@ -6,12 +6,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newLibpng(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibpng() (pkg.Artifact, string) {
const (
version = "1.6.58"
checksum = "m_a5lROJH7vmF3cMjqwTUqURuQLhV1JQx2ySPzcN3VPdgDB9pG3UINsIx_mtkr-t"
)
return s.NewPackage(t, "libpng", version, newTar(
return t.NewPackage("libpng", version, newTar(
"https://downloads.sourceforge.net/project/libpng/libpng"+
strings.Join(strings.SplitN(version, ".", 3)[:2], "")+
"/"+version+"/libpng-"+version+".tar.gz",

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibpsl(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibpsl() (pkg.Artifact, string) {
const (
version = "0.21.5"
checksum = "XjfxSzh7peG2Vg4vJlL8z4JZJLcXqbuP6pLWkrGCmRxlnYUFTKNBqWGHCxEOlCad"
)
return s.NewPackage(t, "libpsl", version, newFromGitHubRelease(
return t.NewPackage("libpsl", version, newFromGitHubRelease(
"rockdaboot/libpsl",
version,
"libpsl-"+version+".tar.gz",

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibseccomp(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibseccomp() (pkg.Artifact, string) {
const (
version = "2.6.0"
checksum = "mMu-iR71guPjFbb31u-YexBaanKE_nYPjPux-vuBiPfS_0kbwJdfCGlkofaUm-EY"
)
return s.NewPackage(t, "libseccomp", version, newFromGitHubRelease(
return t.NewPackage("libseccomp", version, newFromGitHubRelease(
"seccomp/libseccomp",
"v"+version,
"libseccomp-"+version+".tar.gz",

View File

@@ -6,12 +6,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newLibtirpc(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibtirpc() (pkg.Artifact, string) {
const (
version = "1.3.7"
checksum = "nzFfu7LNvnSNiNAryD1vtnNWnU-Xqee8KqfXUKoBf5yjb5-dkeRkYuRijdCoYLof"
)
return s.NewPackage(t, "libtirpc", version, s.newTagRemote(t,
return t.NewPackage("libtirpc", version, t.newTagRemote(
"git://linux-nfs.org/~steved/libtirpc",
"libtirpc-"+
strings.Join(strings.SplitN(version, ".", 3), "-"),

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibucontext(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibucontext() (pkg.Artifact, string) {
const (
version = "1.5.1"
checksum = "mUgeyJknjMxT-5fORzz-rqhZfP3Y7EZGBhOwvhuX7MsF4Pk9wkuwtrLf5IML-jWu"
)
return s.NewPackage(t, "libucontext", version, newFromGitHub(
return t.NewPackage("libucontext", version, newFromGitHub(
"kaniini/libucontext",
"libucontext-"+version,
checksum,
@@ -21,7 +21,7 @@ func (t Toolchain) newLibucontext(s *S) (pkg.Artifact, string) {
SkipConfigure: true,
InPlace: true,
Make: []string{
"ARCH=" + s.linuxArch(),
"ARCH=" + t.linuxArch(),
},
Install: "make prefix=/system DESTDIR=/work install",
}), version

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibxml2(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxml2() (pkg.Artifact, string) {
const (
version = "2.15.3"
checksum = "oJy74htGlEpf70KPvpW18fYJo0RQQkCXZRwqUz6NoXborS3HCq3Nm4gsyaSeNmUH"
)
return s.NewPackage(t, "libxml2", version, newFromGitLab(
return t.NewPackage("libxml2", version, newFromGitLab(
"gitlab.gnome.org",
"GNOME/libxml2",
"v"+version, checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibxslt(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxslt() (pkg.Artifact, string) {
const (
version = "1.1.45"
checksum = "67ks7v8od2oWaEGf23Sst_Xbn_8brQyolQjqxPoO-lK35k_WJhi2Px5JJgbk-nfn"
)
return s.NewPackage(t, "libxslt", version, newFromGitLab(
return t.NewPackage("libxslt", version, newFromGitLab(
"gitlab.gnome.org",
"GNOME/libxslt",
"v"+version, checksum,

View File

@@ -29,10 +29,10 @@ func litArgs(verbose bool, skipChecks ...string) string {
return "'" + strings.Join(args, " ") + "'"
}
func (t Toolchain) newEarlyCompilerRT(s *S) (pkg.Artifact, string) {
source, version := s.Load(t, llvmSource)
func (t Toolchain) newEarlyCompilerRT() (pkg.Artifact, string) {
source, version := t.Load(llvmSource)
major, _, _ := strings.Cut(version, ".")
return s.NewPackage(t, "early-compiler-rt", version, source, &PackageAttr{
return t.NewPackage("early-compiler-rt", version, source, &PackageAttr{
Flag: TExclusive,
}, &CMakeHelper{
Append: []string{"compiler-rt"},
@@ -71,10 +71,10 @@ ln -s \
"/work/system/lib/clang/` + major + `/lib/"
ln -s \
"clang_rt.crtbegin-` + s.linuxArch() + `.o" \
"clang_rt.crtbegin-` + t.linuxArch() + `.o" \
"/work/system/lib/${ROSA_TRIPLE}/crtbeginS.o"
ln -s \
"clang_rt.crtend-` + s.linuxArch() + `.o" \
"clang_rt.crtend-` + t.linuxArch() + `.o" \
"/work/system/lib/${ROSA_TRIPLE}/crtendS.o"
`,
},
@@ -97,9 +97,9 @@ func init() {
})
}
func (t Toolchain) newEarlyRuntimes(s *S) (pkg.Artifact, string) {
source, version := s.Load(t, llvmSource)
return s.NewPackage(t, "early-runtimes", version, source, &PackageAttr{
func (t Toolchain) newEarlyRuntimes() (pkg.Artifact, string) {
source, version := t.Load(llvmSource)
return t.NewPackage("early-runtimes", version, source, &PackageAttr{
Flag: TExclusive,
}, &CMakeHelper{
Append: []string{"runtimes"},
@@ -157,9 +157,9 @@ func init() {
})
}
func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLLVM() (pkg.Artifact, string) {
early := muslHeaders
if t.isStage0() {
if t.stage.isStage0() {
// The LLVM build system uses the system installation when building with
// LLVM_LINK_LLVM_DYLIB, since it builds runtimes after the fact, using
// the just-built toolchain. This is unacceptable in stage0 due to the
@@ -217,7 +217,7 @@ func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) {
}, ";") + "'"},
}
if !t.isStage0() {
if !t.stage.isStage0() {
skipChecks := []string{
// expensive, pointless to run here
"benchmarks",
@@ -247,7 +247,7 @@ func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) {
// unwind: fails on musl
"eh_frame_fde_pc_range",
}
switch s.arch {
switch t.arch {
case "arm64":
skipChecks = append(skipChecks,
// LLVM: intermittently crashes
@@ -257,7 +257,7 @@ func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) {
)
}
if s.opts&OptLLVMNoLTO == 0 {
if t.opts&OptLLVMNoLTO == 0 {
cache = append(cache, []KV{
// very expensive
{"LLVM_ENABLE_LTO", "Thin"},
@@ -273,8 +273,8 @@ func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) {
}...)
}
source, version := s.Load(t, llvmSource)
return s.NewPackage(t, "llvm", version, source, &PackageAttr{
source, version := t.Load(llvmSource)
return t.NewPackage("llvm", version, source, &PackageAttr{
Flag: TExclusive,
}, &CMakeHelper{
Append: []string{"llvm"},
@@ -291,7 +291,7 @@ ln -s clang++ /work/system/bin/c++
// installation into test environment, and the tests end up testing the
// system installation instead. Tests are disabled on stage0 and relies
// on 3-stage determinism to test later stages.
SkipTest: t.isStage0(),
SkipTest: t.stage.isStage0(),
Test: `
chmod +w /bin && ln -s \
@@ -325,8 +325,8 @@ func init() {
)
native.MustRegister(&Artifact{
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
return s.NewPatchedSource(t, "llvm", version, newFromGitHub(
f: func(t Toolchain) (pkg.Artifact, string) {
return t.NewPatchedSource("llvm", version, newFromGitHub(
"llvm/llvm-project",
"llvmorg-"+version,
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLMSensors(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLMSensors() (pkg.Artifact, string) {
const (
version = "3-6-2"
checksum = "7JYNutrihe-FP6r3ftf96uFZJJWPfxnBHL0ALSMA-vovaXVRr-sAjlLitw7WWpCI"
)
return s.NewPackage(t, "lm_sensors", version, newFromGitHub(
return t.NewPackage("lm_sensors", version, newFromGitHub(
"lm-sensors/lm-sensors",
"V"+version,
checksum,

View File

@@ -7,12 +7,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newMake(s *S) (pkg.Artifact, string) {
func (t Toolchain) newMake() (pkg.Artifact, string) {
const (
version = "4.4.1"
checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a"
)
return s.New(t, "make-"+version, TEarly, nil, nil, nil, `
return t.New("make-"+version, TEarly, nil, nil, nil, `
cd "$(mktemp -d)"
/usr/src/make/configure \
--prefix=/system \

View File

@@ -6,12 +6,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newLibglvnd(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibglvnd() (pkg.Artifact, string) {
const (
version = "1.7.0"
checksum = "eIQJK2sgFQDHdeFkQO87TrSUaZRFG4y2DrwA8Ut-sGboI59uw1OOiIVqq2AIwnGY"
)
return s.NewPackage(t, "libglvnd", version, newFromGitLab(
return t.NewPackage("libglvnd", version, newFromGitLab(
"gitlab.freedesktop.org",
"glvnd/libglvnd",
"v"+version,
@@ -50,12 +50,12 @@ func init() {
})
}
func (t Toolchain) newLibdrm(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibdrm() (pkg.Artifact, string) {
const (
version = "2.4.133"
checksum = "bfj296NcR9DndO11hqDbSRFPqaweSLMqRk3dlCPZpM6FONX1WZ9J4JdbTDMUd1rU"
)
return s.NewPackage(t, "libdrm", version, newFromGitLab(
return t.NewPackage("libdrm", version, newFromGitLab(
"gitlab.freedesktop.org",
"mesa/libdrm",
"libdrm-"+version,
@@ -87,12 +87,12 @@ func init() {
})
}
func (t Toolchain) newLibva(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibva() (pkg.Artifact, string) {
const (
version = "2.23.0"
checksum = "UmF5tPyWIG_w5kiR3KFpoYbF7UUcaak5tyc-RhOheNTwQlLkPlifreFYCM9FQxbq"
)
return s.NewPackage(t, "libva", version, newFromGitHub(
return t.NewPackage("libva", version, newFromGitHub(
"intel/libva",
version,
checksum,
@@ -129,12 +129,12 @@ func init() {
})
}
func (t Toolchain) newMesa(s *S) (pkg.Artifact, string) {
func (t Toolchain) newMesa() (pkg.Artifact, string) {
const (
version = "26.1.0"
checksum = "zU0fjqevySBaoi_5SLW3e2UffmGeBdxOuHmAHTH68n2hV-sjYoqg30koLqFXuk5y"
)
return s.NewPackage(t, "mesa", version, newFromGitLab(
return t.NewPackage("mesa", version, newFromGitLab(
"gitlab.freedesktop.org",
"mesa/mesa",
"mesa-"+version,

View File

@@ -7,12 +7,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newMeson(s *S) (pkg.Artifact, string) {
func (t Toolchain) newMeson() (pkg.Artifact, string) {
const (
version = "1.11.1"
checksum = "uvILRxdopwc6Dy17UbIeClcQr0qHqyTaqyk1M9OqWKN9PwB9N6UVAiyN8kSSz3r2"
)
return s.NewPackage(t, "meson", version, newFromGitHub(
return t.NewPackage("meson", version, newFromGitHub(
"mesonbuild/meson",
version,
checksum,

View File

@@ -2,16 +2,16 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newMksh(s *S) (pkg.Artifact, string) {
func (t Toolchain) newMksh() (pkg.Artifact, string) {
const (
version = "59c"
checksum = "0Zj-k4nXEu3IuJY4lvwD2OrC2t27GdZj8SPy4DoaeuBRH1padWb7oREpYgwY8JNq"
)
scriptTest := "./test.sh -C regress:no-ctty\n"
if s.opts&OptSkipCheck != 0 {
if t.opts&OptSkipCheck != 0 {
scriptTest = ""
}
return s.New(t, "mksh-"+version, 0, s.AppendPresets(t, nil,
return t.New("mksh-"+version, 0, t.Append(nil,
Perl,
Coreutils,
), nil, []string{

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newMuslFts(s *S) (pkg.Artifact, string) {
func (t Toolchain) newMuslFts() (pkg.Artifact, string) {
const (
version = "1.2.7"
checksum = "N_p_ZApX3eHt7xoDCw1hLf6XdJOw7ZSx7xPvpvAP0knG2zgU0zeN5w8tt5Pg60XJ"
)
return s.NewPackage(t, "musl-fts", version, newFromGitHub(
return t.NewPackage("musl-fts", version, newFromGitHub(
"void-linux/musl-fts",
"v"+version,
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newMuslObstack(s *S) (pkg.Artifact, string) {
func (t Toolchain) newMuslObstack() (pkg.Artifact, string) {
const (
version = "1.2.3"
checksum = "tVRY_KjIlkkMszcaRlkKdBVQHIXTT_T_TiMxbwErlILXrOBosocg8KklppZhNdCG"
)
return s.NewPackage(t, "musl-obstack", version, newFromGitHub(
return t.NewPackage("musl-obstack", version, newFromGitHub(
"void-linux/musl-obstack",
"v"+version,
checksum,

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (s *S) newMusl(t Toolchain, headers bool) (pkg.Artifact, string) {
func (t Toolchain) newMusl(headers bool) (pkg.Artifact, string) {
const (
version = "1.2.6"
checksum = "WtWb_OV_XxLDAB5NerOL9loLlHVadV00MmGk65PPBU1evaolagoMHfvpZp_vxEzS"
@@ -14,7 +14,7 @@ func (s *S) newMusl(t Toolchain, headers bool) (pkg.Artifact, string) {
SkipCheck: true,
Script: `
mkdir -p /work/system/bin
COMPAT_LINKER_NAME="ld-musl-` + s.linuxArch() + `.so.1"
COMPAT_LINKER_NAME="ld-musl-` + t.linuxArch() + `.so.1"
ln -vs ../lib/libc.so /work/system/bin/linker
ln -vs ../lib/libc.so /work/system/bin/ldd
ln -vs libc.so "/work/system/lib/${COMPAT_LINKER_NAME}"
@@ -34,9 +34,9 @@ rmdir -v /work/lib
}
env := []string{
"LDFLAGS=" + s.earlyLDFLAGS(false),
"LDFLAGS=" + t.earlyLDFLAGS(false),
}
if t.isStage0() {
if t.stage.isStage0() {
env = append(env,
"CC=clang",
"AR=ar",
@@ -44,7 +44,7 @@ rmdir -v /work/lib
)
}
return s.NewPackage(t, name, version, newTar(
return t.NewPackage(name, version, newTar(
"https://musl.libc.org/releases/musl-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -76,8 +76,8 @@ index 715948f4..c2fece68 100644
}
func init() {
native.MustRegister(&Artifact{
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
return s.newMusl(t, false)
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newMusl(false)
},
Name: "musl",
@@ -88,8 +88,8 @@ func init() {
})
native.MustRegister(&Artifact{
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
return s.newMusl(t, true)
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newMusl(true)
},
Name: "musl-headers",

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newNcurses(s *S) (pkg.Artifact, string) {
func (t Toolchain) newNcurses() (pkg.Artifact, string) {
const (
version = "6.6"
checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w"
)
return s.NewPackage(t, "ncurses", version, newTar(
return t.NewPackage("ncurses", version, newTar(
"https://ftpmirror.gnu.org/gnu/ncurses/ncurses-"+version+".tar.gz",
checksum,
pkg.TarGzip,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibmnl(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibmnl() (pkg.Artifact, string) {
const (
version = "1.0.5"
checksum = "DN-vbbvQDpxXJm0TJ6xlluILvfrB86avrCTX50XyE9SEFSAZ_o8nuKc5Gu0Am7-u"
)
return s.NewPackage(t, "libmnl", version, newTar(
return t.NewPackage("libmnl", version, newTar(
"https://www.netfilter.org/projects/libmnl/files/"+
"libmnl-"+version+".tar.bz2",
checksum,
@@ -50,12 +50,12 @@ func init() {
})
}
func (t Toolchain) newLibnftnl(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibnftnl() (pkg.Artifact, string) {
const (
version = "1.3.1"
checksum = "91ou66K-I17iX6DB6hiQkhhC_v4DFW5iDGzwjVRNbJNEmKqowLZBlh3FY-ZDO0r9"
)
return s.NewPackage(t, "libnftnl", version, s.newTagRemote(t,
return t.NewPackage("libnftnl", version, t.newTagRemote(
"https://git.netfilter.org/libnftnl",
"libnftnl-"+version, checksum,
), &PackageAttr{
@@ -92,12 +92,12 @@ func init() {
})
}
func (t Toolchain) newIPTables(s *S) (pkg.Artifact, string) {
func (t Toolchain) newIPTables() (pkg.Artifact, string) {
const (
version = "1.8.13"
checksum = "TUA-cFIAsiMvtRR-XzQvXzoIhJUOc9J2gQDJCbBRjmgmVfGfPTCf58wL7e-cUKVQ"
)
return s.NewPackage(t, "iptables", version, s.newTagRemote(t,
return t.NewPackage("iptables", version, t.newTagRemote(
"https://git.netfilter.org/iptables",
"v"+version, checksum,
), &PackageAttr{

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newNettle(s *S) (pkg.Artifact, string) {
func (t Toolchain) newNettle() (pkg.Artifact, string) {
const (
version = "4.0"
checksum = "6agC-vHzzoqAlaX3K9tX8yHgrm03HLqPZzVzq8jh_ePbuPMIvpxereu_uRJFmQK7"
)
return s.NewPackage(t, "nettle", version, newTar(
return t.NewPackage("nettle", version, newTar(
"https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz",
checksum,
pkg.TarGzip,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newNettle3(s *S) (pkg.Artifact, string) {
func (t Toolchain) newNettle3() (pkg.Artifact, string) {
const (
version = "3.10.2"
checksum = "07aXlj10X5llf67jIqRQAA1pgLSgb0w_JYggZVPuKNoc-B-_usb5Kr8FrfBe7g1S"
)
return s.NewPackage(t, "nettle", version, newTar(
return t.NewPackage("nettle", version, newTar(
"https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz",
checksum,
pkg.TarGzip,

View File

@@ -2,14 +2,14 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newNinja(s *S) (pkg.Artifact, string) {
func (t Toolchain) newNinja() (pkg.Artifact, string) {
const (
version = "1.13.2"
checksum = "ygKWMa0YV2lWKiFro5hnL-vcKbc_-RACZuPu0Io8qDvgQlZ0dxv7hPNSFkt4214v"
)
python, _ := s.Load(t, Python)
bash, _ := s.Load(t, Bash)
return s.New(t, "ninja-"+version, 0, []pkg.Artifact{
python, _ := t.Load(Python)
bash, _ := t.Load(Bash)
return t.New("ninja-"+version, 0, []pkg.Artifact{
python,
bash,
}, nil, nil, `
@@ -30,7 +30,7 @@ cp ninja /work/system/bin/
"googletest-1.16.0.tar.gz",
"NjLGvSbgPy_B-y-o1hdanlzEzaYeStFcvFGxpYV3KYlhrWWFRcugYhM3ZMzOA9B_",
pkg.TarGzip,
)), pkg.Path(AbsUsrSrc.Append("ninja"), true, s.NewPatchedSource(t,
)), pkg.Path(AbsUsrSrc.Append("ninja"), true, t.NewPatchedSource(
"ninja", version, newFromGitHub(
"ninja-build/ninja",
"v"+version,

View File

@@ -6,7 +6,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newNSS(s *S) (pkg.Artifact, string) {
func (t Toolchain) newNSS() (pkg.Artifact, string) {
const (
version = "3.123.1"
checksum = "g811Z_fc74ssg-s6BeXRG-ipSfJggD6hrxjVJxrOBIz98CE7piv0OLwzIRLMQpwR"
@@ -14,7 +14,7 @@ func (t Toolchain) newNSS(s *S) (pkg.Artifact, string) {
version0 = "4_38_2"
checksum0 = "25x2uJeQnOHIiq_zj17b4sYqKgeoU8-IsySUptoPcdHZ52PohFZfGuIisBreWzx0"
)
return s.NewPackage(t, "nss", version, newFromGitHub(
return t.NewPackage("nss", version, newFromGitHub(
"nss-dev/nss",
"NSS_"+strings.Join(strings.SplitN(version, ".", 3), "_")+"_RTM",
checksum,
@@ -102,8 +102,8 @@ rm buildcatrust/tests/test_nonhermetic.py
)
}
func (t Toolchain) newNSSCACert(s *S) (pkg.Artifact, string) {
return s.New(t, "nss-cacert", 0, s.AppendPresets(t, nil,
func (t Toolchain) newNSSCACert() (pkg.Artifact, string) {
return t.New("nss-cacert", 0, t.Append(nil,
Bash,
NSS,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newOpenSSL(s *S) (pkg.Artifact, string) {
func (t Toolchain) newOpenSSL() (pkg.Artifact, string) {
const (
version = "3.6.2"
checksum = "jH004dXTiE01Hp0kyShkWXwrSHEksZi4i_3v47D9H9Uz9LQ1aMwF7mrl2Tb4t_XA"
)
return s.NewPackage(t, "openssl", version, newFromGitHubRelease(
return t.NewPackage("openssl", version, newFromGitHubRelease(
"openssl/openssl",
"openssl-"+version,
"openssl-"+version+".tar.gz",

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newP11Kit(s *S) (pkg.Artifact, string) {
func (t Toolchain) newP11Kit() (pkg.Artifact, string) {
const (
version = "0.26.2"
checksum = "3ei-6DUVtYzrRVe-SubtNgRlweXd6H2qHmUu-_5qVyIn6gSTvZbGS2u79Y8IFb2N"
)
return s.NewPackage(t, "p11-kit", version, s.newTagRemote(t,
return t.NewPackage("p11-kit", version, t.newTagRemote(
"https://github.com/p11-glue/p11-kit.git",
version, checksum,
), nil, &MesonHelper{

View File

@@ -4,12 +4,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newPCRE2(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPCRE2() (pkg.Artifact, string) {
const (
version = "10.47"
checksum = "IbC24vVayju6nB9EhrBPSDexk22wDecdpyrjgC3nCZXkwTnUjq4CD2q5sopqu6CW"
)
return s.NewPackage(t, "pcre2", version, newFromGitHubRelease(
return t.NewPackage("pcre2", version, newFromGitHubRelease(
"PCRE2Project/pcre2",
"pcre2-"+version,
"pcre2-"+version+".tar.bz2",

View File

@@ -7,12 +7,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newPerl(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerl() (pkg.Artifact, string) {
const (
version = "5.42.2"
checksum = "Me_xFfgkRnVyG0sE6a74TktK2OUq9Z1LVJNEu_9RdZG3S2fbjfzNiuk2SJqHAgbm"
)
return s.NewPackage(t, "perl", version, newTar(
return t.NewPackage("perl", version, newTar(
"https://www.cpan.org/src/5.0/perl-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -65,8 +65,7 @@ func init() {
}
// newViaPerlModuleBuild installs a perl module via Build.PL.
func (s *S) newViaPerlModuleBuild(
t Toolchain,
func (t Toolchain) newViaPerlModuleBuild(
name, version string,
source pkg.Artifact,
patches []KV,
@@ -75,7 +74,7 @@ func (s *S) newViaPerlModuleBuild(
if name == "" || version == "" {
panic("names must be non-empty")
}
return s.New(t, "perl-"+name, 0, s.AppendPresets(t, nil,
return t.New("perl-"+name, 0, t.Append(nil,
slices.Concat(P{Perl}, extra)...,
), nil, nil, `
cd /usr/src/`+name+`
@@ -83,17 +82,17 @@ perl Build.PL --prefix=/system
./Build build
./Build test
./Build install --destdir=/work
`, pkg.Path(AbsUsrSrc.Append(name), true, s.NewPatchedSource(t,
`, pkg.Path(AbsUsrSrc.Append(name), true, t.NewPatchedSource(
"perl-"+name, version, source, false, patches...,
)))
}
func (t Toolchain) newPerlModuleBuild(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlModuleBuild() (pkg.Artifact, string) {
const (
version = "0.4234"
checksum = "ZKxEFG4hE1rqZt52zBL2LRZBMkYzhjb5-cTBXcsyA52EbPeeYyVxU176yAea8-Di"
)
return s.newViaPerlModuleBuild(t, "Module-Build", version, newTar(
return t.newViaPerlModuleBuild("Module-Build", version, newTar(
"https://cpan.metacpan.org/authors/id/L/LE/LEONT/"+
"Module-Build-"+version+".tar.gz",
checksum,
@@ -115,14 +114,13 @@ func init() {
}
// newViaPerlMakeMaker installs a perl module via Makefile.PL.
func (s *S) newViaPerlMakeMaker(
t Toolchain,
func (t Toolchain) newViaPerlMakeMaker(
name, version string,
source pkg.Artifact,
patches []KV,
extra ...ArtifactH,
) pkg.Artifact {
return s.NewPackage(t, "perl-"+name, version, source, &PackageAttr{
return t.NewPackage("perl-"+name, version, source, &PackageAttr{
// uses source tree as scratch space
Writable: true,
Chmod: true,
@@ -143,12 +141,12 @@ func (s *S) newViaPerlMakeMaker(
})...)
}
func (t Toolchain) newPerlLocaleGettext(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlLocaleGettext() (pkg.Artifact, string) {
const (
version = "1.07"
checksum = "cFq4BKFD1MWSoa7lsrPjpdo9kzPqd0jlRcBFUyL1L1isw8m3D_Sge_ff0MAu_9J3"
)
return s.newViaPerlMakeMaker(t, "Locale::gettext", version, newFromCPAN(
return t.newViaPerlMakeMaker("Locale::gettext", version, newFromCPAN(
"PVANDRY",
"Locale-gettext",
version,
@@ -167,12 +165,12 @@ func init() {
})
}
func (t Toolchain) newPerlPodParser(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlPodParser() (pkg.Artifact, string) {
const (
version = "1.67"
checksum = "RdURu9mOfExk_loCp6abxlcQV3FycSNbTqhRS9i6JUqnYfGGEgercK30g0gjYyqe"
)
return s.newViaPerlMakeMaker(t, "Pod::Parser", version, newFromCPAN(
return t.newViaPerlMakeMaker("Pod::Parser", version, newFromCPAN(
"MAREKR",
"Pod-Parser",
version,
@@ -191,12 +189,12 @@ func init() {
})
}
func (t Toolchain) newPerlSGMLS(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlSGMLS() (pkg.Artifact, string) {
const (
version = "1.1"
checksum = "aZijn4MUqD-wfyZgdcCruCwl4SgDdu25cNmJ4_UvdAk9a7uz4gzMQdoeB6DQ6QOy"
)
return s.newViaPerlMakeMaker(t, "SGMLS", version, newFromCPAN(
return t.newViaPerlMakeMaker("SGMLS", version, newFromCPAN(
"RAAB",
"SGMLSpm",
version,
@@ -229,12 +227,12 @@ func init() {
})
}
func (t Toolchain) newPerlTermReadKey(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlTermReadKey() (pkg.Artifact, string) {
const (
version = "2.38"
checksum = "qerL8Xo7kD0f42PZoiEbmE8Roc_S9pOa27LXelY4DN_0UNy_u5wLrGHI8utNlaiI"
)
return s.newViaPerlMakeMaker(t, "Term::ReadKey", version, newFromCPAN(
return t.newViaPerlMakeMaker("Term::ReadKey", version, newFromCPAN(
"JSTOWE",
"TermReadKey",
version,
@@ -253,12 +251,12 @@ func init() {
})
}
func (t Toolchain) newPerlTextCharWidth(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlTextCharWidth() (pkg.Artifact, string) {
const (
version = "0.04"
checksum = "G2p5RHU4_HiZ23ZusBA_enTlVMxz0J4esUx4CGcOPhY6xYTbp-aXWRN6lYZpzBw2"
)
return s.newViaPerlMakeMaker(t, "Text::CharWidth", version, newFromCPAN(
return t.newViaPerlMakeMaker("Text::CharWidth", version, newFromCPAN(
"KUBOTA",
"Text-CharWidth",
version,
@@ -277,12 +275,12 @@ func init() {
})
}
func (t Toolchain) newPerlTextWrapI18N(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlTextWrapI18N() (pkg.Artifact, string) {
const (
version = "0.06"
checksum = "Vmo89qLgxUqyQ6QmWJVqu60aQAUjrNKRjFQSXGnvClxofzRjiCa6idzPgJ4VkixM"
)
return s.newViaPerlMakeMaker(t, "Text::WrapI18N", version, newFromCPAN(
return t.newViaPerlMakeMaker("Text::WrapI18N", version, newFromCPAN(
"KUBOTA",
"Text-WrapI18N",
version,
@@ -307,12 +305,12 @@ func init() {
})
}
func (t Toolchain) newPerlMIMECharset(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlMIMECharset() (pkg.Artifact, string) {
const (
version = "1.013.1"
checksum = "Ou_ukcrOa1cgtE3mptinb-os3bdL1SXzbRDFZQF3prrJj-drc3rp_huay7iDLJol"
)
return s.newViaPerlMakeMaker(t, "MIME::Charset", version, newFromCPAN(
return t.newViaPerlMakeMaker("MIME::Charset", version, newFromCPAN(
"NEZUMI",
"MIME-Charset",
version,
@@ -331,12 +329,12 @@ func init() {
})
}
func (t Toolchain) newPerlUnicodeLineBreak(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlUnicodeLineBreak() (pkg.Artifact, string) {
const (
version = "2019.001"
checksum = "ZHVkh7EDgAUHnTpvXsnPAuWpgNoBImtY_9_8TIbo2co_WgUwEb0MtXPhI8pAZ5OH"
)
return s.newViaPerlMakeMaker(t, "Unicode::LineBreak", version, newFromCPAN(
return t.newViaPerlMakeMaker("Unicode::LineBreak", version, newFromCPAN(
"NEZUMI",
"Unicode-LineBreak",
version,
@@ -361,12 +359,12 @@ func init() {
})
}
func (t Toolchain) newPerlYAMLTiny(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlYAMLTiny() (pkg.Artifact, string) {
const (
version = "1.76"
checksum = "V1MV4KPym1LxSw8CRXqPR3K-l1hGHbT5Ob4t-9xju6R9X_CWyw6hI8wsMaNdHdBY"
)
return s.newViaPerlMakeMaker(t, "YAML::Tiny", version, newFromCPAN(
return t.newViaPerlMakeMaker("YAML::Tiny", version, newFromCPAN(
"ETHER",
"YAML-Tiny",
version,
@@ -385,12 +383,12 @@ func init() {
})
}
func (t Toolchain) newPerlTestCmd(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPerlTestCmd() (pkg.Artifact, string) {
const (
version = "1.09"
checksum = "gpGUwyC9IozDiYSgW_kXARNfXsTPFa6cTowJmmCBbPqcs2-pONZca_SB06FGy-7H"
)
return s.newViaPerlMakeMaker(t, "Test::Cmd", version, newFromCPAN(
return t.newViaPerlMakeMaker("Test::Cmd", version, newFromCPAN(
"NEILB",
"Test-Cmd",
version,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newPixman(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPixman() (pkg.Artifact, string) {
const (
version = "0.46.4"
checksum = "iECDxLG9SxUrvGHqeDoaBa-b3uqdT5DC4zudjtrwb8Wodq82pyacmFNEAo4SDsiE"
)
return s.NewPackage(t, "pixman", version, newFromGitLab(
return t.NewPackage("pixman", version, newFromGitLab(
"gitlab.freedesktop.org",
"pixman/pixman",
"pixman-"+version,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newPkgConfig(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPkgConfig() (pkg.Artifact, string) {
const (
version = "0.29.2"
checksum = "6UsGqEMA8EER_5b9N0b32UCqiRy39B6_RnPfvuslWhtFV1qYD4DfS10crGZN_TP2"
)
return s.NewPackage(t, "pkg-config", version, newFromGitLab(
return t.NewPackage("pkg-config", version, newFromGitLab(
"gitlab.freedesktop.org",
"pkg-config/pkg-config",
"pkg-config-"+version,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newProcps(s *S) (pkg.Artifact, string) {
func (t Toolchain) newProcps() (pkg.Artifact, string) {
const (
version = "4.0.6"
checksum = "pl_fZLvDlv6iZTkm8l_tHFpzTDVFGCiSJEs3eu0zAX6u36AV36P_En8K7JPScRWM"
)
return s.NewPackage(t, "procps", version, newFromGitLab(
return t.NewPackage("procps", version, newFromGitLab(
"gitlab.com",
"procps-ng/procps",
"v"+version,

View File

@@ -7,12 +7,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newPython(s *S) (pkg.Artifact, string) {
func (t Toolchain) newPython() (pkg.Artifact, string) {
const (
version = "3.14.5"
checksum = "zYIpDlk2ftZ-UVGCQS1rthle2OHoyXV653ztWiopKV1NhmIJf1K2hHbkwM4DozQ9"
)
return s.NewPackage(t, "python", version, newTar(
return t.NewPackage("python", version, newTar(
"https://www.python.org/ftp/python/"+version+
"/Python-"+version+".tgz",
checksum,
@@ -73,7 +73,7 @@ index 19aea290b58..51603ba9510 100644
// _ctypes appears to infer something from the linker name
"LDFLAGS=-Wl,--dynamic-linker=/system/lib/" +
"ld-musl-" + s.linuxArch() + ".so.1",
"ld-musl-" + t.linuxArch() + ".so.1",
},
}, &MakeHelper{
Check: []string{"test"},
@@ -201,8 +201,8 @@ func (s *S) newPythonPackage(
) {
name = "python-" + name
s.MustRegister(&Artifact{
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
return s.NewPackage(t, name, version, source, attrP, attr, slices.Concat(
f: func(t Toolchain) (pkg.Artifact, string) {
return t.NewPackage(name, version, source, attrP, attr, slices.Concat(
P{Python},
extra,
build,
@@ -353,9 +353,9 @@ func init() {
func init() {
native.MustRegister(&Artifact{
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
source, version := s.Load(t, llvmSource)
return s.NewPackage(t, "lit", version, source, nil, &PipHelper{
f: func(t Toolchain) (pkg.Artifact, string) {
source, version := t.Load(llvmSource)
return t.NewPackage("lit", version, source, nil, &PipHelper{
Append: []string{"llvm", "utils", "lit"},
// already checked during llvm
SkipCheck: true,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newQEMU(s *S) (pkg.Artifact, string) {
func (t Toolchain) newQEMU() (pkg.Artifact, string) {
const (
version = "11.0.0"
checksum = "C64gdi_Tkdg2fTwD9ERxtWGcf8vNn_6UvczW0c-x0KW1NZtd3NbEOIrlDhYGn15n"
)
return s.NewPackage(t, "qemu", version, newTar(
return t.NewPackage("qemu", version, newTar(
"https://download.qemu.org/qemu-"+version+".tar.bz2",
checksum,
pkg.TarBzip2,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newRdfind(s *S) (pkg.Artifact, string) {
func (t Toolchain) newRdfind() (pkg.Artifact, string) {
const (
version = "1.8.0"
checksum = "PoaeJ2WIG6yyfe5VAYZlOdAQiR3mb3WhAUMj2ziTCx_IIEal4640HMJUb4SzU9U3"
)
return s.NewPackage(t, "rdfind", version, newTar(
return t.NewPackage("rdfind", version, newTar(
"https://rdfind.pauldreik.se/rdfind-"+version+".tar.gz",
checksum,
pkg.TarGzip,

View File

@@ -32,12 +32,13 @@ func WriteReport(msg message.Msg, w io.Writer, c *pkg.Cache) error {
zero [wordSize]byte
buf [len(pkg.ID{}) + wordSize]byte
)
t := native.Std()
for _, p := range native.Collect() {
a, _ := native.Load(Std, p)
meta := native.Get(p)
if meta == nil {
return errors.New("artifact " + p.String() + " in inconsistent state")
}
a, _ := t.MustLoad(p)
if _, ok := a.(pkg.FileArtifact); ok {
msg.Verbosef("skipping file artifact %s", meta.Name)
continue

View File

@@ -104,49 +104,46 @@ func (s *S) earlyLDFLAGS(static bool) string {
return p
}
// Toolchain denotes the infrastructure to compile a [pkg.Artifact] on.
type Toolchain uint32
const (
// _toolchainBusybox denotes a busybox installation from the busyboxBin
// binary distribution. This is defined as a toolchain to make use of the
// toolchain abstractions to preprocess toolchainGentoo and is not a real,
// _stageBusybox denotes a busybox installation from the busyboxBin
// binary distribution. This is defined as a [Stage] to make use of the
// toolchain abstractions to preprocess stageGentoo and is not a real,
// functioning toolchain. It does not contain any compilers.
_toolchainBusybox Toolchain = iota
_stageBusybox Stage = iota
// toolchainGentoo denotes the toolchain in a Gentoo stage3 tarball. Special
// care must be taken to compile correctly against this toolchain.
toolchainGentoo
// stageGentoo denotes the toolchain in a Gentoo stage3 tarball. Special
// care must be taken to compile correctly against this stage.
stageGentoo
// toolchainIntermediateGentoo is like to toolchainIntermediate, but
// compiled against toolchainGentoo.
toolchainIntermediateGentoo
// stageIntermediateGentoo is like stageIntermediate, but compiled against
// stageGentoo.
stageIntermediateGentoo
// toolchainStdGentoo is like Std, but bootstrapped from toolchainGentoo.
// This toolchain creates the first [Stage0] distribution.
toolchainStdGentoo
// stageStdGentoo is like Std, but bootstrapped from stageGentoo. This
// toolchain creates the first [Stage0] distribution.
stageStdGentoo
// toolchainStage0 denotes the stage0 toolchain. Special care must be taken
// stageEarly denotes the stage0 toolchain. Special care must be taken
// to compile correctly against this toolchain.
toolchainStage0
stageEarly
// toolchainIntermediate denotes the intermediate toolchain compiled against
// toolchainStage0. This toolchain should be functionally identical to [Std]
// stageIntermediate denotes the intermediate toolchain compiled against
// stageEarly. This toolchain should be functionally identical to [Std]
// and is used to bootstrap [Std].
toolchainIntermediate
stageIntermediate
// Std denotes the standard Rosa OS toolchain.
Std
// _toolchainEnd is the total number of toolchains available and does not
// denote a valid toolchain.
_toolchainEnd
// _stageEnd is the total number of stages available and does not denote a
// valid toolchain.
_stageEnd
)
// isStage0 returns whether t is a stage0 toolchain.
func (t Toolchain) isStage0() bool {
func (t Stage) isStage0() bool {
switch t {
case toolchainGentoo, toolchainStage0:
case stageGentoo, stageEarly:
return true
default:
return false
@@ -154,9 +151,9 @@ func (t Toolchain) isStage0() bool {
}
// isIntermediate returns whether t is an intermediate toolchain.
func (t Toolchain) isIntermediate() bool {
func (t Stage) isIntermediate() bool {
switch t {
case toolchainIntermediateGentoo, toolchainIntermediate:
case stageIntermediateGentoo, stageIntermediate:
return true
default:
return false
@@ -164,9 +161,9 @@ func (t Toolchain) isIntermediate() bool {
}
// isStd returns whether t is considered functionally equivalent to [Std].
func (t Toolchain) isStd() bool {
func (t Stage) isStd() bool {
switch t {
case toolchainStdGentoo, Std:
case stageStdGentoo, Std:
return true
default:
return false
@@ -224,8 +221,7 @@ const (
)
// New returns a [pkg.Artifact] based on a [Toolchain] via s.
func (s *S) New(
t Toolchain,
func (t Toolchain) New(
name string,
flag int,
extra []pkg.Artifact,
@@ -238,21 +234,21 @@ func (s *S) New(
const lcMessages = "LC_MESSAGES=C.UTF-8"
var support []pkg.Artifact
switch t {
case _toolchainBusybox:
switch t.stage {
case _stageBusybox:
name += "-early"
support = slices.Concat([]pkg.Artifact{s.newBusyboxBin()}, extra)
support = slices.Concat([]pkg.Artifact{t.newBusyboxBin()}, extra)
env = fixupEnviron(env, nil, "/system/bin")
case toolchainGentoo, toolchainStage0:
case stageGentoo, stageEarly:
name += "-boot"
support = append(support, extra...)
support = append(support, cureEtc{})
if t == toolchainStage0 {
a, _ := s.Load(t, stage0Dist)
if t.stage == stageEarly {
a, _ := t.Load(stage0Dist)
support = append(support, a)
} else {
support = append(support, s.New(_toolchainBusybox, "gentoo", 0, nil, nil, nil, `
support = append(support, t.S.New(_stageBusybox).New("gentoo", 0, nil, nil, nil, `
tar -C /work -xf /usr/src/stage3.tar.xz
rm -rf /work/dev/ /work/proc/
ln -vs ../usr/bin /work/bin
@@ -263,22 +259,22 @@ mkdir -vp /work/system/bin
.)
`, pkg.Path(AbsUsrSrc.Append("stage3.tar.xz"), false,
pkg.NewHTTPGet(
nil, s.gentooStage3,
s.gentooStage3Checksum,
nil, t.gentooStage3,
t.gentooStage3Checksum,
),
)))
}
env = fixupEnviron(env, []string{
EnvTriplet + "=" + s.triple(),
EnvTriplet + "=" + t.triple(),
lcMessages,
"LDFLAGS=" + s.earlyLDFLAGS(true),
"LDFLAGS=" + t.earlyLDFLAGS(true),
}, "/system/bin",
"/usr/bin",
)
case toolchainIntermediateGentoo, toolchainStdGentoo,
toolchainIntermediate, Std:
if t.isIntermediate() {
case stageIntermediateGentoo, stageStdGentoo,
stageIntermediate, Std:
if t.stage.isIntermediate() {
name += "-std"
}
@@ -292,7 +288,7 @@ mkdir -vp /work/system/bin
base = Musl
}
support = slices.Concat(extra, s.AppendPresets(t-1, []pkg.Artifact{
support = slices.Concat(extra, t.S.New(t.stage-1).Append([]pkg.Artifact{
cureEtc{newIANAEtc()},
},
base,
@@ -300,16 +296,16 @@ mkdir -vp /work/system/bin
toybox,
))
env = fixupEnviron(env, []string{
EnvTriplet + "=" + s.triple(),
EnvTriplet + "=" + t.triple(),
lcMessages,
}, "/system/bin", "/bin")
default:
panic("unsupported toolchain " + strconv.Itoa(int(t)))
panic("unsupported toolchain " + strconv.Itoa(int(t.stage)))
}
return pkg.NewExec(
name, s.arch, knownChecksum, pkg.ExecTimeoutMax,
name, t.arch, knownChecksum, pkg.ExecTimeoutMax,
flag&THostNet != 0,
flag&TExclusive != 0,
fhs.AbsRoot, env,
@@ -328,8 +324,7 @@ mkdir -vp /work/system/bin
// NewPatchedSource returns [pkg.Artifact] of source with patches applied. If
// passthrough is true, source is returned as is for zero length patches.
func (s *S) NewPatchedSource(
t Toolchain,
func (t Toolchain) NewPatchedSource(
name, version string,
source pkg.Artifact,
passthrough bool,
@@ -362,7 +357,7 @@ cat /usr/src/` + name + `-patches/* | \
`
aname += "-patched"
}
return s.New(t, aname, 0, s.AppendPresets(t, nil,
return t.New(aname, 0, t.Append(nil,
Patch,
), nil, nil, script, paths...)
}
@@ -431,42 +426,34 @@ func paGet() pa { return paPool.Get().(pa) }
// paPut returns a pa to paPool.
func paPut(pv pa) { clear(pv); paPool.Put(pv) }
// appendPreset recursively appends a [PArtifact] and its runtime dependencies.
func (s *S) appendPreset(
t Toolchain,
a []pkg.Artifact,
pv pa, p ArtifactH,
) []pkg.Artifact {
// appendHandle recursively appends an [Artifact] named by its handle, and its
// runtime dependencies.
func (t Toolchain) appendHandle(a []pkg.Artifact, pv pa, p ArtifactH) []pkg.Artifact {
if _, ok := pv[p]; ok {
return a
}
pv[p] = struct{}{}
for _, d := range s.Get(p).Dependencies {
a = s.appendPreset(t, a, pv, d)
for _, d := range t.MustGet(p).Dependencies {
a = t.appendHandle(a, pv, d)
}
d, _ := s.Load(t, p)
d, _ := t.Load(p)
return append(a, d)
}
// AppendPresets recursively appends multiple [PArtifact] and their runtime
// dependencies.
func (s *S) AppendPresets(
t Toolchain,
a []pkg.Artifact,
presets ...ArtifactH,
) []pkg.Artifact {
// Append recursively appends multiple [Artifact] named by their handles, and
// their runtime dependencies.
func (t Toolchain) Append(a []pkg.Artifact, handles ...ArtifactH) []pkg.Artifact {
pv := paGet()
for _, p := range presets {
a = s.appendPreset(t, a, pv, p)
for _, p := range handles {
a = t.appendHandle(a, pv, p)
}
paPut(pv)
return a
}
// NewPackage constructs a [pkg.Artifact] via a build system helper.
func (s *S) NewPackage(
t Toolchain,
func (t Toolchain) NewPackage(
name, version string,
source pkg.Artifact,
attr *PackageAttr,
@@ -488,10 +475,10 @@ func (s *S) NewPackage(
{
pv := paGet()
for _, p := range helper.extra(attr.Flag) {
extraRes = s.appendPreset(t, extraRes, pv, p)
extraRes = t.appendHandle(extraRes, pv, p)
}
for _, p := range extra {
extraRes = s.appendPreset(t, extraRes, pv, p)
extraRes = t.appendHandle(extraRes, pv, p)
}
paPut(pv)
}
@@ -535,19 +522,18 @@ cd '/usr/src/` + name + `/'
panic("cannot remain in root")
}
return s.New(
t,
return t.New(
name+"-"+version,
attr.Flag,
extraRes,
attr.KnownChecksum,
attr.Env,
scriptEarly+helper.script(s, name),
scriptEarly+helper.script(t.S, name),
slices.Concat(attr.Paths, []pkg.ExecPath{
pkg.Path(AbsUsrSrc.Append(
name+sourceSuffix,
), attr.Writable || wantsWrite, s.NewPatchedSource(
t, name, version, source, !attr.Chmod && !wantsChmod, attr.Patches...,
), attr.Writable || wantsWrite, t.NewPatchedSource(
name, version, source, !attr.Chmod && !wantsChmod, attr.Patches...,
)),
})...,
)

View File

@@ -78,7 +78,7 @@ func TestCureAll(t *testing.T) {
t.Parallel()
for _, p := range rosa.Native().Collect() {
a, _ := rosa.Native().Load(rosa.Std, p)
a, _ := rosa.Native().Std().MustLoad(p)
meta := rosa.Native().MustGet(p)
t.Run(meta.Name, func(t *testing.T) {
t.Parallel()
@@ -93,13 +93,13 @@ func TestCureAll(t *testing.T) {
}
func BenchmarkStage3(b *testing.B) {
s := rosa.Native().Clone()
t := rosa.Native().Clone().Std()
for b.Loop() {
s.Load(rosa.Std, rosa.LLVM)
t.MustLoad(rosa.LLVM)
b.StopTimer()
s.DropCaches("", 0)
t.DropCaches("", 0)
b.StartTimer()
}
}

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newRsync(s *S) (pkg.Artifact, string) {
func (t Toolchain) newRsync() (pkg.Artifact, string) {
const (
version = "3.4.2"
checksum = "t7PxS4WHXzefLMKKc_3hJgxUmlGG6KgHMZ8i4DZvCQAUAizxbclNKwfLyOHyq5BX"
)
return s.NewPackage(t, "rsync", version, newTar(
return t.NewPackage("rsync", version, newTar(
"https://download.samba.org/pub/rsync/src/"+
"rsync-"+version+".tar.gz",
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newSquashfsTools(s *S) (pkg.Artifact, string) {
func (t Toolchain) newSquashfsTools() (pkg.Artifact, string) {
const (
version = "4.7.5"
checksum = "rF52wLQP-jeAmcD-48wqJcck8ZWRFwkax3T-7snaRf5EBnCQQh0YypMY9lwcivLz"
)
return s.NewPackage(t, "squashfs-tools", version, newFromGitHubRelease(
return t.NewPackage("squashfs-tools", version, newFromGitHubRelease(
"plougher/squashfs-tools",
version,
"squashfs-tools-"+version+".tar.gz",

View File

@@ -5,17 +5,17 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newStage0(s *S) (pkg.Artifact, string) {
return s.New(t, "rosa-stage0", 0, s.AppendPresets(t, nil,
func (t Toolchain) newStage0() (pkg.Artifact, string) {
return t.New("rosa-stage0", 0, t.Append(nil,
Bzip2,
), nil, nil, `
umask 377
tar \
-vjc \
-C /stage0 \
-f /work/stage0-`+s.triple()+`.tar.bz2 \
-f /work/stage0-`+t.triple()+`.tar.bz2 \
.
`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, s.AppendPresets(t, nil,
`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, t.Append(nil,
LLVM,
Mksh,
toyboxEarly,
@@ -33,15 +33,15 @@ func init() {
func init() {
const version = "20260504"
native.MustRegister(&Artifact{
f: func(_ Toolchain, s *S) (pkg.Artifact, string) {
f: func(t Toolchain) (pkg.Artifact, string) {
return newTar(
"https://hakurei.app/seed/"+version+"/"+
"stage0-"+s.triple()+".tar.bz2",
"stage0-"+t.triple()+".tar.bz2",
perArch[string]{
"amd64": "IQjFDkiAVLo1XzflgMMiLP3gnVY2hhDMTzl-QqJDCQhcLQ3lLtRzjI5WCxGyW_lk",
"arm64": "6fmwl2Umx2QssKQvxxb1JOGkAjzfA_MXKku0jVdGjYGb35OvwEVA5NYtd0HIy3yH",
"riscv64": "Z2ODV0rIoo9iQRUIu35bsaOBeXc_9qQfGcyb2aGneatzNUJlXh5emSpEV2bOklUL",
}.unwrap(s),
}.unwrap(t.S),
pkg.TarBzip2,
), version
},
@@ -55,7 +55,7 @@ func init() {
func HasStage0() (ok bool) {
func() {
defer func() { ok = recover() == nil }()
native.Load(toolchainStage0, stage0Dist)
native.New(stageEarly).Load(stage0Dist)
}()
return
}

View File

@@ -20,30 +20,43 @@ import (
type ArtifactH unique.Handle[string]
// String returns the name of p.
func (p ArtifactH) String() string {
return unique.Handle[string](p).Value()
func (handle ArtifactH) String() string {
return unique.Handle[string](handle).Value()
}
// MarshalJSON represents [ArtifactH] by its [Artifact.Name].
func (p ArtifactH) MarshalJSON() ([]byte, error) { return json.Marshal(p.String()) }
func (handle ArtifactH) MarshalJSON() ([]byte, error) {
return json.Marshal(handle.String())
}
// UnmarshalJSON resolves [ArtifactH] by its [Artifact.Name].
func (p *ArtifactH) UnmarshalJSON(data []byte) error {
func (handle *ArtifactH) UnmarshalJSON(data []byte) error {
var name string
if err := json.Unmarshal(data, &name); err != nil {
return err
}
*p = ArtifactH(unique.Make(name))
*handle = ArtifactH(unique.Make(name))
return nil
}
type (
// Stage denotes the infrastructure to compile a [pkg.Artifact] on.
Stage uint32
// Toolchain refers to an instance of [S], and a [Stage] to compile on.
Toolchain struct {
stage Stage
*S
}
)
// P represents multiple [ArtifactH].
type P []ArtifactH
// Artifact is stage-agnostic immutable data with a deterministic resulting
// [pkg.Artifact]. It can be created natively or through evaluation.
type Artifact struct {
f func(t Toolchain, s *S) (a pkg.Artifact, version string)
f func(t Toolchain) (a pkg.Artifact, version string)
// Unique package name.
Name string `json:"name"`
@@ -159,7 +172,7 @@ type S struct {
opts int
// Cached [pkg.Artifact].
c [_toolchainEnd]sync.Map
c [_stageEnd]sync.Map
// URL of a Gentoo stage3 tarball.
gentooStage3 string
@@ -208,9 +221,9 @@ func (s *S) DropCaches(targetArch string, flags int) {
}
// Get returns the address of the named [Artifact].
func (s *S) Get(p ArtifactH) (meta *Artifact) {
func (s *S) Get(handle ArtifactH) (meta *Artifact) {
s.wantsArch()
v, ok := s.artifacts.Load(p)
v, ok := s.artifacts.Load(handle)
if ok {
meta = v.(*Artifact)
}
@@ -218,38 +231,46 @@ func (s *S) Get(p ArtifactH) (meta *Artifact) {
}
// MustGet is like Get, but panics if the named [Artifact] is not registered.
func (s *S) MustGet(p ArtifactH) (meta *Artifact) {
meta = s.Get(p)
func (s *S) MustGet(handle ArtifactH) (meta *Artifact) {
meta = s.Get(handle)
if meta == nil {
panic("artifact " + strconv.Quote(p.String()) + " not available")
panic("artifact " + strconv.Quote(handle.String()) + " not available")
}
return
}
// New returns a [Toolchain] for the specified [Stage].
func (s *S) New(stage Stage) Toolchain {
return Toolchain{S: s, stage: stage}
}
// Std is a convenience method that returns a [Toolchain] for the [Std] stage.
func (s *S) Std() Toolchain { return s.New(Std) }
// Load returns the resulting [pkg.Artifact] of [ArtifactH].
func (s *S) Load(t Toolchain, p ArtifactH) (pkg.Artifact, string) {
s.wantsArch()
e, ok := s.c[t].Load(p)
func (t Toolchain) Load(handle ArtifactH) (pkg.Artifact, string) {
t.wantsArch()
e, ok := t.c[t.stage].Load(handle)
if ok {
r := e.(cachedArtifact)
return r.a, r.v
}
meta := s.Get(p)
meta := t.Get(handle)
if meta == nil {
return nil, ""
}
var r cachedArtifact
r.a, r.v = meta.f(t, s)
s.c[t].Store(p, r)
r.a, r.v = meta.f(t)
t.c[t.stage].Store(handle, r)
return r.a, r.v
}
// MustLoad is like Load, but panics if the named [Artifact] is not registered.
func (s *S) MustLoad(t Toolchain, p ArtifactH) (pkg.Artifact, string) {
a, version := s.Load(t, p)
func (t Toolchain) MustLoad(handle ArtifactH) (pkg.Artifact, string) {
a, version := t.Load(handle)
if a == nil {
panic("artifact " + strconv.Quote(p.String()) + " not available")
panic("artifact " + strconv.Quote(handle.String()) + " not available")
}
return a, version
}

View File

@@ -13,21 +13,21 @@ func TestLoad(t *testing.T) {
t.Run(rosa.Native().MustGet(p).Name, func(t *testing.T) {
t.Parallel()
rosa.Native().Load(rosa.Std, p)
rosa.Native().Std().MustLoad(p)
})
}
}
func BenchmarkAll(b *testing.B) {
s := rosa.Native().Clone()
t := rosa.Native().Clone().Std()
for b.Loop() {
for _, p := range s.Collect() {
s.Load(rosa.Std, p)
for _, p := range t.Collect() {
t.MustLoad(p)
}
b.StopTimer()
s.DropCaches("", 0)
t.DropCaches("", 0)
b.StartTimer()
}
}

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newStrace(s *S) (pkg.Artifact, string) {
func (t Toolchain) newStrace() (pkg.Artifact, string) {
const (
version = "6.19"
checksum = "XJFJJ9XLh_1rHS3m_QNjLKzkkBAooE-QT9p9lJNNWowAmd54IJop_fI4-IFtjeeL"
)
return s.NewPackage(t, "strace", version, pkg.NewHTTPGet(
return t.NewPackage("strace", version, pkg.NewHTTPGet(
nil, "https://strace.io/files/"+version+"/strace-"+version+".tar.xz",
mustDecode(checksum),
), &PackageAttr{

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newTamaGo(s *S) (pkg.Artifact, string) {
func (t Toolchain) newTamaGo() (pkg.Artifact, string) {
const (
version = "1.26.3"
checksum = "-nH3MjAzDDLTeJ2hRKYJcJwo5-Ikci4zOHfB8j1vKn7zrF9TS6zYaoLi8qohGwAE"
)
return s.New(t, "tamago-go"+version, 0, s.AppendPresets(t, nil,
return t.New("tamago-go"+version, 0, t.Append(nil,
Bash,
Go,
), nil, []string{
@@ -21,8 +21,8 @@ cd /work/system/tamago/src
chmod -R +w ..
sed -i \
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+s.arch+`/obj.go
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
sed -i \
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
internal/runtime/gc/scan/scan_amd64.go

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (s *S) newToybox(t Toolchain, suffix, script string) (pkg.Artifact, string) {
func (t Toolchain) newToybox(suffix, script string) (pkg.Artifact, string) {
const (
version = "0.8.13"
checksum = "rZ1V1ATDte2WeQZanxLVoiRGdfPXhMlEo5-exX-e-ml8cGn9qOv0ABEUVZpX3wTI"
)
return s.NewPackage(t, "toybox"+suffix, version, newTar(
return t.NewPackage("toybox"+suffix, version, newTar(
"https://landley.net/toybox/downloads/toybox-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -41,7 +41,7 @@ sed -i \
's/^CONFIG_TOYBOX_ZHELP=y$/CONFIG_TOYBOX_ZHELP=0/' \
.config
` + script,
SkipCheck: t.isStage0(),
SkipCheck: t.stage.isStage0(),
Check: []string{
"USER=cure",
"tests",
@@ -60,8 +60,8 @@ ln -s ../../system/bin/env /work/usr/bin
}
func init() {
native.MustRegister(&Artifact{
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
return s.newToybox(t, "", "")
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newToybox("", "")
},
Name: "toybox",
@@ -72,8 +72,8 @@ func init() {
})
native.MustRegister(&Artifact{
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
return s.newToybox(t, "-early", `
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newToybox("-early", `
echo '
CONFIG_EXPR=y
CONFIG_TR=y

View File

@@ -6,12 +6,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newUnzip(s *S) (pkg.Artifact, string) {
func (t Toolchain) newUnzip() (pkg.Artifact, string) {
const (
version = "6.0"
checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1"
)
return s.New(t, "unzip-"+version, 0, s.AppendPresets(t, nil,
return t.New("unzip-"+version, 0, t.Append(nil,
Make,
Coreutils,
), nil, nil, `
@@ -21,7 +21,7 @@ make -f unix/Makefile generic1
mkdir -p /work/system/bin/
mv unzip /work/system/bin/
`, pkg.Path(AbsUsrSrc.Append("unzip"), true, s.NewPatchedSource(t,
`, pkg.Path(AbsUsrSrc.Append("unzip"), true, t.NewPatchedSource(
"unzip", version, newTar(
"https://downloads.sourceforge.net/project/infozip/"+
"UnZip%206.x%20%28latest%29/UnZip%20"+version+"/"+

View File

@@ -6,12 +6,12 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newUtilLinux(s *S) (pkg.Artifact, string) {
func (t Toolchain) newUtilLinux() (pkg.Artifact, string) {
const (
version = "2.42"
checksum = "Uy8Nxg9DsW5YwDoeaZeZTyQJ2YmnaaL_fSsQXsLUiFFUd7wnZeD_3SEaVO7ClJlk"
)
return s.NewPackage(t, "util-linux", version, newTar(
return t.NewPackage("util-linux", version, newTar(
"https://www.kernel.org/pub/linux/utils/util-linux/"+
"v"+strings.Join(strings.SplitN(version, ".", 3)[:2], ".")+
"/util-linux-"+version+".tar.gz",

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newVIM(s *S) (pkg.Artifact, string) {
func (t Toolchain) newVIM() (pkg.Artifact, string) {
const (
version = "9.2.0461"
checksum = "18Rr_5oIf_PkKuqVkN4CMZIGkZEgpN1vamlrsvPLBjn4mN98CRuoJmhzRZ7MoVYM"
)
return s.NewPackage(t, "vim", version, newFromGitHub(
return t.NewPackage("vim", version, newFromGitHub(
"vim/vim",
"v"+version,
checksum,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newWayland(s *S) (pkg.Artifact, string) {
func (t Toolchain) newWayland() (pkg.Artifact, string) {
const (
version = "1.25.0"
checksum = "q-4dYXme46JPgLGtXAxyZGTy7udll9RfT0VXtcW2YRR1WWViUhvdZXZneXzLqpCg"
)
return s.NewPackage(t, "wayland", version, newFromGitLab(
return t.NewPackage("wayland", version, newFromGitLab(
"gitlab.freedesktop.org",
"wayland/wayland",
version,
@@ -52,12 +52,12 @@ func init() {
})
}
func (t Toolchain) newWaylandProtocols(s *S) (pkg.Artifact, string) {
func (t Toolchain) newWaylandProtocols() (pkg.Artifact, string) {
const (
version = "1.48"
checksum = "xvfHCBIzXGwOqOu9b8dfhGw_U29Pd-g4JBwpYIaxee8SwEbxi6NaVU-Y1Q7wY4jK"
)
return s.NewPackage(t, "wayland-protocols", version, newFromGitLab(
return t.NewPackage("wayland-protocols", version, newFromGitLab(
"gitlab.freedesktop.org",
"wayland/wayland-protocols",
version,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newUtilMacros(s *S) (pkg.Artifact, string) {
func (t Toolchain) newUtilMacros() (pkg.Artifact, string) {
const (
version = "1.20.2"
checksum = "Ze8QH3Z3emC0pWFP-0nUYeMy7aBW3L_dxBBmVgcumIHNzEKc1iGTR-yUFR3JcM1G"
)
return s.NewPackage(t, "util-macros", version, newTar(
return t.NewPackage("util-macros", version, newTar(
"https://www.x.org/releases/individual/util/"+
"util-macros-"+version+".tar.gz",
checksum,
@@ -26,12 +26,12 @@ func init() {
})
}
func (t Toolchain) newLibxtrans(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxtrans() (pkg.Artifact, string) {
const (
version = "1.6.0"
checksum = "1cxDCF59fLf1HyGDMcjR1L50ZbjD0RTTEDUpOJYcHXu6HUK_Ds0x-KREY7rLNxu9"
)
return s.NewPackage(t, "libxtrans", version, newFromGitLab(
return t.NewPackage("libxtrans", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxtrans",
"xtrans-"+version,
@@ -58,12 +58,12 @@ func init() {
})
}
func (t Toolchain) newXorgProto(s *S) (pkg.Artifact, string) {
func (t Toolchain) newXorgProto() (pkg.Artifact, string) {
const (
version = "2025.1"
checksum = "pTwJiBJHKA6Rgm3cVDXy1lyvXNIUzTRaukvvYdk1xWoJ_1G-Dfjm9MyewuyIjoHz"
)
return s.NewPackage(t, "xorgproto", version, newFromGitLab(
return t.NewPackage("xorgproto", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/proto/xorgproto",
"xorgproto-"+version,
@@ -89,12 +89,12 @@ func init() {
})
}
func (t Toolchain) newLibXau(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibXau() (pkg.Artifact, string) {
const (
version = "1.0.12"
checksum = "G9AjnU_C160q814MCdjFOVt_mQz_pIt4wf4GNOQmGJS3UuuyMw53sfPvJ7WOqwXN"
)
return s.NewPackage(t, "libXau", version, newTar(
return t.NewPackage("libXau", version, newTar(
"https://www.x.org/releases/individual/lib/"+
"libXau-"+version+".tar.gz",
checksum,
@@ -127,12 +127,12 @@ func init() {
})
}
func (t Toolchain) newXCBProto(s *S) (pkg.Artifact, string) {
func (t Toolchain) newXCBProto() (pkg.Artifact, string) {
const (
version = "1.17.0"
checksum = "_NtbKaJ_iyT7XiJz25mXQ7y-niTzE8sHPvLXZPcqtNoV_-vTzqkezJ8Hp2U1enCv"
)
return s.NewPackage(t, "xcb-proto", version, newTar(
return t.NewPackage("xcb-proto", version, newTar(
"https://xcb.freedesktop.org/dist/xcb-proto-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -152,12 +152,12 @@ func init() {
})
}
func (t Toolchain) newXCB(s *S) (pkg.Artifact, string) {
func (t Toolchain) newXCB() (pkg.Artifact, string) {
const (
version = "1.17.0"
checksum = "hjjsc79LpWM_hZjNWbDDS6qRQUXREjjekS6UbUsDq-RR1_AjgNDxhRvZf-1_kzDd"
)
return s.NewPackage(t, "xcb", version, newTar(
return t.NewPackage("xcb", version, newTar(
"https://xcb.freedesktop.org/dist/libxcb-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -186,12 +186,12 @@ func init() {
})
}
func (t Toolchain) newLibxcbUtilKeysyms(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxcbUtilKeysyms() (pkg.Artifact, string) {
const (
version = "0.4.1"
checksum = "-EEje12UEjtFBuIjb6Fy4cxEghV20BXwQ1BLvhtvSuVcrFkp_X-ZHRM48wAspXZ4"
)
return s.NewPackage(t, "libxcb-util-keysyms", version, newTar(
return t.NewPackage("libxcb-util-keysyms", version, newTar(
"https://xcb.freedesktop.org/dist/xcb-util-keysyms-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -217,12 +217,12 @@ func init() {
})
}
func (t Toolchain) newLibxcbUtilImage(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxcbUtilImage() (pkg.Artifact, string) {
const (
version = "0.4.1"
checksum = "47pvXmFwaUBZIrJ4CE9xjTQIFyxeqoNAL-DshlB11GZ_jjI3G1a6KF0K7mtBQ1E7"
)
return s.NewPackage(t, "libxcb-util-image", version, newTar(
return t.NewPackage("libxcb-util-image", version, newTar(
"https://xcb.freedesktop.org/dist/xcb-util-image-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -248,12 +248,12 @@ func init() {
})
}
func (t Toolchain) newLibxcbUtilWM(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxcbUtilWM() (pkg.Artifact, string) {
const (
version = "0.4.2"
checksum = "g0VZgMU9hcIgyXb3XxBR9xqsvUMBd9qt_Dbmwoj2h5y24pODr_S_D0DhRsuXUNjF"
)
return s.NewPackage(t, "libxcb-util-wm", version, newTar(
return t.NewPackage("libxcb-util-wm", version, newTar(
"https://xcb.freedesktop.org/dist/xcb-util-wm-"+version+".tar.gz",
checksum,
pkg.TarGzip,
@@ -280,12 +280,12 @@ func init() {
})
}
func (t Toolchain) newLibxcbUtil(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxcbUtil() (pkg.Artifact, string) {
const (
version = "0.4.1"
checksum = "YMXGQUQbF6PoEAGflvYnJYsLWjti6sL_ifY47wIXTNGVM3tQ8u41nkBYN4K1D5CD"
)
return s.NewPackage(t, "libxcb-util", version, newTar(
return t.NewPackage("libxcb-util", version, newTar(
"https://www.x.org/releases/individual/xcb/"+
"xcb-util-"+version+".tar.gz",
checksum,
@@ -313,12 +313,12 @@ func init() {
})
}
func (t Toolchain) newLibxcbRenderUtil(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxcbRenderUtil() (pkg.Artifact, string) {
const (
version = "0.3.10"
checksum = "n08L8PyCoOd7v2vb6fSVq5Pq6JtteXVh9K2wrQMTNwGMf_Fjpi6i3HWF-TMFSVTI"
)
return s.NewPackage(t, "libxcb-render-util", version, newTar(
return t.NewPackage("libxcb-render-util", version, newTar(
"https://www.x.org/releases/individual/xcb/"+
"xcb-util-renderutil-"+version+".tar.gz",
checksum,
@@ -346,12 +346,12 @@ func init() {
})
}
func (t Toolchain) newLibX11(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibX11() (pkg.Artifact, string) {
const (
version = "1.8.13"
checksum = "ARh-cuZY_U2v3DbPS1byc7ybh9NInZc-yav7SJiusk_C7408s058qWV83ocMd2pT"
)
return s.NewPackage(t, "libX11", version, newFromGitLab(
return t.NewPackage("libX11", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libx11",
"libX11-"+version,
@@ -390,12 +390,12 @@ func init() {
})
}
func (t Toolchain) newLibXext(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibXext() (pkg.Artifact, string) {
const (
version = "1.3.7"
checksum = "-0wvUDaucLPLNOrK1pcKhHNoO-5nUqQyyw6JAbhx65gRjuMiNKKaF2_tcrbC_KNq"
)
return s.NewPackage(t, "libXext", version, newFromGitLab(
return t.NewPackage("libXext", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxext",
"libXext-"+version,
@@ -427,12 +427,12 @@ func init() {
})
}
func (t Toolchain) newLibXfixes(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibXfixes() (pkg.Artifact, string) {
const (
version = "6.0.2"
checksum = "_-kJfKZ7cE3NNeMr6NLSXCmsyP7MVEHVPLNfxatz2qBy3_fZJvPMQwZNOC9y6V5L"
)
return s.NewPackage(t, "libXfixes", version, newFromGitLab(
return t.NewPackage("libXfixes", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxfixes",
"libXfixes-"+version,
@@ -465,12 +465,12 @@ func init() {
})
}
func (t Toolchain) newLibXrender(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibXrender() (pkg.Artifact, string) {
const (
version = "0.9.12"
checksum = "s6nWn-r17X_W-7anaS7wIcq5_Levf9zAigwJDD9Klp-cCJTVDhLo7GufuVOrxVP0"
)
return s.NewPackage(t, "libXrender", version, newFromGitLab(
return t.NewPackage("libXrender", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxrender",
"libXrender-"+version,
@@ -502,12 +502,12 @@ func init() {
})
}
func (t Toolchain) newLibxshmfence(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxshmfence() (pkg.Artifact, string) {
const (
version = "1.3.3"
checksum = "JamExTPg81By2fs3vWdeo_dzlpBQeAwXr2sDXeHJqm9XBoLW5pamiD6FgAWtAKyA"
)
return s.NewPackage(t, "libxshmfence", version, newFromGitLab(
return t.NewPackage("libxshmfence", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxshmfence",
"libxshmfence-"+version,
@@ -535,12 +535,12 @@ func init() {
})
}
func (t Toolchain) newLibXxf86vm(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibXxf86vm() (pkg.Artifact, string) {
const (
version = "1.1.7"
checksum = "mS4cgKWrwz6M1Lb6Qu4ZVh8Xn2Ca_4HXPxr3LDad4iYY1LecZfeLUPW1hkp6amX_"
)
return s.NewPackage(t, "libXxf86vm", version, newFromGitLab(
return t.NewPackage("libXxf86vm", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxxf86vm",
"libXxf86vm-"+version,
@@ -573,12 +573,12 @@ func init() {
})
}
func (t Toolchain) newLibXrandr(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibXrandr() (pkg.Artifact, string) {
const (
version = "1.5.5"
checksum = "OF7C7VC5MwnFue9UX5UnIkG1PIWvn9bBMq6d4mVyJJ_rcF0w4Kedn1lfxBsXEKAP"
)
return s.NewPackage(t, "libXrandr", version, newFromGitLab(
return t.NewPackage("libXrandr", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxrandr",
"libXrandr-"+version,
@@ -613,12 +613,12 @@ func init() {
})
}
func (t Toolchain) newFontUtil(s *S) (pkg.Artifact, string) {
func (t Toolchain) newFontUtil() (pkg.Artifact, string) {
const (
version = "1.4.2"
checksum = "YWiaIxkq-N2yNdbGa_RF1S0UkQq6xsgoRT73WZP2DOmyH_CJ0TAkpQjId657MQmh"
)
return s.NewPackage(t, "font-util", version, newFromGitLab(
return t.NewPackage("font-util", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/font/util",
"font-util-"+version,
@@ -645,12 +645,12 @@ func init() {
})
}
func (t Toolchain) newLibfontenc(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibfontenc() (pkg.Artifact, string) {
const (
version = "1.1.9"
checksum = "XqosXfbVwaoYzG9vVyRCl3eatwjASoJdLZsxQ37NN8S_jTyqNmbxpRSJGImJj7RS"
)
return s.NewPackage(t, "libfontenc", version, newFromGitLab(
return t.NewPackage("libfontenc", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libfontenc",
"libfontenc-"+version,
@@ -679,12 +679,12 @@ func init() {
})
}
func (t Toolchain) newLibxkbfile(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxkbfile() (pkg.Artifact, string) {
const (
version = "1.2.0"
checksum = "WUtph1ab0AyATahlwljchBxZJcpjYrjyhCK9DW2VO0uXEXaN22GWmUaibcA83i_B"
)
return s.NewPackage(t, "libxkbfile", version, newFromGitLab(
return t.NewPackage("libxkbfile", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxkbfile",
"libxkbfile-"+version,
@@ -709,12 +709,12 @@ func init() {
})
}
func (t Toolchain) newXkbcomp(s *S) (pkg.Artifact, string) {
func (t Toolchain) newXkbcomp() (pkg.Artifact, string) {
const (
version = "1.5.0"
checksum = "ttICW8ZPbljI-nw2kknvxFhwFoDK40iAMBeZDLAHYsHf3B6UPO_zc9TpzZYRRyZH"
)
return s.NewPackage(t, "xkbcomp", version, newFromGitLab(
return t.NewPackage("xkbcomp", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/app/xkbcomp",
"xkbcomp-"+version,
@@ -747,12 +747,12 @@ func init() {
})
}
func (t Toolchain) newLibXfont2(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibXfont2() (pkg.Artifact, string) {
const (
version = "2.0.7"
checksum = "jv9BZNA02493KB8j1lfAErF5SA3ZFcAhm3_UVJ--Bp1maz-vNprl_wXpkHApBi9M"
)
return s.NewPackage(t, "libXfont2", version, newFromGitLab(
return t.NewPackage("libXfont2", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxfont",
"libXfont2-"+version,
@@ -788,12 +788,12 @@ func init() {
})
}
func (t Toolchain) newLibxcvt(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibxcvt() (pkg.Artifact, string) {
const (
version = "0.1.3"
checksum = "IfIA7SxlHMWh681e1AgYmZcRAfkZd5LlzmqcMRifNY5nNVRrUx_wnoaidAv0Yu03"
)
return s.NewPackage(t, "libxcvt", version, newFromGitLab(
return t.NewPackage("libxcvt", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxcvt",
"libxcvt-"+version,
@@ -812,12 +812,12 @@ func init() {
})
}
func (t Toolchain) newLibXdmcp(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibXdmcp() (pkg.Artifact, string) {
const (
version = "1.1.5"
checksum = "N6AJSv9pmeBedFn8KuSIOUGvTken4rkypNWVE2KfPlliwkfIbhfXrt5YHZkBMUHp"
)
return s.NewPackage(t, "libXdmcp", version, newFromGitLab(
return t.NewPackage("libXdmcp", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libxdmcp",
"libXdmcp-"+version,
@@ -845,12 +845,12 @@ func init() {
})
}
func (t Toolchain) newXkeyboardConfig(s *S) (pkg.Artifact, string) {
func (t Toolchain) newXkeyboardConfig() (pkg.Artifact, string) {
const (
version = "2.47"
checksum = "E03PsPIaRrxPAuKgDGSQyPiJB49wXtyyvdV0lVx3_G-pelMMlaFLkoTDHTHG_qgA"
)
return s.NewPackage(t, "xkeyboard-config", version, newFromGitLab(
return t.NewPackage("xkeyboard-config", version, newFromGitLab(
"gitlab.freedesktop.org",
"xkeyboard-config/xkeyboard-config",
"xkeyboard-config-"+version,
@@ -871,12 +871,12 @@ func init() {
})
}
func (t Toolchain) newLibpciaccess(s *S) (pkg.Artifact, string) {
func (t Toolchain) newLibpciaccess() (pkg.Artifact, string) {
const (
version = "0.19"
checksum = "84H0c_U_7fMqo81bpuwyXGXtk4XvvFH_YK00UiOriv3YGsuAhmbo2IkFhmJnvu2x"
)
return s.NewPackage(t, "libpciaccess", version, newFromGitLab(
return t.NewPackage("libpciaccess", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/lib/libpciaccess",
"libpciaccess-"+version,
@@ -903,12 +903,12 @@ func init() {
})
}
func (t Toolchain) newXserver(s *S) (pkg.Artifact, string) {
func (t Toolchain) newXserver() (pkg.Artifact, string) {
const (
version = "21.1.22"
checksum = "prLT2wKecBu5m9w1ThgIt0GvenNpjKXoOyvTiMA1oQTlP0QHh6QiWsdvH3OmUwNo"
)
return s.NewPackage(t, "xserver", version, newFromGitLab(
return t.NewPackage("xserver", version, newFromGitLab(
"gitlab.freedesktop.org",
"xorg/xserver",
"xorg-server-"+version,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newXZ(s *S) (pkg.Artifact, string) {
func (t Toolchain) newXZ() (pkg.Artifact, string) {
const (
version = "5.8.3"
checksum = "nCdayphPGdIdVoAZ2hR4vYlhDG9LeVKho_i7ealTud4Vxy5o5dWe0VwFlN7utuUL"
)
return s.NewPackage(t, "xz", version, newFromGitHubRelease(
return t.NewPackage("xz", version, newFromGitHubRelease(
"tukaani-project/xz",
"v"+version,
"xz-"+version+".tar.bz2",

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newZlib(s *S) (pkg.Artifact, string) {
func (t Toolchain) newZlib() (pkg.Artifact, string) {
const (
version = "1.3.2"
checksum = "KHZrePe42vL2XvOUE3KlJkp1UgWhWkl0jjT_BOvFhuM4GzieEH9S7CioepOFVGYB"
)
return s.NewPackage(t, "zlib", version, newTar(
return t.NewPackage("zlib", version, newTar(
"https://www.zlib.net/fossils/zlib-"+version+".tar.gz",
checksum,
pkg.TarGzip,

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newZstd(s *S) (pkg.Artifact, string) {
func (t Toolchain) newZstd() (pkg.Artifact, string) {
const (
version = "1.5.7"
checksum = "4XhfR7DwVkwo1R-TmYDAJOcx9YXv9WSFhcFUe3hWEAMmdMLPhFaznCqYIA19_xxV"
)
return s.NewPackage(t, "zstd", version, newFromGitHubRelease(
return t.NewPackage("zstd", version, newFromGitHubRelease(
"facebook/zstd",
"v"+version,
"zstd-"+version+".tar.gz",