From 38bc2c750842826c5af4f66abe3e1905258cd274 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sun, 17 May 2026 16:44:13 +0900 Subject: [PATCH] internal/rosa: pass stage alongside state This cleans up many function signatures. Signed-off-by: Ophestra --- cmd/mbf/info.go | 5 +- cmd/mbf/info_test.go | 15 +-- cmd/mbf/internal/pkgserver/index.go | 2 +- cmd/mbf/main.go | 20 ++-- cmd/mbf/main_test.go | 2 +- internal/rosa/acl.go | 8 +- internal/rosa/argp-standalone.go | 4 +- internal/rosa/bzip2.go | 4 +- internal/rosa/cmake.go | 4 +- internal/rosa/connman.go | 4 +- internal/rosa/curl.go | 4 +- internal/rosa/dbus.go | 8 +- internal/rosa/dtc.go | 4 +- internal/rosa/elfutils.go | 4 +- internal/rosa/fakeroot.go | 4 +- internal/rosa/flex.go | 4 +- internal/rosa/freetype.go | 4 +- internal/rosa/fuse.go | 4 +- internal/rosa/git.go | 15 ++- internal/rosa/glslang.go | 18 ++-- internal/rosa/gnu.go | 126 ++++++++++++------------ internal/rosa/go.go | 47 +++++---- internal/rosa/gtk.go | 4 +- internal/rosa/hakurei.go | 19 ++-- internal/rosa/hwdata.go | 4 +- internal/rosa/images.go | 14 +-- internal/rosa/kernel.go | 20 ++-- internal/rosa/kmod.go | 4 +- internal/rosa/libarchive.go | 4 +- internal/rosa/libbsd.go | 8 +- internal/rosa/libcap.go | 4 +- internal/rosa/libconfig.go | 4 +- internal/rosa/libdisplay-info.go | 4 +- internal/rosa/libepoxy.go | 4 +- internal/rosa/libev.go | 4 +- internal/rosa/libexpat.go | 4 +- internal/rosa/libffi.go | 4 +- internal/rosa/libgd.go | 4 +- internal/rosa/libpng.go | 4 +- internal/rosa/libpsl.go | 4 +- internal/rosa/libseccomp.go | 4 +- internal/rosa/libtirpc.go | 4 +- internal/rosa/libucontext.go | 6 +- internal/rosa/libxml2.go | 4 +- internal/rosa/libxslt.go | 4 +- internal/rosa/llvm.go | 36 +++---- internal/rosa/lm-sensors.go | 4 +- internal/rosa/make.go | 4 +- internal/rosa/mesa.go | 16 +-- internal/rosa/meson.go | 4 +- internal/rosa/mksh.go | 6 +- internal/rosa/musl-fts.go | 4 +- internal/rosa/musl-obstack.go | 4 +- internal/rosa/musl.go | 18 ++-- internal/rosa/ncurses.go | 4 +- internal/rosa/netfilter.go | 12 +-- internal/rosa/nettle.go | 4 +- internal/rosa/nettle3.go | 4 +- internal/rosa/ninja.go | 10 +- internal/rosa/nss.go | 8 +- internal/rosa/openssl.go | 4 +- internal/rosa/p11.go | 4 +- internal/rosa/pcre2.go | 4 +- internal/rosa/perl.go | 60 ++++++------ internal/rosa/pixman.go | 4 +- internal/rosa/pkg-config.go | 4 +- internal/rosa/procps.go | 4 +- internal/rosa/python.go | 16 +-- internal/rosa/qemu.go | 4 +- internal/rosa/rdfind.go | 4 +- internal/rosa/report.go | 3 +- internal/rosa/rosa.go | 146 +++++++++++++--------------- internal/rosa/rosa_test.go | 8 +- internal/rosa/rsync.go | 4 +- internal/rosa/squashfs.go | 4 +- internal/rosa/stage0.go | 16 +-- internal/rosa/state.go | 63 ++++++++---- internal/rosa/state_test.go | 10 +- internal/rosa/strace.go | 4 +- internal/rosa/tamago.go | 8 +- internal/rosa/toybox.go | 14 +-- internal/rosa/unzip.go | 6 +- internal/rosa/util-linux.go | 4 +- internal/rosa/vim.go | 4 +- internal/rosa/wayland.go | 8 +- internal/rosa/x.go | 112 ++++++++++----------- internal/rosa/xz.go | 4 +- internal/rosa/zlib.go | 4 +- internal/rosa/zstd.go | 4 +- 89 files changed, 563 insertions(+), 558 deletions(-) diff --git a/cmd/mbf/info.go b/cmd/mbf/info.go index 4cdea31c..6a3de7c9 100644 --- a/cmd/mbf/info.go +++ b/cmd/mbf/info.go @@ -36,6 +36,7 @@ func commandInfo( } } + t := rosa.Native().Std() for i, name := range args { handle := rosa.ArtifactH(unique.Make(name)) if meta := rosa.Native().Get(handle); meta == nil { @@ -43,7 +44,7 @@ func commandInfo( } else { var suffix string - a, version := rosa.Native().MustLoad(rosa.Std, handle) + a, version := t.MustLoad(handle) if version != rosa.Unversioned { suffix += "-" + version } @@ -58,7 +59,7 @@ func commandInfo( mustPrint("depends on :") for _, d := range meta.Dependencies { 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 } mustPrint(" " + s) diff --git a/cmd/mbf/info_test.go b/cmd/mbf/info_test.go index e3120157..87e9cdcb 100644 --- a/cmd/mbf/info_test.go +++ b/cmd/mbf/info_test.go @@ -21,12 +21,13 @@ import ( func TestInfo(t *testing.T) { t.Parallel() - _, qemuVersion := rosa.Native().Load(rosa.Std, rosa.QEMU) - _, glibVersion := rosa.Native().Load(rosa.Std, rosa.GLib) - zlib, zlibVersion := rosa.Native().Load(rosa.Std, rosa.Zlib) - _, zstdVersion := rosa.Native().Load(rosa.Std, rosa.Zstd) - _, hakureiVersion := rosa.Native().Load(rosa.Std, rosa.Hakurei) - _, hakureiDistVersion := rosa.Native().Load(rosa.Std, rosa.HakureiDist) + _t := rosa.Native().Std() + _, qemuVersion := _t.Load(rosa.QEMU) + _, glibVersion := _t.Load(rosa.GLib) + zlib, zlibVersion := _t.Load(rosa.Zlib) + _, zstdVersion := _t.Load(rosa.Zstd) + _, hakureiVersion := _t.Load(rosa.Hakurei) + _, hakureiDistVersion := _t.Load(rosa.HakureiDist) testCases := []struct { name string @@ -139,7 +140,7 @@ status : not in report if tc.status != nil { 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 { t.Fatalf("invalid name %q", name) } diff --git a/cmd/mbf/internal/pkgserver/index.go b/cmd/mbf/internal/pkgserver/index.go index 5711f810..dd557e39 100644 --- a/cmd/mbf/internal/pkgserver/index.go +++ b/cmd/mbf/internal/pkgserver/index.go @@ -61,7 +61,7 @@ func (index *packageIndex) populate(report *rosa.Report) (err error) { index.names = make(map[string]*metadata) ir := pkg.NewIR() for i, handle := range handles { - a, version := rosa.Native().Load(rosa.Std, handle) + a, version := rosa.Native().Std().MustLoad(handle) m := metadata{ handle: handle, diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go index 25902fde..df089e89 100644 --- a/cmd/mbf/main.go +++ b/cmd/mbf/main.go @@ -100,7 +100,7 @@ func main() { rosa.Native().DropCaches("", flags) cross := flagArch != "" && flagArch != runtime.GOARCH if flagQEMU || cross { - cm.qemu, _ = rosa.Native().Load(rosa.Std, rosa.QEMU) + cm.qemu, _ = rosa.Native().Std().Load(rosa.QEMU) } if cross { @@ -349,7 +349,7 @@ func main() { continue } - _, version := rosa.Native().Load(rosa.Std, p) + _, version := rosa.Native().Std().Load(p) if current, latest := version, meta.GetLatest(v); current != latest { @@ -412,9 +412,9 @@ func main() { "stage3", "Check for toolchain 3-stage non-determinism", func(args []string) (err error) { - t := rosa.Std + s := rosa.Std if flagGentoo != "" { - t -= 3 // magic number to discourage misuse + s -= 3 // magic number to discourage misuse var checksum pkg.Checksum if len(flagChecksum) != 0 { @@ -431,7 +431,7 @@ func main() { ) 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) return }); err != nil { @@ -440,7 +440,7 @@ func main() { log.Println("stage1:", pathname) 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) return }); err != nil { @@ -448,7 +448,7 @@ func main() { } log.Println("stage2:", pathname) 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) return }); err != nil { @@ -470,7 +470,7 @@ func main() { if flagStage0 { 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) return }); err != nil { @@ -524,7 +524,7 @@ func main() { 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 { return fmt.Errorf("unknown artifact %q", args[0]) } @@ -756,7 +756,7 @@ func main() { ) 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 { _, _, err := cache.Cure(&root) diff --git a/cmd/mbf/main_test.go b/cmd/mbf/main_test.go index 4554b250..4a51e3ca 100644 --- a/cmd/mbf/main_test.go +++ b/cmd/mbf/main_test.go @@ -36,7 +36,7 @@ func TestCureAll(t *testing.T) { }) 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) { _, err := cureRemote(t.Context(), &addr, a, 0) if err != nil { diff --git a/internal/rosa/acl.go b/internal/rosa/acl.go index 9c99a27b..89a01cff 100644 --- a/internal/rosa/acl.go +++ b/internal/rosa/acl.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newAttr(s *S) (pkg.Artifact, string) { +func (t Toolchain) newAttr() (pkg.Artifact, string) { const ( version = "2.5.2" checksum = "YWEphrz6vg1sUMmHHVr1CRo53pFXRhq_pjN-AlG8UgwZK1y6m7zuDhxqJhD0SV0l" ) - return s.NewPackage(t, "attr", version, newTar( + return t.NewPackage("attr", version, newTar( "https://download.savannah.nongnu.org/releases/attr/"+ "attr-"+version+".tar.gz", checksum, @@ -76,12 +76,12 @@ func init() { }) } -func (t Toolchain) newACL(s *S) (pkg.Artifact, string) { +func (t Toolchain) newACL() (pkg.Artifact, string) { const ( version = "2.3.2" checksum = "-fY5nwH4K8ZHBCRXrzLdguPkqjKI6WIiGu4dBtrZ1o0t6AIU73w8wwJz_UyjIS0P" ) - return s.NewPackage(t, "acl", version, newTar( + return t.NewPackage("acl", version, newTar( "https://download.savannah.nongnu.org/releases/acl/"+ "acl-"+version+".tar.gz", checksum, diff --git a/internal/rosa/argp-standalone.go b/internal/rosa/argp-standalone.go index d5e77b7d..e82b95e1 100644 --- a/internal/rosa/argp-standalone.go +++ b/internal/rosa/argp-standalone.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newArgpStandalone(s *S) (pkg.Artifact, string) { +func (t Toolchain) newArgpStandalone() (pkg.Artifact, string) { const ( version = "1.3" checksum = "vtW0VyO2pJ-hPyYmDI2zwSLS8QL0sPAUKC1t3zNYbwN2TmsaE-fADhaVtNd3eNFl" ) - return s.NewPackage(t, "argp-standalone", version, newTar( + return t.NewPackage("argp-standalone", version, newTar( "http://www.lysator.liu.se/~nisse/misc/"+ "argp-standalone-"+version+".tar.gz", checksum, diff --git a/internal/rosa/bzip2.go b/internal/rosa/bzip2.go index 35df6872..6cb98fa8 100644 --- a/internal/rosa/bzip2.go +++ b/internal/rosa/bzip2.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newBzip2(s *S) (pkg.Artifact, string) { +func (t Toolchain) newBzip2() (pkg.Artifact, string) { const ( version = "1.0.8" checksum = "cTLykcco7boom-s05H1JVsQi1AtChYL84nXkg_92Dm1Xt94Ob_qlMg_-NSguIK-c" ) - return s.NewPackage(t, "bzip2", version, newTar( + return t.NewPackage("bzip2", version, newTar( "https://sourceware.org/pub/bzip2/bzip2-"+version+".tar.gz", checksum, pkg.TarGzip, diff --git a/internal/rosa/cmake.go b/internal/rosa/cmake.go index 3fe610a0..358fe1e3 100644 --- a/internal/rosa/cmake.go +++ b/internal/rosa/cmake.go @@ -8,12 +8,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newCMake(s *S) (pkg.Artifact, string) { +func (t Toolchain) newCMake() (pkg.Artifact, string) { const ( version = "4.3.2" checksum = "6QylwRVKletndTSkZTV2YBRwgd_9rUVgav_QW23HpjUgV21AVYZOUOal8tdBDmO7" ) - return s.NewPackage(t, "cmake", version, newFromGitHubRelease( + return t.NewPackage("cmake", version, newFromGitHubRelease( "Kitware/CMake", "v"+version, "cmake-"+version+".tar.gz", diff --git a/internal/rosa/connman.go b/internal/rosa/connman.go index c43b055b..6db4020d 100644 --- a/internal/rosa/connman.go +++ b/internal/rosa/connman.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newConnman(s *S) (pkg.Artifact, string) { +func (t Toolchain) newConnman() (pkg.Artifact, string) { const ( version = "2.0" checksum = "MhVTdJOhndnZn2SWd8URKo_Pj7Zvc14tntEbrVOf9L3yVWJvpb3v3Q6104tWJgtW" ) - return s.NewPackage(t, "connman", version, newTar( + return t.NewPackage("connman", version, newTar( "https://git.kernel.org/pub/scm/network/connman/connman.git/"+ "snapshot/connman-"+version+".tar.gz", checksum, diff --git a/internal/rosa/curl.go b/internal/rosa/curl.go index ca47b800..33a68d4e 100644 --- a/internal/rosa/curl.go +++ b/internal/rosa/curl.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newCurl(s *S) (pkg.Artifact, string) { +func (t Toolchain) newCurl() (pkg.Artifact, string) { const ( version = "8.20.0" checksum = "xyHXwrngIRGMasuzhn-I5MSCOhktwINbsWt1f_LuR-5jRVvyx_g6U1EQfDLEbr9r" ) - return s.NewPackage(t, "curl", version, newTar( + return t.NewPackage("curl", version, newTar( "https://curl.se/download/curl-"+version+".tar.bz2", checksum, pkg.TarBzip2, diff --git a/internal/rosa/dbus.go b/internal/rosa/dbus.go index 2aac1c9b..9667a50b 100644 --- a/internal/rosa/dbus.go +++ b/internal/rosa/dbus.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newDBus(s *S) (pkg.Artifact, string) { +func (t Toolchain) newDBus() (pkg.Artifact, string) { const ( version = "1.16.2" checksum = "INwOuNdrDG7XW5ilW_vn8JSxEa444rRNc5ho97i84I1CNF09OmcFcV-gzbF4uCyg" ) - return s.NewPackage(t, "dbus", version, newFromGitLab( + return t.NewPackage("dbus", version, newFromGitLab( "gitlab.freedesktop.org", "dbus/dbus", "dbus-"+version, @@ -45,12 +45,12 @@ func init() { }) } -func (t Toolchain) newXDGDBusProxy(s *S) (pkg.Artifact, string) { +func (t Toolchain) newXDGDBusProxy() (pkg.Artifact, string) { const ( version = "0.1.7" checksum = "UW5Pe-TP-XAaN-kTbxrkOQ7eYdmlAQlr2pdreLtPT0uwdAz-7rzDP8V_8PWuZBup" ) - return s.NewPackage(t, "xdg-dbus-proxy", version, newFromGitHub( + return t.NewPackage("xdg-dbus-proxy", version, newFromGitHub( "flatpak/xdg-dbus-proxy", version, checksum, diff --git a/internal/rosa/dtc.go b/internal/rosa/dtc.go index 36ff0e9d..a80b25ef 100644 --- a/internal/rosa/dtc.go +++ b/internal/rosa/dtc.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newDTC(s *S) (pkg.Artifact, string) { +func (t Toolchain) newDTC() (pkg.Artifact, string) { const ( version = "1.7.2" checksum = "vUoiRynPyYRexTpS6USweT5p4SVHvvVJs8uqFkkVD-YnFjwf6v3elQ0-Etrh00Dt" ) - return s.NewPackage(t, "dtc", version, newTar( + return t.NewPackage("dtc", version, newTar( "https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/"+ "dtc-v"+version+".tar.gz", checksum, diff --git a/internal/rosa/elfutils.go b/internal/rosa/elfutils.go index 65c71427..bb969151 100644 --- a/internal/rosa/elfutils.go +++ b/internal/rosa/elfutils.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newElfutils(s *S) (pkg.Artifact, string) { +func (t Toolchain) newElfutils() (pkg.Artifact, string) { const ( version = "0.195" checksum = "JrGnBD38w8Mj0ZxDw3fKlRBFcLvRKu8rcYnX35R9yTlUSYnzTazyLboG-a2CsJlu" ) - return s.NewPackage(t, "elfutils", version, newTar( + return t.NewPackage("elfutils", version, newTar( "https://sourceware.org/elfutils/ftp/"+ version+"/elfutils-"+version+".tar.bz2", checksum, diff --git a/internal/rosa/fakeroot.go b/internal/rosa/fakeroot.go index acd59084..4c882de0 100644 --- a/internal/rosa/fakeroot.go +++ b/internal/rosa/fakeroot.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newFakeroot(s *S) (pkg.Artifact, string) { +func (t Toolchain) newFakeroot() (pkg.Artifact, string) { const ( version = "1.37.2" checksum = "4ve-eDqVspzQ6VWDhPS0NjW3aSenBJcPAJq_BFT7OOFgUdrQzoTBxZWipDAGWxF8" ) - return s.NewPackage(t, "fakeroot", version, newFromGitLab( + return t.NewPackage("fakeroot", version, newFromGitLab( "salsa.debian.org", "clint/fakeroot", "upstream/"+version, diff --git a/internal/rosa/flex.go b/internal/rosa/flex.go index b5ce8bbc..1085e0d0 100644 --- a/internal/rosa/flex.go +++ b/internal/rosa/flex.go @@ -4,12 +4,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newFlex(s *S) (pkg.Artifact, string) { +func (t Toolchain) newFlex() (pkg.Artifact, string) { const ( version = "2.6.4" checksum = "p9POjQU7VhgOf3x5iFro8fjhy0NOanvA7CTeuWS_veSNgCixIJshTrWVkc5XLZkB" ) - return s.NewPackage(t, "flex", version, newFromGitHubRelease( + return t.NewPackage("flex", version, newFromGitHubRelease( "westes/flex", "v"+version, "flex-"+version+".tar.gz", diff --git a/internal/rosa/freetype.go b/internal/rosa/freetype.go index 3e3d6728..ba337c99 100644 --- a/internal/rosa/freetype.go +++ b/internal/rosa/freetype.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newFreetype(s *S) (pkg.Artifact, string) { +func (t Toolchain) newFreetype() (pkg.Artifact, string) { const ( version = "2.14.3" checksum = "-WfLv8fVJNyCHpP_lriiDzOcVbBL9ajdQ3tl8AzIIUa9-8sVpU9irxOmSMgRHWYz" ) - return s.NewPackage(t, "freetype", version, newTar( + return t.NewPackage("freetype", version, newTar( "https://download.savannah.gnu.org/releases/freetype/"+ "freetype-"+version+".tar.gz", checksum, diff --git a/internal/rosa/fuse.go b/internal/rosa/fuse.go index 1d2b487d..299e1e2e 100644 --- a/internal/rosa/fuse.go +++ b/internal/rosa/fuse.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newFuse(s *S) (pkg.Artifact, string) { +func (t Toolchain) newFuse() (pkg.Artifact, string) { const ( version = "3.18.2" checksum = "iL-7b7eUtmlVSf5cSq0dzow3UiqSjBmzV3cI_ENPs1tXcHdktkG45j1V12h-4jZe" ) - return s.NewPackage(t, "fuse", version, newFromGitHubRelease( + return t.NewPackage("fuse", version, newFromGitHubRelease( "libfuse/libfuse", "fuse-"+version, "fuse-"+version+".tar.gz", diff --git a/internal/rosa/git.go b/internal/rosa/git.go index a614196d..e30fc954 100644 --- a/internal/rosa/git.go +++ b/internal/rosa/git.go @@ -7,12 +7,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newGit(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGit() (pkg.Artifact, string) { const ( version = "2.54.0" checksum = "7vGKtFOJGqY8DO4e8UMRax7dLgImXKQz5MMalec6MlgYrsarffSJjgOughwRFpSH" ) - return s.NewPackage(t, "git", version, newTar( + return t.NewPackage("git", version, newTar( "https://www.kernel.org/pub/software/scm/git/"+ "git-"+version+".tar.gz", checksum, @@ -106,15 +106,14 @@ func init() { } // NewViaGit returns a [pkg.Artifact] for cloning a git repository. -func (s *S) NewViaGit( - t Toolchain, +func (t Toolchain) NewViaGit( url, rev string, checksum pkg.Checksum, ) pkg.Artifact { - return s.New(t, strings.TrimSuffix( + return t.New(strings.TrimSuffix( path.Base(url), ".git", - )+"-src-"+path.Base(rev), THostNet, s.AppendPresets(t, nil, + )+"-src-"+path.Base(rev), THostNet, t.Append(nil, NSSCACert, Git, ), &checksum, nil, ` @@ -132,6 +131,6 @@ rm -rf /work/.git } // newTagRemote is a helper around NewViaGit for a tag on a git remote. -func (s *S) newTagRemote(t Toolchain, url, tag, checksum string) pkg.Artifact { - return s.NewViaGit(t, url, "refs/tags/"+tag, mustDecode(checksum)) +func (t Toolchain) newTagRemote(url, tag, checksum string) pkg.Artifact { + return t.NewViaGit(url, "refs/tags/"+tag, mustDecode(checksum)) } diff --git a/internal/rosa/glslang.go b/internal/rosa/glslang.go index d71cfef0..969cf2ad 100644 --- a/internal/rosa/glslang.go +++ b/internal/rosa/glslang.go @@ -7,12 +7,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newSPIRVHeaders(s *S) (pkg.Artifact, string) { +func (t Toolchain) newSPIRVHeaders() (pkg.Artifact, string) { const ( version = "1.4.341.0" checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD" ) - return s.NewPackage(t, "spirv-headers", version, newFromGitHub( + return t.NewPackage("spirv-headers", version, newFromGitHub( "KhronosGroup/SPIRV-Headers", "vulkan-sdk-"+version, checksum, @@ -52,12 +52,12 @@ func init() { }) } -func (t Toolchain) newSPIRVTools(s *S) (pkg.Artifact, string) { +func (t Toolchain) newSPIRVTools() (pkg.Artifact, string) { const ( version = "2026.1" checksum = "ZSQPQx8NltCDzQLk4qlaVxyWRWeI_JtsjEpeFt3kezTanl9DTHfLixSUCezMFBjv" ) - return s.NewPackage(t, "spirv-tools", version, newFromGitHub( + return t.NewPackage("spirv-tools", version, newFromGitHub( "KhronosGroup/SPIRV-Tools", "v"+version, checksum, @@ -89,12 +89,12 @@ func init() { }) } -func (t Toolchain) newGlslang(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGlslang() (pkg.Artifact, string) { const ( version = "16.3.0" checksum = "xyqDf8k3-D0_BXHGi0uLgMglnJ05Rf3j73QgbDs3sGtKNdBIQhY8JfqX1NcNoJQN" ) - return s.NewPackage(t, "glslang", version, newFromGitHub( + return t.NewPackage("glslang", version, newFromGitHub( "KhronosGroup/glslang", version, checksum, @@ -127,7 +127,7 @@ func init() { }) } -func (t Toolchain) newSPIRVLLVMTranslator(s *S) (pkg.Artifact, string) { +func (t Toolchain) newSPIRVLLVMTranslator() (pkg.Artifact, string) { const ( version = "22.1.2" checksum = "JZAaV5ewYcm-35YA_U2BM2IcsQouZtX1BLZR0zh2vSlfEXMsT5OCtY4Gh5RJkcGy" @@ -137,7 +137,7 @@ func (t Toolchain) newSPIRVLLVMTranslator(s *S) (pkg.Artifact, string) { "cooperative_matrix_constant_null.spvasm", } - switch s.arch { + switch t.arch { case "arm64": skipChecks = append(skipChecks, // LLVM ERROR: unsupported calling convention @@ -183,7 +183,7 @@ func (t Toolchain) newSPIRVLLVMTranslator(s *S) (pkg.Artifact, string) { ) } - return s.NewPackage(t, "spirv-llvm-translator", version, newFromGitHub( + return t.NewPackage("spirv-llvm-translator", version, newFromGitHub( "KhronosGroup/SPIRV-LLVM-Translator", "v"+version, checksum, ), &PackageAttr{ diff --git a/internal/rosa/gnu.go b/internal/rosa/gnu.go index 0527f616..54833db5 100644 --- a/internal/rosa/gnu.go +++ b/internal/rosa/gnu.go @@ -42,12 +42,12 @@ func skipGNUTests(tests ...int) string { return buf.String() } -func (t Toolchain) newM4(s *S) (pkg.Artifact, string) { +func (t Toolchain) newM4() (pkg.Artifact, string) { const ( version = "1.4.21" checksum = "pPa6YOo722Jw80l1OsH1tnUaklnPFjFT-bxGw5iAVrZTm1P8FQaWao_NXop46-pm" ) - return s.NewPackage(t, "m4", version, newTar( + return t.NewPackage("m4", version, newTar( "https://ftpmirror.gnu.org/gnu/m4/m4-"+version+".tar.bz2", checksum, pkg.TarBzip2, @@ -74,12 +74,12 @@ func init() { }) } -func (t Toolchain) newBison(s *S) (pkg.Artifact, string) { +func (t Toolchain) newBison() (pkg.Artifact, string) { const ( version = "3.8.2" checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y" ) - return s.NewPackage(t, "bison", version, newTar( + return t.NewPackage("bison", version, newTar( "https://ftpmirror.gnu.org/gnu/bison/bison-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -109,12 +109,12 @@ func init() { }) } -func (t Toolchain) newSed(s *S) (pkg.Artifact, string) { +func (t Toolchain) newSed() (pkg.Artifact, string) { const ( version = "4.10" checksum = "TXTRFQJCyflb-bpBRI2S5Y1DpplwvT7-KfXtpqN4AdZgZ5OtI6yStn1-bkhDKx51" ) - return s.NewPackage(t, "sed", version, newTar( + return t.NewPackage("sed", version, newTar( "https://ftpmirror.gnu.org/gnu/sed/sed-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -136,12 +136,12 @@ func init() { }) } -func (t Toolchain) newAutoconf(s *S) (pkg.Artifact, string) { +func (t Toolchain) newAutoconf() (pkg.Artifact, string) { const ( version = "2.73" checksum = "yGabDTeOfaCUB0JX-h3REYLYzMzvpDwFmFFzHNR7QilChCUNE4hR6q7nma4viDYg" ) - return s.NewPackage(t, "autoconf", version, newTar( + return t.NewPackage("autoconf", version, newTar( "https://ftpmirror.gnu.org/gnu/autoconf/autoconf-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -176,12 +176,12 @@ func init() { }) } -func (t Toolchain) newAutomake(s *S) (pkg.Artifact, string) { +func (t Toolchain) newAutomake() (pkg.Artifact, string) { const ( version = "1.18.1" checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG" ) - return s.NewPackage(t, "automake", version, newTar( + return t.NewPackage("automake", version, newTar( "https://ftpmirror.gnu.org/gnu/automake/automake-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -220,18 +220,18 @@ func init() { }) } -func (t Toolchain) newLibtool(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibtool() (pkg.Artifact, string) { const ( version = "2.5.4" checksum = "pa6LSrQggh8mSJHQfwGjysAApmZlGJt8wif2cCLzqAAa2jpsTY0jZ-6stS3BWZ2Q" ) - return s.NewPackage(t, "libtool", version, newTar( + return t.NewPackage("libtool", version, newTar( "https://ftpmirror.gnu.org/gnu/libtool/libtool-"+version+".tar.gz", checksum, pkg.TarGzip, ), nil, &MakeHelper{ // _Z2a2c: symbol not found - SkipCheck: t.isStage0(), + SkipCheck: t.stage.isStage0(), Check: []string{ "TESTSUITEFLAGS=" + jobsFlagE, @@ -254,12 +254,12 @@ func init() { }) } -func (t Toolchain) newGzip(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGzip() (pkg.Artifact, string) { const ( version = "1.14" checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q" ) - return s.NewPackage(t, "gzip", version, newTar( + return t.NewPackage("gzip", version, newTar( "https://ftpmirror.gnu.org/gnu/gzip/gzip-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -280,12 +280,12 @@ func init() { }) } -func (t Toolchain) newGettext(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGettext() (pkg.Artifact, string) { const ( version = "1.0" checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC" ) - return s.NewPackage(t, "gettext", version, newTar( + return t.NewPackage("gettext", version, newTar( "https://ftpmirror.gnu.org/gnu/gettext/gettext-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -326,12 +326,12 @@ func init() { }) } -func (t Toolchain) newDiffutils(s *S) (pkg.Artifact, string) { +func (t Toolchain) newDiffutils() (pkg.Artifact, string) { const ( version = "3.12" checksum = "9J5VAq5oA7eqwzS1Yvw-l3G5o-TccUrNQR3PvyB_lgdryOFAfxtvQfKfhdpquE44" ) - return s.NewPackage(t, "diffutils", version, newTar( + return t.NewPackage("diffutils", version, newTar( "https://ftpmirror.gnu.org/gnu/diffutils/diffutils-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -359,12 +359,12 @@ func init() { }) } -func (t Toolchain) newPatch(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPatch() (pkg.Artifact, string) { const ( version = "2.8" checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR" ) - return s.NewPackage(t, "patch", version, newTar( + return t.NewPackage("patch", version, newTar( "https://ftpmirror.gnu.org/gnu/patch/patch-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -391,12 +391,12 @@ func init() { }) } -func (t Toolchain) newBash(s *S) (pkg.Artifact, string) { +func (t Toolchain) newBash() (pkg.Artifact, string) { const ( version = "5.3" checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq" ) - return s.NewPackage(t, "bash", version, newTar( + return t.NewPackage("bash", version, newTar( "https://ftpmirror.gnu.org/gnu/bash/bash-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -421,12 +421,12 @@ func init() { }) } -func (t Toolchain) newCoreutils(s *S) (pkg.Artifact, string) { +func (t Toolchain) newCoreutils() (pkg.Artifact, string) { const ( version = "9.11" checksum = "t8UMed5wpFEoC56aa42_yidfOAaRGzOfj7MRtQkkqgGbpXiskNA8bd-EmVSQkZie" ) - return s.NewPackage(t, "coreutils", version, newTar( + return t.NewPackage("coreutils", version, newTar( "https://ftpmirror.gnu.org/gnu/coreutils/coreutils-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -467,12 +467,12 @@ func init() { }) } -func (t Toolchain) newTexinfo(s *S) (pkg.Artifact, string) { +func (t Toolchain) newTexinfo() (pkg.Artifact, string) { const ( version = "7.3" checksum = "RRmC8Xwdof7JuZJeWGAQ_GeASIHAuJFQMbNONXBz5InooKIQGmqmWRjGNGEr5n4-" ) - return s.NewPackage(t, "texinfo", version, newTar( + return t.NewPackage("texinfo", version, newTar( "https://ftpmirror.gnu.org/gnu/texinfo/texinfo-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -500,12 +500,12 @@ func init() { }) } -func (t Toolchain) newGperf(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGperf() (pkg.Artifact, string) { const ( version = "3.3" checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7" ) - return s.NewPackage(t, "gperf", version, newTar( + return t.NewPackage("gperf", version, newTar( "https://ftpmirror.gnu.org/gperf/gperf-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -525,12 +525,12 @@ func init() { }) } -func (t Toolchain) newGawk(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGawk() (pkg.Artifact, string) { const ( version = "5.4.0" checksum = "m0RkIolC-PI7EY5q8pcx5Y-0twlIW0Yp3wXXmV-QaHorSdf8BhZ7kW9F8iWomz0C" ) - return s.NewPackage(t, "gawk", version, newTar( + return t.NewPackage("gawk", version, newTar( "https://ftpmirror.gnu.org/gnu/gawk/gawk-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -553,12 +553,12 @@ func init() { }) } -func (t Toolchain) newGrep(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGrep() (pkg.Artifact, string) { const ( version = "3.12" checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1" ) - return s.NewPackage(t, "grep", version, newTar( + return t.NewPackage("grep", version, newTar( "https://ftpmirror.gnu.org/gnu/grep/grep-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -586,12 +586,12 @@ func init() { }) } -func (t Toolchain) newFindutils(s *S) (pkg.Artifact, string) { +func (t Toolchain) newFindutils() (pkg.Artifact, string) { const ( version = "4.10.0" checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6" ) - return s.NewPackage(t, "findutils", version, pkg.NewHTTPGet( + return t.NewPackage("findutils", version, pkg.NewHTTPGet( nil, "https://ftpmirror.gnu.org/gnu/findutils/findutils-"+version+".tar.xz", mustDecode(checksum), ), &PackageAttr{ @@ -617,12 +617,12 @@ func init() { }) } -func (t Toolchain) newBC(s *S) (pkg.Artifact, string) { +func (t Toolchain) newBC() (pkg.Artifact, string) { const ( version = "1.08.2" checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy" ) - return s.NewPackage(t, "bc", version, newTar( + return t.NewPackage("bc", version, newTar( "https://ftpmirror.gnu.org/gnu/bc/bc-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -646,12 +646,12 @@ func init() { }) } -func (t Toolchain) newLibiconv(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibiconv() (pkg.Artifact, string) { const ( version = "1.19" checksum = "UibB6E23y4MksNqYmCCrA3zTFO6vJugD1DEDqqWYFZNuBsUWMVMcncb_5pPAr88x" ) - return s.NewPackage(t, "libiconv", version, newTar( + return t.NewPackage("libiconv", version, newTar( "https://ftpmirror.gnu.org/gnu/libiconv/libiconv-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -669,12 +669,12 @@ func init() { }) } -func (t Toolchain) newTar(s *S) (pkg.Artifact, string) { +func (t Toolchain) newTar() (pkg.Artifact, string) { const ( version = "1.35" checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA" ) - return s.NewPackage(t, "tar", version, newTar( + return t.NewPackage("tar", version, newTar( "https://ftpmirror.gnu.org/gnu/tar/tar-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -711,12 +711,12 @@ func init() { }) } -func (t Toolchain) newParallel(s *S) (pkg.Artifact, string) { +func (t Toolchain) newParallel() (pkg.Artifact, string) { const ( version = "20260422" checksum = "eTsepxgqhXpMEhPd55qh-W5y4vjKn0x9TD2mzbJCNZYtFf4lT4Wzoqr74HGJYBEH" ) - return s.NewPackage(t, "parallel", version, newTar( + return t.NewPackage("parallel", version, newTar( "https://ftpmirror.gnu.org/gnu/parallel/parallel-"+version+".tar.bz2", checksum, pkg.TarBzip2, @@ -745,12 +745,12 @@ func init() { }) } -func (t Toolchain) newLibunistring(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibunistring() (pkg.Artifact, string) { const ( version = "1.4.2" checksum = "iW9BbfLoVlXjWoLTZ4AekQSu4cFBnLcZ4W8OHWbv0AhJNgD3j65_zqaLMzFKylg2" ) - return s.NewPackage(t, "libunistring", version, newTar( + return t.NewPackage("libunistring", version, newTar( "https://ftpmirror.gnu.org/gnu/libunistring/libunistring-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -778,12 +778,12 @@ func init() { }) } -func (t Toolchain) newLibtasn1(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibtasn1() (pkg.Artifact, string) { const ( version = "4.21.0" checksum = "9DYI3UYbfYLy8JsKUcY6f0irskbfL0fHZA91Q-JEOA3kiUwpodyjemRsYRjUpjuq" ) - return s.NewPackage(t, "libtasn1", version, newTar( + return t.NewPackage("libtasn1", version, newTar( "https://ftpmirror.gnu.org/gnu/libtasn1/libtasn1-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -801,12 +801,12 @@ func init() { }) } -func (t Toolchain) newReadline(s *S) (pkg.Artifact, string) { +func (t Toolchain) newReadline() (pkg.Artifact, string) { const ( version = "8.3" checksum = "r-lcGRJq_MvvBpOq47Z2Y1OI2iqrmtcqhTLVXR0xWo37ZpC2uT_md7gKq5o_qTMV" ) - return s.NewPackage(t, "readline", version, newTar( + return t.NewPackage("readline", version, newTar( "https://ftpmirror.gnu.org/gnu/readline/readline-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -835,21 +835,21 @@ func init() { }) } -func (t Toolchain) newGnuTLS(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGnuTLS() (pkg.Artifact, string) { const ( version = "3.8.12" checksum = "VPdP-nRydQQRJcnma-YA7CJYA_kzTJ2rb3QFeP6D27emSyInJ8sQ-Wzn518I38dl" ) var configureExtra []KV - switch s.arch { + switch t.arch { case "arm64": configureExtra = []KV{ {"disable-hardware-acceleration"}, } } - return s.NewPackage(t, "gnutls", version, s.newTagRemote(t, + return t.NewPackage("gnutls", version, t.newTagRemote( "https://gitlab.com/gnutls/gnutls.git", version, checksum, ), &PackageAttr{ @@ -1016,12 +1016,12 @@ func init() { }) } -func (t Toolchain) newBinutils(s *S) (pkg.Artifact, string) { +func (t Toolchain) newBinutils() (pkg.Artifact, string) { const ( version = "2.46.0" checksum = "4kK1_EXQipxSqqyvwD4LbiMLFKCUApjq6PeG4XJP4dzxYGqDeqXfh8zLuTyOuOVR" ) - return s.NewPackage(t, "binutils", version, newTar( + return t.NewPackage("binutils", version, newTar( "https://ftpmirror.gnu.org/gnu/binutils/binutils-"+version+".tar.bz2", checksum, pkg.TarBzip2, @@ -1041,12 +1041,12 @@ func init() { }) } -func (t Toolchain) newGMP(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGMP() (pkg.Artifact, string) { const ( version = "6.3.0" checksum = "yrgbgEDWKDdMWVHh7gPbVl56-sRtVVhfvv0M_LX7xMUUk_mvZ1QOJEAnt7g4i3k5" ) - return s.NewPackage(t, "gmp", version, newTar( + return t.NewPackage("gmp", version, newTar( "https://gcc.gnu.org/pub/gcc/infrastructure/"+ "gmp-"+version+".tar.bz2", checksum, @@ -1071,12 +1071,12 @@ func init() { }) } -func (t Toolchain) newMPFR(s *S) (pkg.Artifact, string) { +func (t Toolchain) newMPFR() (pkg.Artifact, string) { const ( version = "4.2.2" checksum = "wN3gx0zfIuCn9r3VAn_9bmfvAYILwrRfgBjYSD1IjLqyLrLojNN5vKyQuTE9kA-B" ) - return s.NewPackage(t, "mpfr", version, newTar( + return t.NewPackage("mpfr", version, newTar( "https://gcc.gnu.org/pub/gcc/infrastructure/"+ "mpfr-"+version+".tar.bz2", checksum, @@ -1101,12 +1101,12 @@ func init() { }) } -func (t Toolchain) newMPC(s *S) (pkg.Artifact, string) { +func (t Toolchain) newMPC() (pkg.Artifact, string) { const ( version = "1.4.1" checksum = "ZffaZyWkvIw0iPvRe5EJ7O-VvHtSkbbb3K_7SgPtK810NvGan7nbF0T5-6tozjQN" ) - return s.NewPackage(t, "mpc", version, newFromGitLab( + return t.NewPackage("mpc", version, newFromGitLab( "gitlab.inria.fr", "mpc/mpc", version, checksum, @@ -1140,19 +1140,19 @@ func init() { }) } -func (t Toolchain) newGCC(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGCC() (pkg.Artifact, string) { const ( version = "16.1.0" checksum = "4ASoWbxaA2FW7PAB0zzHDPC5XnNhyaAyjtDPpGzceSLeYnEIXsNYZR3PA_Zu5P0K" ) var configureExtra []KV - switch s.arch { + switch t.arch { case "amd64", "arm64": configureExtra = append(configureExtra, KV{"with-multilib-list", "''"}) } - return s.NewPackage(t, "gcc", version, newTar( + return t.NewPackage("gcc", version, newTar( "https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/"+ "gcc-"+version+"/gcc-"+version+".tar.gz", checksum, diff --git a/internal/rosa/go.go b/internal/rosa/go.go index b3b9b544..f448d20c 100644 --- a/internal/rosa/go.go +++ b/internal/rosa/go.go @@ -7,9 +7,9 @@ import ( ) // newGoBootstrap returns the Go bootstrap toolchain. -func (s *S) newGoBootstrap(t Toolchain) pkg.Artifact { +func (t Toolchain) newGoBootstrap() pkg.Artifact { const checksum = "8o9JL_ToiQKadCTb04nvBDkp8O1xiWOolAxVEqaTGodieNe4lOFEjlOxN3bwwe23" - return s.New(t, "go1.4-bootstrap", 0, s.AppendPresets(t, nil, + return t.New("go1.4-bootstrap", 0, t.Append(nil, Bash, ), nil, []string{ "CGO_ENABLED=0", @@ -28,18 +28,17 @@ chmod -R +w .. } // newGo returns a specific version of the Go toolchain. -func (s *S) newGo( - t Toolchain, +func (t Toolchain) newGo( version, checksum string, env []string, script string, extra ...pkg.Artifact, ) pkg.Artifact { name := "all" - if s.opts&OptSkipCheck != 0 { + if t.opts&OptSkipCheck != 0 { name = "make" } - return s.New(t, "go"+version, 0, s.AppendPresets(t, extra, + return t.New("go"+version, 0, t.Append(extra, Bash, ), nil, slices.Concat([]string{ "CC=cc", @@ -66,27 +65,27 @@ ln -s \ ))) } -func (t Toolchain) newGoLatest(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGoLatest() (pkg.Artifact, string) { var ( bootstrapEnv []string bootstrapExtra []pkg.Artifact finalEnv []string ) - switch s.arch { + switch t.arch { case "amd64": - bootstrapExtra = append(bootstrapExtra, s.newGoBootstrap(t)) + bootstrapExtra = append(bootstrapExtra, t.newGoBootstrap()) case "arm64", "riscv64": bootstrapEnv = append(bootstrapEnv, "GOROOT_BOOTSTRAP=/system") - bootstrapExtra = s.AppendPresets(t, bootstrapExtra, gcc) + bootstrapExtra = t.Append(bootstrapExtra, gcc) finalEnv = append(finalEnv, "CGO_ENABLED=0") default: - panic("unsupported target " + s.arch) + panic("unsupported target " + t.arch) } - go119 := s.newGo(t, + go119 := t.newGo( "1.19", "9_e0aFHsIkVxWVGsp9T2RvvjOc3p4n9o9S8tkNe9Cvgzk_zI2FhRQB7ioQkeAAro", append(bootstrapEnv, "CGO_ENABLED=0"), ` @@ -102,13 +101,13 @@ echo \ os/rawconn_test.go `, bootstrapExtra...) - go121 := s.newGo(t, + go121 := t.newGo( "1.21.13", "YtrDka402BOAEwywx03Vz4QlVwoBiguJHzG7PuythMCPHXS8CVMLvzmvgEbu4Tzu", []string{"CGO_ENABLED=0"}, ` sed -i \ - 's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \ - cmd/link/internal/`+s.arch+`/obj.go + 's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \ + cmd/link/internal/`+t.arch+`/obj.go rm \ crypto/tls/handshake_client_test.go \ @@ -120,23 +119,23 @@ echo \ `, go119, ) - go123 := s.newGo(t, + go123 := t.newGo( "1.23.12", "wcI32bl1tkqbgcelGtGWPI4RtlEddd-PTd76Eb-k7nXA5LbE9yTNdIL9QSOOxMOs", []string{"CGO_ENABLED=0"}, ` sed -i \ - 's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \ - cmd/link/internal/`+s.arch+`/obj.go + 's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \ + cmd/link/internal/`+t.arch+`/obj.go `, go121, ) - go125 := s.newGo(t, + go125 := t.newGo( "1.25.10", "TwKwatkpwal-j9U2sDSRPEdM3YesI4Gm88YgGV59wtU-L85K9gA7UPy9SCxn6PMb", []string{"CGO_ENABLED=0"}, ` sed -i \ - 's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \ - cmd/link/internal/`+s.arch+`/obj.go + 's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \ + cmd/link/internal/`+t.arch+`/obj.go rm \ os/root_unix_test.go \ @@ -148,13 +147,13 @@ rm \ version = "1.26.3" checksum = "lEiFocZFnN5fKvZzmwVdqc9pYUjAuhzqZGbuiOqxUP4XdcY8yECisKcqsQ_eNn1N" ) - return s.newGo(t, + return t.newGo( version, checksum, finalEnv, ` sed -i \ - 's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \ - cmd/link/internal/`+s.arch+`/obj.go + 's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \ + cmd/link/internal/`+t.arch+`/obj.go sed -i \ 's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \ internal/runtime/gc/scan/scan_amd64.go diff --git a/internal/rosa/gtk.go b/internal/rosa/gtk.go index ab054279..02ba1786 100644 --- a/internal/rosa/gtk.go +++ b/internal/rosa/gtk.go @@ -5,12 +5,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newGLib(s *S) (pkg.Artifact, string) { +func (t Toolchain) newGLib() (pkg.Artifact, string) { const ( version = "2.88.1" checksum = "Rkszn6W4RHjyspyqfXdVAVawdwDJCuS0Zu0f7qot7tbJhnw2fUDoUUJB40m-1MCX" ) - return s.NewPackage(t, "glib", version, s.newTagRemote(t, + return t.NewPackage("glib", version, t.newTagRemote( "https://gitlab.gnome.org/GNOME/glib.git", version, checksum, ), &PackageAttr{ diff --git a/internal/rosa/hakurei.go b/internal/rosa/hakurei.go index 9f5fba30..f6882474 100644 --- a/internal/rosa/hakurei.go +++ b/internal/rosa/hakurei.go @@ -2,8 +2,7 @@ package rosa import "hakurei.app/internal/pkg" -func (s *S) newHakurei( - t Toolchain, +func (t Toolchain) newHakurei( suffix, script string, withHostname bool, ) pkg.Artifact { @@ -15,7 +14,7 @@ go build -o /bin/hostname /usr/src/hostname/main.go hostname = "" } - return s.New(t, "hakurei"+suffix+"-"+hakureiVersion, 0, s.AppendPresets(t, nil, + return t.New("hakurei"+suffix+"-"+hakureiVersion, 0, t.Append(nil, Go, PkgConfig, @@ -39,8 +38,8 @@ go build -o /bin/hostname /usr/src/hostname/main.go cd /usr/src/hakurei HAKUREI_VERSION='v`+hakureiVersion+`' -`+script, pkg.Path(AbsUsrSrc.Append("hakurei"), true, s.NewPatchedSource( - t, "hakurei", hakureiVersion, hakureiSource, false, hakureiPatches..., +`+script, pkg.Path(AbsUsrSrc.Append("hakurei"), true, t.NewPatchedSource( + "hakurei", hakureiVersion, hakureiSource, false, hakureiPatches..., )), pkg.Path(AbsUsrSrc.Append("hostname", "main.go"), false, pkg.NewFile( "hostname.go", []byte(` @@ -60,8 +59,8 @@ func main() { } func init() { native.MustRegister(&Artifact{ - f: func(t Toolchain, s *S) (pkg.Artifact, string) { - return s.newHakurei(t, "", ` + f: func(t Toolchain) (pkg.Artifact, string) { + return t.newHakurei("", ` mkdir -p /work/system/libexec/hakurei/ echo "Building hakurei for $(go env GOOS)/$(go env GOARCH)." @@ -96,12 +95,12 @@ mkdir -p /work/system/bin/ ID: 388834, }) native.MustRegister(&Artifact{ - f: func(t Toolchain, s *S) (pkg.Artifact, string) { + f: func(t Toolchain) (pkg.Artifact, string) { name := "all" - if s.opts&OptSkipCheck != 0 { + if t.opts&OptSkipCheck != 0 { name = "make" } - return s.newHakurei(t, "-dist", ` + return t.newHakurei("-dist", ` export HAKUREI_VERSION DESTDIR=/work /usr/src/hakurei/`+name+`.sh `, true), hakureiVersion diff --git a/internal/rosa/hwdata.go b/internal/rosa/hwdata.go index eda0ba95..f021703d 100644 --- a/internal/rosa/hwdata.go +++ b/internal/rosa/hwdata.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newHwdata(s *S) (pkg.Artifact, string) { +func (t Toolchain) newHwdata() (pkg.Artifact, string) { const ( version = "0.407" checksum = "6p1XD0CRuzt6hLfjv4ShKBW934BexmoPkRrmwxD4J63fBVCzVBRHyF8pVJdW_Xjm" ) - return s.NewPackage(t, "hwdata", version, newFromGitHub( + return t.NewPackage("hwdata", version, newFromGitHub( "vcrhonek/hwdata", "v"+version, checksum, ), &PackageAttr{ diff --git a/internal/rosa/images.go b/internal/rosa/images.go index 3441bcf0..715035cc 100644 --- a/internal/rosa/images.go +++ b/internal/rosa/images.go @@ -10,8 +10,8 @@ func init() { Name: "earlyinit", Description: "Rosa OS initramfs init program", - f: func(t Toolchain, s *S) (pkg.Artifact, string) { - return s.newHakurei(t, "-early-init", ` + f: func(t Toolchain) (pkg.Artifact, string) { + return t.newHakurei("-early-init", ` mkdir -p /work/system/libexec/hakurei/ echo '# Building earlyinit.' @@ -26,12 +26,12 @@ echo }, }) } -func (t Toolchain) newImageSystem(s *S) (pkg.Artifact, string) { - return s.New(t, "system.img", TNoToolchain, s.AppendPresets(t, nil, +func (t Toolchain) newImageSystem() (pkg.Artifact, string) { + return t.New("system.img", TNoToolchain, t.Append(nil, SquashfsTools, ), nil, nil, ` mksquashfs /mnt/system /work/system.img -`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, s.AppendPresets(t, nil, +`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.Append(nil, Musl, Mksh, Toybox, @@ -49,8 +49,8 @@ func init() { f: Toolchain.newImageSystem, }) } -func (t Toolchain) newImageInitramfs(s *S) (pkg.Artifact, string) { - return s.New(t, "initramfs", TNoToolchain, s.AppendPresets(t, nil, +func (t Toolchain) newImageInitramfs() (pkg.Artifact, string) { + return t.New("initramfs", TNoToolchain, t.Append(nil, Zstd, EarlyInit, GenInitCPIO, diff --git a/internal/rosa/kernel.go b/internal/rosa/kernel.go index 3f4b8422..5aa39085 100644 --- a/internal/rosa/kernel.go +++ b/internal/rosa/kernel.go @@ -11,8 +11,8 @@ var kernelSource = newTar( pkg.TarGzip, ) -func (t Toolchain) newKernelSource(s *S) (pkg.Artifact, string) { - return s.New(t, "kernel-"+kernelVersion+"-src", 0, nil, nil, nil, ` +func (t Toolchain) newKernelSource() (pkg.Artifact, string) { + return t.New("kernel-"+kernelVersion+"-src", 0, nil, nil, nil, ` mkdir -p /work/usr/src/ cp -r /usr/src/linux /work/usr/src/ chmod -R +w /work/usr/src/linux/ @@ -28,9 +28,9 @@ func init() { }) } -func (t Toolchain) newKernelHeaders(s *S) (pkg.Artifact, string) { +func (t Toolchain) newKernelHeaders() (pkg.Artifact, string) { const checksum = "lCmBNcMeUmXifg0vecKOPy3GAaFcJSmOPnf3wit9xYTDSTsFADPt1xxUFfmTn1fD" - return s.NewPackage(t, "kernel-headers", kernelVersion, kernelSource, &PackageAttr{ + return t.NewPackage("kernel-headers", kernelVersion, kernelSource, &PackageAttr{ Flag: TEarly, KnownChecksum: new(mustDecode(checksum)), @@ -76,8 +76,8 @@ func init() { }) } -func (t Toolchain) newKernel(s *S) (pkg.Artifact, string) { - return s.NewPackage(t, "kernel", kernelVersion, kernelSource, &PackageAttr{ +func (t Toolchain) newKernel() (pkg.Artifact, string) { + return t.NewPackage("kernel", kernelVersion, kernelSource, &PackageAttr{ Env: []string{ "PATH=/system/sbin", }, @@ -1283,8 +1283,8 @@ func init() { }) } -func (t Toolchain) newGenInitCPIO(s *S) (pkg.Artifact, string) { - return s.New(t, "gen_init_cpio-"+kernelVersion, 0, nil, nil, nil, ` +func (t Toolchain) newGenInitCPIO() (pkg.Artifact, string) { + return t.New("gen_init_cpio-"+kernelVersion, 0, nil, nil, nil, ` mkdir -p /work/system/bin/ cc -o /work/system/bin/gen_init_cpio /usr/src/linux/usr/gen_init_cpio.c `, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource)), kernelVersion @@ -1298,12 +1298,12 @@ func init() { }) } -func (t Toolchain) newFirmware(s *S) (pkg.Artifact, string) { +func (t Toolchain) newFirmware() (pkg.Artifact, string) { const ( version = "20260410" checksum = "J8PdQlGqwrivpskPzbL6xacqR6mlKtXpe5RpzFfVzKPAgG81ZRXsc3qrxwdGJbil" ) - return s.NewPackage(t, "firmware", version, newFromGitLab( + return t.NewPackage("firmware", version, newFromGitLab( "gitlab.com", "kernel-firmware/linux-firmware", version, diff --git a/internal/rosa/kmod.go b/internal/rosa/kmod.go index 69310e3f..0009f3e7 100644 --- a/internal/rosa/kmod.go +++ b/internal/rosa/kmod.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newKmod(s *S) (pkg.Artifact, string) { +func (t Toolchain) newKmod() (pkg.Artifact, string) { const ( version = "34.2" checksum = "0K7POeTKxMhExsaTsnKAC6LUNsRSfe6sSZxWONPbOu-GI_pXOw3toU_BIoqfBhJV" ) - return s.NewPackage(t, "kmod", version, newTar( + return t.NewPackage("kmod", version, newTar( "https://www.kernel.org/pub/linux/utils/kernel/"+ "kmod/kmod-"+version+".tar.gz", checksum, diff --git a/internal/rosa/libarchive.go b/internal/rosa/libarchive.go index 8edbcd17..1cb35c6a 100644 --- a/internal/rosa/libarchive.go +++ b/internal/rosa/libarchive.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibarchive(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibarchive() (pkg.Artifact, string) { const ( version = "3.8.7" checksum = "CUJK4MDQmZmATClgQBH2Wt-7Ts4iiSUlg1J_TVb6-5IK3rVUgVLIMc5k-bnWB9w3" ) - return s.NewPackage(t, "libarchive", version, newFromGitHub( + return t.NewPackage("libarchive", version, newFromGitHub( "libarchive/libarchive", "v"+version, checksum, ), &PackageAttr{ diff --git a/internal/rosa/libbsd.go b/internal/rosa/libbsd.go index 40b69efa..20d74b7c 100644 --- a/internal/rosa/libbsd.go +++ b/internal/rosa/libbsd.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibmd(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibmd() (pkg.Artifact, string) { const ( version = "1.2.0" checksum = "1rJ6joAO0wwMZvSfnRNkc1MOhywyAq7SM8VmF92NvDtv7Qdl1LRbjm5fg_DFFtGj" ) - return s.NewPackage(t, "libmd", version, s.newTagRemote(t, + return t.NewPackage("libmd", version, t.newTagRemote( "https://git.hadrons.org/git/libmd.git", version, checksum, ), nil, &MakeHelper{ @@ -32,12 +32,12 @@ func init() { }) } -func (t Toolchain) newLibbsd(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibbsd() (pkg.Artifact, string) { const ( version = "0.12.2" checksum = "NVS0xFLTwSP8JiElEftsZ-e1_C-IgJhHrHE77RwKt5178M7r087waO-zYx2_dfGX" ) - return s.NewPackage(t, "libbsd", version, s.newTagRemote(t, + return t.NewPackage("libbsd", version, t.newTagRemote( "https://gitlab.freedesktop.org/libbsd/libbsd.git", version, checksum, ), nil, &MakeHelper{ diff --git a/internal/rosa/libcap.go b/internal/rosa/libcap.go index 48fcb4e5..480b8b96 100644 --- a/internal/rosa/libcap.go +++ b/internal/rosa/libcap.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibcap(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibcap() (pkg.Artifact, string) { const ( version = "2.78" checksum = "wFdUkBhFMD9InPnrBZyegWrlPSAg_9JiTBC-eSFyWWlmbzL2qjh2mKxr9Kx2a8ut" ) - return s.NewPackage(t, "libcap", version, newTar( + return t.NewPackage("libcap", version, newTar( "https://git.kernel.org/pub/scm/libs/libcap/libcap.git/"+ "snapshot/libcap-"+version+".tar.gz", checksum, diff --git a/internal/rosa/libconfig.go b/internal/rosa/libconfig.go index 554dd7ad..63e55cb7 100644 --- a/internal/rosa/libconfig.go +++ b/internal/rosa/libconfig.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibconfig(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibconfig() (pkg.Artifact, string) { const ( version = "1.8.2" checksum = "fD32hjeAZuTz98g6WYHRwsxphrgrEFqxi5Z1jlJemPckPBfxpS3i5HgshAuA6vmT" ) - return s.NewPackage(t, "libconfig", version, newFromGitHub( + return t.NewPackage("libconfig", version, newFromGitHub( "hyperrealm/libconfig", "v"+version, checksum, diff --git a/internal/rosa/libdisplay-info.go b/internal/rosa/libdisplay-info.go index d3cde689..db059bc8 100644 --- a/internal/rosa/libdisplay-info.go +++ b/internal/rosa/libdisplay-info.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibdisplayInfo(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibdisplayInfo() (pkg.Artifact, string) { const ( version = "0.3.0" checksum = "yjOqPUHHYgRtpqGw5RI1n2Q1_hO5j0LiFNMbjcRWV4Nf71XwwoC9fZMlKBDeLchT" ) - return s.NewPackage(t, "libdisplay-info", version, newFromGitLab( + return t.NewPackage("libdisplay-info", version, newFromGitLab( "gitlab.freedesktop.org", "emersion/libdisplay-info", version, checksum, diff --git a/internal/rosa/libepoxy.go b/internal/rosa/libepoxy.go index 00cf1459..e9fbc2b7 100644 --- a/internal/rosa/libepoxy.go +++ b/internal/rosa/libepoxy.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibepoxy(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibepoxy() (pkg.Artifact, string) { const ( version = "1.5.10" checksum = "OHI8wshrlGw6BMGrmSyejJtwzM2gPhyFJrTsKxULyKMmYrfgcOe7Iw2ibVoUND_Q" ) - return s.NewPackage(t, "libepoxy", version, newFromGitHub( + return t.NewPackage("libepoxy", version, newFromGitHub( "anholt/libepoxy", version, checksum, diff --git a/internal/rosa/libev.go b/internal/rosa/libev.go index 6c733f13..2d661bc9 100644 --- a/internal/rosa/libev.go +++ b/internal/rosa/libev.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibev(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibev() (pkg.Artifact, string) { const ( version = "4.33" checksum = "774eSXV_4k8PySRprUDChbEwsw-kzjIFnJ3MpNOl5zDpamBRvC3BqPyRxvkwcL6_" ) - return s.NewPackage(t, "libev", version, newTar( + return t.NewPackage("libev", version, newTar( "https://dist.schmorp.de/libev/Attic/libev-"+version+".tar.gz", checksum, pkg.TarGzip, diff --git a/internal/rosa/libexpat.go b/internal/rosa/libexpat.go index 4b9263ab..99bb626e 100644 --- a/internal/rosa/libexpat.go +++ b/internal/rosa/libexpat.go @@ -6,12 +6,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newLibexpat(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibexpat() (pkg.Artifact, string) { const ( version = "2.8.1" checksum = "iMEtbOJhQfGof2GxSlxffQSI1va_NDDQ9VIuqcPbNZ0291Dr8wttD5QecYyjIQap" ) - return s.NewPackage(t, "libexpat", version, newFromGitHubRelease( + return t.NewPackage("libexpat", version, newFromGitHubRelease( "libexpat/libexpat", "R_"+strings.ReplaceAll(version, ".", "_"), "expat-"+version+".tar.bz2", diff --git a/internal/rosa/libffi.go b/internal/rosa/libffi.go index 9b5a1421..21054c4b 100644 --- a/internal/rosa/libffi.go +++ b/internal/rosa/libffi.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibffi(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibffi() (pkg.Artifact, string) { const ( version = "3.5.2" checksum = "2_Q-ZNBBbVhltfL5zEr0wljxPegUimTK4VeMSiwJEGksls3n4gj3lV0Ly3vviSFH" ) - return s.NewPackage(t, "libffi", version, newFromGitHubRelease( + return t.NewPackage("libffi", version, newFromGitHubRelease( "libffi/libffi", "v"+version, "libffi-"+version+".tar.gz", diff --git a/internal/rosa/libgd.go b/internal/rosa/libgd.go index b449110d..575a7582 100644 --- a/internal/rosa/libgd.go +++ b/internal/rosa/libgd.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibgd(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibgd() (pkg.Artifact, string) { const ( version = "2.3.3" checksum = "8T-sh1_FJT9K9aajgxzh8ot6vWIF-xxjcKAHvTak9MgGUcsFfzP8cAvvv44u2r36" ) - return s.NewPackage(t, "libgd", version, newFromGitHubRelease( + return t.NewPackage("libgd", version, newFromGitHubRelease( "libgd/libgd", "gd-"+version, "libgd-"+version+".tar.gz", checksum, diff --git a/internal/rosa/libpng.go b/internal/rosa/libpng.go index 744a43dc..ab4c0033 100644 --- a/internal/rosa/libpng.go +++ b/internal/rosa/libpng.go @@ -6,12 +6,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newLibpng(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibpng() (pkg.Artifact, string) { const ( version = "1.6.58" checksum = "m_a5lROJH7vmF3cMjqwTUqURuQLhV1JQx2ySPzcN3VPdgDB9pG3UINsIx_mtkr-t" ) - return s.NewPackage(t, "libpng", version, newTar( + return t.NewPackage("libpng", version, newTar( "https://downloads.sourceforge.net/project/libpng/libpng"+ strings.Join(strings.SplitN(version, ".", 3)[:2], "")+ "/"+version+"/libpng-"+version+".tar.gz", diff --git a/internal/rosa/libpsl.go b/internal/rosa/libpsl.go index 3b6c6f75..e5001063 100644 --- a/internal/rosa/libpsl.go +++ b/internal/rosa/libpsl.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibpsl(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibpsl() (pkg.Artifact, string) { const ( version = "0.21.5" checksum = "XjfxSzh7peG2Vg4vJlL8z4JZJLcXqbuP6pLWkrGCmRxlnYUFTKNBqWGHCxEOlCad" ) - return s.NewPackage(t, "libpsl", version, newFromGitHubRelease( + return t.NewPackage("libpsl", version, newFromGitHubRelease( "rockdaboot/libpsl", version, "libpsl-"+version+".tar.gz", diff --git a/internal/rosa/libseccomp.go b/internal/rosa/libseccomp.go index f152cce5..dac1b8e7 100644 --- a/internal/rosa/libseccomp.go +++ b/internal/rosa/libseccomp.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibseccomp(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibseccomp() (pkg.Artifact, string) { const ( version = "2.6.0" checksum = "mMu-iR71guPjFbb31u-YexBaanKE_nYPjPux-vuBiPfS_0kbwJdfCGlkofaUm-EY" ) - return s.NewPackage(t, "libseccomp", version, newFromGitHubRelease( + return t.NewPackage("libseccomp", version, newFromGitHubRelease( "seccomp/libseccomp", "v"+version, "libseccomp-"+version+".tar.gz", diff --git a/internal/rosa/libtirpc.go b/internal/rosa/libtirpc.go index e689d720..89503753 100644 --- a/internal/rosa/libtirpc.go +++ b/internal/rosa/libtirpc.go @@ -6,12 +6,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newLibtirpc(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibtirpc() (pkg.Artifact, string) { const ( version = "1.3.7" checksum = "nzFfu7LNvnSNiNAryD1vtnNWnU-Xqee8KqfXUKoBf5yjb5-dkeRkYuRijdCoYLof" ) - return s.NewPackage(t, "libtirpc", version, s.newTagRemote(t, + return t.NewPackage("libtirpc", version, t.newTagRemote( "git://linux-nfs.org/~steved/libtirpc", "libtirpc-"+ strings.Join(strings.SplitN(version, ".", 3), "-"), diff --git a/internal/rosa/libucontext.go b/internal/rosa/libucontext.go index b633c389..83096ef8 100644 --- a/internal/rosa/libucontext.go +++ b/internal/rosa/libucontext.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibucontext(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibucontext() (pkg.Artifact, string) { const ( version = "1.5.1" checksum = "mUgeyJknjMxT-5fORzz-rqhZfP3Y7EZGBhOwvhuX7MsF4Pk9wkuwtrLf5IML-jWu" ) - return s.NewPackage(t, "libucontext", version, newFromGitHub( + return t.NewPackage("libucontext", version, newFromGitHub( "kaniini/libucontext", "libucontext-"+version, checksum, @@ -21,7 +21,7 @@ func (t Toolchain) newLibucontext(s *S) (pkg.Artifact, string) { SkipConfigure: true, InPlace: true, Make: []string{ - "ARCH=" + s.linuxArch(), + "ARCH=" + t.linuxArch(), }, Install: "make prefix=/system DESTDIR=/work install", }), version diff --git a/internal/rosa/libxml2.go b/internal/rosa/libxml2.go index 011a7d4a..9e6b5248 100644 --- a/internal/rosa/libxml2.go +++ b/internal/rosa/libxml2.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibxml2(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxml2() (pkg.Artifact, string) { const ( version = "2.15.3" checksum = "oJy74htGlEpf70KPvpW18fYJo0RQQkCXZRwqUz6NoXborS3HCq3Nm4gsyaSeNmUH" ) - return s.NewPackage(t, "libxml2", version, newFromGitLab( + return t.NewPackage("libxml2", version, newFromGitLab( "gitlab.gnome.org", "GNOME/libxml2", "v"+version, checksum, diff --git a/internal/rosa/libxslt.go b/internal/rosa/libxslt.go index 4128a3e1..f3315032 100644 --- a/internal/rosa/libxslt.go +++ b/internal/rosa/libxslt.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibxslt(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxslt() (pkg.Artifact, string) { const ( version = "1.1.45" checksum = "67ks7v8od2oWaEGf23Sst_Xbn_8brQyolQjqxPoO-lK35k_WJhi2Px5JJgbk-nfn" ) - return s.NewPackage(t, "libxslt", version, newFromGitLab( + return t.NewPackage("libxslt", version, newFromGitLab( "gitlab.gnome.org", "GNOME/libxslt", "v"+version, checksum, diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go index b5abbe84..ccc8ee8c 100644 --- a/internal/rosa/llvm.go +++ b/internal/rosa/llvm.go @@ -29,10 +29,10 @@ func litArgs(verbose bool, skipChecks ...string) string { return "'" + strings.Join(args, " ") + "'" } -func (t Toolchain) newEarlyCompilerRT(s *S) (pkg.Artifact, string) { - source, version := s.Load(t, llvmSource) +func (t Toolchain) newEarlyCompilerRT() (pkg.Artifact, string) { + source, version := t.Load(llvmSource) major, _, _ := strings.Cut(version, ".") - return s.NewPackage(t, "early-compiler-rt", version, source, &PackageAttr{ + return t.NewPackage("early-compiler-rt", version, source, &PackageAttr{ Flag: TExclusive, }, &CMakeHelper{ Append: []string{"compiler-rt"}, @@ -71,10 +71,10 @@ ln -s \ "/work/system/lib/clang/` + major + `/lib/" ln -s \ - "clang_rt.crtbegin-` + s.linuxArch() + `.o" \ + "clang_rt.crtbegin-` + t.linuxArch() + `.o" \ "/work/system/lib/${ROSA_TRIPLE}/crtbeginS.o" ln -s \ - "clang_rt.crtend-` + s.linuxArch() + `.o" \ + "clang_rt.crtend-` + t.linuxArch() + `.o" \ "/work/system/lib/${ROSA_TRIPLE}/crtendS.o" `, }, @@ -97,9 +97,9 @@ func init() { }) } -func (t Toolchain) newEarlyRuntimes(s *S) (pkg.Artifact, string) { - source, version := s.Load(t, llvmSource) - return s.NewPackage(t, "early-runtimes", version, source, &PackageAttr{ +func (t Toolchain) newEarlyRuntimes() (pkg.Artifact, string) { + source, version := t.Load(llvmSource) + return t.NewPackage("early-runtimes", version, source, &PackageAttr{ Flag: TExclusive, }, &CMakeHelper{ Append: []string{"runtimes"}, @@ -157,9 +157,9 @@ func init() { }) } -func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLLVM() (pkg.Artifact, string) { early := muslHeaders - if t.isStage0() { + if t.stage.isStage0() { // The LLVM build system uses the system installation when building with // LLVM_LINK_LLVM_DYLIB, since it builds runtimes after the fact, using // the just-built toolchain. This is unacceptable in stage0 due to the @@ -217,7 +217,7 @@ func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) { }, ";") + "'"}, } - if !t.isStage0() { + if !t.stage.isStage0() { skipChecks := []string{ // expensive, pointless to run here "benchmarks", @@ -247,7 +247,7 @@ func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) { // unwind: fails on musl "eh_frame_fde_pc_range", } - switch s.arch { + switch t.arch { case "arm64": skipChecks = append(skipChecks, // LLVM: intermittently crashes @@ -257,7 +257,7 @@ func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) { ) } - if s.opts&OptLLVMNoLTO == 0 { + if t.opts&OptLLVMNoLTO == 0 { cache = append(cache, []KV{ // very expensive {"LLVM_ENABLE_LTO", "Thin"}, @@ -273,8 +273,8 @@ func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) { }...) } - source, version := s.Load(t, llvmSource) - return s.NewPackage(t, "llvm", version, source, &PackageAttr{ + source, version := t.Load(llvmSource) + return t.NewPackage("llvm", version, source, &PackageAttr{ Flag: TExclusive, }, &CMakeHelper{ Append: []string{"llvm"}, @@ -291,7 +291,7 @@ ln -s clang++ /work/system/bin/c++ // installation into test environment, and the tests end up testing the // system installation instead. Tests are disabled on stage0 and relies // on 3-stage determinism to test later stages. - SkipTest: t.isStage0(), + SkipTest: t.stage.isStage0(), Test: ` chmod +w /bin && ln -s \ @@ -325,8 +325,8 @@ func init() { ) native.MustRegister(&Artifact{ - f: func(t Toolchain, s *S) (pkg.Artifact, string) { - return s.NewPatchedSource(t, "llvm", version, newFromGitHub( + f: func(t Toolchain) (pkg.Artifact, string) { + return t.NewPatchedSource("llvm", version, newFromGitHub( "llvm/llvm-project", "llvmorg-"+version, checksum, diff --git a/internal/rosa/lm-sensors.go b/internal/rosa/lm-sensors.go index bb9e7e15..32223434 100644 --- a/internal/rosa/lm-sensors.go +++ b/internal/rosa/lm-sensors.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLMSensors(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLMSensors() (pkg.Artifact, string) { const ( version = "3-6-2" checksum = "7JYNutrihe-FP6r3ftf96uFZJJWPfxnBHL0ALSMA-vovaXVRr-sAjlLitw7WWpCI" ) - return s.NewPackage(t, "lm_sensors", version, newFromGitHub( + return t.NewPackage("lm_sensors", version, newFromGitHub( "lm-sensors/lm-sensors", "V"+version, checksum, diff --git a/internal/rosa/make.go b/internal/rosa/make.go index 6c88bef6..961f2d33 100644 --- a/internal/rosa/make.go +++ b/internal/rosa/make.go @@ -7,12 +7,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newMake(s *S) (pkg.Artifact, string) { +func (t Toolchain) newMake() (pkg.Artifact, string) { const ( version = "4.4.1" checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a" ) - return s.New(t, "make-"+version, TEarly, nil, nil, nil, ` + return t.New("make-"+version, TEarly, nil, nil, nil, ` cd "$(mktemp -d)" /usr/src/make/configure \ --prefix=/system \ diff --git a/internal/rosa/mesa.go b/internal/rosa/mesa.go index d1037656..58ca7c86 100644 --- a/internal/rosa/mesa.go +++ b/internal/rosa/mesa.go @@ -6,12 +6,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newLibglvnd(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibglvnd() (pkg.Artifact, string) { const ( version = "1.7.0" checksum = "eIQJK2sgFQDHdeFkQO87TrSUaZRFG4y2DrwA8Ut-sGboI59uw1OOiIVqq2AIwnGY" ) - return s.NewPackage(t, "libglvnd", version, newFromGitLab( + return t.NewPackage("libglvnd", version, newFromGitLab( "gitlab.freedesktop.org", "glvnd/libglvnd", "v"+version, @@ -50,12 +50,12 @@ func init() { }) } -func (t Toolchain) newLibdrm(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibdrm() (pkg.Artifact, string) { const ( version = "2.4.133" checksum = "bfj296NcR9DndO11hqDbSRFPqaweSLMqRk3dlCPZpM6FONX1WZ9J4JdbTDMUd1rU" ) - return s.NewPackage(t, "libdrm", version, newFromGitLab( + return t.NewPackage("libdrm", version, newFromGitLab( "gitlab.freedesktop.org", "mesa/libdrm", "libdrm-"+version, @@ -87,12 +87,12 @@ func init() { }) } -func (t Toolchain) newLibva(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibva() (pkg.Artifact, string) { const ( version = "2.23.0" checksum = "UmF5tPyWIG_w5kiR3KFpoYbF7UUcaak5tyc-RhOheNTwQlLkPlifreFYCM9FQxbq" ) - return s.NewPackage(t, "libva", version, newFromGitHub( + return t.NewPackage("libva", version, newFromGitHub( "intel/libva", version, checksum, @@ -129,12 +129,12 @@ func init() { }) } -func (t Toolchain) newMesa(s *S) (pkg.Artifact, string) { +func (t Toolchain) newMesa() (pkg.Artifact, string) { const ( version = "26.1.0" checksum = "zU0fjqevySBaoi_5SLW3e2UffmGeBdxOuHmAHTH68n2hV-sjYoqg30koLqFXuk5y" ) - return s.NewPackage(t, "mesa", version, newFromGitLab( + return t.NewPackage("mesa", version, newFromGitLab( "gitlab.freedesktop.org", "mesa/mesa", "mesa-"+version, diff --git a/internal/rosa/meson.go b/internal/rosa/meson.go index 2015497c..22e108f1 100644 --- a/internal/rosa/meson.go +++ b/internal/rosa/meson.go @@ -7,12 +7,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newMeson(s *S) (pkg.Artifact, string) { +func (t Toolchain) newMeson() (pkg.Artifact, string) { const ( version = "1.11.1" checksum = "uvILRxdopwc6Dy17UbIeClcQr0qHqyTaqyk1M9OqWKN9PwB9N6UVAiyN8kSSz3r2" ) - return s.NewPackage(t, "meson", version, newFromGitHub( + return t.NewPackage("meson", version, newFromGitHub( "mesonbuild/meson", version, checksum, diff --git a/internal/rosa/mksh.go b/internal/rosa/mksh.go index a2059efa..0457fd52 100644 --- a/internal/rosa/mksh.go +++ b/internal/rosa/mksh.go @@ -2,16 +2,16 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newMksh(s *S) (pkg.Artifact, string) { +func (t Toolchain) newMksh() (pkg.Artifact, string) { const ( version = "59c" checksum = "0Zj-k4nXEu3IuJY4lvwD2OrC2t27GdZj8SPy4DoaeuBRH1padWb7oREpYgwY8JNq" ) scriptTest := "./test.sh -C regress:no-ctty\n" - if s.opts&OptSkipCheck != 0 { + if t.opts&OptSkipCheck != 0 { scriptTest = "" } - return s.New(t, "mksh-"+version, 0, s.AppendPresets(t, nil, + return t.New("mksh-"+version, 0, t.Append(nil, Perl, Coreutils, ), nil, []string{ diff --git a/internal/rosa/musl-fts.go b/internal/rosa/musl-fts.go index 9a48c214..aa1ffaa1 100644 --- a/internal/rosa/musl-fts.go +++ b/internal/rosa/musl-fts.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newMuslFts(s *S) (pkg.Artifact, string) { +func (t Toolchain) newMuslFts() (pkg.Artifact, string) { const ( version = "1.2.7" checksum = "N_p_ZApX3eHt7xoDCw1hLf6XdJOw7ZSx7xPvpvAP0knG2zgU0zeN5w8tt5Pg60XJ" ) - return s.NewPackage(t, "musl-fts", version, newFromGitHub( + return t.NewPackage("musl-fts", version, newFromGitHub( "void-linux/musl-fts", "v"+version, checksum, diff --git a/internal/rosa/musl-obstack.go b/internal/rosa/musl-obstack.go index cd62072b..4b019b6a 100644 --- a/internal/rosa/musl-obstack.go +++ b/internal/rosa/musl-obstack.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newMuslObstack(s *S) (pkg.Artifact, string) { +func (t Toolchain) newMuslObstack() (pkg.Artifact, string) { const ( version = "1.2.3" checksum = "tVRY_KjIlkkMszcaRlkKdBVQHIXTT_T_TiMxbwErlILXrOBosocg8KklppZhNdCG" ) - return s.NewPackage(t, "musl-obstack", version, newFromGitHub( + return t.NewPackage("musl-obstack", version, newFromGitHub( "void-linux/musl-obstack", "v"+version, checksum, diff --git a/internal/rosa/musl.go b/internal/rosa/musl.go index 165304d0..b57c185c 100644 --- a/internal/rosa/musl.go +++ b/internal/rosa/musl.go @@ -2,7 +2,7 @@ package rosa import "hakurei.app/internal/pkg" -func (s *S) newMusl(t Toolchain, headers bool) (pkg.Artifact, string) { +func (t Toolchain) newMusl(headers bool) (pkg.Artifact, string) { const ( version = "1.2.6" checksum = "WtWb_OV_XxLDAB5NerOL9loLlHVadV00MmGk65PPBU1evaolagoMHfvpZp_vxEzS" @@ -14,7 +14,7 @@ func (s *S) newMusl(t Toolchain, headers bool) (pkg.Artifact, string) { SkipCheck: true, Script: ` mkdir -p /work/system/bin -COMPAT_LINKER_NAME="ld-musl-` + s.linuxArch() + `.so.1" +COMPAT_LINKER_NAME="ld-musl-` + t.linuxArch() + `.so.1" ln -vs ../lib/libc.so /work/system/bin/linker ln -vs ../lib/libc.so /work/system/bin/ldd ln -vs libc.so "/work/system/lib/${COMPAT_LINKER_NAME}" @@ -34,9 +34,9 @@ rmdir -v /work/lib } env := []string{ - "LDFLAGS=" + s.earlyLDFLAGS(false), + "LDFLAGS=" + t.earlyLDFLAGS(false), } - if t.isStage0() { + if t.stage.isStage0() { env = append(env, "CC=clang", "AR=ar", @@ -44,7 +44,7 @@ rmdir -v /work/lib ) } - return s.NewPackage(t, name, version, newTar( + return t.NewPackage(name, version, newTar( "https://musl.libc.org/releases/musl-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -76,8 +76,8 @@ index 715948f4..c2fece68 100644 } func init() { native.MustRegister(&Artifact{ - f: func(t Toolchain, s *S) (pkg.Artifact, string) { - return s.newMusl(t, false) + f: func(t Toolchain) (pkg.Artifact, string) { + return t.newMusl(false) }, Name: "musl", @@ -88,8 +88,8 @@ func init() { }) native.MustRegister(&Artifact{ - f: func(t Toolchain, s *S) (pkg.Artifact, string) { - return s.newMusl(t, true) + f: func(t Toolchain) (pkg.Artifact, string) { + return t.newMusl(true) }, Name: "musl-headers", diff --git a/internal/rosa/ncurses.go b/internal/rosa/ncurses.go index 5c69bad0..da819c0e 100644 --- a/internal/rosa/ncurses.go +++ b/internal/rosa/ncurses.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newNcurses(s *S) (pkg.Artifact, string) { +func (t Toolchain) newNcurses() (pkg.Artifact, string) { const ( version = "6.6" checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w" ) - return s.NewPackage(t, "ncurses", version, newTar( + return t.NewPackage("ncurses", version, newTar( "https://ftpmirror.gnu.org/gnu/ncurses/ncurses-"+version+".tar.gz", checksum, pkg.TarGzip, diff --git a/internal/rosa/netfilter.go b/internal/rosa/netfilter.go index f99d050b..f8cb68d2 100644 --- a/internal/rosa/netfilter.go +++ b/internal/rosa/netfilter.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newLibmnl(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibmnl() (pkg.Artifact, string) { const ( version = "1.0.5" checksum = "DN-vbbvQDpxXJm0TJ6xlluILvfrB86avrCTX50XyE9SEFSAZ_o8nuKc5Gu0Am7-u" ) - return s.NewPackage(t, "libmnl", version, newTar( + return t.NewPackage("libmnl", version, newTar( "https://www.netfilter.org/projects/libmnl/files/"+ "libmnl-"+version+".tar.bz2", checksum, @@ -50,12 +50,12 @@ func init() { }) } -func (t Toolchain) newLibnftnl(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibnftnl() (pkg.Artifact, string) { const ( version = "1.3.1" checksum = "91ou66K-I17iX6DB6hiQkhhC_v4DFW5iDGzwjVRNbJNEmKqowLZBlh3FY-ZDO0r9" ) - return s.NewPackage(t, "libnftnl", version, s.newTagRemote(t, + return t.NewPackage("libnftnl", version, t.newTagRemote( "https://git.netfilter.org/libnftnl", "libnftnl-"+version, checksum, ), &PackageAttr{ @@ -92,12 +92,12 @@ func init() { }) } -func (t Toolchain) newIPTables(s *S) (pkg.Artifact, string) { +func (t Toolchain) newIPTables() (pkg.Artifact, string) { const ( version = "1.8.13" checksum = "TUA-cFIAsiMvtRR-XzQvXzoIhJUOc9J2gQDJCbBRjmgmVfGfPTCf58wL7e-cUKVQ" ) - return s.NewPackage(t, "iptables", version, s.newTagRemote(t, + return t.NewPackage("iptables", version, t.newTagRemote( "https://git.netfilter.org/iptables", "v"+version, checksum, ), &PackageAttr{ diff --git a/internal/rosa/nettle.go b/internal/rosa/nettle.go index 06148fb2..87425884 100644 --- a/internal/rosa/nettle.go +++ b/internal/rosa/nettle.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newNettle(s *S) (pkg.Artifact, string) { +func (t Toolchain) newNettle() (pkg.Artifact, string) { const ( version = "4.0" checksum = "6agC-vHzzoqAlaX3K9tX8yHgrm03HLqPZzVzq8jh_ePbuPMIvpxereu_uRJFmQK7" ) - return s.NewPackage(t, "nettle", version, newTar( + return t.NewPackage("nettle", version, newTar( "https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz", checksum, pkg.TarGzip, diff --git a/internal/rosa/nettle3.go b/internal/rosa/nettle3.go index df27e700..05164b2a 100644 --- a/internal/rosa/nettle3.go +++ b/internal/rosa/nettle3.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newNettle3(s *S) (pkg.Artifact, string) { +func (t Toolchain) newNettle3() (pkg.Artifact, string) { const ( version = "3.10.2" checksum = "07aXlj10X5llf67jIqRQAA1pgLSgb0w_JYggZVPuKNoc-B-_usb5Kr8FrfBe7g1S" ) - return s.NewPackage(t, "nettle", version, newTar( + return t.NewPackage("nettle", version, newTar( "https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz", checksum, pkg.TarGzip, diff --git a/internal/rosa/ninja.go b/internal/rosa/ninja.go index 3801d3ee..d34d7841 100644 --- a/internal/rosa/ninja.go +++ b/internal/rosa/ninja.go @@ -2,14 +2,14 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newNinja(s *S) (pkg.Artifact, string) { +func (t Toolchain) newNinja() (pkg.Artifact, string) { const ( version = "1.13.2" checksum = "ygKWMa0YV2lWKiFro5hnL-vcKbc_-RACZuPu0Io8qDvgQlZ0dxv7hPNSFkt4214v" ) - python, _ := s.Load(t, Python) - bash, _ := s.Load(t, Bash) - return s.New(t, "ninja-"+version, 0, []pkg.Artifact{ + python, _ := t.Load(Python) + bash, _ := t.Load(Bash) + return t.New("ninja-"+version, 0, []pkg.Artifact{ python, bash, }, nil, nil, ` @@ -30,7 +30,7 @@ cp ninja /work/system/bin/ "googletest-1.16.0.tar.gz", "NjLGvSbgPy_B-y-o1hdanlzEzaYeStFcvFGxpYV3KYlhrWWFRcugYhM3ZMzOA9B_", pkg.TarGzip, - )), pkg.Path(AbsUsrSrc.Append("ninja"), true, s.NewPatchedSource(t, + )), pkg.Path(AbsUsrSrc.Append("ninja"), true, t.NewPatchedSource( "ninja", version, newFromGitHub( "ninja-build/ninja", "v"+version, diff --git a/internal/rosa/nss.go b/internal/rosa/nss.go index 090554b5..dba39c94 100644 --- a/internal/rosa/nss.go +++ b/internal/rosa/nss.go @@ -6,7 +6,7 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newNSS(s *S) (pkg.Artifact, string) { +func (t Toolchain) newNSS() (pkg.Artifact, string) { const ( version = "3.123.1" checksum = "g811Z_fc74ssg-s6BeXRG-ipSfJggD6hrxjVJxrOBIz98CE7piv0OLwzIRLMQpwR" @@ -14,7 +14,7 @@ func (t Toolchain) newNSS(s *S) (pkg.Artifact, string) { version0 = "4_38_2" checksum0 = "25x2uJeQnOHIiq_zj17b4sYqKgeoU8-IsySUptoPcdHZ52PohFZfGuIisBreWzx0" ) - return s.NewPackage(t, "nss", version, newFromGitHub( + return t.NewPackage("nss", version, newFromGitHub( "nss-dev/nss", "NSS_"+strings.Join(strings.SplitN(version, ".", 3), "_")+"_RTM", checksum, @@ -102,8 +102,8 @@ rm buildcatrust/tests/test_nonhermetic.py ) } -func (t Toolchain) newNSSCACert(s *S) (pkg.Artifact, string) { - return s.New(t, "nss-cacert", 0, s.AppendPresets(t, nil, +func (t Toolchain) newNSSCACert() (pkg.Artifact, string) { + return t.New("nss-cacert", 0, t.Append(nil, Bash, NSS, diff --git a/internal/rosa/openssl.go b/internal/rosa/openssl.go index 7b3d3ea4..5b8bb442 100644 --- a/internal/rosa/openssl.go +++ b/internal/rosa/openssl.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newOpenSSL(s *S) (pkg.Artifact, string) { +func (t Toolchain) newOpenSSL() (pkg.Artifact, string) { const ( version = "3.6.2" checksum = "jH004dXTiE01Hp0kyShkWXwrSHEksZi4i_3v47D9H9Uz9LQ1aMwF7mrl2Tb4t_XA" ) - return s.NewPackage(t, "openssl", version, newFromGitHubRelease( + return t.NewPackage("openssl", version, newFromGitHubRelease( "openssl/openssl", "openssl-"+version, "openssl-"+version+".tar.gz", diff --git a/internal/rosa/p11.go b/internal/rosa/p11.go index c614dc99..b0853f9d 100644 --- a/internal/rosa/p11.go +++ b/internal/rosa/p11.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newP11Kit(s *S) (pkg.Artifact, string) { +func (t Toolchain) newP11Kit() (pkg.Artifact, string) { const ( version = "0.26.2" checksum = "3ei-6DUVtYzrRVe-SubtNgRlweXd6H2qHmUu-_5qVyIn6gSTvZbGS2u79Y8IFb2N" ) - return s.NewPackage(t, "p11-kit", version, s.newTagRemote(t, + return t.NewPackage("p11-kit", version, t.newTagRemote( "https://github.com/p11-glue/p11-kit.git", version, checksum, ), nil, &MesonHelper{ diff --git a/internal/rosa/pcre2.go b/internal/rosa/pcre2.go index 972ac41d..65de62d2 100644 --- a/internal/rosa/pcre2.go +++ b/internal/rosa/pcre2.go @@ -4,12 +4,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newPCRE2(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPCRE2() (pkg.Artifact, string) { const ( version = "10.47" checksum = "IbC24vVayju6nB9EhrBPSDexk22wDecdpyrjgC3nCZXkwTnUjq4CD2q5sopqu6CW" ) - return s.NewPackage(t, "pcre2", version, newFromGitHubRelease( + return t.NewPackage("pcre2", version, newFromGitHubRelease( "PCRE2Project/pcre2", "pcre2-"+version, "pcre2-"+version+".tar.bz2", diff --git a/internal/rosa/perl.go b/internal/rosa/perl.go index 0ebc4037..4eb9ba1e 100644 --- a/internal/rosa/perl.go +++ b/internal/rosa/perl.go @@ -7,12 +7,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newPerl(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerl() (pkg.Artifact, string) { const ( version = "5.42.2" checksum = "Me_xFfgkRnVyG0sE6a74TktK2OUq9Z1LVJNEu_9RdZG3S2fbjfzNiuk2SJqHAgbm" ) - return s.NewPackage(t, "perl", version, newTar( + return t.NewPackage("perl", version, newTar( "https://www.cpan.org/src/5.0/perl-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -65,8 +65,7 @@ func init() { } // newViaPerlModuleBuild installs a perl module via Build.PL. -func (s *S) newViaPerlModuleBuild( - t Toolchain, +func (t Toolchain) newViaPerlModuleBuild( name, version string, source pkg.Artifact, patches []KV, @@ -75,7 +74,7 @@ func (s *S) newViaPerlModuleBuild( if name == "" || version == "" { panic("names must be non-empty") } - return s.New(t, "perl-"+name, 0, s.AppendPresets(t, nil, + return t.New("perl-"+name, 0, t.Append(nil, slices.Concat(P{Perl}, extra)..., ), nil, nil, ` cd /usr/src/`+name+` @@ -83,17 +82,17 @@ perl Build.PL --prefix=/system ./Build build ./Build test ./Build install --destdir=/work -`, pkg.Path(AbsUsrSrc.Append(name), true, s.NewPatchedSource(t, +`, pkg.Path(AbsUsrSrc.Append(name), true, t.NewPatchedSource( "perl-"+name, version, source, false, patches..., ))) } -func (t Toolchain) newPerlModuleBuild(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlModuleBuild() (pkg.Artifact, string) { const ( version = "0.4234" checksum = "ZKxEFG4hE1rqZt52zBL2LRZBMkYzhjb5-cTBXcsyA52EbPeeYyVxU176yAea8-Di" ) - return s.newViaPerlModuleBuild(t, "Module-Build", version, newTar( + return t.newViaPerlModuleBuild("Module-Build", version, newTar( "https://cpan.metacpan.org/authors/id/L/LE/LEONT/"+ "Module-Build-"+version+".tar.gz", checksum, @@ -115,14 +114,13 @@ func init() { } // newViaPerlMakeMaker installs a perl module via Makefile.PL. -func (s *S) newViaPerlMakeMaker( - t Toolchain, +func (t Toolchain) newViaPerlMakeMaker( name, version string, source pkg.Artifact, patches []KV, extra ...ArtifactH, ) pkg.Artifact { - return s.NewPackage(t, "perl-"+name, version, source, &PackageAttr{ + return t.NewPackage("perl-"+name, version, source, &PackageAttr{ // uses source tree as scratch space Writable: true, Chmod: true, @@ -143,12 +141,12 @@ func (s *S) newViaPerlMakeMaker( })...) } -func (t Toolchain) newPerlLocaleGettext(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlLocaleGettext() (pkg.Artifact, string) { const ( version = "1.07" checksum = "cFq4BKFD1MWSoa7lsrPjpdo9kzPqd0jlRcBFUyL1L1isw8m3D_Sge_ff0MAu_9J3" ) - return s.newViaPerlMakeMaker(t, "Locale::gettext", version, newFromCPAN( + return t.newViaPerlMakeMaker("Locale::gettext", version, newFromCPAN( "PVANDRY", "Locale-gettext", version, @@ -167,12 +165,12 @@ func init() { }) } -func (t Toolchain) newPerlPodParser(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlPodParser() (pkg.Artifact, string) { const ( version = "1.67" checksum = "RdURu9mOfExk_loCp6abxlcQV3FycSNbTqhRS9i6JUqnYfGGEgercK30g0gjYyqe" ) - return s.newViaPerlMakeMaker(t, "Pod::Parser", version, newFromCPAN( + return t.newViaPerlMakeMaker("Pod::Parser", version, newFromCPAN( "MAREKR", "Pod-Parser", version, @@ -191,12 +189,12 @@ func init() { }) } -func (t Toolchain) newPerlSGMLS(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlSGMLS() (pkg.Artifact, string) { const ( version = "1.1" checksum = "aZijn4MUqD-wfyZgdcCruCwl4SgDdu25cNmJ4_UvdAk9a7uz4gzMQdoeB6DQ6QOy" ) - return s.newViaPerlMakeMaker(t, "SGMLS", version, newFromCPAN( + return t.newViaPerlMakeMaker("SGMLS", version, newFromCPAN( "RAAB", "SGMLSpm", version, @@ -229,12 +227,12 @@ func init() { }) } -func (t Toolchain) newPerlTermReadKey(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlTermReadKey() (pkg.Artifact, string) { const ( version = "2.38" checksum = "qerL8Xo7kD0f42PZoiEbmE8Roc_S9pOa27LXelY4DN_0UNy_u5wLrGHI8utNlaiI" ) - return s.newViaPerlMakeMaker(t, "Term::ReadKey", version, newFromCPAN( + return t.newViaPerlMakeMaker("Term::ReadKey", version, newFromCPAN( "JSTOWE", "TermReadKey", version, @@ -253,12 +251,12 @@ func init() { }) } -func (t Toolchain) newPerlTextCharWidth(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlTextCharWidth() (pkg.Artifact, string) { const ( version = "0.04" checksum = "G2p5RHU4_HiZ23ZusBA_enTlVMxz0J4esUx4CGcOPhY6xYTbp-aXWRN6lYZpzBw2" ) - return s.newViaPerlMakeMaker(t, "Text::CharWidth", version, newFromCPAN( + return t.newViaPerlMakeMaker("Text::CharWidth", version, newFromCPAN( "KUBOTA", "Text-CharWidth", version, @@ -277,12 +275,12 @@ func init() { }) } -func (t Toolchain) newPerlTextWrapI18N(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlTextWrapI18N() (pkg.Artifact, string) { const ( version = "0.06" checksum = "Vmo89qLgxUqyQ6QmWJVqu60aQAUjrNKRjFQSXGnvClxofzRjiCa6idzPgJ4VkixM" ) - return s.newViaPerlMakeMaker(t, "Text::WrapI18N", version, newFromCPAN( + return t.newViaPerlMakeMaker("Text::WrapI18N", version, newFromCPAN( "KUBOTA", "Text-WrapI18N", version, @@ -307,12 +305,12 @@ func init() { }) } -func (t Toolchain) newPerlMIMECharset(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlMIMECharset() (pkg.Artifact, string) { const ( version = "1.013.1" checksum = "Ou_ukcrOa1cgtE3mptinb-os3bdL1SXzbRDFZQF3prrJj-drc3rp_huay7iDLJol" ) - return s.newViaPerlMakeMaker(t, "MIME::Charset", version, newFromCPAN( + return t.newViaPerlMakeMaker("MIME::Charset", version, newFromCPAN( "NEZUMI", "MIME-Charset", version, @@ -331,12 +329,12 @@ func init() { }) } -func (t Toolchain) newPerlUnicodeLineBreak(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlUnicodeLineBreak() (pkg.Artifact, string) { const ( version = "2019.001" checksum = "ZHVkh7EDgAUHnTpvXsnPAuWpgNoBImtY_9_8TIbo2co_WgUwEb0MtXPhI8pAZ5OH" ) - return s.newViaPerlMakeMaker(t, "Unicode::LineBreak", version, newFromCPAN( + return t.newViaPerlMakeMaker("Unicode::LineBreak", version, newFromCPAN( "NEZUMI", "Unicode-LineBreak", version, @@ -361,12 +359,12 @@ func init() { }) } -func (t Toolchain) newPerlYAMLTiny(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlYAMLTiny() (pkg.Artifact, string) { const ( version = "1.76" checksum = "V1MV4KPym1LxSw8CRXqPR3K-l1hGHbT5Ob4t-9xju6R9X_CWyw6hI8wsMaNdHdBY" ) - return s.newViaPerlMakeMaker(t, "YAML::Tiny", version, newFromCPAN( + return t.newViaPerlMakeMaker("YAML::Tiny", version, newFromCPAN( "ETHER", "YAML-Tiny", version, @@ -385,12 +383,12 @@ func init() { }) } -func (t Toolchain) newPerlTestCmd(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPerlTestCmd() (pkg.Artifact, string) { const ( version = "1.09" checksum = "gpGUwyC9IozDiYSgW_kXARNfXsTPFa6cTowJmmCBbPqcs2-pONZca_SB06FGy-7H" ) - return s.newViaPerlMakeMaker(t, "Test::Cmd", version, newFromCPAN( + return t.newViaPerlMakeMaker("Test::Cmd", version, newFromCPAN( "NEILB", "Test-Cmd", version, diff --git a/internal/rosa/pixman.go b/internal/rosa/pixman.go index 8a6b52f9..e1f792a1 100644 --- a/internal/rosa/pixman.go +++ b/internal/rosa/pixman.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newPixman(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPixman() (pkg.Artifact, string) { const ( version = "0.46.4" checksum = "iECDxLG9SxUrvGHqeDoaBa-b3uqdT5DC4zudjtrwb8Wodq82pyacmFNEAo4SDsiE" ) - return s.NewPackage(t, "pixman", version, newFromGitLab( + return t.NewPackage("pixman", version, newFromGitLab( "gitlab.freedesktop.org", "pixman/pixman", "pixman-"+version, diff --git a/internal/rosa/pkg-config.go b/internal/rosa/pkg-config.go index 105a1e86..e362715e 100644 --- a/internal/rosa/pkg-config.go +++ b/internal/rosa/pkg-config.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newPkgConfig(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPkgConfig() (pkg.Artifact, string) { const ( version = "0.29.2" checksum = "6UsGqEMA8EER_5b9N0b32UCqiRy39B6_RnPfvuslWhtFV1qYD4DfS10crGZN_TP2" ) - return s.NewPackage(t, "pkg-config", version, newFromGitLab( + return t.NewPackage("pkg-config", version, newFromGitLab( "gitlab.freedesktop.org", "pkg-config/pkg-config", "pkg-config-"+version, diff --git a/internal/rosa/procps.go b/internal/rosa/procps.go index 067f0e61..73a2db8a 100644 --- a/internal/rosa/procps.go +++ b/internal/rosa/procps.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newProcps(s *S) (pkg.Artifact, string) { +func (t Toolchain) newProcps() (pkg.Artifact, string) { const ( version = "4.0.6" checksum = "pl_fZLvDlv6iZTkm8l_tHFpzTDVFGCiSJEs3eu0zAX6u36AV36P_En8K7JPScRWM" ) - return s.NewPackage(t, "procps", version, newFromGitLab( + return t.NewPackage("procps", version, newFromGitLab( "gitlab.com", "procps-ng/procps", "v"+version, diff --git a/internal/rosa/python.go b/internal/rosa/python.go index f610dd69..a53cb2ff 100644 --- a/internal/rosa/python.go +++ b/internal/rosa/python.go @@ -7,12 +7,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newPython(s *S) (pkg.Artifact, string) { +func (t Toolchain) newPython() (pkg.Artifact, string) { const ( version = "3.14.5" checksum = "zYIpDlk2ftZ-UVGCQS1rthle2OHoyXV653ztWiopKV1NhmIJf1K2hHbkwM4DozQ9" ) - return s.NewPackage(t, "python", version, newTar( + return t.NewPackage("python", version, newTar( "https://www.python.org/ftp/python/"+version+ "/Python-"+version+".tgz", checksum, @@ -73,7 +73,7 @@ index 19aea290b58..51603ba9510 100644 // _ctypes appears to infer something from the linker name "LDFLAGS=-Wl,--dynamic-linker=/system/lib/" + - "ld-musl-" + s.linuxArch() + ".so.1", + "ld-musl-" + t.linuxArch() + ".so.1", }, }, &MakeHelper{ Check: []string{"test"}, @@ -201,8 +201,8 @@ func (s *S) newPythonPackage( ) { name = "python-" + name s.MustRegister(&Artifact{ - f: func(t Toolchain, s *S) (pkg.Artifact, string) { - return s.NewPackage(t, name, version, source, attrP, attr, slices.Concat( + f: func(t Toolchain) (pkg.Artifact, string) { + return t.NewPackage(name, version, source, attrP, attr, slices.Concat( P{Python}, extra, build, @@ -353,9 +353,9 @@ func init() { func init() { native.MustRegister(&Artifact{ - f: func(t Toolchain, s *S) (pkg.Artifact, string) { - source, version := s.Load(t, llvmSource) - return s.NewPackage(t, "lit", version, source, nil, &PipHelper{ + f: func(t Toolchain) (pkg.Artifact, string) { + source, version := t.Load(llvmSource) + return t.NewPackage("lit", version, source, nil, &PipHelper{ Append: []string{"llvm", "utils", "lit"}, // already checked during llvm SkipCheck: true, diff --git a/internal/rosa/qemu.go b/internal/rosa/qemu.go index 8c02e4ca..23b24087 100644 --- a/internal/rosa/qemu.go +++ b/internal/rosa/qemu.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newQEMU(s *S) (pkg.Artifact, string) { +func (t Toolchain) newQEMU() (pkg.Artifact, string) { const ( version = "11.0.0" checksum = "C64gdi_Tkdg2fTwD9ERxtWGcf8vNn_6UvczW0c-x0KW1NZtd3NbEOIrlDhYGn15n" ) - return s.NewPackage(t, "qemu", version, newTar( + return t.NewPackage("qemu", version, newTar( "https://download.qemu.org/qemu-"+version+".tar.bz2", checksum, pkg.TarBzip2, diff --git a/internal/rosa/rdfind.go b/internal/rosa/rdfind.go index 5b59ee19..c4e51685 100644 --- a/internal/rosa/rdfind.go +++ b/internal/rosa/rdfind.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newRdfind(s *S) (pkg.Artifact, string) { +func (t Toolchain) newRdfind() (pkg.Artifact, string) { const ( version = "1.8.0" checksum = "PoaeJ2WIG6yyfe5VAYZlOdAQiR3mb3WhAUMj2ziTCx_IIEal4640HMJUb4SzU9U3" ) - return s.NewPackage(t, "rdfind", version, newTar( + return t.NewPackage("rdfind", version, newTar( "https://rdfind.pauldreik.se/rdfind-"+version+".tar.gz", checksum, pkg.TarGzip, diff --git a/internal/rosa/report.go b/internal/rosa/report.go index 01c3cf91..1fbd0e43 100644 --- a/internal/rosa/report.go +++ b/internal/rosa/report.go @@ -32,12 +32,13 @@ func WriteReport(msg message.Msg, w io.Writer, c *pkg.Cache) error { zero [wordSize]byte buf [len(pkg.ID{}) + wordSize]byte ) + t := native.Std() for _, p := range native.Collect() { - a, _ := native.Load(Std, p) meta := native.Get(p) if meta == nil { return errors.New("artifact " + p.String() + " in inconsistent state") } + a, _ := t.MustLoad(p) if _, ok := a.(pkg.FileArtifact); ok { msg.Verbosef("skipping file artifact %s", meta.Name) continue diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go index 1f0fb729..8a1b59a3 100644 --- a/internal/rosa/rosa.go +++ b/internal/rosa/rosa.go @@ -104,49 +104,46 @@ func (s *S) earlyLDFLAGS(static bool) string { return p } -// Toolchain denotes the infrastructure to compile a [pkg.Artifact] on. -type Toolchain uint32 - const ( - // _toolchainBusybox denotes a busybox installation from the busyboxBin - // binary distribution. This is defined as a toolchain to make use of the - // toolchain abstractions to preprocess toolchainGentoo and is not a real, + // _stageBusybox denotes a busybox installation from the busyboxBin + // binary distribution. This is defined as a [Stage] to make use of the + // toolchain abstractions to preprocess stageGentoo and is not a real, // functioning toolchain. It does not contain any compilers. - _toolchainBusybox Toolchain = iota + _stageBusybox Stage = iota - // toolchainGentoo denotes the toolchain in a Gentoo stage3 tarball. Special - // care must be taken to compile correctly against this toolchain. - toolchainGentoo + // stageGentoo denotes the toolchain in a Gentoo stage3 tarball. Special + // care must be taken to compile correctly against this stage. + stageGentoo - // toolchainIntermediateGentoo is like to toolchainIntermediate, but - // compiled against toolchainGentoo. - toolchainIntermediateGentoo + // stageIntermediateGentoo is like stageIntermediate, but compiled against + // stageGentoo. + stageIntermediateGentoo - // toolchainStdGentoo is like Std, but bootstrapped from toolchainGentoo. - // This toolchain creates the first [Stage0] distribution. - toolchainStdGentoo + // stageStdGentoo is like Std, but bootstrapped from stageGentoo. This + // toolchain creates the first [Stage0] distribution. + stageStdGentoo - // toolchainStage0 denotes the stage0 toolchain. Special care must be taken + // stageEarly denotes the stage0 toolchain. Special care must be taken // to compile correctly against this toolchain. - toolchainStage0 + stageEarly - // toolchainIntermediate denotes the intermediate toolchain compiled against - // toolchainStage0. This toolchain should be functionally identical to [Std] + // stageIntermediate denotes the intermediate toolchain compiled against + // stageEarly. This toolchain should be functionally identical to [Std] // and is used to bootstrap [Std]. - toolchainIntermediate + stageIntermediate // Std denotes the standard Rosa OS toolchain. Std - // _toolchainEnd is the total number of toolchains available and does not - // denote a valid toolchain. - _toolchainEnd + // _stageEnd is the total number of stages available and does not denote a + // valid toolchain. + _stageEnd ) // isStage0 returns whether t is a stage0 toolchain. -func (t Toolchain) isStage0() bool { +func (t Stage) isStage0() bool { switch t { - case toolchainGentoo, toolchainStage0: + case stageGentoo, stageEarly: return true default: return false @@ -154,9 +151,9 @@ func (t Toolchain) isStage0() bool { } // isIntermediate returns whether t is an intermediate toolchain. -func (t Toolchain) isIntermediate() bool { +func (t Stage) isIntermediate() bool { switch t { - case toolchainIntermediateGentoo, toolchainIntermediate: + case stageIntermediateGentoo, stageIntermediate: return true default: return false @@ -164,9 +161,9 @@ func (t Toolchain) isIntermediate() bool { } // isStd returns whether t is considered functionally equivalent to [Std]. -func (t Toolchain) isStd() bool { +func (t Stage) isStd() bool { switch t { - case toolchainStdGentoo, Std: + case stageStdGentoo, Std: return true default: return false @@ -224,8 +221,7 @@ const ( ) // New returns a [pkg.Artifact] based on a [Toolchain] via s. -func (s *S) New( - t Toolchain, +func (t Toolchain) New( name string, flag int, extra []pkg.Artifact, @@ -238,21 +234,21 @@ func (s *S) New( const lcMessages = "LC_MESSAGES=C.UTF-8" var support []pkg.Artifact - switch t { - case _toolchainBusybox: + switch t.stage { + case _stageBusybox: name += "-early" - support = slices.Concat([]pkg.Artifact{s.newBusyboxBin()}, extra) + support = slices.Concat([]pkg.Artifact{t.newBusyboxBin()}, extra) env = fixupEnviron(env, nil, "/system/bin") - case toolchainGentoo, toolchainStage0: + case stageGentoo, stageEarly: name += "-boot" support = append(support, extra...) support = append(support, cureEtc{}) - if t == toolchainStage0 { - a, _ := s.Load(t, stage0Dist) + if t.stage == stageEarly { + a, _ := t.Load(stage0Dist) support = append(support, a) } else { - support = append(support, s.New(_toolchainBusybox, "gentoo", 0, nil, nil, nil, ` + support = append(support, t.S.New(_stageBusybox).New("gentoo", 0, nil, nil, nil, ` tar -C /work -xf /usr/src/stage3.tar.xz rm -rf /work/dev/ /work/proc/ ln -vs ../usr/bin /work/bin @@ -263,22 +259,22 @@ mkdir -vp /work/system/bin .) `, pkg.Path(AbsUsrSrc.Append("stage3.tar.xz"), false, pkg.NewHTTPGet( - nil, s.gentooStage3, - s.gentooStage3Checksum, + nil, t.gentooStage3, + t.gentooStage3Checksum, ), ))) } env = fixupEnviron(env, []string{ - EnvTriplet + "=" + s.triple(), + EnvTriplet + "=" + t.triple(), lcMessages, - "LDFLAGS=" + s.earlyLDFLAGS(true), + "LDFLAGS=" + t.earlyLDFLAGS(true), }, "/system/bin", "/usr/bin", ) - case toolchainIntermediateGentoo, toolchainStdGentoo, - toolchainIntermediate, Std: - if t.isIntermediate() { + case stageIntermediateGentoo, stageStdGentoo, + stageIntermediate, Std: + if t.stage.isIntermediate() { name += "-std" } @@ -292,7 +288,7 @@ mkdir -vp /work/system/bin base = Musl } - support = slices.Concat(extra, s.AppendPresets(t-1, []pkg.Artifact{ + support = slices.Concat(extra, t.S.New(t.stage-1).Append([]pkg.Artifact{ cureEtc{newIANAEtc()}, }, base, @@ -300,16 +296,16 @@ mkdir -vp /work/system/bin toybox, )) env = fixupEnviron(env, []string{ - EnvTriplet + "=" + s.triple(), + EnvTriplet + "=" + t.triple(), lcMessages, }, "/system/bin", "/bin") default: - panic("unsupported toolchain " + strconv.Itoa(int(t))) + panic("unsupported toolchain " + strconv.Itoa(int(t.stage))) } return pkg.NewExec( - name, s.arch, knownChecksum, pkg.ExecTimeoutMax, + name, t.arch, knownChecksum, pkg.ExecTimeoutMax, flag&THostNet != 0, flag&TExclusive != 0, fhs.AbsRoot, env, @@ -328,8 +324,7 @@ mkdir -vp /work/system/bin // NewPatchedSource returns [pkg.Artifact] of source with patches applied. If // passthrough is true, source is returned as is for zero length patches. -func (s *S) NewPatchedSource( - t Toolchain, +func (t Toolchain) NewPatchedSource( name, version string, source pkg.Artifact, passthrough bool, @@ -362,7 +357,7 @@ cat /usr/src/` + name + `-patches/* | \ ` aname += "-patched" } - return s.New(t, aname, 0, s.AppendPresets(t, nil, + return t.New(aname, 0, t.Append(nil, Patch, ), nil, nil, script, paths...) } @@ -431,42 +426,34 @@ func paGet() pa { return paPool.Get().(pa) } // paPut returns a pa to paPool. func paPut(pv pa) { clear(pv); paPool.Put(pv) } -// appendPreset recursively appends a [PArtifact] and its runtime dependencies. -func (s *S) appendPreset( - t Toolchain, - a []pkg.Artifact, - pv pa, p ArtifactH, -) []pkg.Artifact { +// appendHandle recursively appends an [Artifact] named by its handle, and its +// runtime dependencies. +func (t Toolchain) appendHandle(a []pkg.Artifact, pv pa, p ArtifactH) []pkg.Artifact { if _, ok := pv[p]; ok { return a } pv[p] = struct{}{} - for _, d := range s.Get(p).Dependencies { - a = s.appendPreset(t, a, pv, d) + for _, d := range t.MustGet(p).Dependencies { + a = t.appendHandle(a, pv, d) } - d, _ := s.Load(t, p) + d, _ := t.Load(p) return append(a, d) } -// AppendPresets recursively appends multiple [PArtifact] and their runtime -// dependencies. -func (s *S) AppendPresets( - t Toolchain, - a []pkg.Artifact, - presets ...ArtifactH, -) []pkg.Artifact { +// Append recursively appends multiple [Artifact] named by their handles, and +// their runtime dependencies. +func (t Toolchain) Append(a []pkg.Artifact, handles ...ArtifactH) []pkg.Artifact { pv := paGet() - for _, p := range presets { - a = s.appendPreset(t, a, pv, p) + for _, p := range handles { + a = t.appendHandle(a, pv, p) } paPut(pv) return a } // NewPackage constructs a [pkg.Artifact] via a build system helper. -func (s *S) NewPackage( - t Toolchain, +func (t Toolchain) NewPackage( name, version string, source pkg.Artifact, attr *PackageAttr, @@ -488,10 +475,10 @@ func (s *S) NewPackage( { pv := paGet() for _, p := range helper.extra(attr.Flag) { - extraRes = s.appendPreset(t, extraRes, pv, p) + extraRes = t.appendHandle(extraRes, pv, p) } for _, p := range extra { - extraRes = s.appendPreset(t, extraRes, pv, p) + extraRes = t.appendHandle(extraRes, pv, p) } paPut(pv) } @@ -535,19 +522,18 @@ cd '/usr/src/` + name + `/' panic("cannot remain in root") } - return s.New( - t, + return t.New( name+"-"+version, attr.Flag, extraRes, attr.KnownChecksum, attr.Env, - scriptEarly+helper.script(s, name), + scriptEarly+helper.script(t.S, name), slices.Concat(attr.Paths, []pkg.ExecPath{ pkg.Path(AbsUsrSrc.Append( name+sourceSuffix, - ), attr.Writable || wantsWrite, s.NewPatchedSource( - t, name, version, source, !attr.Chmod && !wantsChmod, attr.Patches..., + ), attr.Writable || wantsWrite, t.NewPatchedSource( + name, version, source, !attr.Chmod && !wantsChmod, attr.Patches..., )), })..., ) diff --git a/internal/rosa/rosa_test.go b/internal/rosa/rosa_test.go index f9dcb1a2..5a80ba32 100644 --- a/internal/rosa/rosa_test.go +++ b/internal/rosa/rosa_test.go @@ -78,7 +78,7 @@ func TestCureAll(t *testing.T) { t.Parallel() for _, p := range rosa.Native().Collect() { - a, _ := rosa.Native().Load(rosa.Std, p) + a, _ := rosa.Native().Std().MustLoad(p) meta := rosa.Native().MustGet(p) t.Run(meta.Name, func(t *testing.T) { t.Parallel() @@ -93,13 +93,13 @@ func TestCureAll(t *testing.T) { } func BenchmarkStage3(b *testing.B) { - s := rosa.Native().Clone() + t := rosa.Native().Clone().Std() for b.Loop() { - s.Load(rosa.Std, rosa.LLVM) + t.MustLoad(rosa.LLVM) b.StopTimer() - s.DropCaches("", 0) + t.DropCaches("", 0) b.StartTimer() } } diff --git a/internal/rosa/rsync.go b/internal/rosa/rsync.go index b2ce4fb9..1f0f2ea4 100644 --- a/internal/rosa/rsync.go +++ b/internal/rosa/rsync.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newRsync(s *S) (pkg.Artifact, string) { +func (t Toolchain) newRsync() (pkg.Artifact, string) { const ( version = "3.4.2" checksum = "t7PxS4WHXzefLMKKc_3hJgxUmlGG6KgHMZ8i4DZvCQAUAizxbclNKwfLyOHyq5BX" ) - return s.NewPackage(t, "rsync", version, newTar( + return t.NewPackage("rsync", version, newTar( "https://download.samba.org/pub/rsync/src/"+ "rsync-"+version+".tar.gz", checksum, diff --git a/internal/rosa/squashfs.go b/internal/rosa/squashfs.go index 29ba830e..afa33a2d 100644 --- a/internal/rosa/squashfs.go +++ b/internal/rosa/squashfs.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newSquashfsTools(s *S) (pkg.Artifact, string) { +func (t Toolchain) newSquashfsTools() (pkg.Artifact, string) { const ( version = "4.7.5" checksum = "rF52wLQP-jeAmcD-48wqJcck8ZWRFwkax3T-7snaRf5EBnCQQh0YypMY9lwcivLz" ) - return s.NewPackage(t, "squashfs-tools", version, newFromGitHubRelease( + return t.NewPackage("squashfs-tools", version, newFromGitHubRelease( "plougher/squashfs-tools", version, "squashfs-tools-"+version+".tar.gz", diff --git a/internal/rosa/stage0.go b/internal/rosa/stage0.go index 5f365703..4197ffac 100644 --- a/internal/rosa/stage0.go +++ b/internal/rosa/stage0.go @@ -5,17 +5,17 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newStage0(s *S) (pkg.Artifact, string) { - return s.New(t, "rosa-stage0", 0, s.AppendPresets(t, nil, +func (t Toolchain) newStage0() (pkg.Artifact, string) { + return t.New("rosa-stage0", 0, t.Append(nil, Bzip2, ), nil, nil, ` umask 377 tar \ -vjc \ -C /stage0 \ - -f /work/stage0-`+s.triple()+`.tar.bz2 \ + -f /work/stage0-`+t.triple()+`.tar.bz2 \ . -`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, s.AppendPresets(t, nil, +`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, t.Append(nil, LLVM, Mksh, toyboxEarly, @@ -33,15 +33,15 @@ func init() { func init() { const version = "20260504" native.MustRegister(&Artifact{ - f: func(_ Toolchain, s *S) (pkg.Artifact, string) { + f: func(t Toolchain) (pkg.Artifact, string) { return newTar( "https://hakurei.app/seed/"+version+"/"+ - "stage0-"+s.triple()+".tar.bz2", + "stage0-"+t.triple()+".tar.bz2", perArch[string]{ "amd64": "IQjFDkiAVLo1XzflgMMiLP3gnVY2hhDMTzl-QqJDCQhcLQ3lLtRzjI5WCxGyW_lk", "arm64": "6fmwl2Umx2QssKQvxxb1JOGkAjzfA_MXKku0jVdGjYGb35OvwEVA5NYtd0HIy3yH", "riscv64": "Z2ODV0rIoo9iQRUIu35bsaOBeXc_9qQfGcyb2aGneatzNUJlXh5emSpEV2bOklUL", - }.unwrap(s), + }.unwrap(t.S), pkg.TarBzip2, ), version }, @@ -55,7 +55,7 @@ func init() { func HasStage0() (ok bool) { func() { defer func() { ok = recover() == nil }() - native.Load(toolchainStage0, stage0Dist) + native.New(stageEarly).Load(stage0Dist) }() return } diff --git a/internal/rosa/state.go b/internal/rosa/state.go index 2ae575b1..89ee1840 100644 --- a/internal/rosa/state.go +++ b/internal/rosa/state.go @@ -20,30 +20,43 @@ import ( type ArtifactH unique.Handle[string] // String returns the name of p. -func (p ArtifactH) String() string { - return unique.Handle[string](p).Value() +func (handle ArtifactH) String() string { + return unique.Handle[string](handle).Value() } // MarshalJSON represents [ArtifactH] by its [Artifact.Name]. -func (p ArtifactH) MarshalJSON() ([]byte, error) { return json.Marshal(p.String()) } +func (handle ArtifactH) MarshalJSON() ([]byte, error) { + return json.Marshal(handle.String()) +} // UnmarshalJSON resolves [ArtifactH] by its [Artifact.Name]. -func (p *ArtifactH) UnmarshalJSON(data []byte) error { +func (handle *ArtifactH) UnmarshalJSON(data []byte) error { var name string if err := json.Unmarshal(data, &name); err != nil { return err } - *p = ArtifactH(unique.Make(name)) + *handle = ArtifactH(unique.Make(name)) return nil } +type ( + // Stage denotes the infrastructure to compile a [pkg.Artifact] on. + Stage uint32 + // Toolchain refers to an instance of [S], and a [Stage] to compile on. + Toolchain struct { + stage Stage + + *S + } +) + // P represents multiple [ArtifactH]. type P []ArtifactH // Artifact is stage-agnostic immutable data with a deterministic resulting // [pkg.Artifact]. It can be created natively or through evaluation. type Artifact struct { - f func(t Toolchain, s *S) (a pkg.Artifact, version string) + f func(t Toolchain) (a pkg.Artifact, version string) // Unique package name. Name string `json:"name"` @@ -159,7 +172,7 @@ type S struct { opts int // Cached [pkg.Artifact]. - c [_toolchainEnd]sync.Map + c [_stageEnd]sync.Map // URL of a Gentoo stage3 tarball. gentooStage3 string @@ -208,9 +221,9 @@ func (s *S) DropCaches(targetArch string, flags int) { } // Get returns the address of the named [Artifact]. -func (s *S) Get(p ArtifactH) (meta *Artifact) { +func (s *S) Get(handle ArtifactH) (meta *Artifact) { s.wantsArch() - v, ok := s.artifacts.Load(p) + v, ok := s.artifacts.Load(handle) if ok { meta = v.(*Artifact) } @@ -218,38 +231,46 @@ func (s *S) Get(p ArtifactH) (meta *Artifact) { } // MustGet is like Get, but panics if the named [Artifact] is not registered. -func (s *S) MustGet(p ArtifactH) (meta *Artifact) { - meta = s.Get(p) +func (s *S) MustGet(handle ArtifactH) (meta *Artifact) { + meta = s.Get(handle) if meta == nil { - panic("artifact " + strconv.Quote(p.String()) + " not available") + panic("artifact " + strconv.Quote(handle.String()) + " not available") } return } +// New returns a [Toolchain] for the specified [Stage]. +func (s *S) New(stage Stage) Toolchain { + return Toolchain{S: s, stage: stage} +} + +// Std is a convenience method that returns a [Toolchain] for the [Std] stage. +func (s *S) Std() Toolchain { return s.New(Std) } + // Load returns the resulting [pkg.Artifact] of [ArtifactH]. -func (s *S) Load(t Toolchain, p ArtifactH) (pkg.Artifact, string) { - s.wantsArch() - e, ok := s.c[t].Load(p) +func (t Toolchain) Load(handle ArtifactH) (pkg.Artifact, string) { + t.wantsArch() + e, ok := t.c[t.stage].Load(handle) if ok { r := e.(cachedArtifact) return r.a, r.v } - meta := s.Get(p) + meta := t.Get(handle) if meta == nil { return nil, "" } var r cachedArtifact - r.a, r.v = meta.f(t, s) - s.c[t].Store(p, r) + r.a, r.v = meta.f(t) + t.c[t.stage].Store(handle, r) return r.a, r.v } // MustLoad is like Load, but panics if the named [Artifact] is not registered. -func (s *S) MustLoad(t Toolchain, p ArtifactH) (pkg.Artifact, string) { - a, version := s.Load(t, p) +func (t Toolchain) MustLoad(handle ArtifactH) (pkg.Artifact, string) { + a, version := t.Load(handle) if a == nil { - panic("artifact " + strconv.Quote(p.String()) + " not available") + panic("artifact " + strconv.Quote(handle.String()) + " not available") } return a, version } diff --git a/internal/rosa/state_test.go b/internal/rosa/state_test.go index 2b951a24..8b01f7d3 100644 --- a/internal/rosa/state_test.go +++ b/internal/rosa/state_test.go @@ -13,21 +13,21 @@ func TestLoad(t *testing.T) { t.Run(rosa.Native().MustGet(p).Name, func(t *testing.T) { t.Parallel() - rosa.Native().Load(rosa.Std, p) + rosa.Native().Std().MustLoad(p) }) } } func BenchmarkAll(b *testing.B) { - s := rosa.Native().Clone() + t := rosa.Native().Clone().Std() for b.Loop() { - for _, p := range s.Collect() { - s.Load(rosa.Std, p) + for _, p := range t.Collect() { + t.MustLoad(p) } b.StopTimer() - s.DropCaches("", 0) + t.DropCaches("", 0) b.StartTimer() } } diff --git a/internal/rosa/strace.go b/internal/rosa/strace.go index bf7f2750..d4d99fcf 100644 --- a/internal/rosa/strace.go +++ b/internal/rosa/strace.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newStrace(s *S) (pkg.Artifact, string) { +func (t Toolchain) newStrace() (pkg.Artifact, string) { const ( version = "6.19" checksum = "XJFJJ9XLh_1rHS3m_QNjLKzkkBAooE-QT9p9lJNNWowAmd54IJop_fI4-IFtjeeL" ) - return s.NewPackage(t, "strace", version, pkg.NewHTTPGet( + return t.NewPackage("strace", version, pkg.NewHTTPGet( nil, "https://strace.io/files/"+version+"/strace-"+version+".tar.xz", mustDecode(checksum), ), &PackageAttr{ diff --git a/internal/rosa/tamago.go b/internal/rosa/tamago.go index dd1570a2..4a5b5859 100644 --- a/internal/rosa/tamago.go +++ b/internal/rosa/tamago.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newTamaGo(s *S) (pkg.Artifact, string) { +func (t Toolchain) newTamaGo() (pkg.Artifact, string) { const ( version = "1.26.3" checksum = "-nH3MjAzDDLTeJ2hRKYJcJwo5-Ikci4zOHfB8j1vKn7zrF9TS6zYaoLi8qohGwAE" ) - return s.New(t, "tamago-go"+version, 0, s.AppendPresets(t, nil, + return t.New("tamago-go"+version, 0, t.Append(nil, Bash, Go, ), nil, []string{ @@ -21,8 +21,8 @@ cd /work/system/tamago/src chmod -R +w .. sed -i \ - 's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \ - cmd/link/internal/`+s.arch+`/obj.go + 's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \ + cmd/link/internal/`+t.arch+`/obj.go sed -i \ 's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \ internal/runtime/gc/scan/scan_amd64.go diff --git a/internal/rosa/toybox.go b/internal/rosa/toybox.go index d5e12380..cb97e8dc 100644 --- a/internal/rosa/toybox.go +++ b/internal/rosa/toybox.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (s *S) newToybox(t Toolchain, suffix, script string) (pkg.Artifact, string) { +func (t Toolchain) newToybox(suffix, script string) (pkg.Artifact, string) { const ( version = "0.8.13" checksum = "rZ1V1ATDte2WeQZanxLVoiRGdfPXhMlEo5-exX-e-ml8cGn9qOv0ABEUVZpX3wTI" ) - return s.NewPackage(t, "toybox"+suffix, version, newTar( + return t.NewPackage("toybox"+suffix, version, newTar( "https://landley.net/toybox/downloads/toybox-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -41,7 +41,7 @@ sed -i \ 's/^CONFIG_TOYBOX_ZHELP=y$/CONFIG_TOYBOX_ZHELP=0/' \ .config ` + script, - SkipCheck: t.isStage0(), + SkipCheck: t.stage.isStage0(), Check: []string{ "USER=cure", "tests", @@ -60,8 +60,8 @@ ln -s ../../system/bin/env /work/usr/bin } func init() { native.MustRegister(&Artifact{ - f: func(t Toolchain, s *S) (pkg.Artifact, string) { - return s.newToybox(t, "", "") + f: func(t Toolchain) (pkg.Artifact, string) { + return t.newToybox("", "") }, Name: "toybox", @@ -72,8 +72,8 @@ func init() { }) native.MustRegister(&Artifact{ - f: func(t Toolchain, s *S) (pkg.Artifact, string) { - return s.newToybox(t, "-early", ` + f: func(t Toolchain) (pkg.Artifact, string) { + return t.newToybox("-early", ` echo ' CONFIG_EXPR=y CONFIG_TR=y diff --git a/internal/rosa/unzip.go b/internal/rosa/unzip.go index 8c3f16b5..888a36f5 100644 --- a/internal/rosa/unzip.go +++ b/internal/rosa/unzip.go @@ -6,12 +6,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newUnzip(s *S) (pkg.Artifact, string) { +func (t Toolchain) newUnzip() (pkg.Artifact, string) { const ( version = "6.0" checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1" ) - return s.New(t, "unzip-"+version, 0, s.AppendPresets(t, nil, + return t.New("unzip-"+version, 0, t.Append(nil, Make, Coreutils, ), nil, nil, ` @@ -21,7 +21,7 @@ make -f unix/Makefile generic1 mkdir -p /work/system/bin/ mv unzip /work/system/bin/ -`, pkg.Path(AbsUsrSrc.Append("unzip"), true, s.NewPatchedSource(t, +`, pkg.Path(AbsUsrSrc.Append("unzip"), true, t.NewPatchedSource( "unzip", version, newTar( "https://downloads.sourceforge.net/project/infozip/"+ "UnZip%206.x%20%28latest%29/UnZip%20"+version+"/"+ diff --git a/internal/rosa/util-linux.go b/internal/rosa/util-linux.go index af0fa4d5..54dff381 100644 --- a/internal/rosa/util-linux.go +++ b/internal/rosa/util-linux.go @@ -6,12 +6,12 @@ import ( "hakurei.app/internal/pkg" ) -func (t Toolchain) newUtilLinux(s *S) (pkg.Artifact, string) { +func (t Toolchain) newUtilLinux() (pkg.Artifact, string) { const ( version = "2.42" checksum = "Uy8Nxg9DsW5YwDoeaZeZTyQJ2YmnaaL_fSsQXsLUiFFUd7wnZeD_3SEaVO7ClJlk" ) - return s.NewPackage(t, "util-linux", version, newTar( + return t.NewPackage("util-linux", version, newTar( "https://www.kernel.org/pub/linux/utils/util-linux/"+ "v"+strings.Join(strings.SplitN(version, ".", 3)[:2], ".")+ "/util-linux-"+version+".tar.gz", diff --git a/internal/rosa/vim.go b/internal/rosa/vim.go index 1e22ec6d..e29b8cc3 100644 --- a/internal/rosa/vim.go +++ b/internal/rosa/vim.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newVIM(s *S) (pkg.Artifact, string) { +func (t Toolchain) newVIM() (pkg.Artifact, string) { const ( version = "9.2.0461" checksum = "18Rr_5oIf_PkKuqVkN4CMZIGkZEgpN1vamlrsvPLBjn4mN98CRuoJmhzRZ7MoVYM" ) - return s.NewPackage(t, "vim", version, newFromGitHub( + return t.NewPackage("vim", version, newFromGitHub( "vim/vim", "v"+version, checksum, diff --git a/internal/rosa/wayland.go b/internal/rosa/wayland.go index a2f3aefc..c1207695 100644 --- a/internal/rosa/wayland.go +++ b/internal/rosa/wayland.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newWayland(s *S) (pkg.Artifact, string) { +func (t Toolchain) newWayland() (pkg.Artifact, string) { const ( version = "1.25.0" checksum = "q-4dYXme46JPgLGtXAxyZGTy7udll9RfT0VXtcW2YRR1WWViUhvdZXZneXzLqpCg" ) - return s.NewPackage(t, "wayland", version, newFromGitLab( + return t.NewPackage("wayland", version, newFromGitLab( "gitlab.freedesktop.org", "wayland/wayland", version, @@ -52,12 +52,12 @@ func init() { }) } -func (t Toolchain) newWaylandProtocols(s *S) (pkg.Artifact, string) { +func (t Toolchain) newWaylandProtocols() (pkg.Artifact, string) { const ( version = "1.48" checksum = "xvfHCBIzXGwOqOu9b8dfhGw_U29Pd-g4JBwpYIaxee8SwEbxi6NaVU-Y1Q7wY4jK" ) - return s.NewPackage(t, "wayland-protocols", version, newFromGitLab( + return t.NewPackage("wayland-protocols", version, newFromGitLab( "gitlab.freedesktop.org", "wayland/wayland-protocols", version, diff --git a/internal/rosa/x.go b/internal/rosa/x.go index 5806d967..89ef7e46 100644 --- a/internal/rosa/x.go +++ b/internal/rosa/x.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newUtilMacros(s *S) (pkg.Artifact, string) { +func (t Toolchain) newUtilMacros() (pkg.Artifact, string) { const ( version = "1.20.2" checksum = "Ze8QH3Z3emC0pWFP-0nUYeMy7aBW3L_dxBBmVgcumIHNzEKc1iGTR-yUFR3JcM1G" ) - return s.NewPackage(t, "util-macros", version, newTar( + return t.NewPackage("util-macros", version, newTar( "https://www.x.org/releases/individual/util/"+ "util-macros-"+version+".tar.gz", checksum, @@ -26,12 +26,12 @@ func init() { }) } -func (t Toolchain) newLibxtrans(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxtrans() (pkg.Artifact, string) { const ( version = "1.6.0" checksum = "1cxDCF59fLf1HyGDMcjR1L50ZbjD0RTTEDUpOJYcHXu6HUK_Ds0x-KREY7rLNxu9" ) - return s.NewPackage(t, "libxtrans", version, newFromGitLab( + return t.NewPackage("libxtrans", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxtrans", "xtrans-"+version, @@ -58,12 +58,12 @@ func init() { }) } -func (t Toolchain) newXorgProto(s *S) (pkg.Artifact, string) { +func (t Toolchain) newXorgProto() (pkg.Artifact, string) { const ( version = "2025.1" checksum = "pTwJiBJHKA6Rgm3cVDXy1lyvXNIUzTRaukvvYdk1xWoJ_1G-Dfjm9MyewuyIjoHz" ) - return s.NewPackage(t, "xorgproto", version, newFromGitLab( + return t.NewPackage("xorgproto", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/proto/xorgproto", "xorgproto-"+version, @@ -89,12 +89,12 @@ func init() { }) } -func (t Toolchain) newLibXau(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibXau() (pkg.Artifact, string) { const ( version = "1.0.12" checksum = "G9AjnU_C160q814MCdjFOVt_mQz_pIt4wf4GNOQmGJS3UuuyMw53sfPvJ7WOqwXN" ) - return s.NewPackage(t, "libXau", version, newTar( + return t.NewPackage("libXau", version, newTar( "https://www.x.org/releases/individual/lib/"+ "libXau-"+version+".tar.gz", checksum, @@ -127,12 +127,12 @@ func init() { }) } -func (t Toolchain) newXCBProto(s *S) (pkg.Artifact, string) { +func (t Toolchain) newXCBProto() (pkg.Artifact, string) { const ( version = "1.17.0" checksum = "_NtbKaJ_iyT7XiJz25mXQ7y-niTzE8sHPvLXZPcqtNoV_-vTzqkezJ8Hp2U1enCv" ) - return s.NewPackage(t, "xcb-proto", version, newTar( + return t.NewPackage("xcb-proto", version, newTar( "https://xcb.freedesktop.org/dist/xcb-proto-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -152,12 +152,12 @@ func init() { }) } -func (t Toolchain) newXCB(s *S) (pkg.Artifact, string) { +func (t Toolchain) newXCB() (pkg.Artifact, string) { const ( version = "1.17.0" checksum = "hjjsc79LpWM_hZjNWbDDS6qRQUXREjjekS6UbUsDq-RR1_AjgNDxhRvZf-1_kzDd" ) - return s.NewPackage(t, "xcb", version, newTar( + return t.NewPackage("xcb", version, newTar( "https://xcb.freedesktop.org/dist/libxcb-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -186,12 +186,12 @@ func init() { }) } -func (t Toolchain) newLibxcbUtilKeysyms(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxcbUtilKeysyms() (pkg.Artifact, string) { const ( version = "0.4.1" checksum = "-EEje12UEjtFBuIjb6Fy4cxEghV20BXwQ1BLvhtvSuVcrFkp_X-ZHRM48wAspXZ4" ) - return s.NewPackage(t, "libxcb-util-keysyms", version, newTar( + return t.NewPackage("libxcb-util-keysyms", version, newTar( "https://xcb.freedesktop.org/dist/xcb-util-keysyms-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -217,12 +217,12 @@ func init() { }) } -func (t Toolchain) newLibxcbUtilImage(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxcbUtilImage() (pkg.Artifact, string) { const ( version = "0.4.1" checksum = "47pvXmFwaUBZIrJ4CE9xjTQIFyxeqoNAL-DshlB11GZ_jjI3G1a6KF0K7mtBQ1E7" ) - return s.NewPackage(t, "libxcb-util-image", version, newTar( + return t.NewPackage("libxcb-util-image", version, newTar( "https://xcb.freedesktop.org/dist/xcb-util-image-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -248,12 +248,12 @@ func init() { }) } -func (t Toolchain) newLibxcbUtilWM(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxcbUtilWM() (pkg.Artifact, string) { const ( version = "0.4.2" checksum = "g0VZgMU9hcIgyXb3XxBR9xqsvUMBd9qt_Dbmwoj2h5y24pODr_S_D0DhRsuXUNjF" ) - return s.NewPackage(t, "libxcb-util-wm", version, newTar( + return t.NewPackage("libxcb-util-wm", version, newTar( "https://xcb.freedesktop.org/dist/xcb-util-wm-"+version+".tar.gz", checksum, pkg.TarGzip, @@ -280,12 +280,12 @@ func init() { }) } -func (t Toolchain) newLibxcbUtil(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxcbUtil() (pkg.Artifact, string) { const ( version = "0.4.1" checksum = "YMXGQUQbF6PoEAGflvYnJYsLWjti6sL_ifY47wIXTNGVM3tQ8u41nkBYN4K1D5CD" ) - return s.NewPackage(t, "libxcb-util", version, newTar( + return t.NewPackage("libxcb-util", version, newTar( "https://www.x.org/releases/individual/xcb/"+ "xcb-util-"+version+".tar.gz", checksum, @@ -313,12 +313,12 @@ func init() { }) } -func (t Toolchain) newLibxcbRenderUtil(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxcbRenderUtil() (pkg.Artifact, string) { const ( version = "0.3.10" checksum = "n08L8PyCoOd7v2vb6fSVq5Pq6JtteXVh9K2wrQMTNwGMf_Fjpi6i3HWF-TMFSVTI" ) - return s.NewPackage(t, "libxcb-render-util", version, newTar( + return t.NewPackage("libxcb-render-util", version, newTar( "https://www.x.org/releases/individual/xcb/"+ "xcb-util-renderutil-"+version+".tar.gz", checksum, @@ -346,12 +346,12 @@ func init() { }) } -func (t Toolchain) newLibX11(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibX11() (pkg.Artifact, string) { const ( version = "1.8.13" checksum = "ARh-cuZY_U2v3DbPS1byc7ybh9NInZc-yav7SJiusk_C7408s058qWV83ocMd2pT" ) - return s.NewPackage(t, "libX11", version, newFromGitLab( + return t.NewPackage("libX11", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libx11", "libX11-"+version, @@ -390,12 +390,12 @@ func init() { }) } -func (t Toolchain) newLibXext(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibXext() (pkg.Artifact, string) { const ( version = "1.3.7" checksum = "-0wvUDaucLPLNOrK1pcKhHNoO-5nUqQyyw6JAbhx65gRjuMiNKKaF2_tcrbC_KNq" ) - return s.NewPackage(t, "libXext", version, newFromGitLab( + return t.NewPackage("libXext", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxext", "libXext-"+version, @@ -427,12 +427,12 @@ func init() { }) } -func (t Toolchain) newLibXfixes(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibXfixes() (pkg.Artifact, string) { const ( version = "6.0.2" checksum = "_-kJfKZ7cE3NNeMr6NLSXCmsyP7MVEHVPLNfxatz2qBy3_fZJvPMQwZNOC9y6V5L" ) - return s.NewPackage(t, "libXfixes", version, newFromGitLab( + return t.NewPackage("libXfixes", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxfixes", "libXfixes-"+version, @@ -465,12 +465,12 @@ func init() { }) } -func (t Toolchain) newLibXrender(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibXrender() (pkg.Artifact, string) { const ( version = "0.9.12" checksum = "s6nWn-r17X_W-7anaS7wIcq5_Levf9zAigwJDD9Klp-cCJTVDhLo7GufuVOrxVP0" ) - return s.NewPackage(t, "libXrender", version, newFromGitLab( + return t.NewPackage("libXrender", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxrender", "libXrender-"+version, @@ -502,12 +502,12 @@ func init() { }) } -func (t Toolchain) newLibxshmfence(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxshmfence() (pkg.Artifact, string) { const ( version = "1.3.3" checksum = "JamExTPg81By2fs3vWdeo_dzlpBQeAwXr2sDXeHJqm9XBoLW5pamiD6FgAWtAKyA" ) - return s.NewPackage(t, "libxshmfence", version, newFromGitLab( + return t.NewPackage("libxshmfence", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxshmfence", "libxshmfence-"+version, @@ -535,12 +535,12 @@ func init() { }) } -func (t Toolchain) newLibXxf86vm(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibXxf86vm() (pkg.Artifact, string) { const ( version = "1.1.7" checksum = "mS4cgKWrwz6M1Lb6Qu4ZVh8Xn2Ca_4HXPxr3LDad4iYY1LecZfeLUPW1hkp6amX_" ) - return s.NewPackage(t, "libXxf86vm", version, newFromGitLab( + return t.NewPackage("libXxf86vm", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxxf86vm", "libXxf86vm-"+version, @@ -573,12 +573,12 @@ func init() { }) } -func (t Toolchain) newLibXrandr(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibXrandr() (pkg.Artifact, string) { const ( version = "1.5.5" checksum = "OF7C7VC5MwnFue9UX5UnIkG1PIWvn9bBMq6d4mVyJJ_rcF0w4Kedn1lfxBsXEKAP" ) - return s.NewPackage(t, "libXrandr", version, newFromGitLab( + return t.NewPackage("libXrandr", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxrandr", "libXrandr-"+version, @@ -613,12 +613,12 @@ func init() { }) } -func (t Toolchain) newFontUtil(s *S) (pkg.Artifact, string) { +func (t Toolchain) newFontUtil() (pkg.Artifact, string) { const ( version = "1.4.2" checksum = "YWiaIxkq-N2yNdbGa_RF1S0UkQq6xsgoRT73WZP2DOmyH_CJ0TAkpQjId657MQmh" ) - return s.NewPackage(t, "font-util", version, newFromGitLab( + return t.NewPackage("font-util", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/font/util", "font-util-"+version, @@ -645,12 +645,12 @@ func init() { }) } -func (t Toolchain) newLibfontenc(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibfontenc() (pkg.Artifact, string) { const ( version = "1.1.9" checksum = "XqosXfbVwaoYzG9vVyRCl3eatwjASoJdLZsxQ37NN8S_jTyqNmbxpRSJGImJj7RS" ) - return s.NewPackage(t, "libfontenc", version, newFromGitLab( + return t.NewPackage("libfontenc", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libfontenc", "libfontenc-"+version, @@ -679,12 +679,12 @@ func init() { }) } -func (t Toolchain) newLibxkbfile(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxkbfile() (pkg.Artifact, string) { const ( version = "1.2.0" checksum = "WUtph1ab0AyATahlwljchBxZJcpjYrjyhCK9DW2VO0uXEXaN22GWmUaibcA83i_B" ) - return s.NewPackage(t, "libxkbfile", version, newFromGitLab( + return t.NewPackage("libxkbfile", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxkbfile", "libxkbfile-"+version, @@ -709,12 +709,12 @@ func init() { }) } -func (t Toolchain) newXkbcomp(s *S) (pkg.Artifact, string) { +func (t Toolchain) newXkbcomp() (pkg.Artifact, string) { const ( version = "1.5.0" checksum = "ttICW8ZPbljI-nw2kknvxFhwFoDK40iAMBeZDLAHYsHf3B6UPO_zc9TpzZYRRyZH" ) - return s.NewPackage(t, "xkbcomp", version, newFromGitLab( + return t.NewPackage("xkbcomp", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/app/xkbcomp", "xkbcomp-"+version, @@ -747,12 +747,12 @@ func init() { }) } -func (t Toolchain) newLibXfont2(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibXfont2() (pkg.Artifact, string) { const ( version = "2.0.7" checksum = "jv9BZNA02493KB8j1lfAErF5SA3ZFcAhm3_UVJ--Bp1maz-vNprl_wXpkHApBi9M" ) - return s.NewPackage(t, "libXfont2", version, newFromGitLab( + return t.NewPackage("libXfont2", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxfont", "libXfont2-"+version, @@ -788,12 +788,12 @@ func init() { }) } -func (t Toolchain) newLibxcvt(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibxcvt() (pkg.Artifact, string) { const ( version = "0.1.3" checksum = "IfIA7SxlHMWh681e1AgYmZcRAfkZd5LlzmqcMRifNY5nNVRrUx_wnoaidAv0Yu03" ) - return s.NewPackage(t, "libxcvt", version, newFromGitLab( + return t.NewPackage("libxcvt", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxcvt", "libxcvt-"+version, @@ -812,12 +812,12 @@ func init() { }) } -func (t Toolchain) newLibXdmcp(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibXdmcp() (pkg.Artifact, string) { const ( version = "1.1.5" checksum = "N6AJSv9pmeBedFn8KuSIOUGvTken4rkypNWVE2KfPlliwkfIbhfXrt5YHZkBMUHp" ) - return s.NewPackage(t, "libXdmcp", version, newFromGitLab( + return t.NewPackage("libXdmcp", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libxdmcp", "libXdmcp-"+version, @@ -845,12 +845,12 @@ func init() { }) } -func (t Toolchain) newXkeyboardConfig(s *S) (pkg.Artifact, string) { +func (t Toolchain) newXkeyboardConfig() (pkg.Artifact, string) { const ( version = "2.47" checksum = "E03PsPIaRrxPAuKgDGSQyPiJB49wXtyyvdV0lVx3_G-pelMMlaFLkoTDHTHG_qgA" ) - return s.NewPackage(t, "xkeyboard-config", version, newFromGitLab( + return t.NewPackage("xkeyboard-config", version, newFromGitLab( "gitlab.freedesktop.org", "xkeyboard-config/xkeyboard-config", "xkeyboard-config-"+version, @@ -871,12 +871,12 @@ func init() { }) } -func (t Toolchain) newLibpciaccess(s *S) (pkg.Artifact, string) { +func (t Toolchain) newLibpciaccess() (pkg.Artifact, string) { const ( version = "0.19" checksum = "84H0c_U_7fMqo81bpuwyXGXtk4XvvFH_YK00UiOriv3YGsuAhmbo2IkFhmJnvu2x" ) - return s.NewPackage(t, "libpciaccess", version, newFromGitLab( + return t.NewPackage("libpciaccess", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/lib/libpciaccess", "libpciaccess-"+version, @@ -903,12 +903,12 @@ func init() { }) } -func (t Toolchain) newXserver(s *S) (pkg.Artifact, string) { +func (t Toolchain) newXserver() (pkg.Artifact, string) { const ( version = "21.1.22" checksum = "prLT2wKecBu5m9w1ThgIt0GvenNpjKXoOyvTiMA1oQTlP0QHh6QiWsdvH3OmUwNo" ) - return s.NewPackage(t, "xserver", version, newFromGitLab( + return t.NewPackage("xserver", version, newFromGitLab( "gitlab.freedesktop.org", "xorg/xserver", "xorg-server-"+version, diff --git a/internal/rosa/xz.go b/internal/rosa/xz.go index e74aadc0..e524dcab 100644 --- a/internal/rosa/xz.go +++ b/internal/rosa/xz.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newXZ(s *S) (pkg.Artifact, string) { +func (t Toolchain) newXZ() (pkg.Artifact, string) { const ( version = "5.8.3" checksum = "nCdayphPGdIdVoAZ2hR4vYlhDG9LeVKho_i7ealTud4Vxy5o5dWe0VwFlN7utuUL" ) - return s.NewPackage(t, "xz", version, newFromGitHubRelease( + return t.NewPackage("xz", version, newFromGitHubRelease( "tukaani-project/xz", "v"+version, "xz-"+version+".tar.bz2", diff --git a/internal/rosa/zlib.go b/internal/rosa/zlib.go index 92e0e6a4..3b276371 100644 --- a/internal/rosa/zlib.go +++ b/internal/rosa/zlib.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newZlib(s *S) (pkg.Artifact, string) { +func (t Toolchain) newZlib() (pkg.Artifact, string) { const ( version = "1.3.2" checksum = "KHZrePe42vL2XvOUE3KlJkp1UgWhWkl0jjT_BOvFhuM4GzieEH9S7CioepOFVGYB" ) - return s.NewPackage(t, "zlib", version, newTar( + return t.NewPackage("zlib", version, newTar( "https://www.zlib.net/fossils/zlib-"+version+".tar.gz", checksum, pkg.TarGzip, diff --git a/internal/rosa/zstd.go b/internal/rosa/zstd.go index 1b39a63e..adb82cbd 100644 --- a/internal/rosa/zstd.go +++ b/internal/rosa/zstd.go @@ -2,12 +2,12 @@ package rosa import "hakurei.app/internal/pkg" -func (t Toolchain) newZstd(s *S) (pkg.Artifact, string) { +func (t Toolchain) newZstd() (pkg.Artifact, string) { const ( version = "1.5.7" checksum = "4XhfR7DwVkwo1R-TmYDAJOcx9YXv9WSFhcFUe3hWEAMmdMLPhFaznCqYIA19_xxV" ) - return s.NewPackage(t, "zstd", version, newFromGitHubRelease( + return t.NewPackage("zstd", version, newFromGitHubRelease( "facebook/zstd", "v"+version, "zstd-"+version+".tar.gz",