aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/git.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-01-21 06:59:30 +0900
committerOphestra <cat@gensokyo.uk>2026-01-21 07:00:14 +0900
commitb6a66acfe4c39d7f258a38f181a2233c3e103766 (patch)
treebf28c792e699da9a5ae3b44f2e82a9845d579ee1 /internal/rosa/git.go
parentb72dc43bc3e361094c34fa94cbb7033f5083887e (diff)
internal/rosa: git artifact
This is required by the clang unit and regression tests. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/git.go')
-rw-r--r--internal/rosa/git.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/internal/rosa/git.go b/internal/rosa/git.go
new file mode 100644
index 00000000..a2c54cba
--- /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,
+ )))
+}