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

@@ -36,6 +36,7 @@ func commandInfo(
} }
} }
t := rosa.Native().Std()
for i, name := range args { for i, name := range args {
handle := rosa.ArtifactH(unique.Make(name)) handle := rosa.ArtifactH(unique.Make(name))
if meta := rosa.Native().Get(handle); meta == nil { if meta := rosa.Native().Get(handle); meta == nil {
@@ -43,7 +44,7 @@ func commandInfo(
} else { } else {
var suffix string var suffix string
a, version := rosa.Native().MustLoad(rosa.Std, handle) a, version := t.MustLoad(handle)
if version != rosa.Unversioned { if version != rosa.Unversioned {
suffix += "-" + version suffix += "-" + version
} }
@@ -58,7 +59,7 @@ func commandInfo(
mustPrint("depends on :") mustPrint("depends on :")
for _, d := range meta.Dependencies { for _, d := range meta.Dependencies {
s := rosa.Native().MustGet(d).Name s := rosa.Native().MustGet(d).Name
if _, _version := rosa.Native().Load(rosa.Std, d); _version != rosa.Unversioned { if _, _version := t.Load(d); _version != rosa.Unversioned {
s += "-" + _version s += "-" + _version
} }
mustPrint(" " + s) mustPrint(" " + s)

View File

@@ -21,12 +21,13 @@ import (
func TestInfo(t *testing.T) { func TestInfo(t *testing.T) {
t.Parallel() t.Parallel()
_, qemuVersion := rosa.Native().Load(rosa.Std, rosa.QEMU) _t := rosa.Native().Std()
_, glibVersion := rosa.Native().Load(rosa.Std, rosa.GLib) _, qemuVersion := _t.Load(rosa.QEMU)
zlib, zlibVersion := rosa.Native().Load(rosa.Std, rosa.Zlib) _, glibVersion := _t.Load(rosa.GLib)
_, zstdVersion := rosa.Native().Load(rosa.Std, rosa.Zstd) zlib, zlibVersion := _t.Load(rosa.Zlib)
_, hakureiVersion := rosa.Native().Load(rosa.Std, rosa.Hakurei) _, zstdVersion := _t.Load(rosa.Zstd)
_, hakureiDistVersion := rosa.Native().Load(rosa.Std, rosa.HakureiDist) _, hakureiVersion := _t.Load(rosa.Hakurei)
_, hakureiDistVersion := _t.Load(rosa.HakureiDist)
testCases := []struct { testCases := []struct {
name string name string
@@ -139,7 +140,7 @@ status : not in report
if tc.status != nil { if tc.status != nil {
for name, status := range tc.status { for name, status := range tc.status {
a, _ := rosa.Native().Load(rosa.Std, rosa.ArtifactH(unique.Make(name))) a, _ := _t.Load(rosa.ArtifactH(unique.Make(name)))
if a == nil { if a == nil {
t.Fatalf("invalid name %q", name) t.Fatalf("invalid name %q", name)
} }

View File

@@ -61,7 +61,7 @@ func (index *packageIndex) populate(report *rosa.Report) (err error) {
index.names = make(map[string]*metadata) index.names = make(map[string]*metadata)
ir := pkg.NewIR() ir := pkg.NewIR()
for i, handle := range handles { for i, handle := range handles {
a, version := rosa.Native().Load(rosa.Std, handle) a, version := rosa.Native().Std().MustLoad(handle)
m := metadata{ m := metadata{
handle: handle, handle: handle,

View File

@@ -100,7 +100,7 @@ func main() {
rosa.Native().DropCaches("", flags) rosa.Native().DropCaches("", flags)
cross := flagArch != "" && flagArch != runtime.GOARCH cross := flagArch != "" && flagArch != runtime.GOARCH
if flagQEMU || cross { if flagQEMU || cross {
cm.qemu, _ = rosa.Native().Load(rosa.Std, rosa.QEMU) cm.qemu, _ = rosa.Native().Std().Load(rosa.QEMU)
} }
if cross { if cross {
@@ -349,7 +349,7 @@ func main() {
continue continue
} }
_, version := rosa.Native().Load(rosa.Std, p) _, version := rosa.Native().Std().Load(p)
if current, latest := if current, latest :=
version, version,
meta.GetLatest(v); current != latest { meta.GetLatest(v); current != latest {
@@ -412,9 +412,9 @@ func main() {
"stage3", "stage3",
"Check for toolchain 3-stage non-determinism", "Check for toolchain 3-stage non-determinism",
func(args []string) (err error) { func(args []string) (err error) {
t := rosa.Std s := rosa.Std
if flagGentoo != "" { if flagGentoo != "" {
t -= 3 // magic number to discourage misuse s -= 3 // magic number to discourage misuse
var checksum pkg.Checksum var checksum pkg.Checksum
if len(flagChecksum) != 0 { if len(flagChecksum) != 0 {
@@ -431,7 +431,7 @@ func main() {
) )
if err = cm.Do(func(cache *pkg.Cache) (err error) { if err = cm.Do(func(cache *pkg.Cache) (err error) {
llvm, _ := rosa.Native().Load(t-2, rosa.LLVM) llvm, _ := rosa.Native().New(s - 2).Load(rosa.LLVM)
pathname, _, err = cache.Cure(llvm) pathname, _, err = cache.Cure(llvm)
return return
}); err != nil { }); err != nil {
@@ -440,7 +440,7 @@ func main() {
log.Println("stage1:", pathname) log.Println("stage1:", pathname)
if err = cm.Do(func(cache *pkg.Cache) (err error) { if err = cm.Do(func(cache *pkg.Cache) (err error) {
llvm, _ := rosa.Native().Load(t-1, rosa.LLVM) llvm, _ := rosa.Native().New(s - 1).Load(rosa.LLVM)
pathname, checksum[0], err = cache.Cure(llvm) pathname, checksum[0], err = cache.Cure(llvm)
return return
}); err != nil { }); err != nil {
@@ -448,7 +448,7 @@ func main() {
} }
log.Println("stage2:", pathname) log.Println("stage2:", pathname)
if err = cm.Do(func(cache *pkg.Cache) (err error) { if err = cm.Do(func(cache *pkg.Cache) (err error) {
llvm, _ := rosa.Native().Load(t, rosa.LLVM) llvm, _ := rosa.Native().New(s).Load(rosa.LLVM)
pathname, checksum[1], err = cache.Cure(llvm) pathname, checksum[1], err = cache.Cure(llvm)
return return
}); err != nil { }); err != nil {
@@ -470,7 +470,7 @@ func main() {
if flagStage0 { if flagStage0 {
if err = cm.Do(func(cache *pkg.Cache) (err error) { if err = cm.Do(func(cache *pkg.Cache) (err error) {
stage0, _ := rosa.Native().Load(t, rosa.Stage0) stage0, _ := rosa.Native().New(s).Load(rosa.Stage0)
pathname, _, err = cache.Cure(stage0) pathname, _, err = cache.Cure(stage0)
return return
}); err != nil { }); err != nil {
@@ -524,7 +524,7 @@ func main() {
t -= 1 t -= 1
} }
a, _ := rosa.Native().Load(t, rosa.ArtifactH(unique.Make(args[0]))) a, _ := rosa.Native().New(t).Load(rosa.ArtifactH(unique.Make(args[0])))
if a == nil { if a == nil {
return fmt.Errorf("unknown artifact %q", args[0]) return fmt.Errorf("unknown artifact %q", args[0])
} }
@@ -756,7 +756,7 @@ func main() {
) )
root := make(pkg.Collect, 0, 6+len(args)) root := make(pkg.Collect, 0, 6+len(args))
root = rosa.Native().AppendPresets(rosa.Std, root, handles...) root = rosa.Native().Std().Append(root, handles...)
if err := cm.Do(func(cache *pkg.Cache) error { if err := cm.Do(func(cache *pkg.Cache) error {
_, _, err := cache.Cure(&root) _, _, err := cache.Cure(&root)

View File

@@ -36,7 +36,7 @@ func TestCureAll(t *testing.T) {
}) })
for _, handle := range rosa.Native().Collect() { for _, handle := range rosa.Native().Collect() {
a, _ := rosa.Native().MustLoad(rosa.Std, handle) a, _ := rosa.Native().Std().MustLoad(handle)
t.Run(rosa.Native().MustGet(handle).Name, func(t *testing.T) { t.Run(rosa.Native().MustGet(handle).Name, func(t *testing.T) {
_, err := cureRemote(t.Context(), &addr, a, 0) _, err := cureRemote(t.Context(), &addr, a, 0)
if err != nil { if err != nil {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg" import "hakurei.app/internal/pkg"
func (t Toolchain) newLibmd(s *S) (pkg.Artifact, string) { func (t Toolchain) newLibmd() (pkg.Artifact, string) {
const ( const (
version = "1.2.0" version = "1.2.0"
checksum = "1rJ6joAO0wwMZvSfnRNkc1MOhywyAq7SM8VmF92NvDtv7Qdl1LRbjm5fg_DFFtGj" 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", "https://git.hadrons.org/git/libmd.git",
version, checksum, version, checksum,
), nil, &MakeHelper{ ), 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 ( const (
version = "0.12.2" version = "0.12.2"
checksum = "NVS0xFLTwSP8JiElEftsZ-e1_C-IgJhHrHE77RwKt5178M7r087waO-zYx2_dfGX" 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", "https://gitlab.freedesktop.org/libbsd/libbsd.git",
version, checksum, version, checksum,
), nil, &MakeHelper{ ), nil, &MakeHelper{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -7,12 +7,12 @@ import (
"hakurei.app/internal/pkg" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newMake(s *S) (pkg.Artifact, string) { func (t Toolchain) newMake() (pkg.Artifact, string) {
const ( const (
version = "4.4.1" version = "4.4.1"
checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a" 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)" cd "$(mktemp -d)"
/usr/src/make/configure \ /usr/src/make/configure \
--prefix=/system \ --prefix=/system \

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -20,30 +20,43 @@ import (
type ArtifactH unique.Handle[string] type ArtifactH unique.Handle[string]
// String returns the name of p. // String returns the name of p.
func (p ArtifactH) String() string { func (handle ArtifactH) String() string {
return unique.Handle[string](p).Value() return unique.Handle[string](handle).Value()
} }
// MarshalJSON represents [ArtifactH] by its [Artifact.Name]. // 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]. // UnmarshalJSON resolves [ArtifactH] by its [Artifact.Name].
func (p *ArtifactH) UnmarshalJSON(data []byte) error { func (handle *ArtifactH) UnmarshalJSON(data []byte) error {
var name string var name string
if err := json.Unmarshal(data, &name); err != nil { if err := json.Unmarshal(data, &name); err != nil {
return err return err
} }
*p = ArtifactH(unique.Make(name)) *handle = ArtifactH(unique.Make(name))
return nil 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]. // P represents multiple [ArtifactH].
type P []ArtifactH type P []ArtifactH
// Artifact is stage-agnostic immutable data with a deterministic resulting // Artifact is stage-agnostic immutable data with a deterministic resulting
// [pkg.Artifact]. It can be created natively or through evaluation. // [pkg.Artifact]. It can be created natively or through evaluation.
type Artifact struct { 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. // Unique package name.
Name string `json:"name"` Name string `json:"name"`
@@ -159,7 +172,7 @@ type S struct {
opts int opts int
// Cached [pkg.Artifact]. // Cached [pkg.Artifact].
c [_toolchainEnd]sync.Map c [_stageEnd]sync.Map
// URL of a Gentoo stage3 tarball. // URL of a Gentoo stage3 tarball.
gentooStage3 string gentooStage3 string
@@ -208,9 +221,9 @@ func (s *S) DropCaches(targetArch string, flags int) {
} }
// Get returns the address of the named [Artifact]. // 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() s.wantsArch()
v, ok := s.artifacts.Load(p) v, ok := s.artifacts.Load(handle)
if ok { if ok {
meta = v.(*Artifact) 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. // MustGet is like Get, but panics if the named [Artifact] is not registered.
func (s *S) MustGet(p ArtifactH) (meta *Artifact) { func (s *S) MustGet(handle ArtifactH) (meta *Artifact) {
meta = s.Get(p) meta = s.Get(handle)
if meta == nil { if meta == nil {
panic("artifact " + strconv.Quote(p.String()) + " not available") panic("artifact " + strconv.Quote(handle.String()) + " not available")
} }
return 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]. // Load returns the resulting [pkg.Artifact] of [ArtifactH].
func (s *S) Load(t Toolchain, p ArtifactH) (pkg.Artifact, string) { func (t Toolchain) Load(handle ArtifactH) (pkg.Artifact, string) {
s.wantsArch() t.wantsArch()
e, ok := s.c[t].Load(p) e, ok := t.c[t.stage].Load(handle)
if ok { if ok {
r := e.(cachedArtifact) r := e.(cachedArtifact)
return r.a, r.v return r.a, r.v
} }
meta := s.Get(p) meta := t.Get(handle)
if meta == nil { if meta == nil {
return nil, "" return nil, ""
} }
var r cachedArtifact var r cachedArtifact
r.a, r.v = meta.f(t, s) r.a, r.v = meta.f(t)
s.c[t].Store(p, r) t.c[t.stage].Store(handle, r)
return r.a, r.v return r.a, r.v
} }
// MustLoad is like Load, but panics if the named [Artifact] is not registered. // MustLoad is like Load, but panics if the named [Artifact] is not registered.
func (s *S) MustLoad(t Toolchain, p ArtifactH) (pkg.Artifact, string) { func (t Toolchain) MustLoad(handle ArtifactH) (pkg.Artifact, string) {
a, version := s.Load(t, p) a, version := t.Load(handle)
if a == nil { if a == nil {
panic("artifact " + strconv.Quote(p.String()) + " not available") panic("artifact " + strconv.Quote(handle.String()) + " not available")
} }
return a, version 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.Run(rosa.Native().MustGet(p).Name, func(t *testing.T) {
t.Parallel() t.Parallel()
rosa.Native().Load(rosa.Std, p) rosa.Native().Std().MustLoad(p)
}) })
} }
} }
func BenchmarkAll(b *testing.B) { func BenchmarkAll(b *testing.B) {
s := rosa.Native().Clone() t := rosa.Native().Clone().Std()
for b.Loop() { for b.Loop() {
for _, p := range s.Collect() { for _, p := range t.Collect() {
s.Load(rosa.Std, p) t.MustLoad(p)
} }
b.StopTimer() b.StopTimer()
s.DropCaches("", 0) t.DropCaches("", 0)
b.StartTimer() b.StartTimer()
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,12 +2,12 @@ package rosa
import "hakurei.app/internal/pkg" import "hakurei.app/internal/pkg"
func (t Toolchain) newUtilMacros(s *S) (pkg.Artifact, string) { func (t Toolchain) newUtilMacros() (pkg.Artifact, string) {
const ( const (
version = "1.20.2" version = "1.20.2"
checksum = "Ze8QH3Z3emC0pWFP-0nUYeMy7aBW3L_dxBBmVgcumIHNzEKc1iGTR-yUFR3JcM1G" 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/"+ "https://www.x.org/releases/individual/util/"+
"util-macros-"+version+".tar.gz", "util-macros-"+version+".tar.gz",
checksum, checksum,
@@ -26,12 +26,12 @@ func init() {
}) })
} }
func (t Toolchain) newLibxtrans(s *S) (pkg.Artifact, string) { func (t Toolchain) newLibxtrans() (pkg.Artifact, string) {
const ( const (
version = "1.6.0" version = "1.6.0"
checksum = "1cxDCF59fLf1HyGDMcjR1L50ZbjD0RTTEDUpOJYcHXu6HUK_Ds0x-KREY7rLNxu9" checksum = "1cxDCF59fLf1HyGDMcjR1L50ZbjD0RTTEDUpOJYcHXu6HUK_Ds0x-KREY7rLNxu9"
) )
return s.NewPackage(t, "libxtrans", version, newFromGitLab( return t.NewPackage("libxtrans", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxtrans", "xorg/lib/libxtrans",
"xtrans-"+version, "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 ( const (
version = "2025.1" version = "2025.1"
checksum = "pTwJiBJHKA6Rgm3cVDXy1lyvXNIUzTRaukvvYdk1xWoJ_1G-Dfjm9MyewuyIjoHz" checksum = "pTwJiBJHKA6Rgm3cVDXy1lyvXNIUzTRaukvvYdk1xWoJ_1G-Dfjm9MyewuyIjoHz"
) )
return s.NewPackage(t, "xorgproto", version, newFromGitLab( return t.NewPackage("xorgproto", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/proto/xorgproto", "xorg/proto/xorgproto",
"xorgproto-"+version, "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 ( const (
version = "1.0.12" version = "1.0.12"
checksum = "G9AjnU_C160q814MCdjFOVt_mQz_pIt4wf4GNOQmGJS3UuuyMw53sfPvJ7WOqwXN" 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/"+ "https://www.x.org/releases/individual/lib/"+
"libXau-"+version+".tar.gz", "libXau-"+version+".tar.gz",
checksum, checksum,
@@ -127,12 +127,12 @@ func init() {
}) })
} }
func (t Toolchain) newXCBProto(s *S) (pkg.Artifact, string) { func (t Toolchain) newXCBProto() (pkg.Artifact, string) {
const ( const (
version = "1.17.0" version = "1.17.0"
checksum = "_NtbKaJ_iyT7XiJz25mXQ7y-niTzE8sHPvLXZPcqtNoV_-vTzqkezJ8Hp2U1enCv" 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", "https://xcb.freedesktop.org/dist/xcb-proto-"+version+".tar.gz",
checksum, checksum,
pkg.TarGzip, 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 ( const (
version = "1.17.0" version = "1.17.0"
checksum = "hjjsc79LpWM_hZjNWbDDS6qRQUXREjjekS6UbUsDq-RR1_AjgNDxhRvZf-1_kzDd" 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", "https://xcb.freedesktop.org/dist/libxcb-"+version+".tar.gz",
checksum, checksum,
pkg.TarGzip, 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 ( const (
version = "0.4.1" version = "0.4.1"
checksum = "-EEje12UEjtFBuIjb6Fy4cxEghV20BXwQ1BLvhtvSuVcrFkp_X-ZHRM48wAspXZ4" 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", "https://xcb.freedesktop.org/dist/xcb-util-keysyms-"+version+".tar.gz",
checksum, checksum,
pkg.TarGzip, 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 ( const (
version = "0.4.1" version = "0.4.1"
checksum = "47pvXmFwaUBZIrJ4CE9xjTQIFyxeqoNAL-DshlB11GZ_jjI3G1a6KF0K7mtBQ1E7" 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", "https://xcb.freedesktop.org/dist/xcb-util-image-"+version+".tar.gz",
checksum, checksum,
pkg.TarGzip, 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 ( const (
version = "0.4.2" version = "0.4.2"
checksum = "g0VZgMU9hcIgyXb3XxBR9xqsvUMBd9qt_Dbmwoj2h5y24pODr_S_D0DhRsuXUNjF" 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", "https://xcb.freedesktop.org/dist/xcb-util-wm-"+version+".tar.gz",
checksum, checksum,
pkg.TarGzip, 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 ( const (
version = "0.4.1" version = "0.4.1"
checksum = "YMXGQUQbF6PoEAGflvYnJYsLWjti6sL_ifY47wIXTNGVM3tQ8u41nkBYN4K1D5CD" 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/"+ "https://www.x.org/releases/individual/xcb/"+
"xcb-util-"+version+".tar.gz", "xcb-util-"+version+".tar.gz",
checksum, checksum,
@@ -313,12 +313,12 @@ func init() {
}) })
} }
func (t Toolchain) newLibxcbRenderUtil(s *S) (pkg.Artifact, string) { func (t Toolchain) newLibxcbRenderUtil() (pkg.Artifact, string) {
const ( const (
version = "0.3.10" version = "0.3.10"
checksum = "n08L8PyCoOd7v2vb6fSVq5Pq6JtteXVh9K2wrQMTNwGMf_Fjpi6i3HWF-TMFSVTI" 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/"+ "https://www.x.org/releases/individual/xcb/"+
"xcb-util-renderutil-"+version+".tar.gz", "xcb-util-renderutil-"+version+".tar.gz",
checksum, checksum,
@@ -346,12 +346,12 @@ func init() {
}) })
} }
func (t Toolchain) newLibX11(s *S) (pkg.Artifact, string) { func (t Toolchain) newLibX11() (pkg.Artifact, string) {
const ( const (
version = "1.8.13" version = "1.8.13"
checksum = "ARh-cuZY_U2v3DbPS1byc7ybh9NInZc-yav7SJiusk_C7408s058qWV83ocMd2pT" checksum = "ARh-cuZY_U2v3DbPS1byc7ybh9NInZc-yav7SJiusk_C7408s058qWV83ocMd2pT"
) )
return s.NewPackage(t, "libX11", version, newFromGitLab( return t.NewPackage("libX11", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libx11", "xorg/lib/libx11",
"libX11-"+version, "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 ( const (
version = "1.3.7" version = "1.3.7"
checksum = "-0wvUDaucLPLNOrK1pcKhHNoO-5nUqQyyw6JAbhx65gRjuMiNKKaF2_tcrbC_KNq" checksum = "-0wvUDaucLPLNOrK1pcKhHNoO-5nUqQyyw6JAbhx65gRjuMiNKKaF2_tcrbC_KNq"
) )
return s.NewPackage(t, "libXext", version, newFromGitLab( return t.NewPackage("libXext", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxext", "xorg/lib/libxext",
"libXext-"+version, "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 ( const (
version = "6.0.2" version = "6.0.2"
checksum = "_-kJfKZ7cE3NNeMr6NLSXCmsyP7MVEHVPLNfxatz2qBy3_fZJvPMQwZNOC9y6V5L" checksum = "_-kJfKZ7cE3NNeMr6NLSXCmsyP7MVEHVPLNfxatz2qBy3_fZJvPMQwZNOC9y6V5L"
) )
return s.NewPackage(t, "libXfixes", version, newFromGitLab( return t.NewPackage("libXfixes", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxfixes", "xorg/lib/libxfixes",
"libXfixes-"+version, "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 ( const (
version = "0.9.12" version = "0.9.12"
checksum = "s6nWn-r17X_W-7anaS7wIcq5_Levf9zAigwJDD9Klp-cCJTVDhLo7GufuVOrxVP0" checksum = "s6nWn-r17X_W-7anaS7wIcq5_Levf9zAigwJDD9Klp-cCJTVDhLo7GufuVOrxVP0"
) )
return s.NewPackage(t, "libXrender", version, newFromGitLab( return t.NewPackage("libXrender", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxrender", "xorg/lib/libxrender",
"libXrender-"+version, "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 ( const (
version = "1.3.3" version = "1.3.3"
checksum = "JamExTPg81By2fs3vWdeo_dzlpBQeAwXr2sDXeHJqm9XBoLW5pamiD6FgAWtAKyA" checksum = "JamExTPg81By2fs3vWdeo_dzlpBQeAwXr2sDXeHJqm9XBoLW5pamiD6FgAWtAKyA"
) )
return s.NewPackage(t, "libxshmfence", version, newFromGitLab( return t.NewPackage("libxshmfence", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxshmfence", "xorg/lib/libxshmfence",
"libxshmfence-"+version, "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 ( const (
version = "1.1.7" version = "1.1.7"
checksum = "mS4cgKWrwz6M1Lb6Qu4ZVh8Xn2Ca_4HXPxr3LDad4iYY1LecZfeLUPW1hkp6amX_" checksum = "mS4cgKWrwz6M1Lb6Qu4ZVh8Xn2Ca_4HXPxr3LDad4iYY1LecZfeLUPW1hkp6amX_"
) )
return s.NewPackage(t, "libXxf86vm", version, newFromGitLab( return t.NewPackage("libXxf86vm", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxxf86vm", "xorg/lib/libxxf86vm",
"libXxf86vm-"+version, "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 ( const (
version = "1.5.5" version = "1.5.5"
checksum = "OF7C7VC5MwnFue9UX5UnIkG1PIWvn9bBMq6d4mVyJJ_rcF0w4Kedn1lfxBsXEKAP" checksum = "OF7C7VC5MwnFue9UX5UnIkG1PIWvn9bBMq6d4mVyJJ_rcF0w4Kedn1lfxBsXEKAP"
) )
return s.NewPackage(t, "libXrandr", version, newFromGitLab( return t.NewPackage("libXrandr", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxrandr", "xorg/lib/libxrandr",
"libXrandr-"+version, "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 ( const (
version = "1.4.2" version = "1.4.2"
checksum = "YWiaIxkq-N2yNdbGa_RF1S0UkQq6xsgoRT73WZP2DOmyH_CJ0TAkpQjId657MQmh" checksum = "YWiaIxkq-N2yNdbGa_RF1S0UkQq6xsgoRT73WZP2DOmyH_CJ0TAkpQjId657MQmh"
) )
return s.NewPackage(t, "font-util", version, newFromGitLab( return t.NewPackage("font-util", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/font/util", "xorg/font/util",
"font-util-"+version, "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 ( const (
version = "1.1.9" version = "1.1.9"
checksum = "XqosXfbVwaoYzG9vVyRCl3eatwjASoJdLZsxQ37NN8S_jTyqNmbxpRSJGImJj7RS" checksum = "XqosXfbVwaoYzG9vVyRCl3eatwjASoJdLZsxQ37NN8S_jTyqNmbxpRSJGImJj7RS"
) )
return s.NewPackage(t, "libfontenc", version, newFromGitLab( return t.NewPackage("libfontenc", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libfontenc", "xorg/lib/libfontenc",
"libfontenc-"+version, "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 ( const (
version = "1.2.0" version = "1.2.0"
checksum = "WUtph1ab0AyATahlwljchBxZJcpjYrjyhCK9DW2VO0uXEXaN22GWmUaibcA83i_B" checksum = "WUtph1ab0AyATahlwljchBxZJcpjYrjyhCK9DW2VO0uXEXaN22GWmUaibcA83i_B"
) )
return s.NewPackage(t, "libxkbfile", version, newFromGitLab( return t.NewPackage("libxkbfile", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxkbfile", "xorg/lib/libxkbfile",
"libxkbfile-"+version, "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 ( const (
version = "1.5.0" version = "1.5.0"
checksum = "ttICW8ZPbljI-nw2kknvxFhwFoDK40iAMBeZDLAHYsHf3B6UPO_zc9TpzZYRRyZH" checksum = "ttICW8ZPbljI-nw2kknvxFhwFoDK40iAMBeZDLAHYsHf3B6UPO_zc9TpzZYRRyZH"
) )
return s.NewPackage(t, "xkbcomp", version, newFromGitLab( return t.NewPackage("xkbcomp", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/app/xkbcomp", "xorg/app/xkbcomp",
"xkbcomp-"+version, "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 ( const (
version = "2.0.7" version = "2.0.7"
checksum = "jv9BZNA02493KB8j1lfAErF5SA3ZFcAhm3_UVJ--Bp1maz-vNprl_wXpkHApBi9M" checksum = "jv9BZNA02493KB8j1lfAErF5SA3ZFcAhm3_UVJ--Bp1maz-vNprl_wXpkHApBi9M"
) )
return s.NewPackage(t, "libXfont2", version, newFromGitLab( return t.NewPackage("libXfont2", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxfont", "xorg/lib/libxfont",
"libXfont2-"+version, "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 ( const (
version = "0.1.3" version = "0.1.3"
checksum = "IfIA7SxlHMWh681e1AgYmZcRAfkZd5LlzmqcMRifNY5nNVRrUx_wnoaidAv0Yu03" checksum = "IfIA7SxlHMWh681e1AgYmZcRAfkZd5LlzmqcMRifNY5nNVRrUx_wnoaidAv0Yu03"
) )
return s.NewPackage(t, "libxcvt", version, newFromGitLab( return t.NewPackage("libxcvt", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxcvt", "xorg/lib/libxcvt",
"libxcvt-"+version, "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 ( const (
version = "1.1.5" version = "1.1.5"
checksum = "N6AJSv9pmeBedFn8KuSIOUGvTken4rkypNWVE2KfPlliwkfIbhfXrt5YHZkBMUHp" checksum = "N6AJSv9pmeBedFn8KuSIOUGvTken4rkypNWVE2KfPlliwkfIbhfXrt5YHZkBMUHp"
) )
return s.NewPackage(t, "libXdmcp", version, newFromGitLab( return t.NewPackage("libXdmcp", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libxdmcp", "xorg/lib/libxdmcp",
"libXdmcp-"+version, "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 ( const (
version = "2.47" version = "2.47"
checksum = "E03PsPIaRrxPAuKgDGSQyPiJB49wXtyyvdV0lVx3_G-pelMMlaFLkoTDHTHG_qgA" checksum = "E03PsPIaRrxPAuKgDGSQyPiJB49wXtyyvdV0lVx3_G-pelMMlaFLkoTDHTHG_qgA"
) )
return s.NewPackage(t, "xkeyboard-config", version, newFromGitLab( return t.NewPackage("xkeyboard-config", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xkeyboard-config/xkeyboard-config", "xkeyboard-config/xkeyboard-config",
"xkeyboard-config-"+version, "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 ( const (
version = "0.19" version = "0.19"
checksum = "84H0c_U_7fMqo81bpuwyXGXtk4XvvFH_YK00UiOriv3YGsuAhmbo2IkFhmJnvu2x" checksum = "84H0c_U_7fMqo81bpuwyXGXtk4XvvFH_YK00UiOriv3YGsuAhmbo2IkFhmJnvu2x"
) )
return s.NewPackage(t, "libpciaccess", version, newFromGitLab( return t.NewPackage("libpciaccess", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/lib/libpciaccess", "xorg/lib/libpciaccess",
"libpciaccess-"+version, "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 ( const (
version = "21.1.22" version = "21.1.22"
checksum = "prLT2wKecBu5m9w1ThgIt0GvenNpjKXoOyvTiMA1oQTlP0QHh6QiWsdvH3OmUwNo" checksum = "prLT2wKecBu5m9w1ThgIt0GvenNpjKXoOyvTiMA1oQTlP0QHh6QiWsdvH3OmUwNo"
) )
return s.NewPackage(t, "xserver", version, newFromGitLab( return t.NewPackage("xserver", version, newFromGitLab(
"gitlab.freedesktop.org", "gitlab.freedesktop.org",
"xorg/xserver", "xorg/xserver",
"xorg-server-"+version, "xorg-server-"+version,

View File

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

View File

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

View File

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