31 Commits

Author SHA1 Message Date
3458806685 internal/rosa: resolve runtime for overlay extras
All checks were successful
Test / Create distribution (push) Successful in 2m38s
Test / Sandbox (push) Successful in 2m53s
Test / ShareFS (push) Successful in 3m48s
Test / Hakurei (push) Successful in 4m8s
Test / Sandbox (race detector) (push) Successful in 5m23s
Test / Hakurei (race detector) (push) Successful in 6m37s
Test / Flake checks (push) Successful in 1m19s
This is generally for system image creation, so this behaviour makes more sense.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-25 10:37:21 +09:00
8ca70550ab internal/rosa/package: db
All checks were successful
Test / Create distribution (push) Successful in 2m36s
Test / Sandbox (push) Successful in 2m46s
Test / ShareFS (push) Successful in 3m46s
Test / Hakurei (push) Successful in 3m55s
Test / Sandbox (race detector) (push) Successful in 5m20s
Test / Hakurei (race detector) (push) Successful in 6m33s
Test / Flake checks (push) Successful in 1m30s
For iproute2.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-25 10:31:45 +09:00
7eebf49b98 internal/rosa/package: libbpf
All checks were successful
Test / Create distribution (push) Successful in 2m35s
Test / Sandbox (push) Successful in 2m50s
Test / ShareFS (push) Successful in 3m40s
Test / Hakurei (push) Successful in 3m58s
Test / Sandbox (race detector) (push) Successful in 5m20s
Test / Hakurei (race detector) (push) Successful in 6m37s
Test / Flake checks (push) Successful in 1m19s
For eBPF support in iproute2.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-25 09:51:26 +09:00
8c84883af6 internal/rosa/package: iproute2
All checks were successful
Test / Create distribution (push) Successful in 2m54s
Test / Sandbox (push) Successful in 3m15s
Test / ShareFS (push) Successful in 4m5s
Test / Hakurei (push) Successful in 4m18s
Test / Sandbox (race detector) (push) Successful in 5m44s
Test / Hakurei (race detector) (push) Successful in 6m56s
Test / Flake checks (push) Successful in 1m20s
Useful for debugging for now.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-25 09:33:32 +09:00
4e1359aa95 internal/rosa/package: ignore local directory
All checks were successful
Test / Create distribution (push) Successful in 2m27s
Test / Sandbox (push) Successful in 2m51s
Test / ShareFS (push) Successful in 3m49s
Test / Hakurei (push) Successful in 3m56s
Test / Sandbox (race detector) (push) Successful in 5m31s
Test / Hakurei (race detector) (push) Successful in 6m48s
Test / Flake checks (push) Successful in 1m21s
For testing packages noneligible for upstream.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-24 16:47:24 +09:00
a3867ad65f internal/rosa/azalea: replace binding token
All checks were successful
Test / Create distribution (push) Successful in 2m40s
Test / Sandbox (push) Successful in 2m46s
Test / ShareFS (push) Successful in 3m47s
Test / Sandbox (race detector) (push) Successful in 5m28s
Test / Hakurei (race detector) (push) Successful in 6m47s
Test / Hakurei (push) Successful in 2m41s
Test / Flake checks (push) Successful in 1m31s
This replaces the '*' placeholder with a less confusing '#'.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-24 16:20:26 +09:00
689f972976 internal/rosa/package: migrate stage0
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m58s
Test / ShareFS (push) Successful in 3m45s
Test / Hakurei (push) Successful in 3m53s
Test / Sandbox (race detector) (push) Successful in 5m33s
Test / Hakurei (race detector) (push) Successful in 6m34s
Test / Flake checks (push) Successful in 1m19s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 17:53:05 +09:00
3f33b62dfd internal/rosa/package: migrate system image
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m52s
Test / ShareFS (push) Successful in 3m43s
Test / Hakurei (push) Successful in 3m56s
Test / Sandbox (race detector) (push) Successful in 5m30s
Test / Hakurei (race detector) (push) Successful in 6m30s
Test / Flake checks (push) Successful in 1m22s
The overlay argument also enables migration of stage0.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 17:44:38 +09:00
ac5488eef6 internal/rosa/package: migrate initramfs image
All checks were successful
Test / Create distribution (push) Successful in 1m3s
Test / Sandbox (push) Successful in 2m53s
Test / ShareFS (push) Successful in 3m48s
Test / Hakurei (push) Successful in 3m52s
Test / Sandbox (race detector) (push) Successful in 5m35s
Test / Hakurei (race detector) (push) Successful in 6m30s
Test / Flake checks (push) Successful in 1m22s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 17:30:39 +09:00
77a15130c7 internal/rosa/package: foot
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m44s
Test / ShareFS (push) Successful in 4m21s
Test / Hakurei (push) Successful in 4m41s
Test / Sandbox (race detector) (push) Successful in 5m53s
Test / Hakurei (race detector) (push) Successful in 3m35s
Test / Flake checks (push) Successful in 1m18s
Used by vm test suite.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 16:51:32 +09:00
4c1e823908 internal/rosa/package: fcft
All checks were successful
Test / Create distribution (push) Successful in 1m6s
Test / Sandbox (push) Successful in 2m53s
Test / ShareFS (push) Successful in 3m46s
Test / Hakurei (push) Successful in 3m51s
Test / Sandbox (race detector) (push) Successful in 5m25s
Test / Hakurei (race detector) (push) Successful in 6m29s
Test / Flake checks (push) Successful in 1m32s
Required by foot.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 16:45:42 +09:00
5f5a398a5b internal/rosa/package: utf8proc
All checks were successful
Test / Create distribution (push) Successful in 1m11s
Test / Sandbox (push) Successful in 2m55s
Test / ShareFS (push) Successful in 4m6s
Test / Sandbox (race detector) (push) Successful in 5m36s
Test / Hakurei (race detector) (push) Successful in 6m47s
Test / Hakurei (push) Successful in 2m47s
Test / Flake checks (push) Successful in 1m25s
Required by foot.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 16:35:38 +09:00
d5e4a2e6a7 internal/rosa/package: tllist
All checks were successful
Test / Create distribution (push) Successful in 1m11s
Test / Sandbox (push) Successful in 2m57s
Test / Hakurei (push) Successful in 4m8s
Test / ShareFS (push) Successful in 4m9s
Test / Sandbox (race detector) (push) Successful in 5m34s
Test / Hakurei (race detector) (push) Successful in 6m47s
Test / Flake checks (push) Successful in 1m21s
Required by foot.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 16:35:24 +09:00
57c6b84b60 internal/rosa/package: fontconfig
All checks were successful
Test / Create distribution (push) Successful in 1m7s
Test / Sandbox (push) Successful in 2m58s
Test / ShareFS (push) Successful in 4m2s
Test / Sandbox (race detector) (push) Successful in 5m29s
Test / Hakurei (push) Successful in 2m34s
Test / Hakurei (race detector) (push) Successful in 3m32s
Test / Flake checks (push) Successful in 1m22s
Required by foot.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 16:23:06 +09:00
4269627b4b internal/rosa/package: xkbcommon
All checks were successful
Test / Sandbox (push) Successful in 3m2s
Test / Create distribution (push) Successful in 1m6s
Test / ShareFS (push) Successful in 2m47s
Test / Sandbox (race detector) (push) Successful in 3m37s
Test / Hakurei (race detector) (push) Successful in 6m40s
Test / Hakurei (push) Successful in 2m34s
Test / Flake checks (push) Successful in 1m24s
Required by foot.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 16:22:51 +09:00
d50e3c3d5b internal/rosa/package/glib: 2.88.1 to 2.89.0
All checks were successful
Test / Create distribution (push) Successful in 1m12s
Test / Sandbox (push) Successful in 3m7s
Test / ShareFS (push) Successful in 3m42s
Test / Hakurei (push) Successful in 4m17s
Test / Sandbox (race detector) (push) Successful in 5m12s
Test / Hakurei (race detector) (push) Successful in 6m42s
Test / Flake checks (push) Successful in 1m22s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 14:33:37 +09:00
eae2890d98 internal/rosa/package/python: trove-classifiers 2026.5.7.17 to 2026.5.22.10
All checks were successful
Test / Create distribution (push) Successful in 1m11s
Test / Sandbox (push) Successful in 3m4s
Test / Hakurei (push) Successful in 4m7s
Test / ShareFS (push) Successful in 4m9s
Test / Sandbox (race detector) (push) Successful in 5m33s
Test / Hakurei (race detector) (push) Successful in 6m41s
Test / Flake checks (push) Successful in 1m25s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 14:33:20 +09:00
f8ebfd71a7 internal/rosa/package/spirv: spirv-headers 1.4.341.0 to 1.4.350.0
All checks were successful
Test / Create distribution (push) Successful in 1m16s
Test / Sandbox (push) Successful in 3m14s
Test / ShareFS (push) Successful in 4m50s
Test / Hakurei (push) Successful in 5m2s
Test / Sandbox (race detector) (push) Successful in 6m5s
Test / Hakurei (race detector) (push) Successful in 7m16s
Test / Flake checks (push) Successful in 1m23s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 14:32:52 +09:00
dce1a05f6c internal/rosa/package/firmware: 20260410 to 20260519
All checks were successful
Test / Create distribution (push) Successful in 1m18s
Test / Sandbox (push) Successful in 3m12s
Test / Hakurei (push) Successful in 4m57s
Test / ShareFS (push) Successful in 4m53s
Test / Sandbox (race detector) (push) Successful in 6m16s
Test / Hakurei (race detector) (push) Successful in 7m13s
Test / Flake checks (push) Successful in 1m24s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 14:32:16 +09:00
eff265837c internal/rosa/package/mesa: 26.1.0 to 26.1.1
All checks were successful
Test / Sandbox (race detector) (push) Successful in 5m37s
Test / Create distribution (push) Successful in 1m6s
Test / Sandbox (push) Successful in 3m19s
Test / Hakurei (race detector) (push) Successful in 4m44s
Test / Hakurei (push) Successful in 4m45s
Test / ShareFS (push) Successful in 4m43s
Test / Flake checks (push) Successful in 1m26s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 14:32:01 +09:00
7d809eb15f internal/rosa/package/nss: 3.123.1 to 3.124
All checks were successful
Test / Create distribution (push) Successful in 1m15s
Test / Sandbox (push) Successful in 3m6s
Test / ShareFS (push) Successful in 4m12s
Test / Hakurei (push) Successful in 4m27s
Test / Sandbox (race detector) (push) Successful in 5m41s
Test / Hakurei (race detector) (push) Successful in 6m49s
Test / Flake checks (push) Successful in 1m25s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 14:31:36 +09:00
9accc2f961 internal/rosa/package/nss: nspr 4.38.2 to 4.39
All checks were successful
Test / Create distribution (push) Successful in 1m17s
Test / Sandbox (push) Successful in 3m0s
Test / Hakurei (push) Successful in 4m11s
Test / ShareFS (push) Successful in 4m16s
Test / Sandbox (race detector) (push) Successful in 5m49s
Test / Hakurei (race detector) (push) Successful in 6m45s
Test / Flake checks (push) Successful in 1m25s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 14:31:19 +09:00
e5a4094298 internal/rosa: remove unused helpers
All checks were successful
Test / Create distribution (push) Successful in 34s
Test / Sandbox (push) Successful in 2m45s
Test / ShareFS (push) Successful in 3m36s
Test / Sandbox (race detector) (push) Successful in 5m15s
Test / Hakurei (race detector) (push) Successful in 6m24s
Test / Hakurei (push) Successful in 3m8s
Test / Flake checks (push) Successful in 1m24s
These are no longer needed after migration.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 14:00:18 +09:00
410c4f8bb0 internal/rosa/package/cmake: 4.3.2 to 4.3.3
All checks were successful
Test / Create distribution (push) Successful in 1m14s
Test / ShareFS (push) Successful in 12m31s
Test / Sandbox (push) Successful in 1m37s
Test / Sandbox (race detector) (push) Successful in 2m31s
Test / Hakurei (push) Successful in 2m48s
Test / Hakurei (race detector) (push) Successful in 3m33s
Test / Flake checks (push) Successful in 1m23s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 13:02:23 +09:00
2e23c6d367 internal/rosa/package/kernel: 6.12.87 to 6.12.90
All checks were successful
Test / Create distribution (push) Successful in 1m7s
Test / Sandbox (race detector) (push) Successful in 12m14s
Test / ShareFS (push) Successful in 12m27s
Test / Hakurei (race detector) (push) Successful in 14m26s
Test / Sandbox (push) Successful in 1m28s
Test / Hakurei (push) Successful in 2m28s
Test / Flake checks (push) Successful in 1m27s
Unfortunately this causes rebuilds due to a single io_uring API change.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 13:01:44 +09:00
f5e9a0c04e internal/pkg: destroy new substitution status on fault
All checks were successful
Test / Create distribution (push) Successful in 1m8s
Test / Sandbox (push) Successful in 2m54s
Test / ShareFS (push) Successful in 3m56s
Test / Hakurei (push) Successful in 4m5s
Test / Sandbox (race detector) (push) Successful in 5m44s
Test / Hakurei (race detector) (push) Successful in 7m10s
Test / Flake checks (push) Successful in 2m30s
This avoids leaving behind the substitution status path of a faulted cure.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 01:31:13 +09:00
3bd4ef616c internal/pkg: report errors exiting cure
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m51s
Test / ShareFS (push) Successful in 3m44s
Test / Hakurei (push) Successful in 3m49s
Test / Sandbox (race detector) (push) Successful in 5m23s
Test / Hakurei (race detector) (push) Successful in 6m29s
Test / Flake checks (push) Successful in 1m21s
This makes ongoing errors more obvious when multiple failures occur.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 01:25:42 +09:00
41402fd578 internal/rosa/package/util-linux: 2.42 to 2.42.1
All checks were successful
Test / Create distribution (push) Successful in 1m9s
Test / Sandbox (push) Successful in 2m51s
Test / ShareFS (push) Successful in 3m45s
Test / Hakurei (push) Successful in 3m54s
Test / Sandbox (race detector) (push) Successful in 5m23s
Test / Hakurei (race detector) (push) Successful in 6m34s
Test / Flake checks (push) Successful in 1m21s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23 01:00:27 +09:00
b47fa1a214 internal/rosa: IR-curable source override
All checks were successful
Test / Hakurei (push) Successful in 4m16s
Test / Hakurei (race detector) (push) Successful in 6m40s
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 1m54s
Test / ShareFS (push) Successful in 2m36s
Test / Sandbox (race detector) (push) Successful in 2m41s
Test / Flake checks (push) Successful in 1m18s
This creates a tarball in-memory for overriding hakurei-source.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-22 22:24:16 +09:00
9e363cb2c9 internal/rosa/go: runtime dependencies for alterative path
All checks were successful
Test / Create distribution (push) Successful in 1m7s
Test / Sandbox (push) Successful in 2m57s
Test / ShareFS (push) Successful in 4m15s
Test / Hakurei (push) Successful in 4m26s
Test / Sandbox (race detector) (push) Successful in 5m46s
Test / Hakurei (race detector) (push) Successful in 6m47s
Test / Flake checks (push) Successful in 1m25s
The GCC toolchain is not dependency-free, so append them here.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-22 13:42:02 +09:00
1389c77022 internal/rosa/package/hakurei: 0.4.2 to 0.4.3
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m47s
Test / Hakurei (push) Successful in 3m48s
Test / ShareFS (push) Successful in 3m46s
Test / Sandbox (race detector) (push) Successful in 5m19s
Test / Hakurei (race detector) (push) Successful in 6m25s
Test / Flake checks (push) Successful in 1m20s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-22 03:16:56 +09:00
118 changed files with 759 additions and 459 deletions

