aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/rosa.go
AgeCommit message (Collapse)Author
12 hourspkg: move from internalHEADstagingmasterdevelopOphestra
Closes #43. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/rosa/llvm: early-runtimes for gentoo stage onlyOphestra
This bootstrap step is not required for a native Rosa OS stage0 distribution. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/rosa: optionally load built-ins from filesystemOphestra
This avoids having to rebuild cmd/mbf over and over. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/rosa: read-only access to built-insOphestra
This removes potential footguns caused by mutable builtins without requiring unnecessary clones. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-10internal/rosa: optionally block packages from early stagesOphestra
This helps avoid inadvertently increasing bootstrap input count. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30internal/rosa: force output colouringOphestra
This sets known de facto standard environment variables to enable colours during builds. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30internal/rosa: remove legacy exec helperOphestra
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-27internal/rosa: remove calls to low-level exec helperOphestra
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-25internal/rosa: remove xz utils hackOphestra
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-23internal/rosa: make build script executableOphestra
This makes it slightly easier to invoke when working on a package via --enter. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10internal/rosa: apply patches in specified orderOphestra
This seems more intuitive than letting the filesystem decide, and having to use awkward names. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-01internal/rosa: create /bin symlinks via helperOphestra
This centralises the workaround for surprisingly common buggy scripts with nonstandard hardcoded paths. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-28internal/rosa: handle nil sourceOphestra
Source is not always required. This improves flexibility. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-10internal/rosa/package/python: add kernel-headersOphestra
Missing kernel headers implicitly disables many useful things. This change also enables PGO and installs symlink, since a rebuild is unavoidable. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-10internal/rosa: export etc native artifactOphestra
This is useful for external container tooling. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-09internal/rosa: expose supported architecturesOphestra
This information is useful to external tooling and makes a lot more sense in this package than cmd/mbf. This change also fixes non-native artifact resolution during clean. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23internal/rosa/package: migrate stage0Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-21internal/rosa: move azalea builtinsOphestra
This improves readability. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-21internal/rosa: do not register stage0Ophestra
Nothing can depend on this, so remove it from the namespace. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-21internal/rosa/go: migrate to generic helperOphestra
The go toolchain predates all abstractions currently available. This migration causes rebuilds due to internal cleanups affecting the final build script. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-21internal/rosa/package: migrate toyboxOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-21internal/rosa: expose in-place behaviour in generic helperOphestra
This change also combines the createDir and wantsDir methods, and replaces the non-inplace target of the generic helper with a deterministic path. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-21internal/rosa/package: migrate nssOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-20internal/rosa: remove global handlesOphestra
These no longer serve any purpose. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-20internal/rosa/package: migrate remaining trivial packagesOphestra
The rest are migrated individually. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-19internal/rosa/package: migrate mkshOphestra
This benefits greatly from the new generic helper. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-19internal/rosa/package: migrate makeOphestra
This also introduces the generic helper for unusual build scripts. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-19internal/rosa/perl: Makefile.PL helperOphestra
This can be invoked from azalea. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-19internal/rosa: evaluate packages lateOphestra
This also enables concurrent evaluation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-19internal/rosa: create metadata alongside artifactOphestra
This enables deferring evaluation of azalea-based packages and fixes the longstanding quirk of version being disjoint from other metadata. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-18internal/rosa: track evaluation timeOphestra
Useful to track performance regressions over migrations. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-18internal/rosa: migrate GNU softwareOphestra
These are quite trivial, so migrate them in one pass. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-18internal/rosa: evaluate packages from fsOphestra
This migrates GNU sed to azalea, and resulting IR matches. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-18internal/rosa: initial azalea bindingsOphestra
Supported fields are still rather minimal, but evaluation works, and resulting artifacts cure correctly. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-17internal/rosa: pass stage alongside stateOphestra
This cleans up many function signatures. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-17internal/rosa: key metadata by stringOphestra
For upcoming azalea integration. The API is quite ugly right now to ease migration. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-12internal/pkg: optionally measure exec artifactOphestra
Useful for verifying deterministic output without enabling network access. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-07internal/rosa: configurable architectureOphestra
This enables curing via binfmt. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-07internal/pkg: optionally register binfmtOphestra
This transparently supports curing foreign exec artifacts. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-01internal/rosa/llvm: use llvm build systemOphestra
This removes the multistep bootstrap hack. Stage0 exceptions are also eliminated for a later change to bring the stage0 distribution down to just a bare toolchain, toybox and shell. This change also enables dynamic linking and ThinLTO. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-30internal/rosa: raise stage0 extra layersOphestra
This enables extras to override stage0 tarball. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-23internal/pkg: record cache variant on-diskOphestra
This makes custom artifacts much less error-prone to use. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-19internal/rosa: use builtin for checksum warningOphestra
This avoids having to configure the logger early. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-15internal/rosa: respect preferred job countOphestra
This discontinues use of nproc, and also overrides detection behaviour in ninja. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-14internal/rosa/cmake: remove variantOphestra
This has no effect outside formatting of name and is a remnant of the old llvm helpers. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-14internal/rosa/llvm: migrate runtimes and clangOphestra
This eliminates most newLLVM family of functions. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-14internal/rosa/llvm: migrate muslOphestra
This removes the pointless special treatment given to musl. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-14internal/rosa/llvm: migrate compiler-rtOphestra
The newLLVM family of functions predate the package system. This change migrates compiler-rt without changing any resulting artifacts. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-13internal/rosa: helpers for common url formatsOphestra
This cleans up call site of NewPackage. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-13internal/rosa: assume file source is xz-compressedOphestra
XZ happens to be the only widely-used format that is awful to deal with, everything else is natively supported. Signed-off-by: Ophestra <cat@gensokyo.uk>