Compare commits

..

28 Commits

Author SHA1 Message Date
cat 51e4426a4f internal/rosa: remove gawk
Test / Create distribution (push) Successful in 58s
Test / Sandbox (push) Successful in 2m55s
Test / ShareFS (push) Successful in 3m58s
Test / Hakurei (push) Successful in 4m3s
Test / Sandbox (race detector) (push) Successful in 5m34s
Test / Hakurei (race detector) (push) Successful in 6m45s
Test / Flake checks (push) Successful in 1m10s
This change fully eliminates gawk.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-13 00:10:38 +09:00
cat 316edeb17b internal/rosa: fix GNU testsuite edge case
Test / Create distribution (push) Successful in 1m2s
Test / Sandbox (push) Successful in 3m2s
Test / ShareFS (push) Successful in 5m14s
Test / Sandbox (race detector) (push) Successful in 2m58s
Test / Hakurei (push) Successful in 3m6s
Test / Hakurei (race detector) (push) Successful in 4m5s
Test / Flake checks (push) Successful in 1m13s
For segments with a single test.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 22:37:57 +09:00
cat 8facae53c7 internal/rosa/package: replace gawk
Test / Create distribution (push) Successful in 1m1s
Test / Sandbox (push) Successful in 3m20s
Test / Hakurei (push) Successful in 4m54s
Test / ShareFS (push) Successful in 4m55s
Test / Sandbox (race detector) (push) Successful in 6m25s
Test / Hakurei (race detector) (push) Successful in 7m26s
Test / Flake checks (push) Successful in 1m21s
This replaces gawk in miscellaneous packages.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 22:09:56 +09:00
cat 7881bfd027 internal/rosa/package: awk
Test / Create distribution (push) Successful in 56s
Test / Sandbox (push) Successful in 3m7s
Test / Hakurei (push) Successful in 4m9s
Test / ShareFS (push) Successful in 4m10s
Test / Sandbox (race detector) (push) Successful in 5m57s
Test / Hakurei (race detector) (push) Successful in 7m30s
Test / Flake checks (push) Successful in 1m17s
This should replace gawk in many cases.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 22:08:22 +09:00
cat 9e9469fe6c internal/rosa/package/go: disable test broken on arm64
Test / Create distribution (push) Successful in 1m3s
Test / Sandbox (push) Successful in 4m11s
Test / ShareFS (push) Successful in 5m43s
Test / Hakurei (push) Successful in 5m44s
Test / Sandbox (race detector) (push) Successful in 7m29s
Test / Hakurei (race detector) (push) Successful in 8m55s
Test / Flake checks (push) Successful in 2m45s
Not currently able to investigate the failure due to performance of the arm64 development machine.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 19:58:22 +09:00
cat b6d90eb8e0 internal/rosa/package/gnu: findutils 4.10.0 to 4.11.0
Test / Create distribution (push) Successful in 1m17s
Test / Sandbox (push) Successful in 3m15s
Test / ShareFS (push) Successful in 5m55s
Test / Hakurei (push) Successful in 6m13s
Test / Sandbox (race detector) (push) Successful in 8m40s
Test / Hakurei (race detector) (push) Successful in 11m4s
Test / Flake checks (push) Successful in 1m26s
Yet another broken gnulib test.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 19:34:02 +09:00
cat 879f911fd8 internal/rosa/package/p11-kit: 0.26.2 to 0.26.4
Test / Create distribution (push) Successful in 56s
Test / Sandbox (push) Successful in 3m10s
Test / ShareFS (push) Successful in 4m36s
Test / Sandbox (race detector) (push) Successful in 5m58s
Test / Hakurei (race detector) (push) Successful in 7m10s
Test / Hakurei (push) Successful in 2m59s
Test / Flake checks (push) Successful in 3m33s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 19:21:39 +09:00
cat 1066fc0097 internal/rosa/package/meson: 1.11.1 to 1.11.2
Test / Create distribution (push) Successful in 51s
Test / Sandbox (push) Successful in 2m55s
Test / ShareFS (push) Successful in 4m26s
Test / Hakurei (push) Successful in 4m28s
Test / Sandbox (race detector) (push) Successful in 6m2s
Test / Hakurei (race detector) (push) Successful in 7m11s
Test / Flake checks (push) Successful in 1m31s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 19:21:15 +09:00
cat 3a3d8efb1e internal/rosa/package/python: early bootstrap variant
Test / Create distribution (push) Successful in 2m10s
Test / Sandbox (push) Successful in 6m44s
Test / ShareFS (push) Successful in 8m36s
Test / Sandbox (race detector) (push) Successful in 9m22s
Test / Hakurei (race detector) (push) Successful in 11m28s
Test / Hakurei (push) Successful in 2m25s
Test / Flake checks (push) Successful in 1m13s
This avoids pulling in python's insane dependency tree into the bootstrap path.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-11 21:13:44 +09:00
cat cb8c9e4e68 internal/rosa/package/git: disable more flaky tests
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 2m47s
Test / ShareFS (push) Successful in 3m51s
Test / Sandbox (race detector) (push) Successful in 5m36s
Test / Hakurei (race detector) (push) Successful in 6m41s
Test / Hakurei (push) Successful in 2m23s
Test / Flake checks (push) Successful in 1m6s
Discovered these during the most recent libffi-induced world rebuild.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-11 15:40:48 +09:00
cat 1c4a3b72bf internal/rosa/package/libffi: 3.7.0 to 3.5.2
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 2m55s
Test / ShareFS (push) Successful in 3m50s
Test / Hakurei (push) Successful in 4m2s
Test / Sandbox (race detector) (push) Successful in 5m48s
Test / Hakurei (race detector) (push) Successful in 6m55s
Test / Flake checks (push) Successful in 1m11s
Appears to be the final non-contaminated release. This package cannot be safely blocked indefinitely like rsync and vim. This change discontinues frequent bumps and limits damage by regressions introduced by AI slop until long-term plans are decided.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-11 12:23:05 +09:00
cat fdca05487c internal/rosa/package/cmake: 4.3.4 to 4.4.0
Test / Create distribution (push) Successful in 55s
Test / Sandbox (push) Successful in 2m53s
Test / ShareFS (push) Successful in 3m58s
Test / Sandbox (race detector) (push) Successful in 5m30s
Test / Hakurei (race detector) (push) Successful in 7m8s
Test / Hakurei (push) Successful in 2m20s
Test / Flake checks (push) Successful in 1m5s
This change also disables the bootstrap test because 4.4.0 broke the bootstrap test, and it makes little sense re-testing what has already succeeded.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 23:49:58 +09:00
cat 89db730bb9 internal/rosa/package/ncurses: enable deterministic archives
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 2m53s
Test / ShareFS (push) Successful in 3m54s
Test / Hakurei (push) Successful in 4m6s
Test / Sandbox (race detector) (push) Successful in 5m51s
Test / Hakurei (race detector) (push) Successful in 6m57s
Test / Flake checks (push) Successful in 1m7s
This is not done by default in upstream build system.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 17:48:32 +09:00
cat 5161fc24ec internal/rosa/package/go: 1.26.4 to 1.26.5
Test / Create distribution (push) Successful in 1m20s
Test / Sandbox (push) Successful in 3m35s
Test / ShareFS (push) Successful in 4m41s
Test / Hakurei (push) Successful in 4m48s
Test / Sandbox (race detector) (push) Successful in 6m23s
Test / Hakurei (race detector) (push) Successful in 7m12s
Test / Flake checks (push) Successful in 1m7s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 15:51:57 +09:00
cat e1f16e7720 internal/rosa: apply patches in specified order
Test / Create distribution (push) Successful in 1m1s
Test / Sandbox (push) Successful in 2m59s
Test / ShareFS (push) Successful in 4m4s
Test / Hakurei (push) Successful in 4m15s
Test / Sandbox (race detector) (push) Successful in 5m40s
Test / Hakurei (race detector) (push) Successful in 6m45s
Test / Flake checks (push) Successful in 1m30s
This seems more intuitive than letting the filesystem decide, and having to use awkward names.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 15:39:55 +09:00
cat 8e9b3a2ed1 internal/rosa/go: migrate to azalea
Test / Create distribution (push) Successful in 1m3s
Test / Sandbox (push) Successful in 3m9s
Test / Hakurei (push) Successful in 4m13s
Test / ShareFS (push) Successful in 4m13s
Test / Sandbox (race detector) (push) Successful in 5m41s
Test / Hakurei (race detector) (push) Successful in 6m50s
Test / Flake checks (push) Successful in 1m15s
Bootstrap still remains native, however the final toolchain is migrated to azalea.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 14:48:54 +09:00
cat fd0a81b304 internal/rosa/package/libffi: 3.6.0 to 3.7.0
Test / Create distribution (push) Successful in 59s
Test / ShareFS (push) Successful in 6m32s
Test / Sandbox (race detector) (push) Successful in 7m23s
Test / Hakurei (race detector) (push) Successful in 8m36s
Test / Sandbox (push) Successful in 1m31s
Test / Hakurei (push) Successful in 2m33s
Test / Flake checks (push) Successful in 1m17s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 13:41:02 +09:00
cat 1d6d89a11a internal/rosa/package/go: bootstrap 1.25.11 to 1.25.12
Test / Create distribution (push) Successful in 1m22s
Test / Sandbox (push) Successful in 5m47s
Test / ShareFS (push) Successful in 7m0s
Test / Sandbox (race detector) (push) Successful in 7m56s
Test / Hakurei (race detector) (push) Successful in 10m6s
Test / Hakurei (push) Successful in 2m59s
Test / Flake checks (push) Successful in 1m14s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:37:38 +09:00
cat 6a6fdab92d internal/rosa/package/x: xwayland 24.1.12 to 24.1.13
Test / Create distribution (push) Successful in 1m27s
Test / Sandbox (push) Successful in 6m24s
Test / Hakurei (push) Successful in 9m39s
Test / ShareFS (push) Successful in 8m13s
Test / Sandbox (race detector) (push) Successful in 9m29s
Test / Hakurei (race detector) (push) Successful in 11m41s
Test / Flake checks (push) Successful in 1m19s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:37:15 +09:00
cat 67c67574e8 internal/rosa/package/x: xserver 21.1.23 to 21.1.24
Test / Create distribution (push) Successful in 1m16s
Test / Sandbox (push) Successful in 6m7s
Test / Hakurei (push) Successful in 9m42s
Test / ShareFS (push) Successful in 8m55s
Test / Sandbox (race detector) (push) Successful in 10m21s
Test / Hakurei (race detector) (push) Successful in 3m56s
Test / Flake checks (push) Successful in 1m10s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:36:53 +09:00
cat 79be25433b internal/rosa/package/x: libXfont2 2.0.7 to 2.0.8
Test / Create distribution (push) Successful in 1m28s
Test / Sandbox (push) Successful in 4m42s
Test / ShareFS (push) Successful in 6m15s
Test / Sandbox (race detector) (push) Successful in 8m22s
Test / Hakurei (race detector) (push) Successful in 12m18s
Test / Hakurei (push) Successful in 2m59s
Test / Flake checks (push) Successful in 1m16s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:36:24 +09:00
cat a4d78e8a32 internal/rosa/package/python: hatchling 1.17.0 to 1.17.1
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 4m38s
Test / Hakurei (push) Successful in 9m19s
Test / Sandbox (race detector) (push) Successful in 7m50s
Test / ShareFS (push) Successful in 7m46s
Test / Hakurei (race detector) (push) Successful in 11m21s
Test / Flake checks (push) Successful in 2m53s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:35:41 +09:00
cat ab3c37f75a internal/rosa/package/wlroots: 0.20.1 to 0.20.2
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 3m23s
Test / Hakurei (push) Successful in 8m1s
Test / Sandbox (race detector) (push) Successful in 6m20s
Test / ShareFS (push) Successful in 6m30s
Test / Hakurei (race detector) (push) Successful in 11m34s
Test / Flake checks (push) Successful in 3m2s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:35:07 +09:00
cat e6757fe254 internal/rosa/package/wayland: 1.25.0 to 1.25.91
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 4m13s
Test / Hakurei (push) Successful in 7m1s
Test / ShareFS (push) Successful in 7m18s
Test / Sandbox (race detector) (push) Successful in 8m2s
Test / Hakurei (race detector) (push) Successful in 11m27s
Test / Flake checks (push) Successful in 3m12s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:34:32 +09:00
cat b0f0d9e060 internal/rosa/package/libva: 2.24.0 to 2.24.1
Test / Create distribution (push) Successful in 1m1s
Test / Sandbox (push) Successful in 3m34s
Test / ShareFS (push) Successful in 5m55s
Test / Sandbox (race detector) (push) Successful in 8m0s
Test / Hakurei (race detector) (push) Successful in 11m20s
Test / Hakurei (push) Successful in 4m8s
Test / Flake checks (push) Successful in 2m19s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:33:59 +09:00
cat ce58895a0d internal/rosa/package/fontconfig: 2.18.1 to 2.18.2
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 3m10s
Test / Hakurei (push) Successful in 5m0s
Test / ShareFS (push) Successful in 5m16s
Test / Sandbox (race detector) (push) Successful in 7m33s
Test / Hakurei (race detector) (push) Successful in 10m34s
Test / Flake checks (push) Successful in 2m59s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:33:16 +09:00
cat 3c78551b24 cmd/mbf: expose target load average
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 2m56s
Test / ShareFS (push) Successful in 3m55s
Test / Hakurei (push) Successful in 4m0s
Test / Sandbox (race detector) (push) Successful in 5m34s
Test / Hakurei (race detector) (push) Successful in 6m47s
Test / Flake checks (push) Successful in 1m5s
There are often good reason to override this.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09 20:07:16 +09:00
cat 223e8e56b3 internal/rosa/meson: respect preferred loadavg target and job count
Test / Create distribution (push) Successful in 56s
Test / Sandbox (push) Successful in 2m50s
Test / ShareFS (push) Successful in 3m55s
Test / Hakurei (push) Successful in 4m3s
Test / Sandbox (race detector) (push) Successful in 5m39s
Test / Hakurei (race detector) (push) Successful in 6m41s
Test / Flake checks (push) Successful in 1m5s
This was missed when first implementing jobs and was missed again implementing loadavg.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09 19:37:08 +09:00
33 changed files with 439 additions and 132 deletions
+4
View File
@@ -210,6 +210,10 @@ func main() {
&cm.attr.Jobs, &cm.attr.Jobs,
"jobs", command.IntFlag(0), "jobs", command.IntFlag(0),
"Preferred number of jobs to run, when applicable", "Preferred number of jobs to run, when applicable",
).Flag(
&cm.attr.Load,
"load-average", command.IntFlag(0),
"Preferred load average number, when applicable",
).Flag( ).Flag(
&cm.base, &cm.base,
"d", command.StringFlag("$MBF_CACHE_DIR"), "d", command.StringFlag("$MBF_CACHE_DIR"),
+1 -1
View File
@@ -107,7 +107,7 @@ func skipGNUTests(tests ...int64) string {
buf.WriteString(strconv.Itoa(int(n - 1))) buf.WriteString(strconv.Itoa(int(n - 1)))
buf.WriteString(" ") buf.WriteString(" ")
} }
if i == len(tests)-1 || tests[i+1] != n+1 { if i == len(tests)-1 || (tests[i+1] != n+1 && tests[i+1] != n+2) {
buf.WriteString(strconv.Itoa(int(n + 1))) buf.WriteString(strconv.Itoa(int(n + 1)))
buf.WriteString("-") buf.WriteString("-")
} }
+1
View File
@@ -16,6 +16,7 @@ func TestSkipGNUTests(t *testing.T) {
}{ }{
{[]int64{764}, "1-763 765-"}, {[]int64{764}, "1-763 765-"},
{[]int64{764, 0xcafe, 37, 9}, "1-8 10-36 38-763 765-51965 51967-"}, {[]int64{764, 0xcafe, 37, 9}, "1-8 10-36 38-763 765-51965 51967-"},
{[]int64{168, 170, 623, 764}, "1-167 169 171-622 624-763 765-"},
{[]int64{1, 2, 0xbed}, "3-3052 3054-"}, {[]int64{1, 2, 0xbed}, "3-3052 3054-"},
{[]int64{3, 4}, "1-2 5-"}, {[]int64{3, 4}, "1-2 5-"},
} }
+8 -26
View File
@@ -56,16 +56,15 @@ ln -s \
func init() { func init() {
const ( const (
version = "1.26.4" version = "1.25.12"
checksum = "fpqJlxa41wKRtbnviYNLk9VxgcL-5oIEDxsriF8svU6kNwQW70oRRA9gTz_ImVoB" checksum = "XNrGD_boJl2-El_a_T3BuTcMin_WPoU-FGddcNG8dcXA8n2QuxZB7kaUaCWu60QX"
) )
meta := Metadata{ meta := Metadata{
Name: "go", Name: "go-bootstrap",
Description: "the Go programming language toolchain", Description: "the Go programming language toolchain (bootstrap)",
Website: "https://go.dev", Website: "https://go.dev",
Version: version, Version: version,
Exclude: true,
ID: 1227,
} }
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) { native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
var ( var (
@@ -152,8 +151,8 @@ sed -i \
) )
go125 := t.newGo( go125 := t.newGo(
"1.25.11", version,
"cnqAQ8wpVZXcM6nHAfSqFkIW4L3H73ALB9rBfKUBbfgg4_pOF3I9zOZARgYQ6MR2", checksum,
[]string{"CGO_ENABLED=0"}, ` []string{"CGO_ENABLED=0"}, `
sed -i \ sed -i \
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \ 's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
@@ -165,23 +164,6 @@ rm \
`, go123, `, go123,
) )
return &meta, t.newGo( return &meta, go125
version,
checksum,
finalEnv, `
sed -i \
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
sed -i \
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
internal/runtime/gc/scan/scan_amd64.go
rm \
os/root_unix_test.go \
cmd/cgo/internal/testsanitizers/tsan_test.go \
cmd/cgo/internal/testsanitizers/cshared_test.go
`, go125,
)
}) })
} }
+6 -5
View File
@@ -18,7 +18,8 @@ var (
_musl = H("musl") _musl = H("musl")
_bash = H("bash") _bash = H("bash")
_gawk = H("gawk") _awk = H("awk")
_pythonEarly = H("python-early")
_coreutils = H("coreutils") _coreutils = H("coreutils")
_diffutils = H("diffutils") _diffutils = H("diffutils")
_findutils = H("findutils") _findutils = H("findutils")
@@ -124,7 +125,7 @@ ln -s \
"/work/system/lib/${ROSA_TRIPLE}/crtendS.o" "/work/system/lib/${ROSA_TRIPLE}/crtendS.o"
`, `,
}, },
_python, _pythonEarly,
_muslHeaders, _muslHeaders,
_kernelHeaders, _kernelHeaders,
@@ -180,7 +181,7 @@ ln -s \
}, },
SkipTest: true, SkipTest: true,
}, },
_python, _pythonEarly,
_zlib, _zlib,
_zstd, _zstd,
@@ -367,11 +368,11 @@ ln -s clang++ /work/system/bin/c++
Test: "ninja " + jobsFlagE + " " + loadFlagE + " check-all", Test: "ninja " + jobsFlagE + " " + loadFlagE + " check-all",
}, },
_python, _pythonEarly,
_perl, _perl,
_diffutils, _diffutils,
_bash, _bash,
_gawk, _awk,
_coreutils, _coreutils,
_findutils, _findutils,
+1 -1
View File
@@ -8,7 +8,7 @@ import (
) )
func TestLLVMInputs(t *testing.T) { func TestLLVMInputs(t *testing.T) {
const wantInputCount = 553 const wantInputCount = 467
_, llvm := rosa.Native().Std().MustLoad(rosa.H("llvm")) _, llvm := rosa.Native().Std().MustLoad(rosa.H("llvm"))
var n int var n int
+1 -1
View File
@@ -56,7 +56,7 @@ func (attr *MakeHelper) extra(flag int) P {
extra := P{_make} extra := P{_make}
if (attr == nil || !attr.OmitDefaults) && flag&TEarly == 0 { if (attr == nil || !attr.OmitDefaults) && flag&TEarly == 0 {
extra = append(extra, extra = append(extra,
_gawk, _awk,
_coreutils, _coreutils,
) )
} }
+4 -1
View File
@@ -58,6 +58,7 @@ func (attr *MesonHelper) script(t Toolchain, name string) string {
if !attr.SkipTest && t.opts&OptSkipCheck == 0 { if !attr.SkipTest && t.opts&OptSkipCheck == 0 {
scriptTest = ` scriptTest = `
meson test \ meson test \
` + jobsFlagE + ` \
-t 10 \ -t 10 \
--print-errorlogs` --print-errorlogs`
if attr.InteractiveTest { if attr.InteractiveTest {
@@ -91,7 +92,9 @@ meson setup \
} }
}), " \\\n\t") + ` \ }), " \\\n\t") + ` \
. '/usr/src/` + name + `' . '/usr/src/` + name + `'
meson compile` + scriptCompiled + scriptTest + ` meson compile \
` + jobsFlagE + ` \
` + loadFlagE + scriptCompiled + scriptTest + `
meson install \ meson install \
--destdir=/work --destdir=/work
` + attr.Script ` + attr.Script
+30
View File
@@ -0,0 +1,30 @@
package awk {
description = "one true awk";
website = "https://github.com/onetrueawk/awk";
anitya = 16171;
version# = "20260426";
source = remoteGitHub {
suffix = "onetrueawk/awk";
tag = version;
checksum = "ewAvWLEHajhm7cA7v4DsKVk1c11niCLKIE5Q-8W_sxv1XXsbZlcOuWn1KOBYMxjo";
};
enterSource = true;
writable = true;
chmod = true;
exec = make {
omitDefaults = true;
inPlace = true;
skipConfigure = true;
preCheck = "install -vD a.out /system/bin/awk\n";
install = "install -vD a.out /work/system/bin/awk";
};
inputs = [
m4,
bison,
diffutils,
];
}
+6 -5
View File
@@ -10,10 +10,15 @@ package bison {
compress = gzip; compress = gzip;
}; };
// awk dependency loop
toyboxEarly = true;
exec = make { exec = make {
check = [ check = [
"TESTSUITEFLAGS=" + jobsFlagE + "' " + skipGNUTests { "TESTSUITEFLAGS=" + jobsFlagE + "' " + skipGNUTests {
tests = [ tests = [
// GNU-isms not implemented in toybox
168, 170, 623,
// clang miscompiles (SIGILL) // clang miscompiles (SIGILL)
764, 764,
]; ];
@@ -22,9 +27,5 @@ package bison {
]; ];
}; };
inputs = [ inputs = [ m4 ];
m4,
diffutils,
sed,
];
} }
+1 -1
View File
@@ -31,7 +31,7 @@ package cairo {
}; };
inputs = [ inputs = [
gawk, awk,
zlib, zlib,
libpng, libpng,
@@ -1,13 +0,0 @@
diff --git a/Tests/BootstrapTest.cmake b/Tests/BootstrapTest.cmake
index 137de78bc1..b4da52e664 100644
--- a/Tests/BootstrapTest.cmake
+++ b/Tests/BootstrapTest.cmake
@@ -9,7 +9,7 @@ if(NOT nproc EQUAL 0)
endif()
message(STATUS "running bootstrap: ${bootstrap} ${ninja_arg} ${parallel_arg}")
execute_process(
- COMMAND ${bootstrap} ${ninja_arg} ${parallel_arg}
+ COMMAND ${bootstrap} ${ninja_arg} ${parallel_arg} -- -DCMAKE_USE_OPENSSL=OFF
WORKING_DIRECTORY "${bin_dir}"
RESULT_VARIABLE result
)
+4 -6
View File
@@ -3,18 +3,15 @@ package cmake {
website = "https://cmake.org"; website = "https://cmake.org";
anitya = 306; anitya = 306;
version# = "4.3.4"; version# = "4.4.0";
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "Kitware/CMake"; suffix = "Kitware/CMake";
tag = "v"+version; tag = "v"+version;
name = "cmake-"+version+".tar.gz"; name = "cmake-"+version+".tar.gz";
checksum = "6A50pqarKDXKOCv7ffKMvWJWmNTVp_ep8KoaWwNdg-RYQRddgKbxayHveTo6jZ_7"; checksum = "ZL0Y19_mSJWsl3dMjRRQJAaCvl4_PqbwpgUC1aBA-cdVdrK_gt4ylpUM2GMoQMku";
compress = gzip; compress = gzip;
}; };
patches = [ patches = [ "disable-broken-tests-musl.patch" ];
"bootstrap-test-no-openssl.patch",
"disable-broken-tests-musl.patch",
];
// test suite expects writable source tree // test suite expects writable source tree
writable = true; writable = true;
@@ -32,6 +29,7 @@ package cmake {
"--"; "--";
"-DCMAKE_USE_OPENSSL": "OFF"; "-DCMAKE_USE_OPENSSL": "OFF";
"-DCMake_TEST_NO_NETWORK": "ON"; "-DCMake_TEST_NO_NETWORK": "ON";
"-DCMake_TEST_BOOTSTRAP": "OFF";
}; };
check = [ check = [
+2 -2
View File
@@ -3,12 +3,12 @@ package fontconfig {
website = "https://www.freedesktop.org/wiki/Software/fontconfig"; website = "https://www.freedesktop.org/wiki/Software/fontconfig";
anitya = 827; anitya = 827;
version# = "2.18.1"; version# = "2.18.2";
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
suffix = "fontconfig/fontconfig"; suffix = "fontconfig/fontconfig";
ref = version; ref = version;
checksum = "S3FJfh-PeZ2_YgNrUqL0H2G4Wf_ilj5HpIGV2oURnkK672AQHpWk526bNtRHwyJt"; checksum = "P8YoQunIynBhc3gdDyPkImw_GGYoy1U4aX0jTnpkgtLmU4nqIgUyeqCH3-rNzpTd";
}; };
exec = make { exec = make {
+2
View File
@@ -60,6 +60,8 @@ disable_test t1451-fsck-buffer
disable_test t4104-apply-boundary disable_test t4104-apply-boundary
disable_test t4200-rerere disable_test t4200-rerere
disable_test t5515-fetch-merge-logic disable_test t5515-fetch-merge-logic
disable_test t4124-apply-ws-rule
disable_test t3404-rebase-interactive
`; `;
check = [ check = [
+7 -22
View File
@@ -12,6 +12,9 @@ package m4 {
compress = bzip2; compress = bzip2;
}; };
// awk dependency loop
toyboxEarly = true;
writable = true; writable = true;
early = ` early = `
chmod +w tests/test-c32ispunct.sh && echo '#!/bin/sh' > tests/test-c32ispunct.sh chmod +w tests/test-c32ispunct.sh && echo '#!/bin/sh' > tests/test-c32ispunct.sh
@@ -220,25 +223,6 @@ test_disable '#!/bin/sh' tests/need-filename
exec = make {}; exec = make {};
} }
package gawk {
description = "an implementation of awk with GNU extensions";
website = "https://www.gnu.org/software/gawk";
anitya = 868;
version# = "5.4.0";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/gawk/gawk-"+version+".tar.gz";
checksum = "m0RkIolC-PI7EY5q8pcx5Y-0twlIW0Yp3wXXmV-QaHorSdf8BhZ7kW9F8iWomz0C";
compress = gzip;
};
toyboxEarly = true;
exec = make {
// dependency loop
skipCheck = true;
};
}
package grep { package grep {
description = "searches input for lines containing a match to a pattern"; description = "searches input for lines containing a match to a pattern";
website = "https://www.gnu.org/software/grep"; website = "https://www.gnu.org/software/grep";
@@ -309,14 +293,15 @@ package findutils {
website = "https://www.gnu.org/software/findutils"; website = "https://www.gnu.org/software/findutils";
anitya = 812; anitya = 812;
version# = "4.10.0"; version# = "4.11.0";
source = remoteFile { source = remoteFile {
url = "https://ftpmirror.gnu.org/gnu/findutils/findutils-"+version+".tar.xz"; url = "https://ftpmirror.gnu.org/gnu/findutils/findutils-"+version+".tar.xz";
checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6"; checksum = "X-qsv9aUoBL583q-4iZcBI3_7Ufd3fSIqFmNLXWdEpUihlRfMpGGyAUt8SAvDKae";
}; };
early = ` early = `
echo '#!/bin/sh' > gnulib-tests/test-c32ispunct.sh echo '#!/bin/sh' > gnulib-tests/test-c32ispunct.sh
echo 'int main(){return 0;}' > gnulib-tests/test-fstatat.c
echo 'int main(){return 0;}' > tests/xargs/test-sigusr.c echo 'int main(){return 0;}' > tests/xargs/test-sigusr.c
`; `;
@@ -450,7 +435,7 @@ package texinfo {
runtime = [ runtime = [
perl, perl,
gawk, awk,
]; ];
} }
+29
View File
@@ -0,0 +1,29 @@
From 45929774c3d5c084cc478afba63c77cf67a68bd7 Mon Sep 17 00:00:00 2001
From: khr@golang.org <khr@golang.org>
Date: Wed, 18 Feb 2026 09:09:57 -0800
Subject: [PATCH] internal/runtime/gc/scan: require popcnt for x86
The GOAMD64=v1 test disables popcnt instructions, which is a feature
this package's amd64 assembly uses.
Fixes #77674
Change-Id: I7be9bb665838f5da50275f96ef3df398412bb44a
Reviewed-on: https://go-review.googlesource.com/c/go/+/746640
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Keith Randall <khr@golang.org>
---
diff --git a/src/internal/runtime/gc/scan/scan_amd64.go b/src/internal/runtime/gc/scan/scan_amd64.go
index c03021c7d4..544b237770 100644
--- a/src/internal/runtime/gc/scan/scan_amd64.go
+++ b/src/internal/runtime/gc/scan/scan_amd64.go
@@ -39,4 +39,5 @@ var avx512ScanPackedReqsMet = cpu.X86.HasAVX512VL &&
cpu.X86.HasGFNI &&
cpu.X86.HasAVX512BITALG &&
cpu.X86.HasAVX512DQ && // for kmovb, see #79871
- cpu.X86.HasAVX512VBMI
+ cpu.X86.HasAVX512VBMI &&
+ cpu.X86.HasPOPCNT
+135
View File
@@ -0,0 +1,135 @@
From 06f90ebfa6f3e0a744584513e2786988b26569da Mon Sep 17 00:00:00 2001
From: Damien Neil <dneil@google.com>
Date: Wed, 08 Jul 2026 11:11:48 -0700
Subject: [PATCH] os: properly handle trailing / in Root.MkdirAll
MkdirAll("dir/") should create "dir", not return an error.
Fixes #80308
Change-Id: I75458c30b6cb94be3a3d368f6024caef6a6a6964
---
diff --git a/src/os/root_noopenat.go b/src/os/root_noopenat.go
index 228b580..a84e952 100644
--- a/src/os/root_noopenat.go
+++ b/src/os/root_noopenat.go
@@ -158,6 +158,9 @@
if err := checkPathEscapes(r, name); err == errPathEscapes {
return &PathError{Op: "mkdirat", Path: name, Err: err}
}
+ if name == "" {
+ return &PathError{Op: "mkdirat", Path: name, Err: syscall.ENOENT}
+ }
prefix := r.root.name + string(PathSeparator)
if err := MkdirAll(prefix+name, perm); err != nil {
if pe, ok := err.(*PathError); ok {
diff --git a/src/os/root_openat.go b/src/os/root_openat.go
index d7c9334..92865e4 100644
--- a/src/os/root_openat.go
+++ b/src/os/root_openat.go
@@ -167,6 +167,12 @@
fi, e := r.Stat(fullname)
if e == nil && fi.Mode().IsDir() {
err = nil
+ } else if e == nil {
+ err = syscall.ENOTDIR
+ } else if !IsNotExist(e) {
+ // EPERM, ELOOP, etc.,
+ // probably more useful than EEXIST.
+ err = e
}
}
}
@@ -177,7 +183,12 @@
}
return struct{}{}, &PathError{Op: "mkdirat", Err: err}
}
- _, err := doInRoot(r, fullname, 0, openDirFunc, openLastComponentFunc)
+ flags := uint(doInRootCreatingDirectory)
+ switch runtime.GOOS {
+ case "linux", "windows":
+ flags = doInRootNoHandleTerminalSlash // see rootMkdir
+ }
+ _, err := doInRoot(r, fullname, flags, openDirFunc, openLastComponentFunc)
if err != nil {
if _, ok := err.(*PathError); !ok {
err = &PathError{Op: "mkdirat", Path: fullname, Err: err}
diff --git a/src/os/root_test.go b/src/os/root_test.go
index 5e0acf9..33a2f33 100644
--- a/src/os/root_test.go
+++ b/src/os/root_test.go
@@ -585,6 +585,11 @@
func TestRootMkdirAll(t *testing.T) {
for _, test := range rootTestCases {
+ if test.name == "directory does not exist" {
+ // Test expects error, mkdirall creates the missing directory.
+ // TestRootMultiMkdirAll covers this case better anyway, just skip.
+ continue
+ }
test.run(t, func(t *testing.T, target string, root *os.Root) {
wantError := test.wantError
if test.ltarget != "" {
@@ -593,7 +598,7 @@
wantError = true
}
- err := root.Mkdir(test.open, 0o777)
+ err := root.MkdirAll(test.open, 0o777)
if errEndsTest(t, err, wantError, "root.MkdirAll(%q)", test.open) {
return
}
@@ -3133,6 +3138,52 @@
})
}
+func TestRootMultiMkdirAllShallow(t *testing.T) {
+ runRootMultiTest(t, func(t *testing.T, test *rootMultiTest) (string, error) {
+ return testRootMultiMkdirAll(t, test, test.targetPath)
+ })
+}
+
+func TestRootMultiMkdirAllDeep(t *testing.T) {
+ runRootMultiTest(t, func(t *testing.T, test *rootMultiTest) (string, error) {
+ targetPath := test.targetPath
+ if len(targetPath) > 0 && os.IsPathSeparator(targetPath[len(targetPath)-1]) {
+ targetPath += "a/b/"
+ } else {
+ targetPath += "/a/b"
+ }
+ return testRootMultiMkdirAll(t, test, targetPath)
+ })
+}
+
+func testRootMultiMkdirAll(t *testing.T, test *rootMultiTest, targetPath string) (string, error) {
+ var mkdirAll = os.MkdirAll
+ if test.root != nil {
+ mkdirAll = test.root.MkdirAll
+ }
+
+ test.setOp("MkdirAll(%q, 0o777)", targetPath)
+ gotErr := mkdirAll(targetPath, 0o777)
+
+ switch {
+ case test.root != nil && test.target.lescapes():
+ // "mkdir ../target", or equivalent escaping path.
+ test.wantError(t, gotErr, os.ErrPathEscapes)
+ case test.root != nil && test.target.escapes():
+ // "mkdir ../target", or equivalent escaping path.
+ test.wantError(t, gotErr, errAny)
+ return "", errSkipRootConsistencyCheck
+ case test.root != nil && test.target.kind == testFileSymlink && test.target.target.kind == testFileAbsent && targetPath != test.targetPath:
+ // A minor inconsistency between Root.MkdirAll and os.MkdirAll:
+ // When an intermediate component of the tree being constructed is a
+ // dangling symlink, Root.MkdirAll will follow the symlink and create
+ // its target directory, while os.MkdirAll will fail with an error.
+ return "", errSkipRootConsistencyCheck
+ default:
+ }
+ return "", gotErr
+}
+
func TestRootMultiRename(t *testing.T) {
if runtime.GOOS == "wasip1" {
switch os.Getenv("GOWASIRUNTIME") {
+64
View File
@@ -0,0 +1,64 @@
package go {
description = "the Go programming language toolchain";
website = "https://go.dev";
anitya = 1227;
version# = "1.26.5";
source = remoteTar {
url = "https://go.dev/dl/go"+version+".src.tar.gz";
checksum = "13yt1u_NGOd62LO-WZ8W6CUXodOrEF5CdkiTTiH9E635IHn1luvlXYjsHpBXNFSw";
compress = gzip;
};
patches = [
// https://go.dev/issue/77674
"746640.patch",
// https://go.dev/issue/80308
"799064.patch",
];
env = [
"CC=cc",
"GOCACHE=/tmp/gocache",
"GOROOT_BOOTSTRAP=/system/go",
"TMPDIR=/dev/shm/go",
];
enterSource = true;
exec = generic {
inPlace = true;
build = `
mkdir /work/system/ "${TMPDIR}"
cp -r . /work/system/go
cd /work/system/go/src/
chmod -R +w ..
sed -i \
's,/lib/ld-musl-`+linuxArch+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+arch+`/obj.go
rm \
os/root_unix_test.go \
runtime/crash_cgo_test.go \
cmd/cgo/internal/testsanitizers/tsan_test.go \
cmd/cgo/internal/testsanitizers/cshared_test.go
set +u
. ./make.bash "$@" --no-banner
set -u
`;
check = "bash run.bash --no-rebuild\n";
install = `
../bin/go tool dist banner # print build info
mkdir /work/system/bin
ln -s \
../go/bin/go \
../go/bin/gofmt \
/work/system/bin
`;
};
inputs = [ bash, go-bootstrap ];
}
+1 -1
View File
@@ -132,7 +132,7 @@ rm -v "/work/system/lib/modules/$(make -f /usr/src/kernel/Makefile kernelversion
perl, perl,
bc, bc,
sed, sed,
gawk, awk,
coreutils, coreutils,
diffutils, diffutils,
bash, bash,
+4 -2
View File
@@ -3,12 +3,14 @@ package libffi {
website = "https://sourceware.org/libffi"; website = "https://sourceware.org/libffi";
anitya = 1611; anitya = 1611;
version# = "3.6.0"; block = "severe regressions caused by questionable maintainer decisions";
version# = "3.5.2";
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "libffi/libffi"; suffix = "libffi/libffi";
tag = "v"+version; tag = "v"+version;
name = "libffi-"+version+".tar.gz"; name = "libffi-"+version+".tar.gz";
checksum = "y3H_jP_eoByznlztjvni3wDfGA4CIJoOh3eRnzjnE3G3Ms3AWk53oOZxkbruvLxM"; checksum = "2_Q-ZNBBbVhltfL5zEr0wljxPegUimTK4VeMSiwJEGksls3n4gj3lV0Ly3vviSFH";
compress = gzip; compress = gzip;
}; };
+2 -2
View File
@@ -3,11 +3,11 @@ package libva {
website = "https://01.org/vaapi"; website = "https://01.org/vaapi";
anitya = 1752; anitya = 1752;
version# = "2.24.0"; version# = "2.24.1";
source = remoteGitHub { source = remoteGitHub {
suffix = "intel/libva"; suffix = "intel/libva";
tag = version; tag = version;
checksum = "Jb5bdeHXLPPTWFlmauKDZlfAjFiXiILs17Pp7F8kAiyctFiDItpzYY0prIlnW7mu"; checksum = "4IdXxvDFLvl_7lXbJne4_TQA4PZhG89MZXLyvQEkGSb4LcX7CGLrMOjRNZOWb9d6";
}; };
exec = meson { exec = meson {
+2 -2
View File
@@ -3,11 +3,11 @@ package meson {
website = "https://mesonbuild.com"; website = "https://mesonbuild.com";
anitya = 6472; anitya = 6472;
version# = "1.11.1"; version# = "1.11.2";
source = remoteGitHub { source = remoteGitHub {
suffix = "mesonbuild/meson"; suffix = "mesonbuild/meson";
tag = version; tag = version;
checksum = "uvILRxdopwc6Dy17UbIeClcQr0qHqyTaqyk1M9OqWKN9PwB9N6UVAiyN8kSSz3r2"; checksum = "9AMilGxTOVqPA2DaGMASyuVs1BeTzgDZ0NH2oSYoRZk846ApvfOBa4cc18XEEK7M";
}; };
env = [ env = [
+7
View File
@@ -20,6 +20,13 @@ package ncurses {
// "tests" are actual demo programs, not a test suite. // "tests" are actual demo programs, not a test suite.
skipCheck = true; skipCheck = true;
postInstall = `
find /work/system/lib \
-type f \
-name '*.a' \
-exec objcopy --enable-deterministic-archives {} \;
`;
}; };
inputs = [ pkg-config ]; inputs = [ pkg-config ];
+1 -1
View File
@@ -34,7 +34,7 @@ cp ninja /work/system/bin/`;
}; };
inputs = [ inputs = [
python, python-early,
bash, bash,
]; ];
} }
+1 -1
View File
@@ -61,7 +61,7 @@ cp -r \
inputs = [ inputs = [
perl, perl,
python, python,
gawk, awk,
coreutils, coreutils,
zlib, zlib,
+2 -2
View File
@@ -3,11 +3,11 @@ package p11-kit {
website = "https://p11-glue.freedesktop.org/p11-kit.html"; website = "https://p11-glue.freedesktop.org/p11-kit.html";
anitya = 2582; anitya = 2582;
version# = "0.26.2"; version# = "0.26.4";
source = remoteGit { source = remoteGit {
url = "https://github.com/p11-glue/p11-kit.git"; url = "https://github.com/p11-glue/p11-kit.git";
tag = version; tag = version;
checksum = "3ei-6DUVtYzrRVe-SubtNgRlweXd6H2qHmUu-_5qVyIn6gSTvZbGS2u79Y8IFb2N"; checksum = "iqkBuTqqBAc6suv7wY89DyceN1arWTn2QwaXVwKN_J_IqNyRGNKPLq9RAmkumYD7";
}; };
exec = meson { exec = meson {
+72 -2
View File
@@ -73,6 +73,76 @@ package python {
]; ];
} }
package python-early {
description = "minimal python interpreter exclusive to the bootstrap path";
website = "https://www.python.org";
exclude = true;
anitya = 13254;
block = "exclusive to the bootstrap path";
version# = "3.14.6";
source = remoteTar {
url = "https://www.python.org/ftp/python/"+version+
"/Python-"+version+".tgz";
checksum = "yynwXnElUvlAweA_RkBKQY35P59Gu5YU6ickJs6Z-blIoHgw5KgKXROY1gq2w0ez";
compress = gzip;
};
// test_synopsis_sourceless assumes this is writable and checks __pycache__
writable = true;
chmod = true;
env = [
"EXTRATESTOPTS=-j0 -x " + join {
elems = [
// requires internet access (http://www.pythontest.net/)
"test_asyncio",
"test_socket",
"test_urllib2",
"test_urllibnet",
"test_urllib2net",
// makes assumptions about uid_map/gid_map
"test_os",
"test_subprocess",
// insane strict_timestamps default
"test_zipfile",
// requires gcc
"test_ctypes",
// breaks on llvm
"test_dbm_gnu",
];
sep = " -x ";
},
// _ctypes appears to infer something from the linker name
"LDFLAGS=-Wl,--dynamic-linker=/system/lib/" +
"ld-musl-" + linuxArch + ".so.1",
];
exec = make {
check = [ "test" ];
postInstall = "ln -s python3 /work/system/bin/python";
};
inputs = [
zlib,
bzip2,
libffi,
kernel-headers,
];
runtime = [
zlib,
bzip2,
libffi,
];
}
package python-setuptools { package python-setuptools {
description = "the autotools of the Python ecosystem"; description = "the autotools of the Python ecosystem";
website = "https://pypi.org/project/setuptools"; website = "https://pypi.org/project/setuptools";
@@ -302,11 +372,11 @@ package python-hatchling {
website = "https://hatch.pypa.io"; website = "https://hatch.pypa.io";
anitya = 16137; anitya = 16137;
version# = "1.17.0"; version# = "1.17.1";
source = remoteGitHub { source = remoteGitHub {
suffix = "pypa/hatch"; suffix = "pypa/hatch";
tag = "hatch-v"+version; tag = "hatch-v"+version;
checksum = "fK85G542FXEXTP1QZNVhhfp8_Y8f9u1DAyeeFO3PWyv3JLTCPdPl9WTz8Ov6tfYp"; checksum = "FK9PkGIkL3wyVFHOKrx9lSRqoevuQ_TFrN-pMqsoFKsh5eim4pfzx7MvL3ioif9o";
}; };
exec = pip { exec = pip {
+3 -3
View File
@@ -3,12 +3,12 @@ package wayland {
website = "https://wayland.freedesktop.org"; website = "https://wayland.freedesktop.org";
anitya = 10061; anitya = 10061;
version# = "1.25.0"; version# = "1.25.91";
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
suffix = "wayland/wayland"; suffix = "wayland/wayland";
ref = version; ref = version;
checksum = "q-4dYXme46JPgLGtXAxyZGTy7udll9RfT0VXtcW2YRR1WWViUhvdZXZneXzLqpCg"; checksum = "SvltMSgObMdDmRoqlSRg_TlKoemR3R-uXtRlRE8bvdw6MFxFp69f0geLOJvahyLT";
}; };
writable = true; writable = true;
@@ -26,7 +26,7 @@ echo 'int main(){}' > tests/sanity-test.c
}; };
inputs = [ inputs = [
gawk, awk,
diffutils, diffutils,
libffi, libffi,
+2 -2
View File
@@ -3,12 +3,12 @@ package wlroots {
website = "https://gitlab.freedesktop.org/wlroots/wlroots"; website = "https://gitlab.freedesktop.org/wlroots/wlroots";
anitya = 18357; anitya = 18357;
version# = "0.20.1"; version# = "0.20.2";
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
suffix = "wlroots/wlroots"; suffix = "wlroots/wlroots";
ref = version; ref = version;
checksum = "NQAn59GTXYBE4JHkgKnOUGZi9TGKcIrgH0khj53zDUj0whIQvNAc-sE_8xWYF66a"; checksum = "TDDJLXJ83uZEu-81LZeDlM0f1wNxaFd4Xn2q1NlKhm7IAEHnZJQHSdLmJIC4As_e";
}; };
exec = meson { exec = meson {
+8 -8
View File
@@ -576,12 +576,12 @@ package libXfont2 {
website = "https://gitlab.freedesktop.org/xorg/lib/libxfont"; website = "https://gitlab.freedesktop.org/xorg/lib/libxfont";
anitya = 17165; anitya = 17165;
version# = "2.0.7"; version# = "2.0.8";
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
suffix = "xorg/lib/libxfont"; suffix = "xorg/lib/libxfont";
ref = "libXfont2-"+version; ref = "libXfont2-"+version;
checksum = "jv9BZNA02493KB8j1lfAErF5SA3ZFcAhm3_UVJ--Bp1maz-vNprl_wXpkHApBi9M"; checksum = "8bYRkoiDkbZC2nFs0cOlcmLUNKS6_ZkDTrxas2KxxCJm_PsUD_E58HkMCmGfPGkp";
}; };
exec = make { exec = make {
@@ -695,12 +695,12 @@ package xserver {
website = "https://gitlab.freedesktop.org/xorg/xserver"; website = "https://gitlab.freedesktop.org/xorg/xserver";
anitya = 5250; anitya = 5250;
version# = "21.1.23"; version# = "21.1.24";
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
suffix = "xorg/xserver"; suffix = "xorg/xserver";
ref = "xorg-server-"+version; ref = "xorg-server-"+version;
checksum = "-hXqyWClfhoRYilXFruZFPCdT4bdYVn8S4BFW6teHqyuSjL2nxx3Fy7yhP2hJDZ6"; checksum = "ueBiwKIOHZkSmJPzxAeze_SJHt4QxEHQTk1kMkic-GYxC7Fs41ckwgVzcwr2N3ca";
}; };
exec = meson { exec = meson {
@@ -720,7 +720,7 @@ package xserver {
}; };
inputs = [ inputs = [
gawk, awk,
xorgproto, xorgproto,
libxtrans, libxtrans,
@@ -773,12 +773,12 @@ package xwayland {
website = "https://gitlab.freedesktop.org/xorg/xserver"; website = "https://gitlab.freedesktop.org/xorg/xserver";
anitya = 180949; anitya = 180949;
version# = "24.1.12"; version# = "24.1.13";
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
suffix = "xorg/xserver"; suffix = "xorg/xserver";
ref = "xwayland-"+version; ref = "xwayland-"+version;
checksum = "0D0bs8EbDzlyLIULvm6lizqzdx4g1-umdbjVVO7zk-cS1kVIaSkKronCqj95tz-A"; checksum = "dZpEGlcPJ72TBCtnR1mvquvN4iUypGvGJ4tN9hpa-ljux28EkSCQRlQHLPRijz36";
}; };
bin = [ "bash" ]; bin = [ "bash" ];
@@ -791,7 +791,7 @@ package xwayland {
inputs = [ inputs = [
bash, bash,
gawk, awk,
mesa, mesa,
libglvnd, libglvnd,
+23 -17
View File
@@ -10,6 +10,7 @@ import (
"strings" "strings"
"sync" "sync"
"time" "time"
"unsafe"
"hakurei.app/fhs" "hakurei.app/fhs"
"hakurei.app/internal/pkg" "hakurei.app/internal/pkg"
@@ -332,7 +333,7 @@ func (s *S) HasStageEarly() (ok bool) {
} }
// NewPatchedSource returns [pkg.Artifact] of source with patches applied. If // NewPatchedSource returns [pkg.Artifact] of source with patches applied. If
// passthrough is true, source is returned as is for zero length patches. // passthrough is true, source is returned as is for zero-length patches.
func (t Toolchain) NewPatchedSource( func (t Toolchain) NewPatchedSource(
name string, name string,
source pkg.Artifact, source pkg.Artifact,
@@ -346,29 +347,34 @@ func (t Toolchain) NewPatchedSource(
paths := make([]pkg.ExecPath, len(patches)+1) paths := make([]pkg.ExecPath, len(patches)+1)
for i, p := range patches { for i, p := range patches {
paths[i+1] = pkg.Path( paths[i+1] = pkg.Path(
AbsUsrSrc.Append(name+"-patches", p[0]+".patch"), false, fhs.AbsRoot.Append("patches", p[0]), false,
pkg.NewFile(p[0]+".patch", []byte(p[1])), pkg.NewFile(p[0], unsafe.Slice(unsafe.StringData(p[1]), len(p[1]))),
) )
} }
paths[0] = pkg.Path(AbsUsrSrc.Append(name), false, source) paths[0] = pkg.Path(fhs.AbsRoot.Append("src"), false, source)
aname := name + "-src" var buf strings.Builder
script := ` buf.WriteString(`
cp -r /usr/src/` + name + `/. /work/. cp -r /src/. /work/.
chmod -R +w /work && cd /work chmod -R +w /work && cd /work
` `)
if len(paths) > 1 { if len(paths) > 1 {
script += ` buf.WriteString(`
cat /usr/src/` + name + `-patches/* | \ function apply {
patch \ echo "applying $1"
-p 1 \ patch -p 1 < "/patches/$1"
--ignore-whitespace
`
aname += "-patched"
} }
return t.New(aname, 0, t.Append(nil, `)
for _, p := range patches {
buf.WriteString("apply '")
buf.WriteString(p[0])
buf.WriteString("'\n")
}
}
return t.New(name+"-src", 0, t.Append(nil,
_patch, _patch,
), nil, nil, script, paths...) ), nil, nil, buf.String(), paths...)
} }
// helperInPlace is a special directory value for omitting the cd statement. // helperInPlace is a special directory value for omitting the cd statement.
+1 -1
View File
@@ -1053,7 +1053,7 @@ func (ctx *evalContext) pf(
return return
} }
attr.Patches = append(attr.Patches, KV{ attr.Patches = append(attr.Patches, KV{
strings.TrimSuffix(filepath.Base(pathname), ".patch"), filepath.Base(pathname),
unsafe.String(unsafe.SliceData(p), len(p)), unsafe.String(unsafe.SliceData(p), len(p)),
}) })
} }