From b6a66acfe4c39d7f258a38f181a2233c3e103766 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Wed, 21 Jan 2026 06:59:30 +0900 Subject: [PATCH] internal/rosa: git artifact This is required by the clang unit and regression tests. Signed-off-by: Ophestra --- cmd/mbf/main.go | 2 ++ internal/rosa/git.go | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 internal/rosa/git.go diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go index d80d0a7..329a885 100644 --- a/cmd/mbf/main.go +++ b/cmd/mbf/main.go @@ -149,6 +149,8 @@ func main() { a = rosa.Std.NewBusybox() case "musl": a = rosa.Std.NewMusl(nil) + case "git": + a = rosa.Std.NewGit() case "go": a = rosa.Std.NewGo() case "rsync": diff --git a/internal/rosa/git.go b/internal/rosa/git.go new file mode 100644 index 0000000..a2c54cb --- /dev/null +++ b/internal/rosa/git.go @@ -0,0 +1,27 @@ +package rosa + +import ( + "hakurei.app/internal/pkg" +) + +// NewGit returns a [pkg.Artifact] containing an installation of git. +func (t Toolchain) NewGit() pkg.Artifact { + const ( + version = "2.52.0" + checksum = "uH3J1HAN_c6PfGNJd2OBwW4zo36n71wmkdvityYnrh8Ak0D1IifiAvEWz9Vi9DmS" + ) + return t.New("git-"+version, []pkg.Artifact{ + t.NewMake(), + }, nil, nil, ` +chmod -R +w /usr/src/git && cd /usr/src/git +make configure +./configure --prefix=/system +make "-j$(nproc)" all +make DESTDIR=/work install +`, pkg.Path(AbsUsrSrc.Append("git"), true, pkg.NewHTTPGetTar( + nil, "https://www.kernel.org/pub/software/scm/git/"+ + "git-"+version+".tar.gz", + mustDecode(checksum), + pkg.TarGzip, + ))) +}