3
.gitignore vendored
View File

@@ -13,3 +13,6 @@
# cmd/dist default destination
/dist
# local packages
/internal/rosa/package/local

View File

@@ -64,11 +64,12 @@ func main() {
return
}
e, ok := r.(rosa.LoadError)
if !ok {
switch r.(type) {
case rosa.LoadError, pkg.IRStringError:
log.Fatal(r)
default:
panic(r)
}
log.Fatal(e)
}()
ctx, stop := signal.NotifyContext(context.Background(),
@@ -86,6 +87,7 @@ func main() {
flagLTO bool
flagPT bool
flagSourcePath string
flagCrossOverride int
addr net.UnixAddr
@@ -136,6 +138,12 @@ func main() {
}
}
if flagSourcePath != "" {
if err := rosa.Native().SetSource(os.DirFS(flagSourcePath)); err != nil {
return err
}
}
return nil
}).Flag(
&flagQuiet,
@@ -196,6 +204,10 @@ func main() {
&flagPT,
"parse-time", command.BoolFlag(false),
"Print duration of the initial azalea parse",
).Flag(
&flagSourcePath,
"source", command.StringFlag(""),
"Override hakurei source tree",
)
c.NewCommand(
@@ -427,8 +439,6 @@ func main() {
var (
flagGentoo string
flagChecksum string
flagStage0 bool
)
c.NewCommand(
"stage3",
@@ -490,17 +500,6 @@ func main() {
"("+pkg.Encode(checksum[0].Value())+")",
)
}
if flagStage0 {
if err = cm.Do(func(cache *pkg.Cache) (err error) {
pathname, _, err = cache.Cure(rosa.Native().Std().NewStage0())
return
}); err != nil {
return
}
log.Println(pathname)
}
return
},
).Flag(
@@ -511,10 +510,6 @@ func main() {
&flagChecksum,
"checksum", command.StringFlag(""),
"Checksum of Gentoo stage3 tarball",
).Flag(
&flagStage0,
"stage0", command.BoolFlag(false),
"Create bootstrap stage0 tarball",
)
}

View File

@@ -155,7 +155,7 @@ type TContext struct {
// Target [Artifact] encoded identifier.
ids string
// Pathname status was created at.
statusPath *check.Absolute
statusPath, statusSPath *check.Absolute
// File statusHeader and logs are written to.
status *os.File
// Error value during prepareStatus.
@@ -258,6 +258,11 @@ func (t *TContext) destroy(errP *error) {
), 10),
).String(),
))
if t.statusSPath != nil {
t.cache.checksumMu.Lock()
*errP = errors.Join(*errP, os.Remove(t.statusSPath.String()))
t.cache.checksumMu.Unlock()
}
}
t.status = nil
}
@@ -1923,6 +1928,9 @@ func (c *Cache) cure(a Artifact, curesExempt bool) (
}
c.exitCure(a, curesExempt)
if err != nil {
if c.msg.IsVerbose() {
c.msg.Verbosef("cure file %s: %v", reportName(f, id), err)
}
return
}
@@ -1954,7 +1962,7 @@ func (c *Cache) cure(a Artifact, curesExempt bool) (
t := TContext{
c.base.Append(dirWork, ids),
c.base.Append(dirTemp, ids),
ids, nil, nil, nil,
ids, nil, nil, nil, nil,
common{ctx, c},
}
switch ca := a.(type) {
@@ -1966,6 +1974,9 @@ func (c *Cache) cure(a Artifact, curesExempt bool) (
err = ca.Cure(&t)
c.exitCure(a, curesExempt)
if err != nil {
if c.msg.IsVerbose() {
c.msg.Verbosef("cure trivial %s: %v", reportName(ca, id), err)
}
return
}
break
@@ -2043,16 +2054,25 @@ func (c *Cache) cure(a Artifact, curesExempt bool) (
}
err = ca.Cure(&f)
if err == nil && f.status != nil {
statusS := c.base.Append(
dirStatus,
substitutes,
)
c.checksumMu.Lock()
err = os.Link(c.base.Append(
dirStatus,
ids,
).String(), c.base.Append(
dirStatus,
substitutes,
).String())
).String(), statusS.String())
c.checksumMu.Unlock()
if err == nil {
f.statusSPath = statusS
}
}
c.exitCure(a, curesExempt)
if err != nil {
if c.msg.IsVerbose() {
c.msg.Verbosef("cure %s: %v", reportName(ca, id), err)
}
return
}
break
@@ -2101,6 +2121,9 @@ func (c *Cache) cure(a Artifact, curesExempt bool) (
Got: gotChecksum,
Want: checksum.Value(),
}
if c.msg.IsVerbose() {
c.msg.Verbosef("validate %s: %v", reportName(a, id), err)
}
return
}

View File

