aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/git.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-01-31 05:09:17 +0900
committerOphestra <cat@gensokyo.uk>2026-01-31 08:55:33 +0900
commit8b4576bc5f6eaaf703886629f2dfa12ba38b574c (patch)
treef347a2189841297be8c5bc96b02dfc610490b19d /internal/rosa/git.go
parent29ebc52e26811b0a657bd1978b0c02284822462f (diff)
internal/rosa: migrate to make helper
This migrates artifacts that the helper cannot produce an identical instance of. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/git.go')
-rw-r--r--internal/rosa/git.go71
1 files changed, 53 insertions, 18 deletions
diff --git a/internal/rosa/git.go b/internal/rosa/git.go
index e29e2032..23644224 100644
--- a/internal/rosa/git.go
+++ b/internal/rosa/git.go
@@ -9,29 +9,64 @@ func (t Toolchain) newGit() pkg.Artifact {
version = "2.52.0"
checksum = "uH3J1HAN_c6PfGNJd2OBwW4zo36n71wmkdvityYnrh8Ak0D1IifiAvEWz9Vi9DmS"
)
- return t.New("git-"+version, 0, stage3Concat(t, []pkg.Artifact{},
- t.Load(Make),
- t.Load(Gawk),
- t.Load(Coreutils),
- t.Load(Perl),
- t.Load(M4),
- t.Load(Autoconf),
- t.Load(Gettext),
-
- t.Load(Zlib),
- ), nil, nil, `
-cd /usr/src/git
-make configure
-./configure --prefix=/system
-make "-j$(nproc)" all
-make DESTDIR=/work install
-`, pkg.Path(AbsUsrSrc.Append("git"), true, t.NewPatchedSource(
+ return t.NewViaMake("git", version, t.NewPatchedSource(
"git", version, pkg.NewHTTPGetTar(
nil, "https://www.kernel.org/pub/software/scm/git/"+
"git-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), false,
- )))
+ ), &MakeAttr{
+ // uses source tree as scratch space
+ Writable: true,
+ InPlace: true,
+
+ // test suite in subdirectory
+ SkipCheck: true,
+
+ Make: []string{"all"},
+ ScriptEarly: `
+cd /usr/src/git
+
+make configure
+`,
+ Script: `
+ln -s ../../system/bin/perl /usr/bin/ || true
+
+function disable_test {
+ local test=$1 pattern=$2
+ if [ $# -eq 1 ]; then
+ rm "t/${test}.sh"
+ else
+ sed -i "t/${test}.sh" \
+ -e "/^\s*test_expect_.*$pattern/,/^\s*' *\$/{s/^/: #/}"
+ fi
+}
+
+disable_test t5319-multi-pack-index
+disable_test t1305-config-include
+disable_test t3900-i18n-commit
+disable_test t3507-cherry-pick-conflict
+disable_test t4201-shortlog
+disable_test t5303-pack-corruption-resilience
+disable_test t4301-merge-tree-write-tree
+disable_test t8005-blame-i18n
+disable_test t9350-fast-export
+disable_test t9300-fast-import
+
+make \
+ -C t \
+ GIT_PROVE_OPTS="--jobs 32 --failures" \
+ prove
+`,
+ },
+ t.Load(Perl),
+ t.Load(Diffutils),
+ t.Load(M4),
+ t.Load(Autoconf),
+ t.Load(Gettext),
+
+ t.Load(Zlib),
+ )
}
func init() { artifactsF[Git] = Toolchain.newGit }