aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-01-29 18:17:18 +0900
committerOphestra <cat@gensokyo.uk>2026-01-29 18:17:18 +0900
commit744e4e0632732219a21f86412d800a8c9e28250d (patch)
treea532756df74decbb5d944fd73a493095b709410d
parent85eda49b2b7ab27cbebfd82200760ff609b003c5 (diff)
internal/rosa: sed artifact
Required by various GNU programs as they are not happy with toybox sed. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--internal/rosa/all.go2
-rw-r--r--internal/rosa/gnu.go24
2 files changed, 26 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 9b4872a3..4a2c9acb 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -51,6 +51,7 @@ const (
Pygments
Python
Rsync
+ Sed
Setuptools
Toybox
Wayland
@@ -129,6 +130,7 @@ func ResolveName(name string) (p PArtifact, ok bool) {
"pygments": Pygments,
"python": Python,
"rsync": Rsync,
+ "sed": Sed,
"setuptools": Setuptools,
"toybox": Toybox,
"wayland": Wayland,
diff --git a/internal/rosa/gnu.go b/internal/rosa/gnu.go
index e4142476..9aa9142d 100644
--- a/internal/rosa/gnu.go
+++ b/internal/rosa/gnu.go
@@ -50,6 +50,30 @@ make DESTDIR=/work install
}
func init() { artifactsF[M4] = Toolchain.newM4 }
+func (t Toolchain) newSed() pkg.Artifact {
+ const (
+ version = "4.9"
+ checksum = "pe7HWH4PHNYrazOTlUoE1fXmhn2GOPFN_xE62i0llOr3kYGrH1g2_orDz0UtZ9Nt"
+ )
+ return t.New("sed-"+version, false, []pkg.Artifact{
+ t.Load(Make),
+ t.Load(Gawk),
+ }, nil, nil, `
+cd "$(mktemp -d)"
+/usr/src/sed/configure \
+ --prefix=/system \
+ --build="${ROSA_TRIPLE}"
+make "-j$(nproc)" check
+make DESTDIR=/work install
+`, pkg.Path(AbsUsrSrc.Append("sed"), false, pkg.NewHTTPGetTar(
+ nil,
+ "https://ftp.gnu.org/gnu/sed/sed-"+version+".tar.gz",
+ mustDecode(checksum),
+ pkg.TarGzip,
+ )))
+}
+func init() { artifactsF[Sed] = Toolchain.newSed }
+
func (t Toolchain) newAutoconf() pkg.Artifact {
const (
version = "2.72"