aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cmd/mbf/main.go2
-rw-r--r--internal/rosa/git.go27
2 files changed, 29 insertions, 0 deletions
diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go
index d80d0a7b..329a885e 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 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,
+ )))
+}