Commit Graph
100 Commits
Author SHA1 Message Date
cat 4dbfee0698 internal/rosa: force output colouring
This sets known de facto standard environment variables to enable colours during builds.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30 06:01:54 +09:00
cat 4e65e41101 internal/rosa/package/mesa: 26.1.5 to 26.1.6
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30 05:19:55 +09:00
cat b8306fe9e2 internal/rosa/package/python: vcs-versioning 2.2.2 to 2.2.3
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30 05:19:21 +09:00
cat 6b246e9036 internal/rosa/package/glib: 2.89.2 to 2.89.3
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30 05:18:23 +09:00
cat 869820ec6d cmd/mbf: enable output colouring
This respects the de facto standards, on top of checking stderr.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30 05:16:39 +09:00
cat 6fb2065a51 internal/pkg: optionally colour output
This increases readability in some cases.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30 05:15:19 +09:00
cat 698fd2d66a internal/rosa/package/libarchive: 3.8.8 to 3.8.9
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30 04:02:23 +09:00
cat 4cfbc93aa0 internal/rosa/package/gcc: binutils 2.46.1 to 2.47
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30 04:02:00 +09:00
cat feec4b0d22 internal/rosa/package/cmake: 4.4.0 to 4.4.1
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30 03:24:48 +09:00
cat 6487b41d92 internal/rosa: remove legacy exec helper
This change also adds a fourth stage to the bootstrap machinery, offering more correct toolchain validation that works around LLVM dynamic linking flaws.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30 00:18:22 +09:00
cat 7908fb9583 internal/rosa/llvm: exclude runtime symbols
These leak by default when static linking, which is considered unacceptable for many libraries.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-29 03:00:59 +09:00
cat 95aa7c205c internal/rosa: remove calls to low-level exec helper
This method predates the helper infrastructure, it is awkward to use and difficult to maintain for the replacement bootstrap mechanism. This change prepares for its removal.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-27 18:24:38 +09:00
cat bd0cc3656f internal/rosa/llvm: statically link libc++
This avoids unnecessarily depending on the toolchain.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-27 18:15:00 +09:00
cat 0219240adb internal/rosa/package/qemu: 11.0.2 to 11.0.3
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25 14:23:25 +09:00
cat aa4a15fc2c cmd/mbf: move gentoo bootstrap path
This is a lot more flexible for troubleshooting when used with the cure command.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25 14:17:03 +09:00
cat 0d3efeb456 internal/rosa: remove xz utils hack
This replaces all xz invocations with the native decompressor. This also significantly cleans up the Gentoo stage3 bootstrap path.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25 14:14:34 +09:00
cat 35147f6dfb internal/pkg: skip character device nodes
This allows unpacking of tarballs containing these entries.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25 14:07:38 +09:00
cat e5abf51296 internal/pkg: decompress xz streams
This uses a port of the public domain xz implementation.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25 14:03:34 +09:00
cat e26914cd6f internal/rosa/package/kernel: 6.18.39 to 6.18.40
Kernel headers bumped due to struct bpf_map_info changes and IFLA_BOND_LACP_STRICT.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25 13:58:12 +09:00
cat b647170d0c internal/rosa/package/strace: build from git sources
This removes xz input. This change also enables tests.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25 01:40:47 +09:00
cat 5e655a0bf6 internal/rosa/package: gawk
Reintroduce this to build strace without xz-compressed release tarball: bootstrap script explicitly requires gawk.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25 01:21:41 +09:00
cat 89eb3d27aa internal/rosa/package/util-linux: add ncurses
This enables more.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25 00:54:25 +09:00
cat 3b7a22ff9b cmd/dist: default to /usr/local prefix
This conventionally makes more sense for software not installed by the package manager.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-24 19:12:59 +09:00
cat 6c2ca507b9 internal/rosa/package: byacc
Much cleaner than bison and compiles much faster. This should be used whenever possible.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-24 18:48:20 +09:00
cat 1a8212ee02 internal/rosa/package/libdisplay-info: 0.3.0 to 0.4.0
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-24 11:53:59 +09:00
cat 84bb2a5038 internal/rosa: update stage0 distribution
This also replaces the slow bzip2 compression with zstd.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-24 11:10:59 +09:00
cat 46b247f911 internal/rosa/package/zstd: use zstd-compressed tarball
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-24 00:06:18 +09:00
cat 390f3b2dae internal/pkg: decompress zstd streams
This uses internal/zstd until compress/zstd becomes available.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-23 22:18:06 +09:00
cat 5d3e47d8e7 internal/rosa/package/libarchive: add runtime dependencies
These were missed due to being implied by the toolchain.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-23 22:02:06 +09:00
cat 6f2852547b internal/rosa/package/netfilter: use git protocol
The https service is down but somehow the git protocol is still accessible. Security implications do not apply due to KnownChecksum measurement.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-23 21:56:52 +09:00
cat 3cff369368 internal/rosa/package/xkbcommon: use fallback update filter
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-23 18:10:50 +09:00
cat 09de939955 internal/rosa: make build script executable
This makes it slightly easier to invoke when working on a package via --enter.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-23 18:02:50 +09:00
cat e0eec632d0 internal/pkg: optional executable files
This enables a FileArtifact implementation to specify whether its resulting file should be executable. This change also implements shebang and ELF magic checks in the file artifact.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-23 17:10:22 +09:00
cat 67dbb68818 internal/pkg: implementation revisions
This enables changing the behaviour of an artifact implementation without changing its IR structure. Unfortunately this changes the IR header structure resulting in many rebuilds.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-23 16:39:34 +09:00
cat 0e689d9983 internal/rosa/package: codeberg prefer release tarballs
Source archives are unstable.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-22 11:26:12 +09:00
cat 21a4067592 internal/rosa/package/perl: 5.42.2 to 5.44.0
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-22 11:24:46 +09:00
cat 639766dfca internal/rosa/package/gnu: parallel 20260622 to 20260722
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-22 11:23:50 +09:00
cat e4f025b9f1 internal/rosa/package/python: setuptools-scm 10.2.0 to 10.2.1
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-22 11:23:24 +09:00
cat 1b65c8107c internal/rosa/package/kernel: 6.18.38 to 6.18.39
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-21 12:13:22 +09:00
cat 1857ad8763 internal/rosa: optionally exclude toolchain in azalea
This is useful for edge cases where programs rely on gcc bugs to behave correctly.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-19 03:38:35 +09:00
cat c822ff9aca internal/rosa: migrate early-compiler-rt to azalea
Had to do the cmake hack for now due to evaluator limitation with inherited version.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-18 23:56:05 +09:00
cat 9df1609660 internal/rosa: migrate early-runtimes to azalea
This is fully representable in azalea, so migrate it.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-18 23:23:16 +09:00
cat 22e9e85a03 internal/rosa: migrate llvm source to azalea
Previous change enabled this migration.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-18 23:14:18 +09:00
cat b79aa3ea1c internal/rosa/state: patch output-only packages
This is useful for common patched source code.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-18 23:05:52 +09:00
cat 8d9b14dfe1 internal/rosa/cmake: disable nuisance warnings
Author warnings are pointless here, and it makes no sense to make CMAKE_<LANG>_COMPILER_TARGET optional just to shut cmake up.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-18 13:44:41 +09:00
cat 5770f957e5 internal/rosa/package/gnu: libtool 2.5.4 to 2.6.2
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-18 12:07:05 +09:00
cat e7903cf7e2 internal/rosa/package/wayland: 1.25.91 to 1.26.0
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-18 11:57:10 +09:00
cat df199a8774 internal/rosa/package/nss: 3.125 to 3.126
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-18 11:56:46 +09:00
cat d906bc2ee0 internal/rosa/package/spirv: disable arm64 broken tests
These were newly broken by the latest release.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-17 16:15:32 +09:00
cat e0e9910243 internal/rosa/package/perl: fix release monitoring
The existing Microsoft Github monitoring is broken due to unconventional upstream tagging practices. This change switches to monitoring based on the web page instead.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-16 12:58:51 +09:00
cat c8d54cebe9 internal/rosa/package/mesa: 26.1.4 to 26.1.5
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-16 12:56:02 +09:00
cat 74e7fb7818 internal/rosa/package/spirv: spirv-llvm-translator 22.1.2 to 22.1.4
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-15 14:36:12 +09:00
cat 8366cdd224 internal/rosa/package/spirv: spirv-tools 2026.1 to 2026.2
Upstream does not appear to understand the point of tags, so include relevant unreleased changes here.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-15 14:35:10 +09:00
cat 05f9939077 internal/rosa/package/glslang: 16.3.0 to 16.4.0
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-15 14:31:45 +09:00
cat ae30f627dd internal/rosa/package/glib: 2.89.1 to 2.89.2
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-15 01:41:12 +09:00
cat b4916dd431 internal/rosa/package/tamago: 1.26.4 to 1.26.5
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 22:29:37 +09:00
cat 4cf235675a internal/rosa/meson: always prepend D
All flags in practice use this convention. An escape hatch is available by leaving the value empty.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 22:17:51 +09:00
cat 098943ab46 internal/rosa/meson: optionally use muon
This is a much faster implementation free of python dependency hell, however currently fails to handle symbol visibility correctly, so unable to default to on. This change also cleans up some meson arguments.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 21:45:07 +09:00
cat fb3df67ba6 internal/rosa/package: muon
Python-free meson drop-in replacement. Test suite still pulls in bootstrap python, but that is fine.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 20:09:41 +09:00
cat b1c882b4de internal/rosa/package/libucontext: 1.5.1 to 1.5.2
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 17:48:55 +09:00
cat 0ed0d8abde internal/rosa/package/libpsl: 0.22.0 to 0.23.0
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 17:48:28 +09:00
cat 51e4426a4f internal/rosa: remove gawk
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
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
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
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
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
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
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
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 19:21:15 +09:00
cat 3a3d8efb1e internal/rosa/package/python: early bootstrap variant
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
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
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
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
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
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 15:51:57 +09:00
cat e1f16e7720 internal/rosa: apply patches in specified order
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
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
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
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
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
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
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
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
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
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
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
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:33:16 +09:00
cat 3c78551b24 cmd/mbf: expose target load average
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
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
cat 17383ab353 internal/rosa/package/gnu: disable flaky coreutils test
Another flaky test, once disabled but removed during an upgrade.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09 10:50:53 +09:00
cat 237e793895 internal/rosa: respect preferred loadavg target
This generally improves build performance and system responsiveness.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09 10:08:08 +09:00
cat 6cfd8fb934 internal/pkg: loadavg target in container environment
This exposes preferred loadavg target to the container initial process.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09 09:45:43 +09:00
cat 2f1534853a internal/pkg: consolidate cache attributes
This makes the interface stable.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09 09:34:27 +09:00
cat 3f8e111d1c configure Azalea language detection
This is not likely to be upstreamed anywhere, any time soon, so configure it here.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09 03:13:11 +09:00
cat 9fae451dc0 internal/rosa/meson: set timeout multiplier
Current meson-based spurious test failures are generally always caused by timeouts under load, so mitigate that here.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09 03:01:07 +09:00
cat e3666cda21 internal/rosa/make: run in hardcoded directory
This actually eliminates some of the autotools nondeterminism, as autotools is not capable of stripping build pathnames.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-08 21:48:47 +09:00
cat 9c51805b47 internal/rosa/package/gnu: disable flaky coreutils tests
These are huge and have incomprehensible output. Probability of failure increases under load, so disable them.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-08 21:31:38 +09:00
cat 3dca68fc95 cmd/mbf: validate build determinism
This rebuilds a package repeatedly and compares outcomes.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-08 21:28:21 +09:00
cat 6495118165 cmd/mbf: print all available handles
Useful for scripting.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-08 15:30:27 +09:00
cat 472849cfd6 internal/pkg: optionally force implementation entry
For validation of build determinism.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-08 15:26:42 +09:00