@@ -209,7 +209,7 @@ func (p *parser) parseExpr() any {
case '=':
break
case '*':
case '#':
arg.R = true
p.scanAs('=')

View File

@@ -85,7 +85,7 @@ func TestEvaluate(t *testing.T) {
Err: UndefinedError("v"),
}},
{"apply bound undefined", `f { _v* = "\x00"; v = _v; }`, makeStackCheck(func(
{"apply bound undefined", `f { _v# = "\x00"; v = _v; }`, makeStackCheck(func(
args FArgs,
) (v any, err error) {
v = "\xfd"
@@ -124,7 +124,7 @@ func TestEvaluate(t *testing.T) {
Err: ErrInvalidSpecial,
}},
{"bound inputs", `package name { inputs* = []; }`, nil, "", EvaluationError{
{"bound inputs", `package name { inputs# = []; }`, nil, "", EvaluationError{
Expr: Func{
Ident: Ident("name"),
Package: true,
@@ -136,7 +136,7 @@ func TestEvaluate(t *testing.T) {
Err: ErrInvalidSpecial,
}},
{"bound runtime", `package name { runtime* = []; }`, nil, "", EvaluationError{
{"bound runtime", `package name { runtime# = []; }`, nil, "", EvaluationError{
Expr: Func{
Ident: Ident("name"),
Package: true,

View File

@@ -3,7 +3,7 @@ package gcc {
website = "https://www.gnu.org/software/gcc";
anitya = 6502;
version* = "16.1.0";
version# = "16.1.0";
source = remoteTar {
url = "https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/"+
"gcc-"+version+"/gcc-"+version+".tar.gz";

View File

@@ -26,7 +26,7 @@ func (a busyboxBin) Params(*pkg.IContext) {}
// IsExclusive returns false: Cure performs a trivial filesystem write.
func (busyboxBin) IsExclusive() bool { return false }
// Dependencies returns the underlying busybox [pkg.File].
// Dependencies returns the underlying busybox [pkg.FileArtifact].
func (a busyboxBin) Dependencies() []pkg.Artifact {
return []pkg.Artifact{a.bin}
}

View File

@@ -11,7 +11,7 @@ var (
_ninja = H("ninja")
)
// CMakeHelper is the [CMake] build system helper.
// CMakeHelper builds and tests a CMake project with specified CACHE entries.
type CMakeHelper struct {
// Path elements joined with source.
Append []string
@@ -34,7 +34,7 @@ type CMakeHelper struct {
var _ Helper = new(CMakeHelper)
// extra returns a hardcoded slice of [CMake] and [Ninja].
// extra returns the cmake handle alongside either ninja or make.
func (attr *CMakeHelper) extra(int) P {
if attr != nil && attr.Make {
return P{_cmake, _make}

View File

@@ -36,8 +36,3 @@ git \
rm -rf /work/.git
`, resolvconf())
}
// newTagRemote is a helper around NewViaGit for a tag on a git remote.
func (t Toolchain) newTagRemote(url, tag, checksum string) pkg.Artifact {
return t.NewViaGit(url, "refs/tags/"+tag, mustDecode(checksum))
}

View File

@@ -6,14 +6,12 @@ import (
"hakurei.app/internal/pkg"
)
var _go = H("go")
// newGo returns a specific version of the Go toolchain.
func (t Toolchain) newGo(
version, checksum string,
env []string,
script string,
boot pkg.Artifact,
boot ...pkg.Artifact,
) pkg.Artifact {
return t.NewPackage("go", version, newTar(
"https://go.dev/dl/go"+version+".src.tar.gz",
@@ -28,7 +26,7 @@ func (t Toolchain) newGo(
"TMPDIR=/dev/shm/go",
}, env),
Extra: []pkg.Artifact{boot},
Extra: boot,
}, &GenericHelper{
InPlace: true,
Build: `
@@ -72,13 +70,13 @@ func init() {
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
var (
bootstrapEnv []string
bootstrapEarly pkg.Artifact
bootstrapEarly []pkg.Artifact
finalEnv []string
)
switch t.arch {
case "amd64":
bootstrapEarly = t.NewPackage("go", "1.4-bootstrap", newTar(
bootstrapEarly = []pkg.Artifact{t.NewPackage("go", "1.4-bootstrap", newTar(
"https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz",
"8o9JL_ToiQKadCTb04nvBDkp8O1xiWOolAxVEqaTGodieNe4lOFEjlOxN3bwwe23",
pkg.TarGzip,
@@ -98,11 +96,11 @@ mkdir -p /var/tmp/
`,
},
_bash,
)
)}
case "arm64", "riscv64":
bootstrapEnv = append(bootstrapEnv, "GOROOT_BOOTSTRAP=/system")
_, bootstrapEarly = t.MustLoad(H("gcc"))
bootstrapEarly = t.Append(bootstrapEarly, H("gcc"))
finalEnv = append(finalEnv, "CGO_ENABLED=0")
default:
@@ -123,7 +121,7 @@ sed -i \
echo \
'type syscallDescriptor = int' >> \
os/rawconn_test.go
`, bootstrapEarly)
`, bootstrapEarly...)
go121 := t.newGo(
"1.21.13",

View File

@@ -1,51 +0,0 @@
package rosa
import (
"hakurei.app/fhs"
"hakurei.app/internal/pkg"
)
func init() {
meta := Metadata{
Name: "system-image",
Description: "Rosa OS system image",
Version: Unversioned,
}
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
return &meta, t.New("system.img", TNoToolchain, t.Append(nil,
H("squashfs-tools"),
), nil, nil, `
mksquashfs /mnt/system /work/system.img
`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.Append(nil,
_musl,
_mksh,
_toybox,
H("kmod"),
H("kernel"),
H("firmware"),
)...))
})
}
func init() {
meta := Metadata{
Name: "initramfs-image",
Description: "Rosa OS initramfs image",
Version: Unversioned,
}
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
return &meta, t.New("initramfs", TNoToolchain, t.Append(nil,
_zstd,
H("earlyinit"),
H("gen_init_cpio"),
), nil, nil, `
gen_init_cpio -t 4294967295 -c /usr/src/initramfs | zstd > /work/initramfs.zst
`, pkg.Path(AbsUsrSrc.Append("initramfs"), false, pkg.NewFile("initramfs", []byte(`
dir /dev 0755 0 0
nod /dev/null 0666 0 0 c 1 3
nod /dev/console 0600 0 0 c 5 1
file /init /system/libexec/hakurei/earlyinit 0555 0 0
`))))
})
}

View File

@@ -7,7 +7,7 @@ import (
var _make = H("make")
// MakeHelper is the [Make] build system helper.
// MakeHelper wraps the make program and its surrounding build system.
type MakeHelper struct {
// Do not include default extras.
OmitDefaults bool
@@ -28,6 +28,8 @@ type MakeHelper struct {
SkipConfigure bool
// Alternative name for the configure script.
ConfigureName string
// Add autoconf arguments regardless of ConfigureName.
ForceAutoconf bool
// Flags passed to the configure script.
Configure []KV
// Host target triple, zero value is equivalent to the Rosa OS triple.
@@ -100,9 +102,11 @@ func (attr *MakeHelper) script(t Toolchain, name string) string {
if !attr.SkipConfigure {
configure = attr.ConfigureName
if configure == "" {
configure += `/usr/src/` + name + `/configure \
configure += `/usr/src/` + name + `/configure`
}
if attr.ForceAutoconf || attr.ConfigureName == "" {
configure += ` \
--prefix=/system`
host := `"${ROSA_TRIPLE}"`
if attr.Host != "" {
host = attr.Host

View File

@@ -7,7 +7,7 @@ import (
var _meson = H("meson")
// MesonHelper is the [Meson] build system helper.
// MesonHelper builds and tests a meson project.
type MesonHelper struct {
// Runs after setup.
ScriptCompileEarly string

View File

@@ -3,7 +3,7 @@ package attr {
website = "https://savannah.nongnu.org/projects/attr";
anitya = 137;
version* = "2.5.2";
version# = "2.5.2";
source = remoteTar {
url = "https://download.savannah.nongnu.org/releases/attr/"+
"attr-"+version+".tar.gz";
@@ -29,7 +29,7 @@ package acl {
website = "https://savannah.nongnu.org/projects/acl";
anitya = 16;
version* = "2.3.2";
version# = "2.3.2";
source = remoteTar {
url = "https://download.savannah.nongnu.org/releases/acl/"+
"acl-"+version+".tar.gz";

View File

@@ -2,7 +2,7 @@ package argp-standalone {
description = "hierarchical argument parsing library broken out from glibc";
website = "http://www.lysator.liu.se/~nisse/misc";
version* = "1.3";
version# = "1.3";
source = remoteTar {
url = "http://www.lysator.liu.se/~nisse/misc/"+
"argp-standalone-"+version+".tar.gz";

View File

@@ -3,7 +3,7 @@ package bison {
website = "https://www.gnu.org/software/bison";
anitya = 193;
version* = "3.8.2";
version# = "3.8.2";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/bison/bison-"+version+".tar.gz";
checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y";

View File

@@ -3,7 +3,7 @@ package buildcatrust {
website = "https://github.com/nix-community/buildcatrust";
anitya = 233988;
version* = "0.5.1";
version# = "0.5.1";
source = remoteGitHub {
suffix = "nix-community/buildcatrust";
tag = "v"+version;

View File

@@ -3,7 +3,7 @@ package bzip2 {
website = "https://sourceware.org/bzip2";
anitya = 237;
version* = "1.0.8";
version# = "1.0.8";
source = remoteTar {
url = "https://sourceware.org/pub/bzip2/bzip2-"+version+".tar.gz";
checksum = "cTLykcco7boom-s05H1JVsQi1AtChYL84nXkg_92Dm1Xt94Ob_qlMg_-NSguIK-c";

View File

@@ -3,12 +3,12 @@ package cmake {
website = "https://cmake.org";
anitya = 306;
version* = "4.3.2";
version# = "4.3.3";
source = remoteGitHubRelease {
suffix = "Kitware/CMake";
tag = "v"+version;
name = "cmake-"+version+".tar.gz";
checksum = "6QylwRVKletndTSkZTV2YBRwgd_9rUVgav_QW23HpjUgV21AVYZOUOal8tdBDmO7";
checksum = "VS-b6cN4S9hfNv3JOUAbAfI9nh3EeuVwY_IVgUdgq6VKwvfchhXwvvFAUcpZG6Ez";
compress = gzip;
};
patches = [

View File

@@ -3,7 +3,7 @@ package connman {
website = "https://git.kernel.org/pub/scm/network/connman/connman.git";
anitya = 337;
version* = "2.0";
version# = "2.0";
source = remoteTar {
url = "https://git.kernel.org/pub/scm/network/connman/connman.git/"+
"snapshot/connman-"+version+".tar.gz";

View File

@@ -3,7 +3,7 @@ package curl {
website = "https://curl.se";
anitya = 381;
version* = "8.20.0";
version# = "8.20.0";
source = remoteTar {
url = "https://curl.se/download/curl-"+version+".tar.bz2";
checksum = "xyHXwrngIRGMasuzhn-I5MSCOhktwINbsWt1f_LuR-5jRVvyx_g6U1EQfDLEbr9r";

View File

@@ -0,0 +1,35 @@
package db {
description = "Berkeley DB";
website = "https://www.oracle.com/database/technologies/related/berkeleydb.html";
anitya = 1587;
version# = "18.1.40";
source = remoteTar {
url = "https://download.oracle.com/berkeley-db/db-"+version+".tar.gz";
checksum = "26i6UfgNxPVzS7kr37Q9-9feeCiQ825qRi8uvn2oG4AngOXHcFoSGDijckKvWSH7";
compress = gzip;
};
writable = true;
chmod = true;
early = `
cd build_unix
# broken install target
touch \
../docs/bdb-sql \
../docs/gsg_db_server
`;
exec = make {
inPlace = true;
configureName = "../dist/configure";
forceAutoconf = true;
configure = {
"enable-cxx";
"enable-compat185";
"with-repmgr-ssl": "no";
};
check = [ "examples_c" ];
postInstall = "rm -r /work/system/docs";
};
}

View File

@@ -3,7 +3,7 @@ package dbus {
website = "https://www.freedesktop.org/wiki/Software/dbus";
anitya = 5356;
version* = "1.16.2";
version# = "1.16.2";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "dbus/dbus";
@@ -41,7 +41,7 @@ package xdg-dbus-proxy {
website = "https://github.com/flatpak/xdg-dbus-proxy";
anitya = 58434;
version* = "0.1.7";
version# = "0.1.7";
source = remoteGitHub {
suffix = "flatpak/xdg-dbus-proxy";
tag = version;

View File

@@ -3,7 +3,7 @@ package dtc {
website = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git";
anitya = 16911;
version* = "1.7.2";
version# = "1.7.2";
source = remoteTar {
url = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/"+
"dtc-v"+version+".tar.gz";

View File

@@ -3,7 +3,7 @@ package elfutils {
website = "https://sourceware.org/elfutils";
anitya = 5679;
version* = "0.195";
version# = "0.195";
source = remoteTar {
url = "https://sourceware.org/elfutils/ftp/"+
version+"/elfutils-"+version+".tar.bz2";

View File

@@ -0,0 +1,27 @@
package fcft {
description = "a simple library for font loading and glyph rasterization using FontConfig, FreeType and pixman";
website = "https://codeberg.org/dnkl/fcft";
anitya = 143240;
version# = "3.3.3";
source = remoteTar {
url = "https://codeberg.org/dnkl/fcft/archive/"+version+".tar.gz";
checksum = "bMj8OmqtoANRKZWbjHk4WfP09AxJYRbWGqUsm1gRJ_dOFg6gooNbgkDu597PLfz2";
compress = gzip;
};
exec = meson {};
inputs = [
pixman,
fontconfig,
utf8proc,
tllist,
];
runtime = [
pixman,
fontconfig,
utf8proc,
];
}

View File

@@ -3,12 +3,12 @@ package firmware {
website = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
anitya = 141464;
version* = "20260410";
version# = "20260519";
source = remoteGitLab {
domain = "gitlab.com";
suffix = "kernel-firmware/linux-firmware";
ref = version;
checksum = "J8PdQlGqwrivpskPzbL6xacqR6mlKtXpe5RpzFfVzKPAgG81ZRXsc3qrxwdGJbil";
checksum = "l-wBRTWclYnJsgV4qtUV1-UL5Y4nknAPre8CMe0dH7PxtAqbaeudEIM_Fnuj0TCV";
};
// dedup creates temporary file

View File

@@ -3,7 +3,7 @@ package flex {
website = "https://github.com/westes/flex";
anitya = 819;
version* = "2.6.4";
version# = "2.6.4";
source = remoteGitHubRelease {
suffix = "westes/flex";
tag = "v"+version;

View File

@@ -0,0 +1,37 @@
package fontconfig {
description = "font configuration and customization library";
website = "https://www.freedesktop.org/wiki/Software/fontconfig";
anitya = 827;
version# = "2.18.0";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "fontconfig/fontconfig";
ref = version;
checksum = "Z-yA7pFiE7cRDxZm32EHUPmeRx-lth2X6uw51aoeLi4BXwNm4iOWT13IGp3YSbNW";
};
exec = make {
generate = "NOCONFIGURE=1 ./autogen.sh";
};
inputs = [
automake,
libtool,
pkg-config,
gettext,
gperf,
gzip,
python,
zlib,
libexpat,
freetype,
];
runtime = [
zlib,
libexpat,
freetype,
];
}

View File

@@ -0,0 +1,28 @@
package foot {
description = "a fast, lightweight and minimalistic Wayland terminal emulator";
website = "https://codeberg.org/dnkl/foot";
anitya = 141611;
version# = "1.27.0";
source = remoteTar {
url = "https://codeberg.org/dnkl/foot/archive/"+version+".tar.gz";
checksum = "E2XIPRD8t-WBBJUebIwChFT8K_85diwdalssUNwnuZBIynPa7rlXro5WCe9v3UlK";
compress = gzip;
};
exec = meson {};
inputs = [
ncurses,
xkbcommon,
tllist,
fcft,
kernel-headers,
];
runtime = [
xkbcommon,
fcft,
];
}

View File

@@ -3,7 +3,7 @@ package freetype {
website = "http://www.freetype.org";
anitya = 854;
version* = "2.14.3";
version# = "2.14.3";
source = remoteTar {
url = "https://download.savannah.gnu.org/releases/freetype/"+
"freetype-"+version+".tar.gz";

View File

@@ -3,7 +3,7 @@ package fuse {
website = "https://github.com/libfuse/libfuse";
anitya = 861;
version* = "3.18.2";
version# = "3.18.2";
source = remoteGitHubRelease {
suffix = "libfuse/libfuse";
tag = "fuse-"+version;

View File

@@ -3,7 +3,7 @@ package binutils {
website = "https://www.gnu.org/software/binutils";
anitya = 7981;
version* = "2.46.0";
version# = "2.46.0";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/binutils/binutils-"+version+".tar.bz2";
checksum = "4kK1_EXQipxSqqyvwD4LbiMLFKCUApjq6PeG4XJP4dzxYGqDeqXfh8zLuTyOuOVR";
@@ -20,7 +20,7 @@ package gcc {
website = "https://www.gnu.org/software/gcc";
anitya = 6502;
version* = "16.1.0";
version# = "16.1.0";
source = remoteTar {
url = "https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/"+
"gcc-"+version+"/gcc-"+version+".tar.gz";

View File

@@ -3,7 +3,7 @@ package git {
website = "https://www.git-scm.com";
anitya = 5350;
version* = "2.54.0";
version# = "2.54.0";
source = remoteTar {
url = "https://www.kernel.org/pub/software/scm/git/"+
"git-"+version+".tar.gz";

View File

@@ -3,11 +3,11 @@ package glib {
website = "https://developer.gnome.org/glib";
anitya = 10024;
version* = "2.88.1";
version# = "2.89.0";
source = remoteGit {
url = "https://gitlab.gnome.org/GNOME/glib.git";
tag = version;
checksum = "Rkszn6W4RHjyspyqfXdVAVawdwDJCuS0Zu0f7qot7tbJhnw2fUDoUUJB40m-1MCX";
checksum = "4FXKhdS3pC98LevYa_h7piRylG86cZ_c9zAtGr78oHodU1ob8rBxGU0hoIZ4nzcA";
};
files = {

View File

@@ -3,7 +3,7 @@ package glslang {
website = "https://github.com/KhronosGroup/glslang";
anitya = 205796;
version* = "16.3.0";
version# = "16.3.0";
source = remoteGitHub {
suffix = "KhronosGroup/glslang";
tag = version;

View File

@@ -5,7 +5,7 @@ package m4 {
website = "https://www.gnu.org/software/m4";
anitya = 1871;
version* = "1.4.21";
version# = "1.4.21";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/m4/m4-"+version+".tar.bz2";
checksum = "pPa6YOo722Jw80l1OsH1tnUaklnPFjFT-bxGw5iAVrZTm1P8FQaWao_NXop46-pm";
@@ -31,7 +31,7 @@ package autoconf {
website = "https://www.gnu.org/software/autoconf";
anitya = 141;
version* = "2.73";
version# = "2.73";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/autoconf/autoconf-"+version+".tar.gz";
checksum = "yGabDTeOfaCUB0JX-h3REYLYzMzvpDwFmFFzHNR7QilChCUNE4hR6q7nma4viDYg";
@@ -66,7 +66,7 @@ package automake {
website = "https://www.gnu.org/software/automake";
anitya = 144;
version* = "1.18.1";
version# = "1.18.1";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/automake/automake-"+version+".tar.gz";
checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG";
@@ -102,7 +102,7 @@ package libtool {
website = "https://www.gnu.org/software/libtool";
anitya = 1741;
version* = "2.5.4";
version# = "2.5.4";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/libtool/libtool-"+version+".tar.gz";
checksum = "pa6LSrQggh8mSJHQfwGjysAApmZlGJt8wif2cCLzqAAa2jpsTY0jZ-6stS3BWZ2Q";
@@ -130,7 +130,7 @@ package gzip {
website = "https://www.gnu.org/software/gzip";
anitya = 1290;
version* = "1.14";
version# = "1.14";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/gzip/gzip-"+version+".tar.gz";
checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q";
@@ -148,7 +148,7 @@ package sed {
website = "https://www.gnu.org/software/sed";
anitya = 4789;
version* = "4.10";
version# = "4.10";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/sed/sed-"+version+".tar.gz";
checksum = "TXTRFQJCyflb-bpBRI2S5Y1DpplwvT7-KfXtpqN4AdZgZ5OtI6yStn1-bkhDKx51";
@@ -169,7 +169,7 @@ package diffutils {
website = "https://www.gnu.org/software/diffutils";
anitya = 436;
version* = "3.12";
version# = "3.12";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/diffutils/diffutils-"+version+".tar.gz";
checksum = "9J5VAq5oA7eqwzS1Yvw-l3G5o-TccUrNQR3PvyB_lgdryOFAfxtvQfKfhdpquE44";
@@ -194,7 +194,7 @@ package patch {
website = "https://savannah.gnu.org/projects/patch";
anitya = 2597;
version* = "2.8";
version# = "2.8";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/patch/patch-"+version+".tar.gz";
checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR";
@@ -218,7 +218,7 @@ package gawk {
website = "https://www.gnu.org/software/gawk";
anitya = 868;
version* = "5.4.0";
version# = "5.4.0";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/gawk/gawk-"+version+".tar.gz";
checksum = "m0RkIolC-PI7EY5q8pcx5Y-0twlIW0Yp3wXXmV-QaHorSdf8BhZ7kW9F8iWomz0C";
@@ -237,7 +237,7 @@ package grep {
website = "https://www.gnu.org/software/grep";
anitya = 1251;
version* = "3.12";
version# = "3.12";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/grep/grep-"+version+".tar.gz";
checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1";
@@ -262,7 +262,7 @@ package gettext {
website = "https://www.gnu.org/software/gettext";
anitya = 898;
version* = "1.0";
version# = "1.0";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/gettext/gettext-"+version+".tar.gz";
checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC";
@@ -302,7 +302,7 @@ package findutils {
website = "https://www.gnu.org/software/findutils";
anitya = 812;
version* = "4.10.0";
version# = "4.10.0";
source = remoteFile {
url = "https://ftpmirror.gnu.org/gnu/findutils/findutils-"+version+".tar.xz";
checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6";
@@ -327,7 +327,7 @@ package bash {
website = "https://www.gnu.org/software/bash";
anitya = 166;
version* = "5.3";
version# = "5.3";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/bash/bash-"+version+".tar.gz";
checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq";
@@ -348,7 +348,7 @@ package coreutils {
website = "https://www.gnu.org/software/coreutils";
anitya = 343;
version* = "9.11";
version# = "9.11";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/coreutils/coreutils-"+version+".tar.gz";
checksum = "t8UMed5wpFEoC56aa42_yidfOAaRGzOfj7MRtQkkqgGbpXiskNA8bd-EmVSQkZie";
@@ -387,7 +387,7 @@ package tar {
website = "https://www.gnu.org/software/tar";
anitya = 4939;
version* = "1.35";
version# = "1.35";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/tar/tar-"+version+".tar.gz";
checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA";
@@ -424,7 +424,7 @@ package texinfo {
website = "https://www.gnu.org/software/texinfo";
anitya = 4958;
version* = "7.3";
version# = "7.3";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/texinfo/texinfo-"+version+".tar.gz";
checksum = "RRmC8Xwdof7JuZJeWGAQ_GeASIHAuJFQMbNONXBz5InooKIQGmqmWRjGNGEr5n4-";
@@ -449,7 +449,7 @@ package gperf {
website = "https://www.gnu.org/software/gperf";
anitya = 1237;
version* = "3.3";
version# = "3.3";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gperf/gperf-"+version+".tar.gz";
checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7";
@@ -466,7 +466,7 @@ package bc {
website = "https://www.gnu.org/software/bc";
anitya = 170;
version* = "1.08.2";
version# = "1.08.2";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/bc/bc-"+version+".tar.gz";
checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy";
@@ -489,7 +489,7 @@ package libiconv {
website = "https://www.gnu.org/software/libiconv";
anitya = 10656;
version* = "1.19";
version# = "1.19";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/libiconv/libiconv-"+version+".tar.gz";
checksum = "UibB6E23y4MksNqYmCCrA3zTFO6vJugD1DEDqqWYFZNuBsUWMVMcncb_5pPAr88x";
@@ -504,7 +504,7 @@ package parallel {
website = "https://www.gnu.org/software/parallel";
anitya = 5448;
version* = "20260422";
version# = "20260422";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/parallel/parallel-"+version+".tar.bz2";
checksum = "eTsepxgqhXpMEhPd55qh-W5y4vjKn0x9TD2mzbJCNZYtFf4lT4Wzoqr74HGJYBEH";
@@ -530,7 +530,7 @@ package libunistring {
website = "https://www.gnu.org/software/libunistring";
anitya = 1747;
version* = "1.4.2";
version# = "1.4.2";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/libunistring/libunistring-"+version+".tar.gz";
checksum = "iW9BbfLoVlXjWoLTZ4AekQSu4cFBnLcZ4W8OHWbv0AhJNgD3j65_zqaLMzFKylg2";
@@ -557,7 +557,7 @@ package libtasn1 {
website = "https://www.gnu.org/software/libtasn1";
anitya = 1734;
version* = "4.21.0";
version# = "4.21.0";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/libtasn1/libtasn1-"+version+".tar.gz";
checksum = "9DYI3UYbfYLy8JsKUcY6f0irskbfL0fHZA91Q-JEOA3kiUwpodyjemRsYRjUpjuq";
@@ -572,7 +572,7 @@ package readline {
website = "https://tiswww.cwru.edu/php/chet/readline/rltop.html";
anitya = 4173;
version* = "8.3";
version# = "8.3";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/readline/readline-"+version+".tar.gz";
checksum = "r-lcGRJq_MvvBpOq47Z2Y1OI2iqrmtcqhTLVXR0xWo37ZpC2uT_md7gKq5o_qTMV";
@@ -595,7 +595,7 @@ package gmp {
website = "https://gmplib.org";
anitya = 1186;
version* = "6.3.0";
version# = "6.3.0";
source = remoteTar {
url = "https://gcc.gnu.org/pub/gcc/infrastructure/"+
"gmp-"+version+".tar.bz2";
@@ -617,7 +617,7 @@ package mpfr {
website = "https://www.mpfr.org";
anitya = 2019;
version* = "4.2.2";
version# = "4.2.2";
source = remoteTar {
url = "https://gcc.gnu.org/pub/gcc/infrastructure/"+
"mpfr-"+version+".tar.bz2";
@@ -636,7 +636,7 @@ package mpc {
website = "https://www.multiprecision.org";
anitya = 1667;
version* = "1.4.1";
version# = "1.4.1";
source = remoteGitLab {
domain = "gitlab.inria.fr";
suffix = "mpc/mpc";

View File

@@ -3,7 +3,7 @@ package gnutls {
website = "https://gnutls.org";
anitya = 1221;
version* = "3.8.13";
version# = "3.8.13";
source = remoteGit {
url = "https://gitlab.com/gnutls/gnutls.git";
tag = version;

View File

@@ -3,7 +3,7 @@ package googletest {
exclude = true;
anitya = 18290;
version* = "1.17.0";
version# = "1.17.0";
output = remoteGitHubRelease {
suffix = "google/googletest";
tag = "v"+version;

View File

@@ -1,61 +0,0 @@
From 2a9aa3b4007a73a6c9d4608cb9a8822247881fd6 Mon Sep 17 00:00:00 2001
From: Ophestra <cat@gensokyo.uk>
Date: Thu, 21 May 2026 23:34:50 +0900
Subject: [PATCH] cmd/dist: include version in release
This makes HAKUREI_VERSION optional during build.
Signed-off-by: Ophestra <cat@gensokyo.uk>
---
cmd/dist/VERSION | 1 +
cmd/dist/main.go | 7 ++++++-
flake.nix | 1 -
3 files changed, 7 insertions(+), 2 deletions(-)
create mode 100644 cmd/dist/VERSION
diff --git a/cmd/dist/VERSION b/cmd/dist/VERSION
new file mode 100644
index 00000000..0eec13e4
--- /dev/null
+++ b/cmd/dist/VERSION
@@ -0,0 +1 @@
+v0.4.2
diff --git a/cmd/dist/main.go b/cmd/dist/main.go
index 9ed7f2f8..d876cf83 100644
--- a/cmd/dist/main.go
+++ b/cmd/dist/main.go
@@ -18,8 +18,13 @@ import (
"os/signal"
"path/filepath"
"runtime"
+ "strings"
)
+//go:generate sh -c "git describe --tags > VERSION"
+//go:embed VERSION
+var version string
+
// getenv looks up an environment variable, and returns fallback if it is unset.
func getenv(key, fallback string) string {
if v, ok := os.LookupEnv(key); ok {
@@ -47,7 +52,7 @@ func main() {
verbose := os.Getenv("VERBOSE") != ""
runTests := os.Getenv("HAKUREI_DIST_MAKE") == ""
- version := getenv("HAKUREI_VERSION", "untagged")
+ version = getenv("HAKUREI_VERSION", strings.TrimSpace(version))
prefix := getenv("PREFIX", "/usr")
destdir := getenv("DESTDIR", "dist")
diff --git a/flake.nix b/flake.nix
index 4de35204..09520be2 100644
--- a/flake.nix
+++ b/flake.nix
@@ -139,7 +139,6 @@
GOCACHE="$(mktemp -d)" \
PATH="${pkgs.pkgsStatic.musl.bin}/bin:$PATH" \
DESTDIR="$out" \
- HAKUREI_VERSION="v${hakurei.version}" \
./all.sh
'';
}

View File

@@ -2,11 +2,11 @@ package hakurei-source {
description = "hakurei source tree";
exclude = true;
version* = "0.4.2";
version# = "0.4.3";
output = remoteTar {
url = "https://git.gensokyo.uk/rosa/hakurei/archive/"+
"v"+version+".tar.gz";
checksum = "jadgaOrxv5ABGvzQ_Rk0aPGz7U8K-427TbMhQNQ32scSizEnlR44Pu7NoWYWVZWq";
checksum = "1LqBJIcYcAFTVfydCahOm4hjjKhY953X9ars0eQj32hnpNncWFefuT6OJpZzIlZv";
compress = gzip;
};
}
@@ -17,7 +17,6 @@ package hakurei {
anitya = 388834;
source = hakurei-source;
patches = [ "2a9aa3b4007a73a6c9d4608cb9a8822247881fd6.patch" ];
enterSource = true;
writable = true;
chmod = true;
@@ -84,7 +83,6 @@ package hakurei-dist {
website = "https://hakurei.app";
source = hakurei-source;
patches = [ "2a9aa3b4007a73a6c9d4608cb9a8822247881fd6.patch" ];
enterSource = true;
writable = true;
chmod = true;
@@ -132,7 +130,6 @@ package earlyinit {
exclude = true;
source = hakurei-source;
patches = [ "2a9aa3b4007a73a6c9d4608cb9a8822247881fd6.patch" ];
enterSource = true;
writable = true;
chmod = true;
@@ -146,10 +143,8 @@ package earlyinit {
exec = generic {
inPlace = true;
build = `
mkdir -p /work/system/libexec/hakurei/
echo '# Building earlyinit.'
go build -trimpath -v -o /work/system/libexec/hakurei -ldflags="-s -w
go build -trimpath -v -o /work/ -ldflags="-s -w
-buildid=
-linkmode external
-extldflags=-static

View File

@@ -3,7 +3,7 @@ package hwdata {
website = "https://github.com/vcrhonek/hwdata";
anitya = 5387;
version* = "0.407";
version# = "0.407";
source = remoteGitHub {
suffix = "vcrhonek/hwdata";
tag = "v"+version;

View File

@@ -0,0 +1,4 @@
dir /dev 0755 0 0
nod /dev/null 0666 0 0 c 1 3
nod /dev/console 0600 0 0 c 5 1
file /init /usr/src/initramfs-image/earlyinit 0555 0 0

View File

@@ -0,0 +1,45 @@
package initramfs-image {
description = "Rosa OS initramfs image";
version = unversioned;
exclude = true;
source = earlyinit;
files = {
"initramfs";
};
exec = generic {
build = "gen_init_cpio "+
"-t 4294967295 "+
"-c /usr/src/initramfs | "+
"zstd > /work/initramfs.zst";
};
inputs = [
zstd,
gen_init_cpio,
];
}
package system-image {
description = "Rosa OS system image";
version = unversioned;
exclude = true;
source = earlyinit;
extra = [
musl,
mksh,
toybox,
kmod,
kernel,
firmware,
];
overlay = "/mnt";
exec = generic {
build = "mksquashfs /mnt/system /work/system.img";
};
inputs = [ squashfs-tools ];
}

View File

@@ -0,0 +1,55 @@
package iproute2 {
description = "routing commands and utilities";
website = "https://wiki.linuxfoundation.org/networking/iproute2";
anitya = 1392;
version# = "7.0.0";
source = remoteTar {
url = "https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/"+
"snapshot/iproute2-"+version+".tar.gz";
checksum = "6SNrMEKYMO-Nt4u_Ni-qOnBpzuokkf515ya-75l6APNbZwihXy8Utv1snbUpHx3T";
compress = gzip;
};
env = [
"CC=cc",
"PREFIX=/system",
"SBINDIR=/system/sbin",
];
enterSource = true;
writable = true;
chmod = true;
exec = make {
inPlace = true;
// drop default autoconf options
configureName = "./configure";
configure = {
"prefix": "/system";
"color": "auto";
};
make = [ "CC=cc" ];
// wants root
skipCheck = true;
};
inputs = [
pkg-config,
m4,
bison,
flex,
libbpf,
libmnl,
db,
libcap,
kernel-headers,
];
runtime = [
libbpf,
libmnl,
db,
libcap,
];
}

View File

@@ -1,16 +1,16 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.12.87 Kernel Configuration
# Linux/x86 6.12.90 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="clang version 22.1.5"
CONFIG_CC_VERSION_TEXT="clang version 22.1.6"
CONFIG_GCC_VERSION=0
CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=220105
CONFIG_CLANG_VERSION=220106
CONFIG_AS_IS_LLVM=y
CONFIG_AS_VERSION=220105
CONFIG_AS_VERSION=220106
CONFIG_LD_VERSION=0
CONFIG_LD_IS_LLD=y
CONFIG_LLD_VERSION=220105
CONFIG_LLD_VERSION=220106
CONFIG_RUSTC_VERSION=0
CONFIG_RUSTC_LLVM_VERSION=0
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y

View File

@@ -1,16 +1,16 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 6.12.83 Kernel Configuration
# Linux/arm64 6.12.90 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="clang version 22.1.4"
CONFIG_CC_VERSION_TEXT="clang version 22.1.6"
CONFIG_GCC_VERSION=0
CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=220104
CONFIG_CLANG_VERSION=220106
CONFIG_AS_IS_LLVM=y
CONFIG_AS_VERSION=220104
CONFIG_AS_VERSION=220106
CONFIG_LD_VERSION=0
CONFIG_LD_IS_LLD=y
CONFIG_LLD_VERSION=220104
CONFIG_LLD_VERSION=220106
CONFIG_RUSTC_VERSION=0
CONFIG_RUSTC_LLVM_VERSION=0
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
@@ -13858,7 +13858,9 @@ CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_DWARF5 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
CONFIG_DEBUG_INFO_COMPRESSED_NONE=y
# CONFIG_DEBUG_INFO_COMPRESSED_NONE is not set
# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set
CONFIG_DEBUG_INFO_COMPRESSED_ZSTD=y
# CONFIG_DEBUG_INFO_SPLIT is not set
# CONFIG_GDB_SCRIPTS is not set
CONFIG_FRAME_WARN=2048

View File

@@ -1,16 +1,16 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/riscv 6.12.80 Kernel Configuration
# Linux/riscv 6.12.90 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="clang version 22.1.2"
CONFIG_CC_VERSION_TEXT="clang version 22.1.6"
CONFIG_GCC_VERSION=0
CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=220102
CONFIG_CLANG_VERSION=220106
CONFIG_AS_IS_LLVM=y
CONFIG_AS_VERSION=220102
CONFIG_AS_VERSION=220106
CONFIG_LD_VERSION=0
CONFIG_LD_IS_LLD=y
CONFIG_LLD_VERSION=220102
CONFIG_LLD_VERSION=220106
CONFIG_RUSTC_VERSION=0
CONFIG_RUSTC_LLVM_VERSION=0
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
@@ -11123,7 +11123,9 @@ CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_DWARF5 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
CONFIG_DEBUG_INFO_COMPRESSED_NONE=y
# CONFIG_DEBUG_INFO_COMPRESSED_NONE is not set
# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set
CONFIG_DEBUG_INFO_COMPRESSED_ZSTD=y
# CONFIG_GDB_SCRIPTS is not set
CONFIG_FRAME_WARN=2048
# CONFIG_STRIP_ASM_SYMS is not set

View File

@@ -3,11 +3,11 @@ package kernel-source {
website = "https://kernel.org";
exclude = true;
version* = "6.12.87";
version# = "6.12.90";
output = remoteTar {
url = "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/"+
"snapshot/linux-"+version+".tar.gz";
checksum = "QTl5teIy0K5KsOLYGHQ3FbnPCZNRH2bySXVzghiOoHDdM3zAcSPUkmdly85lMzHx";
checksum = "l9d_2veqbj3RVDp8L6vhV7j2DOLQtzQUqnzPFuJBR_VD8a3k4mvBQRR1-LE-SWZJ";
compress = gzip;
};
}
@@ -45,9 +45,9 @@ cat \
checksum = arch {
default = "";
amd64 = "lCmBNcMeUmXifg0vecKOPy3GAaFcJSmOPnf3wit9xYTDSTsFADPt1xxUFfmTn1fD";
arm64 = "PlRxp4JzZeMGx7CScRlT1NBzc2NVyJlb8Gm8sa3ofFght9ZT101ZJhcIXiCkHSHM";
riscv64 = "z0MI2uSA31k_HtIsqGoCy-Vcf3mYm_zBDR_jN1tntg2Fdvz6YTwCU9YlHbYnpNbx";
amd64 = "FkIf0_SD4g3mK_VWa9FJURjLS66YmknYTh49uMDlDSnoQpq6BqBymAm47joDwdWi";
arm64 = "bJ6ZLJhDR3K9So9zLh5s31hQPm_27gyl7XDVmCgdvyJGKDnffCKdtlE0HuvEbvye";
riscv64 = "bbZCVNS1ryP-XoW9Gwx3ugvhvOA6d5UuO6gE7-Gv82g_bQN1hk4GG0SXBo-otyqS";
};
inputs = [ rsync ];
}

View File

@@ -1,5 +1,5 @@
#define LINUX_VERSION_CODE 396372
#define LINUX_VERSION_CODE 396378
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
#define LINUX_VERSION_MAJOR 6
#define LINUX_VERSION_PATCHLEVEL 12
#define LINUX_VERSION_SUBLEVEL 84
#define LINUX_VERSION_SUBLEVEL 90

View File

@@ -3,7 +3,7 @@ package kmod {
website = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git";
anitya = 1517;
version* = "34.2";
version# = "34.2";
source = remoteTar {
url = "https://www.kernel.org/pub/linux/utils/kernel/"+
"kmod/kmod-"+version+".tar.gz";

View File

@@ -3,7 +3,7 @@ package libarchive {
website = "https://www.libarchive.org";
anitya = 1558;
version* = "3.8.7";
version# = "3.8.7";
source = remoteGitHub {
suffix = "libarchive/libarchive";
tag = "v"+version;

View File

@@ -0,0 +1,31 @@
package libbpf {
description = "the reference library for eBPF development";
website = "https://github.com/libbpf/libbpf";
anitya = 141355;
version# = "1.7.0";
source = remoteGitHub {
suffix = "libbpf/libbpf";
tag = "v"+version;
checksum = "Gsk3TYDTne6behhdiyRB0Y5GTGECRh2265VY7IQ_VB62vIm7U9oqzEW-Va5Tvi_w";
};
env = [ "PREFIX=/system" ];
early = "cd src";
writable = true;
chmod = true;
exec = make {
inPlace = true;
skipConfigure = true;
skipCheck = true;
install = "make DESTDIR=/work LIBSUBDIR=lib install";
};
inputs = [
elfutils,
kernel-headers,
];
runtime = [ elfutils ];
}

View File

@@ -3,7 +3,7 @@ package libbsd {
website = "https://libbsd.freedesktop.org";
anitya = 1567;
version* = "0.12.2";
version# = "0.12.2";
source = remoteGit {
url = "https://gitlab.freedesktop.org/libbsd/libbsd.git";
tag = version;

View File

@@ -3,7 +3,7 @@ package libcap {
website = "https://sites.google.com/site/fullycapable";
anitya = 1569;
version* = "2.78";
version# = "2.78";
source = remoteTar {
url = "https://git.kernel.org/pub/scm/libs/libcap/libcap.git/"+
"snapshot/libcap-"+version+".tar.gz";

View File

@@ -3,7 +3,7 @@ package libconfig {
website = "https://hyperrealm.github.io/libconfig";
anitya = 1580;
version* = "1.8.2";
version# = "1.8.2";
source = remoteGitHub {
suffix = "hyperrealm/libconfig";
tag = "v"+version;

View File

@@ -3,7 +3,7 @@ package libdisplay-info {
website = "https://gitlab.freedesktop.org/emersion/libdisplay-info";
anitya = 326668;
version* = "0.3.0";
version# = "0.3.0";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "emersion/libdisplay-info";

View File

@@ -3,7 +3,7 @@ package libdrm {
website = "https://dri.freedesktop.org";
anitya = 1596;
version* = "2.4.133";
version# = "2.4.133";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "mesa/libdrm";

View File

@@ -3,7 +3,7 @@ package libepoxy {
website = "https://github.com/anholt/libepoxy";
anitya = 6090;
version* = "1.5.10";
version# = "1.5.10";
source = remoteGitHub {
suffix = "anholt/libepoxy";
tag = version;

View File

@@ -3,7 +3,7 @@ package libev {
website = "http://libev.schmorp.de";
anitya = 1605;
version* = "4.33";
version# = "4.33";
source = remoteTar {
url = "https://dist.schmorp.de/libev/Attic/libev-"+version+".tar.gz";
checksum = "774eSXV_4k8PySRprUDChbEwsw-kzjIFnJ3MpNOl5zDpamBRvC3BqPyRxvkwcL6_";

View File

@@ -3,7 +3,7 @@ package libexpat {
website = "https://libexpat.github.io";
anitya = 770;
version* = "2.8.1";
version# = "2.8.1";
source = remoteGitHubRelease {
suffix = "libexpat/libexpat";
tag = "R_"+replace {

View File

@@ -3,7 +3,7 @@ package libffi {
website = "https://sourceware.org/libffi";
anitya = 1611;
version* = "3.5.2";
version# = "3.5.2";
source = remoteGitHubRelease {
suffix = "libffi/libffi";
tag = "v"+version;

View File

@@ -3,7 +3,7 @@ package libgd {
website = "https://libgd.github.io";
anitya = 880;
version* = "2.3.3";
version# = "2.3.3";
source = remoteGitHubRelease {
suffix = "libgd/libgd";
tag = "gd-"+version;

View File

@@ -3,7 +3,7 @@ package libglvnd {
website = "https://gitlab.freedesktop.org/glvnd/libglvnd";
anitya = 12098;
version* = "1.7.0";
version# = "1.7.0";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "glvnd/libglvnd";

View File

@@ -3,7 +3,7 @@ package libmd {
website = "https://www.hadrons.org/software/libmd";
anitya = 15525;
version* = "1.2.0";
version# = "1.2.0";
source = remoteGit {
url = "https://git.hadrons.org/git/libmd.git";
tag = version;

View File

@@ -3,7 +3,7 @@ package libpng {
website = "https://www.libpng.org/pub/png/libpng.html";
anitya = 1705;
version* = "1.6.58";
version# = "1.6.58";
source = remoteTar {
url = "https://downloads.sourceforge.net/project/libpng/libpng"+
join {

View File

@@ -3,7 +3,7 @@ package libpsl {
website = "https://rockdaboot.github.io/libpsl";
anitya = 7305;
version* = "0.21.5";
version# = "0.21.5";
source = remoteGitHubRelease {
suffix = "rockdaboot/libpsl";
tag = version;

View File

@@ -3,7 +3,7 @@ package libseccomp {
website = "https://github.com/seccomp/libseccomp";
anitya = 13823;
version* = "2.6.0";
version# = "2.6.0";
source = remoteGitHubRelease {
suffix = "seccomp/libseccomp";
tag = "v"+version;

View File

@@ -3,7 +3,7 @@ package libtirpc {
website = "https://sourceforge.net/projects/libtirpc";
anitya = 1740;
version* = "1.3.7";
version# = "1.3.7";
source = remoteGit {
url = "git://linux-nfs.org/~steved/libtirpc";
tag = "libtirpc-"+join {

View File

@@ -3,7 +3,7 @@ package libucontext {
website = "https://github.com/kaniini/libucontext";
anitya = 17085;
version* = "1.5.1";
version# = "1.5.1";
source = remoteGitHub {
suffix = "kaniini/libucontext";
tag = "libucontext-"+version;

View File

@@ -3,7 +3,7 @@ package libva {
website = "https://01.org/vaapi";
anitya = 1752;
version* = "2.23.0";
version# = "2.23.0";
source = remoteGitHub {
suffix = "intel/libva";
tag = version;

View File

@@ -3,7 +3,7 @@ package libxml2 {
website = "https://gitlab.gnome.org/GNOME/libxml2";
anitya = 1783;
version* = "2.15.3";
version# = "2.15.3";
source = remoteGitLab {
domain = "gitlab.gnome.org";
suffix = "GNOME/libxml2";

View File

@@ -3,7 +3,7 @@ package libxslt {
website = "https://gitlab.gnome.org/GNOME/libxslt";
anitya = 13301;
version* = "1.1.45";
version# = "1.1.45";
source = remoteGitLab {
domain = "gitlab.gnome.org";
suffix = "GNOME/libxslt";

View File

@@ -3,7 +3,7 @@ package lm_sensors {
website = "https://hwmon.wiki.kernel.org/lm_sensors";
anitya = 1831;
version* = "3-6-2";
version# = "3-6-2";
source = remoteGitHub {
suffix = "lm-sensors/lm-sensors";
tag = "V"+version;

View File

@@ -3,7 +3,7 @@ package make {
website = "https://www.gnu.org/software/make";
anitya = 1877;
version* = "4.4.1";
version# = "4.4.1";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/make/make-"+version+".tar.gz";
checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a";

View File

@@ -4,12 +4,12 @@ package mesa {
anitya = 1970;
latest = anityaFallback;
version* = "26.1.0";
version# = "26.1.1";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "mesa/mesa";
ref = "mesa-"+version;
checksum = "zU0fjqevySBaoi_5SLW3e2UffmGeBdxOuHmAHTH68n2hV-sjYoqg30koLqFXuk5y";
checksum = "OFCxGSTBe7qbnbVdazIJBNMFaQ-ylD5aRzo-JstSAdA0-hvVdRwsZiovMBm2rMzp";
};
exec = meson {

View File

@@ -3,7 +3,7 @@ package meson {
website = "https://mesonbuild.com";
anitya = 6472;
version* = "1.11.1";
version# = "1.11.1";
source = remoteGitHub {
suffix = "mesonbuild/meson";
tag = version;

View File

@@ -3,7 +3,7 @@ package mksh {
website = "https://www.mirbsd.org/mksh";
anitya = 5590;
version* = "59c";
version# = "59c";
source = remoteTar {
url = "https://mbsd.evolvis.org/MirOS/dist/mir/mksh/mksh-R"+version+".tgz";
checksum = "0Zj-k4nXEu3IuJY4lvwD2OrC2t27GdZj8SPy4DoaeuBRH1padWb7oREpYgwY8JNq";

View File

@@ -3,7 +3,7 @@ package musl-fts {
website = "https://github.com/void-linux/musl-fts";
anitya = 26980;
version* = "1.2.7";
version# = "1.2.7";
source = remoteGitHub {
suffix = "void-linux/musl-fts";
tag = "v"+version;

View File

@@ -3,7 +3,7 @@ package musl-obstack {
website = "https://github.com/void-linux/musl-obstack";
anitya = 146206;
version* = "1.2.3";
version# = "1.2.3";
source = remoteGitHub {
suffix = "void-linux/musl-obstack";
tag = "v"+version;

View File

@@ -2,7 +2,7 @@ package musl-source {
description = "an implementation of the C standard library - source code";
exclude = true;
version* = "1.2.6";
version# = "1.2.6";
output = remoteTar {
url = "https://musl.libc.org/releases/musl-"+version+".tar.gz";
checksum = "WtWb_OV_XxLDAB5NerOL9loLlHVadV00MmGk65PPBU1evaolagoMHfvpZp_vxEzS";

View File

@@ -3,7 +3,7 @@ package ncurses {
website = "https://invisible-island.net/ncurses";
anitya = 373226;
version* = "6.6";
version# = "6.6";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/ncurses/ncurses-"+version+".tar.gz";
checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w";

View File

@@ -3,7 +3,7 @@ package libmnl {
website = "https://www.netfilter.org/projects/libmnl";
anitya = 1663;
version* = "1.0.5";
version# = "1.0.5";
source = remoteTar {
url = "https://www.netfilter.org/projects/libmnl/files/"+
"libmnl-"+version+".tar.bz2";
@@ -29,7 +29,7 @@ package libnftnl {
website = "https://www.netfilter.org/projects/libnftnl";
anitya = 1681;
version* = "1.3.1";
version# = "1.3.1";
source = remoteGit {
url = "https://git.netfilter.org/libnftnl";
tag = "libnftnl-"+version;
@@ -64,7 +64,7 @@ package iptables {
website = "https://www.netfilter.org/projects/iptables";
anitya = 1394;
version* = "1.8.13";
version# = "1.8.13";
source = remoteGit {
url = "https://git.netfilter.org/iptables";
tag = "v"+version;

View File

@@ -3,7 +3,7 @@ package nettle {
website = "https://www.lysator.liu.se/~nisse/nettle";
anitya = 2073;
version* = "4.0";
version# = "4.0";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz";
checksum = "6agC-vHzzoqAlaX3K9tX8yHgrm03HLqPZzVzq8jh_ePbuPMIvpxereu_uRJFmQK7";

View File

@@ -3,7 +3,7 @@ package ninja {
website = "https://ninja-build.org";
anitya = 2089;
version* = "1.13.2";
version# = "1.13.2";
source = remoteGitHub {
suffix = "ninja-build/ninja";
tag = "v"+version;

View File

@@ -3,11 +3,11 @@ package nspr {
anitya = 7953;
exclude = true;
version* = "4.38.2";
version# = "4.39";
output = remoteTar {
url = "https://ftp.mozilla.org/pub/nspr/releases/v"+version+
"/src/nspr-"+version+".tar.gz";
checksum = "BcKpVmN6bdBaoZyzht_SpGHnO1CRN5YHeVyWW2skfCKIdhy3ppKe1zMh85QBEsV_";
checksum = "lgIlqiItMBCRTuz8griNqxtJzNBAoZU1020EVR94X2IiZpJ-NgLXouF7m1knNlDs";
compress = gzip;
};
}
@@ -17,7 +17,7 @@ package nss {
website = "https://firefox-source-docs.mozilla.org/security/nss/index.html";
anitya = 2503;
version* = "3.123.1";
version# = "3.124";
source = remoteGitHub {
suffix = "nss-dev/nss";
tag = "NSS_"+join {
@@ -28,7 +28,7 @@ package nss {
};
sep = "_";
}+"_RTM";
checksum = "g811Z_fc74ssg-s6BeXRG-ipSfJggD6hrxjVJxrOBIz98CE7piv0OLwzIRLMQpwR";
checksum = "p_TFOmKxMVV-ZHRY0QwzEReUOxSRjEExpWIuoA3Bzxj50uNCS8EgqfzcpaiGAkr6";
};
extra = [ nspr ];

View File

@@ -5,7 +5,7 @@ package openssl {
// strange malformed tags treated as pre-releases in Anitya
latest = anityaFallback;
version* = "3.6.2";
version# = "3.6.2";
source = remoteGitHubRelease {
suffix = "openssl/openssl";
tag = "openssl-"+version;

View File

@@ -3,7 +3,7 @@ package p11-kit {
website = "https://p11-glue.freedesktop.org/p11-kit.html";
anitya = 2582;
version* = "0.26.2";
version# = "0.26.2";
source = remoteGit {
url = "https://github.com/p11-glue/p11-kit.git";
tag = version;

View File

@@ -3,7 +3,7 @@ package pcre2 {
website = "https://pcre2project.github.io/pcre2";
anitya = 5832;
version* = "10.47";
version# = "10.47";
source = remoteGitHubRelease {
suffix = "PCRE2Project/pcre2";
tag = "pcre2-"+version;

View File

@@ -5,7 +5,7 @@ package perl {
// odd-even versioning
latest = anityaFallback;
version* = "5.42.2";
version# = "5.42.2";
source = remoteTar {
url = "https://www.cpan.org/src/5.0/perl-"+version+".tar.gz";
checksum = "Me_xFfgkRnVyG0sE6a74TktK2OUq9Z1LVJNEu_9RdZG3S2fbjfzNiuk2SJqHAgbm";
@@ -51,7 +51,7 @@ package perl-Module-Build {
website = "https://metacpan.org/release/Module-Build";
anitya = 3077;
version* = "0.4234";
version# = "0.4234";
source = remoteCPAN {
author = "LEONT";
name = "Module-Build";
@@ -84,7 +84,7 @@ package perl-Locale-gettext {
website = "https://metacpan.org/release/Locale-gettext";
anitya = 7523;
version* = "1.07";
version# = "1.07";
source = remoteCPAN {
author = "PVANDRY";
name = "Locale-gettext";
@@ -102,7 +102,7 @@ package perl-Pod-Parser {
website = "https://metacpan.org/release/Pod-Parser";
anitya = 3244;
version* = "1.67";
version# = "1.67";
source = remoteCPAN {
author = "MAREKR";
name = "Pod-Parser";
@@ -121,7 +121,7 @@ package perl-SGMLS {
anitya = 389576;
latest = anityaLegacyCPAN;
version* = "1.1";
version# = "1.1";
source = remoteCPAN {
author = "RAAB";
name = "SGMLSpm";
@@ -139,7 +139,7 @@ package perl-Term-ReadKey {
website = "https://metacpan.org/release/TermReadKey";
anitya = 3372;
version* = "2.38";
version# = "2.38";
source = remoteCPAN {
author = "JSTOWE";
name = "TermReadKey";
@@ -157,7 +157,7 @@ package perl-Text-CharWidth {
website = "https://metacpan.org/release/Text-CharWidth";
anitya = 14380;
version* = "0.04";
version# = "0.04";
source = remoteCPAN {
author = "KUBOTA";
name = "Text-CharWidth";
@@ -175,7 +175,7 @@ package perl-Text-WrapI18N {
website = "https://metacpan.org/release/Text-WrapI18N";
anitya = 14385;
version* = "0.06";
version# = "0.06";
source = remoteCPAN {
author = "KUBOTA";
name = "Text-WrapI18N";
@@ -194,7 +194,7 @@ package perl-MIME-Charset {
website = "https://metacpan.org/release/MIME-Charset";
anitya = 3070;
version* = "1.013.1";
version# = "1.013.1";
source = remoteCPAN {
author = "NEZUMI";
name = "MIME-Charset";
@@ -212,7 +212,7 @@ package perl-Unicode-LineBreak {
website = "https://metacpan.org/release/Unicode-LineBreak";
anitya = 6033;
version* = "2019.001";
version# = "2019.001";
source = remoteCPAN {
author = "NEZUMI";
name = "Unicode-LineBreak";
@@ -231,7 +231,7 @@ package perl-YAML-Tiny {
website = "https://metacpan.org/release/YAML-Tiny";
anitya = 3549;
version* = "1.76";
version# = "1.76";
source = remoteCPAN {
author = "ETHER";
name = "YAML-Tiny";
@@ -249,7 +249,7 @@ package perl-Test-Cmd {
website = "https://metacpan.org/release/Test-Cmd";
anitya = 6014;
version* = "1.09";
version# = "1.09";
source = remoteCPAN {
author = "NEILB";
name = "Test-Cmd";

View File

@@ -3,7 +3,7 @@ package pixman {
website = "https://pixman.org";
anitya = 3648;
version* = "0.46.4";
version# = "0.46.4";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "pixman/pixman";

View File

@@ -3,7 +3,7 @@ package pkg-config {
website = "https://pkgconfig.freedesktop.org";
anitya = 3649;
version* = "0.29.2";
version# = "0.29.2";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "pkg-config/pkg-config";

View File

@@ -3,7 +3,7 @@ package procps {
website = "https://gitlab.com/procps-ng/procps";
anitya = 3708;
version* = "4.0.6";
version# = "4.0.6";
source = remoteGitLab {
domain = "gitlab.com";
suffix = "procps-ng/procps";

View File

@@ -3,7 +3,7 @@ package python {
website = "https://www.python.org";
anitya = 13254;
version* = "3.14.5";
version# = "3.14.5";
source = remoteTar {
url = "https://www.python.org/ftp/python/"+version+
"/Python-"+version+".tgz";
@@ -74,7 +74,7 @@ package python-setuptools {
website = "https://pypi.org/project/setuptools";
anitya = 4021;
version* = "82.0.1";
version# = "82.0.1";
source = remoteGitHub {
suffix = "pypa/setuptools";
tag = "v"+version;
@@ -96,7 +96,7 @@ package python-wheel {
website = "https://peps.python.org/pep-0427";
anitya = 11428;
version* = "0.47.0";
version# = "0.47.0";
source = remoteGitHub {
suffix = "pypa/wheel";
tag = version;
@@ -120,7 +120,7 @@ package python-vcs-versioning {
website = "https://setuptools-scm.readthedocs.io/en/latest";
anitya = 389421;
version* = "1.1.1";
version# = "1.1.1";
source = remoteGitHub {
suffix = "pypa/setuptools-scm";
tag = "vcs-versioning-v"+version;
@@ -154,7 +154,7 @@ package python-setuptools-scm {
website = "https://setuptools-scm.readthedocs.io/en/latest";
anitya = 7874;
version* = "10.0.5";
version# = "10.0.5";
source = remoteGitHub {
suffix = "pypa/setuptools-scm";
tag = "setuptools-scm-v"+version;
@@ -188,7 +188,7 @@ package python-flit-core {
website = "https://flit.pypa.io";
anitya = 44841;
version* = "3.12.0";
version# = "3.12.0";
source = remoteGitHub {
suffix = "pypa/flit";
tag = version;
@@ -210,7 +210,7 @@ package python-packaging {
website = "https://packaging.pypa.io";
anitya = 60461;
version* = "26.2";
version# = "26.2";
source = remoteGitHub {
suffix = "pypa/packaging";
tag = version;
@@ -231,7 +231,7 @@ package python-pathspec {
website = "https://github.com/cpburnz/python-pathspec";
anitya = 23424;
version* = "1.1.1";
version# = "1.1.1";
source = remoteGitHub {
suffix = "cpburnz/python-pathspec";
tag = "v"+version;
@@ -252,11 +252,11 @@ package python-trove-classifiers {
website = "https://pypi.org/p/trove-classifiers";
anitya = 88298;
version* = "2026.5.7.17";
version# = "2026.5.22.10";
source = remoteGitHub {
suffix = "pypa/trove-classifiers";
tag = version;
checksum = "1Fcps0gK9P4ofwGL8MISN9k1Q40-quxX7NDpIna50TmziBNrZy-0Vz0I9yIeHCoP";
checksum = "PgFh58qkPCee5SIN62a_8s5kYRrydXODZEqeSgMJItiLrT5kaz8senRGn5B1Hv56";
};
exec = pip {
@@ -273,7 +273,7 @@ package python-pluggy {
website = "https://pluggy.readthedocs.io/en/latest";
anitya = 7500;
version* = "1.6.0";
version# = "1.6.0";
source = remoteGitHub {
suffix = "pytest-dev/pluggy";
tag = version;
@@ -298,7 +298,7 @@ package python-hatchling {
website = "https://hatch.pypa.io";
anitya = 16137;
version* = "1.16.5";
version# = "1.16.5";
source = remoteGitHub {
suffix = "pypa/hatch";
tag = "hatch-v"+version;
@@ -332,7 +332,7 @@ package python-pygments {
website = "https://pygments.org";
anitya = 3986;
version* = "2.20.0";
version# = "2.20.0";
source = remoteGitHub {
suffix = "pygments/pygments";
tag = version;
@@ -353,7 +353,7 @@ package python-iniconfig {
website = "https://github.com/pytest-dev/iniconfig";
anitya = 114778;
version* = "2.3.0";
version# = "2.3.0";
source = remoteGitHub {
suffix = "pytest-dev/iniconfig";
tag = "v"+version;
@@ -378,7 +378,7 @@ package python-pytest {
website = "https://pytest.org";
anitya = 3765;
version* = "9.0.3";
version# = "9.0.3";
source = remoteGitHub {
suffix = "pytest-dev/pytest";
tag = version;
@@ -416,7 +416,7 @@ package python-markupsafe {
website = "https://markupsafe.palletsprojects.com";
anitya = 3918;
version* = "3.0.3";
version# = "3.0.3";
source = remoteGitHub {
suffix = "pallets/markupsafe";
tag = version;
@@ -437,7 +437,7 @@ package python-mako {
website = "https://www.makotemplates.org";
anitya = 3915;
version* = "1.3.12";
version# = "1.3.12";
source = remoteGitHub {
suffix = "sqlalchemy/mako";
tag = "rel_"+join {
@@ -467,7 +467,7 @@ package python-pyyaml {
website = "https://pyyaml.org";
anitya = 4123;
version* = "6.0.3";
version# = "6.0.3";
source = remoteGitHub {
suffix = "yaml/pyyaml";
tag = version;
@@ -488,7 +488,7 @@ package python-pycparser {
website = "https://github.com/eliben/pycparser";
anitya = 8175;
version* = "3.00";
version# = "3.00";
source = remoteGitHub {
suffix = "eliben/pycparser";
tag = "release_v"+version;

View File

@@ -3,7 +3,7 @@ package qemu {
website = "https://www.qemu.org";
anitya = 13607;
version* = "11.0.0";
version# = "11.0.0";
source = remoteTar {
url = "https://download.qemu.org/qemu-"+version+".tar.bz2";
checksum = "C64gdi_Tkdg2fTwD9ERxtWGcf8vNn_6UvczW0c-x0KW1NZtd3NbEOIrlDhYGn15n";

View File

@@ -3,7 +3,7 @@ package rdfind {
website = "https://rdfind.pauldreik.se";
anitya = 231641;
version* = "1.8.0";
version# = "1.8.0";
source = remoteTar {
url = "https://rdfind.pauldreik.se/rdfind-"+version+".tar.gz";
checksum = "PoaeJ2WIG6yyfe5VAYZlOdAQiR3mb3WhAUMj2ziTCx_IIEal4640HMJUb4SzU9U3";

View File

@@ -3,7 +3,7 @@ package rsync {
website = "https://rsync.samba.org";
anitya = 4217;
version* = "3.4.2";
version# = "3.4.2";
source = remoteTar {
url = "https://download.samba.org/pub/rsync/src/"+
"rsync-"+version+".tar.gz";

View File

@@ -5,11 +5,11 @@ package spirv-headers {
// upstream changed version scheme, anitya incapable of filtering them
latest = anityaFilterSPIRV;
version* = "1.4.341.0";
version# = "1.4.350.0";
source = remoteGitHub {
suffix = "KhronosGroup/SPIRV-Headers";
tag = "vulkan-sdk-"+version;
checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD";
checksum = "wFCZquDVL4HoE-kWbS_BHHb_d71EYR2A2kVp08oDutektpnQzhDP89wo821GgcpG";
};
exec = cmake {
@@ -24,7 +24,7 @@ package spirv-tools {
anitya = 14894;
latest = anityaFallback;
version* = "2026.1";
version# = "2026.1";
source = remoteGitHub {
suffix = "KhronosGroup/SPIRV-Tools";
tag = "v"+version;
@@ -51,7 +51,7 @@ package spirv-llvm-translator {
website = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator";
anitya = 227273;
version* = "22.1.2";
version# = "22.1.2";
source = remoteGitHub {
suffix = "KhronosGroup/SPIRV-LLVM-Translator";
tag = "v"+version;

View File

@@ -3,7 +3,7 @@ package squashfs-tools {
website = "https://github.com/plougher/squashfs-tools";
anitya = 4879;
version* = "4.7.5";
version# = "4.7.5";
source = remoteGitHubRelease {
suffix = "plougher/squashfs-tools";
tag = version;

View File

@@ -1,8 +1,34 @@
package stage0-dist {
package rosa-stage0 {
description = "Rosa OS stage0 bootstrap seed";
version = unversioned;
exclude = true;
version* = "20260504";
source = hakurei-source;
extra = [
llvm,
mksh,
toybox-early,
];
overlay = "/stage0";
exec = generic {
build = `
umask 377
tar \
-vjc \
-C /stage0 \
-f /work/stage0-`+triple+`.tar.bz2 \
.
`;
};
inputs = [ bzip2 ];
}
package stage0-dist {
description = "Rosa OS stage0 bootstrap seed (binary distribution)";
exclude = true;
version# = "20260504";
output = remoteTar {
url = "https://hakurei.app/seed/"+version+"/"+
"stage0-"+triple+".tar.bz2";

Some files were not shown because too many files have changed in this diff Show More