Compare commits

...

28 Commits

Author SHA1 Message Date
mae
b72f6a743a internal/rosa/package: replace assignment syntax 2026-05-23 23:15:20 -05:00
mae
dcfcc9992c internal/rosa/package: create az.mod and remove preprocessor directive 2026-05-23 22:55:21 -05:00
mae
0307f781a2 internal/rosa/package: azalea proposal 2026-05-23 20:50:35 -05: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
102 changed files with 2981 additions and 2983 deletions

View File

@@ -64,11 +64,12 @@ func main() {
return return
} }
e, ok := r.(rosa.LoadError) switch r.(type) {
if !ok { case rosa.LoadError, pkg.IRStringError:
log.Fatal(r)
default:
panic(r) panic(r)
} }
log.Fatal(e)
}() }()
ctx, stop := signal.NotifyContext(context.Background(), ctx, stop := signal.NotifyContext(context.Background(),
@@ -86,6 +87,7 @@ func main() {
flagLTO bool flagLTO bool
flagPT bool flagPT bool
flagSourcePath string
flagCrossOverride int flagCrossOverride int
addr net.UnixAddr 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 return nil
}).Flag( }).Flag(
&flagQuiet, &flagQuiet,
@@ -196,6 +204,10 @@ func main() {
&flagPT, &flagPT,
"parse-time", command.BoolFlag(false), "parse-time", command.BoolFlag(false),
"Print duration of the initial azalea parse", "Print duration of the initial azalea parse",
).Flag(
&flagSourcePath,
"source", command.StringFlag(""),
"Override hakurei source tree",
) )
c.NewCommand( c.NewCommand(
@@ -427,8 +439,6 @@ func main() {
var ( var (
flagGentoo string flagGentoo string
flagChecksum string flagChecksum string
flagStage0 bool
) )
c.NewCommand( c.NewCommand(
"stage3", "stage3",
@@ -490,17 +500,6 @@ func main() {
"("+pkg.Encode(checksum[0].Value())+")", "("+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 return
}, },
).Flag( ).Flag(
@@ -511,10 +510,6 @@ func main() {
&flagChecksum, &flagChecksum,
"checksum", command.StringFlag(""), "checksum", command.StringFlag(""),
"Checksum of Gentoo stage3 tarball", "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. // Target [Artifact] encoded identifier.
ids string ids string
// Pathname status was created at. // Pathname status was created at.
statusPath *check.Absolute statusPath, statusSPath *check.Absolute
// File statusHeader and logs are written to. // File statusHeader and logs are written to.
status *os.File status *os.File
// Error value during prepareStatus. // Error value during prepareStatus.
@@ -258,6 +258,11 @@ func (t *TContext) destroy(errP *error) {
), 10), ), 10),
).String(), ).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 t.status = nil
} }
@@ -1923,6 +1928,9 @@ func (c *Cache) cure(a Artifact, curesExempt bool) (
} }
c.exitCure(a, curesExempt) c.exitCure(a, curesExempt)
if err != nil { if err != nil {
if c.msg.IsVerbose() {
c.msg.Verbosef("cure file %s: %v", reportName(f, id), err)
}
return return
} }
@@ -1954,7 +1962,7 @@ func (c *Cache) cure(a Artifact, curesExempt bool) (
t := TContext{ t := TContext{
c.base.Append(dirWork, ids), c.base.Append(dirWork, ids),
c.base.Append(dirTemp, ids), c.base.Append(dirTemp, ids),
ids, nil, nil, nil, ids, nil, nil, nil, nil,
common{ctx, c}, common{ctx, c},
} }
switch ca := a.(type) { switch ca := a.(type) {
@@ -1966,6 +1974,9 @@ func (c *Cache) cure(a Artifact, curesExempt bool) (
err = ca.Cure(&t) err = ca.Cure(&t)
c.exitCure(a, curesExempt) c.exitCure(a, curesExempt)
if err != nil { if err != nil {
if c.msg.IsVerbose() {
c.msg.Verbosef("cure trivial %s: %v", reportName(ca, id), err)
}
return return
} }
break break
@@ -2043,16 +2054,25 @@ func (c *Cache) cure(a Artifact, curesExempt bool) (
} }
err = ca.Cure(&f) err = ca.Cure(&f)
if err == nil && f.status != nil { if err == nil && f.status != nil {
statusS := c.base.Append(
dirStatus,
substitutes,
)
c.checksumMu.Lock()
err = os.Link(c.base.Append( err = os.Link(c.base.Append(
dirStatus, dirStatus,
ids, ids,
).String(), c.base.Append( ).String(), statusS.String())
dirStatus, c.checksumMu.Unlock()
substitutes, if err == nil {
).String()) f.statusSPath = statusS
}
} }
c.exitCure(a, curesExempt) c.exitCure(a, curesExempt)
if err != nil { if err != nil {
if c.msg.IsVerbose() {
c.msg.Verbosef("cure %s: %v", reportName(ca, id), err)
}
return return
} }
break break
@@ -2101,6 +2121,9 @@ func (c *Cache) cure(a Artifact, curesExempt bool) (
Got: gotChecksum, Got: gotChecksum,
Want: checksum.Value(), Want: checksum.Value(),
} }
if c.msg.IsVerbose() {
c.msg.Verbosef("validate %s: %v", reportName(a, id), err)
}
return return
} }

View File

@@ -26,7 +26,7 @@ func (a busyboxBin) Params(*pkg.IContext) {}
// IsExclusive returns false: Cure performs a trivial filesystem write. // IsExclusive returns false: Cure performs a trivial filesystem write.
func (busyboxBin) IsExclusive() bool { return false } 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 { func (a busyboxBin) Dependencies() []pkg.Artifact {
return []pkg.Artifact{a.bin} return []pkg.Artifact{a.bin}
} }

View File

@@ -11,7 +11,7 @@ var (
_ninja = H("ninja") _ninja = H("ninja")
) )
// CMakeHelper is the [CMake] build system helper. // CMakeHelper builds and tests a CMake project with specified CACHE entries.
type CMakeHelper struct { type CMakeHelper struct {
// Path elements joined with source. // Path elements joined with source.
Append []string Append []string
@@ -34,7 +34,7 @@ type CMakeHelper struct {
var _ Helper = new(CMakeHelper) 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 { func (attr *CMakeHelper) extra(int) P {
if attr != nil && attr.Make { if attr != nil && attr.Make {
return P{_cmake, _make} return P{_cmake, _make}

View File

@@ -36,8 +36,3 @@ git \
rm -rf /work/.git rm -rf /work/.git
`, resolvconf()) `, 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" "hakurei.app/internal/pkg"
) )
var _go = H("go")
// newGo returns a specific version of the Go toolchain. // newGo returns a specific version of the Go toolchain.
func (t Toolchain) newGo( func (t Toolchain) newGo(
version, checksum string, version, checksum string,
env []string, env []string,
script string, script string,
boot pkg.Artifact, boot ...pkg.Artifact,
) pkg.Artifact { ) pkg.Artifact {
return t.NewPackage("go", version, newTar( return t.NewPackage("go", version, newTar(
"https://go.dev/dl/go"+version+".src.tar.gz", "https://go.dev/dl/go"+version+".src.tar.gz",
@@ -28,7 +26,7 @@ func (t Toolchain) newGo(
"TMPDIR=/dev/shm/go", "TMPDIR=/dev/shm/go",
}, env), }, env),
Extra: []pkg.Artifact{boot}, Extra: boot,
}, &GenericHelper{ }, &GenericHelper{
InPlace: true, InPlace: true,
Build: ` Build: `
@@ -72,13 +70,13 @@ func init() {
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) { native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
var ( var (
bootstrapEnv []string bootstrapEnv []string
bootstrapEarly pkg.Artifact bootstrapEarly []pkg.Artifact
finalEnv []string finalEnv []string
) )
switch t.arch { switch t.arch {
case "amd64": 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", "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz",
"8o9JL_ToiQKadCTb04nvBDkp8O1xiWOolAxVEqaTGodieNe4lOFEjlOxN3bwwe23", "8o9JL_ToiQKadCTb04nvBDkp8O1xiWOolAxVEqaTGodieNe4lOFEjlOxN3bwwe23",
pkg.TarGzip, pkg.TarGzip,
@@ -98,11 +96,11 @@ mkdir -p /var/tmp/
`, `,
}, },
_bash, _bash,
) )}
case "arm64", "riscv64": case "arm64", "riscv64":
bootstrapEnv = append(bootstrapEnv, "GOROOT_BOOTSTRAP=/system") bootstrapEnv = append(bootstrapEnv, "GOROOT_BOOTSTRAP=/system")
_, bootstrapEarly = t.MustLoad(H("gcc")) bootstrapEarly = t.Append(bootstrapEarly, H("gcc"))
finalEnv = append(finalEnv, "CGO_ENABLED=0") finalEnv = append(finalEnv, "CGO_ENABLED=0")
default: default:
@@ -123,7 +121,7 @@ sed -i \
echo \ echo \
'type syscallDescriptor = int' >> \ 'type syscallDescriptor = int' >> \
os/rawconn_test.go os/rawconn_test.go
`, bootstrapEarly) `, bootstrapEarly...)
go121 := t.newGo( go121 := t.newGo(
"1.21.13", "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") var _make = H("make")
// MakeHelper is the [Make] build system helper. // MakeHelper wraps the make program and its surrounding build system.
type MakeHelper struct { type MakeHelper struct {
// Do not include default extras. // Do not include default extras.
OmitDefaults bool OmitDefaults bool

View File

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

View File

@@ -1,25 +1,22 @@
package argp-standalone { package argp-standalone {
description = "hierarchical argument parsing library broken out from glibc"; description = "hierarchical argument parsing library broken out from glibc"
website = "http://www.lysator.liu.se/~nisse/misc"; website = "http://www.lysator.liu.se/~nisse/misc"
version* = "1.3"; version# = "1.3"
source = remoteTar { source = remoteTar {
url = "http://www.lysator.liu.se/~nisse/misc/"+ url = "http://www.lysator.liu.se/~nisse/misc/argp-standalone-${version}.tar.gz"
"argp-standalone-"+version+".tar.gz"; checksum = "vtW0VyO2pJ-hPyYmDI2zwSLS8QL0sPAUKC1t3zNYbwN2TmsaE-fADhaVtNd3eNFl"
checksum = "vtW0VyO2pJ-hPyYmDI2zwSLS8QL0sPAUKC1t3zNYbwN2TmsaE-fADhaVtNd3eNFl"; compress = gzip
compress = gzip; }
};
env = [ env = [
"CC=cc -std=gnu89 -fPIC", "CC=cc -std=gnu89 -fPIC"
]; ]
exec = make { exec = make {
install = ` install = `install -D -m644 /usr/src/argp-standalone/argp.h /work/system/include/argp.h
install -D -m644 /usr/src/argp-standalone/argp.h /work/system/include/argp.h install -D -m755 libargp.a /work/system/lib/libargp.a`
install -D -m755 libargp.a /work/system/lib/libargp.a }
`;
};
inputs = [ diffutils ]; inputs = [ diffutils ]
} }

View File

@@ -0,0 +1,2 @@
az 0.1.0
schema mbf

View File

@@ -1,30 +1,25 @@
package bison { package bison {
description = "a general-purpose parser generator"; description = "a general-purpose parser generator"
website = "https://www.gnu.org/software/bison"; website = "https://www.gnu.org/software/bison"
anitya = 193; anitya = 193
version* = "3.8.2"; version# = "3.8.2"
source = remoteTar { source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/bison/bison-"+version+".tar.gz"; url = "https://ftpmirror.gnu.org/gnu/bison/bison-${version}.tar.gz"
checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y"; checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y"
compress = gzip; compress = gzip
}; }
exec = make { exec = make {
check = [ check = [
"TESTSUITEFLAGS=" + jobsFlagE + "' " + skipGNUTests { "TESTSUITEFLAGS=${jobsFlagE}' ${skipGNUTests(764)}'"
tests = [ "check"
// clang miscompiles (SIGILL) ]
764, }
];
} + "'",
"check",
];
};
inputs = [ inputs = [
m4, m4
diffutils, diffutils
sed, sed
]; ]
} }

View File

@@ -1,19 +1,19 @@
package buildcatrust { package buildcatrust {
description = "transform certificate stores between formats"; description = "transform certificate stores between formats"
website = "https://github.com/nix-community/buildcatrust"; website = "https://github.com/nix-community/buildcatrust"
anitya = 233988; anitya = 233988
version* = "0.5.1"; version := "0.5.1"
source = remoteGitHub { source = remoteGitHub {
suffix = "nix-community/buildcatrust"; suffix = "nix-community/buildcatrust"
tag = "v"+version; tag = "v"+version
checksum = "oxjnuIrPVMPvD6x8VFLqB7EdbfuhouGQdtPuHDpEHGzoyH5nkxqtYN9UthMY9noA"; checksum = "oxjnuIrPVMPvD6x8VFLqB7EdbfuhouGQdtPuHDpEHGzoyH5nkxqtYN9UthMY9noA"
}; }
early = "\nrm buildcatrust/tests/test_nonhermetic.py\n"; early = "rm buildcatrust/tests/test_nonhermetic.py"
exec = pip {}; exec = pip()
inputs = [ python-flit-core ]; inputs = [ python-flit-core ]
runtime = [ python ]; runtime = [ python ]
} }

View File

@@ -1,27 +1,26 @@
package bzip2 { package bzip2 {
description = "a freely available, patent free, high-quality data compressor"; description = "a freely available, patent free, high-quality data compressor"
website = "https://sourceware.org/bzip2"; website = "https://sourceware.org/bzip2"
anitya = 237; anitya = 237
version* = "1.0.8"; version# = "1.0.8"
source = remoteTar { source = remoteTar {
url = "https://sourceware.org/pub/bzip2/bzip2-"+version+".tar.gz"; url = "https://sourceware.org/pub/bzip2/bzip2-${version}.tar.gz"
checksum = "cTLykcco7boom-s05H1JVsQi1AtChYL84nXkg_92Dm1Xt94Ob_qlMg_-NSguIK-c"; checksum = "cTLykcco7boom-s05H1JVsQi1AtChYL84nXkg_92Dm1Xt94Ob_qlMg_-NSguIK-c"
compress = gzip; compress = gzip
}; }
// uses source tree as scratch space writable
writable = true; enterSource
enterSource = true;
exec = make { exec = make {
skipConfigure = true; skipConfigure
skipCheck = true; skipCheck
inPlace = true; inPlace
make = [ make = [
"CC=cc", "CC=cc"
]; ]
install = "make PREFIX=/work/system install"; install = "make PREFIX=/work/system install"
}; }
} }

View File

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

View File

@@ -1,47 +1,47 @@
package curl { package curl {
description = "command line tool and library for transferring data with URLs"; description = "command line tool and library for transferring data with URLs"
website = "https://curl.se"; website = "https://curl.se"
anitya = 381; anitya = 381
version* = "8.20.0"; version# = "8.20.0"
source = remoteTar { source = remoteTar {
url = "https://curl.se/download/curl-"+version+".tar.bz2"; url = "https://curl.se/download/curl-${version}.tar.bz2"
checksum = "xyHXwrngIRGMasuzhn-I5MSCOhktwINbsWt1f_LuR-5jRVvyx_g6U1EQfDLEbr9r"; checksum = "xyHXwrngIRGMasuzhn-I5MSCOhktwINbsWt1f_LuR-5jRVvyx_g6U1EQfDLEbr9r"
compress = bzip2; compress = bzip2
}; }
// remove broken test // remove broken test
writable = true; writable
early = "\nchmod +w tests/data && rm -f tests/data/test459\n"; early = "chmod +w tests/data && rm -f tests/data/test459"
exec = make { exec = make {
configure = { configure = [
"with-openssl"; "with-openssl"
"with-ca-bundle": "/system/etc/ssl/certs/ca-bundle.crt"; "with-ca-bundle": "/system/etc/ssl/certs/ca-bundle.crt"
"disable-smb"; "disable-smb"
}; ]
check = [ check = [
"TFLAGS=" + jobsLFlagE, "TFLAGS=${jobsLFlagE}"
"test-nonflaky", "test-nonflaky"
]; ]
}; }
inputs = [ inputs = [
perl, perl
python, python
pkg-config, pkg-config
diffutils, diffutils
libpsl, libpsl
openssl, openssl
]; ]
runtime = [ runtime = [
zlib, zlib
zstd, zstd
libpsl, libpsl
openssl, openssl
]; ]
} }

View File

@@ -1,63 +1,63 @@
package dbus { package dbus {
description = "a message bus system"; description = "a message bus system"
website = "https://www.freedesktop.org/wiki/Software/dbus"; website = "https://www.freedesktop.org/wiki/Software/dbus"
anitya = 5356; anitya = 5356
version* = "1.16.2"; version := "1.16.2"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org"
suffix = "dbus/dbus"; suffix = "dbus/dbus"
ref = "dbus-"+version; ref = "dbus-${version}"
checksum = "INwOuNdrDG7XW5ilW_vn8JSxEa444rRNc5ho97i84I1CNF09OmcFcV-gzbF4uCyg"; checksum = "INwOuNdrDG7XW5ilW_vn8JSxEa444rRNc5ho97i84I1CNF09OmcFcV-gzbF4uCyg"
}; }
// OSError: [Errno 30] Read-only file system: '/usr/src/dbus/subprojects/packagecache' // OSError: [Errno 30] Read-only file system: '/usr/src/dbus/subprojects/packagecache'
writable = true; writable
// PermissionError: [Errno 13] Permission denied: '/usr/src/dbus/subprojects/packagecache' // PermissionError: [Errno 13] Permission denied: '/usr/src/dbus/subprojects/packagecache'
chmod = true; chmod
exec = meson { exec = meson {
setup = { setup = endi [
"Depoll": "enabled"; "Depoll": true
"Dinotify": "enabled"; "Dinotify": true
"Dx11_autolaunch": "disabled"; "Dx11_autolaunch": false
}; ]
}; }
inputs = [ inputs = [
glib, glib
libexpat, libexpat
]; ]
runtime = [ runtime = [
glib, glib
libexpat, libexpat
]; ]
} }
package xdg-dbus-proxy { package xdg-dbus-proxy {
description = "a filtering proxy for D-Bus connections"; description = "a filtering proxy for D-Bus connections"
website = "https://github.com/flatpak/xdg-dbus-proxy"; website = "https://github.com/flatpak/xdg-dbus-proxy"
anitya = 58434; anitya = 58434
version* = "0.1.7"; version := "0.1.7"
source = remoteGitHub { source = remoteGitHub {
suffix = "flatpak/xdg-dbus-proxy"; suffix = "flatpak/xdg-dbus-proxy"
tag = version; tag = version
checksum = "UW5Pe-TP-XAaN-kTbxrkOQ7eYdmlAQlr2pdreLtPT0uwdAz-7rzDP8V_8PWuZBup"; checksum = "UW5Pe-TP-XAaN-kTbxrkOQ7eYdmlAQlr2pdreLtPT0uwdAz-7rzDP8V_8PWuZBup"
}; }
exec = meson { exec = meson {
setup = { setup = endi [
"Dman": "disabled"; "Dman": false
}; ]
}; }
inputs = [ inputs = [
dbus, dbus
glib, glib
]; ]
runtime = [ glib ]; runtime = [ glib ]
} }

View File

@@ -1,33 +1,32 @@
package dtc { package dtc {
description = "The Device Tree Compiler"; description = "The Device Tree Compiler"
website = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git"; website = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git"
anitya = 16911; anitya = 16911
version* = "1.7.2"; version# = "1.7.2"
source = remoteTar { source = remoteTar {
url = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/"+ url = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/dtc-v${version}.tar.gz"
"dtc-v"+version+".tar.gz"; checksum = "vUoiRynPyYRexTpS6USweT5p4SVHvvVJs8uqFkkVD-YnFjwf6v3elQ0-Etrh00Dt"
checksum = "vUoiRynPyYRexTpS6USweT5p4SVHvvVJs8uqFkkVD-YnFjwf6v3elQ0-Etrh00Dt"; compress = gzip
compress = gzip; }
};
// works around buggy test: // works around buggy test:
// fdtdump-runtest.sh /usr/src/dtc/tests/fdtdump.dts // fdtdump-runtest.sh /usr/src/dtc/tests/fdtdump.dts
writable = true; writable
chmod = true; chmod
exec = meson { exec = meson {
setup = { setup = endi [
"Dyaml": "disabled"; "Dyaml": false
"Dstatic-build": "true"; "Dstatic-build": "true"
}; ]
}; }
inputs = [ inputs = [
flex, flex
bison, bison
m4, m4
coreutils, coreutils
diffutils, diffutils
]; ]
} }

View File

@@ -1,49 +1,48 @@
package elfutils { package elfutils {
description = "utilities and libraries to handle ELF files and DWARF data"; description = "utilities and libraries to handle ELF files and DWARF data"
website = "https://sourceware.org/elfutils"; website = "https://sourceware.org/elfutils"
anitya = 5679; anitya = 5679
version* = "0.195"; version# = "0.195"
source = remoteTar { source = remoteTar {
url = "https://sourceware.org/elfutils/ftp/"+ url = "https://sourceware.org/elfutils/ftp/${version}/elfutils-${version}.tar.bz2"
version+"/elfutils-"+version+".tar.bz2"; checksum = "JrGnBD38w8Mj0ZxDw3fKlRBFcLvRKu8rcYnX35R9yTlUSYnzTazyLboG-a2CsJlu"
checksum = "JrGnBD38w8Mj0ZxDw3fKlRBFcLvRKu8rcYnX35R9yTlUSYnzTazyLboG-a2CsJlu"; compress = bzip2
compress = bzip2; }
};
env = [ env = [
"CC=cc" + "CC=cc" +
// nonstandard glibc extension // nonstandard glibc extension
" -DFNM_EXTMATCH=0", " -DFNM_EXTMATCH=0"
]; ]
exec = make { exec = make {
// nonstandard glibc extension // nonstandard glibc extension
skipCheck = true; skipCheck
configure = { configure = {
"enable-deterministic-archives"; "enable-deterministic-archives"
}; }
}; }
inputs = [ inputs = [
m4, m4
pkg-config, pkg-config
zlib, zlib
bzip2, bzip2
zstd, zstd
argp-standalone, argp-standalone
musl-fts, musl-fts
musl-obstack, musl-obstack
kernel-headers, kernel-headers
]; ]
runtime = [ runtime = [
zlib, zlib
bzip2, bzip2
zstd, zstd
musl-fts, musl-fts
musl-obstack, musl-obstack
]; ]
} }

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

@@ -1,47 +1,47 @@
package firmware { package firmware {
description = "firmware blobs for use with the Linux kernel"; description = "firmware blobs for use with the Linux kernel"
website = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"; website = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"
anitya = 141464; anitya = 141464
version* = "20260410"; version# = "20260519"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.com"; domain = "gitlab.com"
suffix = "kernel-firmware/linux-firmware"; suffix = "kernel-firmware/linux-firmware"
ref = version; ref = version
checksum = "J8PdQlGqwrivpskPzbL6xacqR6mlKtXpe5RpzFfVzKPAgG81ZRXsc3qrxwdGJbil"; checksum = "l-wBRTWclYnJsgV4qtUV1-UL5Y4nknAPre8CMe0dH7PxtAqbaeudEIM_Fnuj0TCV"
}; }
// dedup creates temporary file // dedup creates temporary file
writable = true; writable
// does not use configure // does not use configure
enterSource = true; enterSource
env = [ env = [
"HOME=/proc/nonexistent", "HOME=/proc/nonexistent"
]; ]
exec = make { exec = make {
omitDefaults = true; omitDefaults
skipConfigure = true; skipConfigure
inPlace = true; inPlace
make = [ make = [
"DESTDIR=/work/system", "DESTDIR=/work/system"
"install-zst", "install-zst"
]; ]
// requires pre-commit // requires pre-commit
skipCheck = true; skipCheck
install = "make " + jobsFlagE + " DESTDIR=/work/system dedup"; install = "make ${jobFlagsE} DESTDIR=/work/system dedup"
}; }
inputs = [ inputs = [
parallel, parallel
rdfind, rdfind
zstd, zstd
findutils, findutils
coreutils, coreutils
]; ]
} }

View File

@@ -1,18 +1,18 @@
package flex { package flex {
description = "scanner generator for lexing in C and C++"; description = "scanner generator for lexing in C and C++"
website = "https://github.com/westes/flex"; website = "https://github.com/westes/flex"
anitya = 819; anitya = 819
version* = "2.6.4"; version# = "2.6.4"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "westes/flex"; suffix = "westes/flex"
tag = "v"+version; tag = "v"+version
name = "flex-"+version+".tar.gz"; name = "flex-${version}.tar.gz"
checksum = "p9POjQU7VhgOf3x5iFro8fjhy0NOanvA7CTeuWS_veSNgCixIJshTrWVkc5XLZkB"; checksum = "p9POjQU7VhgOf3x5iFro8fjhy0NOanvA7CTeuWS_veSNgCixIJshTrWVkc5XLZkB"
compress = gzip; compress = gzip
}; };
exec = make {}; exec = make();
inputs = [ m4 ]; inputs = [ m4 ];
} }

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

@@ -1,15 +1,14 @@
package freetype { package freetype {
description = "a freely available software library to render fonts"; description = "a freely available software library to render fonts"
website = "http://www.freetype.org"; website = "http://www.freetype.org"
anitya = 854; anitya = 854
version* = "2.14.3"; version# = "2.14.3"
source = remoteTar { source = remoteTar {
url = "https://download.savannah.gnu.org/releases/freetype/"+ url = "https://download.savannah.gnu.org/releases/freetype/freetype-${version}.tar.gz"
"freetype-"+version+".tar.gz"; checksum = "-WfLv8fVJNyCHpP_lriiDzOcVbBL9ajdQ3tl8AzIIUa9-8sVpU9irxOmSMgRHWYz"
checksum = "-WfLv8fVJNyCHpP_lriiDzOcVbBL9ajdQ3tl8AzIIUa9-8sVpU9irxOmSMgRHWYz"; compress = gzip
compress = gzip; }
};
exec = make {}; exec = make()
} }

View File

@@ -1,33 +1,33 @@
package fuse { package fuse {
description = "the reference implementation of the Linux FUSE interface"; description = "the reference implementation of the Linux FUSE interface"
website = "https://github.com/libfuse/libfuse"; website = "https://github.com/libfuse/libfuse"
anitya = 861; anitya = 861
version* = "3.18.2"; version := "3.18.2"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "libfuse/libfuse"; suffix = "libfuse/libfuse"
tag = "fuse-"+version; tag = "fuse-"+version
name = "fuse-"+version+".tar.gz"; name = "fuse-${version}.tar.gz"
checksum = "iL-7b7eUtmlVSf5cSq0dzow3UiqSjBmzV3cI_ENPs1tXcHdktkG45j1V12h-4jZe"; checksum = "iL-7b7eUtmlVSf5cSq0dzow3UiqSjBmzV3cI_ENPs1tXcHdktkG45j1V12h-4jZe"
compress = gzip; compress = gzip
}; }
exec = meson { exec = meson {
setup = { setup = [
"Ddefault_library": "both"; "Ddefault_library": "both";
"Dtests": "true"; "Dtests": "true";
"Duseroot": "false"; "Duseroot": "false";
"Dinitscriptdir": "/system/etc"; "Dinitscriptdir": "/system/etc";
}; ]
postCompile = "python3 -m pytest test/"; postCompile = "python3 -m pytest test/"
// this project uses pytest // this project uses pytest
skipTest = true; skipTest
}; }
inputs = [ inputs = [
python-pytest, python-pytest
kernel-headers, kernel-headers
]; ]
} }

View File

@@ -1,95 +1,88 @@
package git { package git {
description = "distributed version control system"; description = "distributed version control system"
website = "https://www.git-scm.com"; website = "https://www.git-scm.com"
anitya = 5350; anitya = 5350
version* = "2.54.0"; version := "2.54.0"
source = remoteTar { source = remoteTar {
url = "https://www.kernel.org/pub/software/scm/git/"+ url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.gz"
"git-"+version+".tar.gz"; checksum = "7vGKtFOJGqY8DO4e8UMRax7dLgImXKQz5MMalec6MlgYrsarffSJjgOughwRFpSH"
checksum = "7vGKtFOJGqY8DO4e8UMRax7dLgImXKQz5MMalec6MlgYrsarffSJjgOughwRFpSH"; compress = gzip
compress = gzip; }
};
early = ` early = `ln -s ../../system/bin/perl /usr/bin/ || true
ln -s ../../system/bin/perl /usr/bin/ || true # test suite assumes apache
rm -f /system/bin/httpd`
# test suite assumes apache
rm -f /system/bin/httpd
`;
// uses source tree as scratch space // uses source tree as scratch space
enterSource = true; enterSource
exec = make { exec = make {
inPlace = true; inPlace
generate = "make configure"; generate = "make configure"
preMake = ` preMake = r`function disable_test {
function disable_test { local test=$1 pattern=${2:-''}
local test=$1 pattern=${2:-''} if [ $# -eq 1 ]; then
if [ $# -eq 1 ]; then rm "t/${test}.sh"
rm "t/${test}.sh" else
else sed -i "t/${test}.sh" \
sed -i "t/${test}.sh" \ -e "/^\s*test_expect_.*$pattern/,/^\s*' *\$/{s/^/: #/}"
-e "/^\s*test_expect_.*$pattern/,/^\s*' *\$/{s/^/: #/}" fi
fi }
} disable_test t1800-hook
disable_test t5319-multi-pack-index
disable_test t1800-hook disable_test t1305-config-include
disable_test t5319-multi-pack-index disable_test t3900-i18n-commit
disable_test t1305-config-include disable_test t3507-cherry-pick-conflict
disable_test t3900-i18n-commit disable_test t4201-shortlog
disable_test t3507-cherry-pick-conflict disable_test t5303-pack-corruption-resilience
disable_test t4201-shortlog disable_test t4301-merge-tree-write-tree
disable_test t5303-pack-corruption-resilience disable_test t8005-blame-i18n
disable_test t4301-merge-tree-write-tree disable_test t9350-fast-export
disable_test t8005-blame-i18n disable_test t9300-fast-import
disable_test t9350-fast-export disable_test t0211-trace2-perf
disable_test t9300-fast-import disable_test t1517-outside-repo
disable_test t0211-trace2-perf disable_test t2200-add-update
disable_test t1517-outside-repo disable_test t0027-auto-crlf
disable_test t2200-add-update disable_test t7513-interpret-trailers
disable_test t0027-auto-crlf disable_test t7703-repack-geometric
disable_test t7513-interpret-trailers disable_test t3705-add-sparse-checkout
disable_test t7703-repack-geometric disable_test t7002-mv-sparse-checkout
disable_test t3705-add-sparse-checkout disable_test t1451-fsck-buffer
disable_test t7002-mv-sparse-checkout disable_test t4104-apply-boundary
disable_test t1451-fsck-buffer disable_test t4200-rerere
disable_test t4104-apply-boundary disable_test t5515-fetch-merge-logic`
disable_test t4200-rerere
disable_test t5515-fetch-merge-logic
`;
check = [ check = [
"-C t", "-C t"
`GIT_PROVE_OPTS="--jobs 32 --failures"`, `GIT_PROVE_OPTS="--jobs 32 --failures"`
"prove", "prove"
]; ]
install = `make \ install = r`make \
` + jobsFlagE + ` \ ${jobsFlagE} \
DESTDIR=/work \ DESTDIR=/work \
NO_INSTALL_HARDLINKS=1 \ NO_INSTALL_HARDLINKS=1 \
install`; install`
}; }
inputs = [ inputs = [
// test suite hangs on mksh // test suite hangs on mksh
bash, bash
diffutils, diffutils
autoconf, autoconf
gettext, gettext
zlib, zlib
curl, curl
libexpat, libexpat
]; ]
runtime = [ runtime = [
zlib, zlib
curl, curl
libexpat, libexpat
]; ]
} }

View File

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

View File

@@ -1,31 +1,31 @@
package glslang { package glslang {
description = "reference front end for GLSL/ESSL"; description = "reference front end for GLSL/ESSL"
website = "https://github.com/KhronosGroup/glslang"; website = "https://github.com/KhronosGroup/glslang"
anitya = 205796; anitya = 205796
version* = "16.3.0"; version# = "16.3.0"
source = remoteGitHub { source = remoteGitHub {
suffix = "KhronosGroup/glslang"; suffix = "KhronosGroup/glslang"
tag = version; tag = version
checksum = "xyqDf8k3-D0_BXHGi0uLgMglnJ05Rf3j73QgbDs3sGtKNdBIQhY8JfqX1NcNoJQN"; checksum = "xyqDf8k3-D0_BXHGi0uLgMglnJ05Rf3j73QgbDs3sGtKNdBIQhY8JfqX1NcNoJQN"
}; }
// test suite writes to source // test suite writes to source
writable = true; writable
chmod = true; chmod
exec = cmake { exec = cmake {
cache = { cache = {
"BUILD_SHARED_LIBS": "ON"; "BUILD_SHARED_LIBS": "ON"
"ALLOW_EXTERNAL_SPIRV_TOOLS": "ON"; "ALLOW_EXTERNAL_SPIRV_TOOLS": "ON"
}; }
}; }
inputs = [ inputs = [
python, python
bash, bash
diffutils, diffutils
spirv-tools, spirv-tools
]; ]
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,14 @@
package googletest { package googletest {
description = "Google Testing and Mocking Framework"; description = "Google Testing and Mocking Framework"
exclude = true; exclude
anitya = 18290; anitya = 18290
version* = "1.17.0"; version# = "1.17.0"
output = remoteGitHubRelease { output = remoteGitHubRelease {
suffix = "google/googletest"; suffix = "google/googletest"
tag = "v"+version; tag = "v"+version
name = "googletest-"+version+".tar.gz"; name = "googletest-${version}.tar.gz"
checksum = "-1r3ch8vPP8COF7xUH5hyX6bEJ4dN9TQh4IxrmpHr6vaig6mA3DdUpV4cihQ_9dw"; checksum = "-1r3ch8vPP8COF7xUH5hyX6bEJ4dN9TQh4IxrmpHr6vaig6mA3DdUpV4cihQ_9dw"
compress = gzip; compress = gzip
}; }
} }

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

View File

@@ -1,23 +1,23 @@
package hwdata { package hwdata {
description = "contains various hardware identification and configuration data"; description = "contains various hardware identification and configuration data"
website = "https://github.com/vcrhonek/hwdata"; website = "https://github.com/vcrhonek/hwdata"
anitya = 5387; anitya = 5387
version* = "0.407"; version# = "0.407"
source = remoteGitHub { source = remoteGitHub {
suffix = "vcrhonek/hwdata"; suffix = "vcrhonek/hwdata"
tag = "v"+version; tag = "v"+version
checksum = "6p1XD0CRuzt6hLfjv4ShKBW934BexmoPkRrmwxD4J63fBVCzVBRHyF8pVJdW_Xjm"; checksum = "6p1XD0CRuzt6hLfjv4ShKBW934BexmoPkRrmwxD4J63fBVCzVBRHyF8pVJdW_Xjm"
}; }
writable = true; writable
enterSource = true; enterSource
exec = make { exec = make {
// awk: fatal: cannot open file `hwdata.spec' for reading: No such file or directory // awk: fatal: cannot open file `hwdata.spec' for reading: No such file or directory
inPlace = true; inPlace
// lspci: Unknown option 'A' (see "lspci --help") // lspci: Unknown option 'A' (see "lspci --help")
skipCheck = true; skipCheck
}; }
} }

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

@@ -1,16 +1,16 @@
# #
# Automatically generated file; DO NOT EDIT. # 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_GCC_VERSION=0
CONFIG_CC_IS_CLANG=y CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=220105 CONFIG_CLANG_VERSION=220106
CONFIG_AS_IS_LLVM=y CONFIG_AS_IS_LLVM=y
CONFIG_AS_VERSION=220105 CONFIG_AS_VERSION=220106
CONFIG_LD_VERSION=0 CONFIG_LD_VERSION=0
CONFIG_LD_IS_LLD=y CONFIG_LD_IS_LLD=y
CONFIG_LLD_VERSION=220105 CONFIG_LLD_VERSION=220106
CONFIG_RUSTC_VERSION=0 CONFIG_RUSTC_VERSION=0
CONFIG_RUSTC_LLVM_VERSION=0 CONFIG_RUSTC_LLVM_VERSION=0
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y

View File

@@ -1,16 +1,16 @@
# #
# Automatically generated file; DO NOT EDIT. # 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_GCC_VERSION=0
CONFIG_CC_IS_CLANG=y CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=220104 CONFIG_CLANG_VERSION=220106
CONFIG_AS_IS_LLVM=y CONFIG_AS_IS_LLVM=y
CONFIG_AS_VERSION=220104 CONFIG_AS_VERSION=220106
CONFIG_LD_VERSION=0 CONFIG_LD_VERSION=0
CONFIG_LD_IS_LLD=y CONFIG_LD_IS_LLD=y
CONFIG_LLD_VERSION=220104 CONFIG_LLD_VERSION=220106
CONFIG_RUSTC_VERSION=0 CONFIG_RUSTC_VERSION=0
CONFIG_RUSTC_LLVM_VERSION=0 CONFIG_RUSTC_LLVM_VERSION=0
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y 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_DWARF4 is not set
# CONFIG_DEBUG_INFO_DWARF5 is not set # CONFIG_DEBUG_INFO_DWARF5 is not set
# CONFIG_DEBUG_INFO_REDUCED 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_DEBUG_INFO_SPLIT is not set
# CONFIG_GDB_SCRIPTS is not set # CONFIG_GDB_SCRIPTS is not set
CONFIG_FRAME_WARN=2048 CONFIG_FRAME_WARN=2048

View File

@@ -1,16 +1,16 @@
# #
# Automatically generated file; DO NOT EDIT. # 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_GCC_VERSION=0
CONFIG_CC_IS_CLANG=y CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=220102 CONFIG_CLANG_VERSION=220106
CONFIG_AS_IS_LLVM=y CONFIG_AS_IS_LLVM=y
CONFIG_AS_VERSION=220102 CONFIG_AS_VERSION=220106
CONFIG_LD_VERSION=0 CONFIG_LD_VERSION=0
CONFIG_LD_IS_LLD=y CONFIG_LD_IS_LLD=y
CONFIG_LLD_VERSION=220102 CONFIG_LLD_VERSION=220106
CONFIG_RUSTC_VERSION=0 CONFIG_RUSTC_VERSION=0
CONFIG_RUSTC_LLVM_VERSION=0 CONFIG_RUSTC_LLVM_VERSION=0
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y 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_DWARF4 is not set
# CONFIG_DEBUG_INFO_DWARF5 is not set # CONFIG_DEBUG_INFO_DWARF5 is not set
# CONFIG_DEBUG_INFO_REDUCED 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_GDB_SCRIPTS is not set
CONFIG_FRAME_WARN=2048 CONFIG_FRAME_WARN=2048
# CONFIG_STRIP_ASM_SYMS is not set # CONFIG_STRIP_ASM_SYMS is not set

View File

@@ -3,11 +3,11 @@ package kernel-source {
website = "https://kernel.org"; website = "https://kernel.org";
exclude = true; exclude = true;
version* = "6.12.87"; version* = "6.12.90";
output = remoteTar { output = remoteTar {
url = "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/"+ url = "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/"+
"snapshot/linux-"+version+".tar.gz"; "snapshot/linux-"+version+".tar.gz";
checksum = "QTl5teIy0K5KsOLYGHQ3FbnPCZNRH2bySXVzghiOoHDdM3zAcSPUkmdly85lMzHx"; checksum = "l9d_2veqbj3RVDp8L6vhV7j2DOLQtzQUqnzPFuJBR_VD8a3k4mvBQRR1-LE-SWZJ";
compress = gzip; compress = gzip;
}; };
} }
@@ -45,9 +45,9 @@ cat \
checksum = arch { checksum = arch {
default = ""; default = "";
amd64 = "lCmBNcMeUmXifg0vecKOPy3GAaFcJSmOPnf3wit9xYTDSTsFADPt1xxUFfmTn1fD"; amd64 = "FkIf0_SD4g3mK_VWa9FJURjLS66YmknYTh49uMDlDSnoQpq6BqBymAm47joDwdWi";
arm64 = "PlRxp4JzZeMGx7CScRlT1NBzc2NVyJlb8Gm8sa3ofFght9ZT101ZJhcIXiCkHSHM"; arm64 = "bJ6ZLJhDR3K9So9zLh5s31hQPm_27gyl7XDVmCgdvyJGKDnffCKdtlE0HuvEbvye";
riscv64 = "z0MI2uSA31k_HtIsqGoCy-Vcf3mYm_zBDR_jN1tntg2Fdvz6YTwCU9YlHbYnpNbx"; riscv64 = "bbZCVNS1ryP-XoW9Gwx3ugvhvOA6d5UuO6gE7-Gv82g_bQN1hk4GG0SXBo-otyqS";
}; };
inputs = [ rsync ]; 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 KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
#define LINUX_VERSION_MAJOR 6 #define LINUX_VERSION_MAJOR 6
#define LINUX_VERSION_PATCHLEVEL 12 #define LINUX_VERSION_PATCHLEVEL 12
#define LINUX_VERSION_SUBLEVEL 84 #define LINUX_VERSION_SUBLEVEL 90

View File

@@ -1,40 +1,39 @@
package kmod { package kmod {
description = "a set of tools to handle common tasks with Linux kernel modules"; description = "a set of tools to handle common tasks with Linux kernel modules"
website = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git"; website = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git"
anitya = 1517; anitya = 1517
version* = "34.2"; version# = "34.2"
source = remoteTar { source = remoteTar {
url = "https://www.kernel.org/pub/linux/utils/kernel/"+ url = "https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-${version}.tar.gz"
"kmod/kmod-"+version+".tar.gz"; checksum = "0K7POeTKxMhExsaTsnKAC6LUNsRSfe6sSZxWONPbOu-GI_pXOw3toU_BIoqfBhJV"
checksum = "0K7POeTKxMhExsaTsnKAC6LUNsRSfe6sSZxWONPbOu-GI_pXOw3toU_BIoqfBhJV"; compress = gzip
compress = gzip; }
};
exec = meson { exec = meson {
setup = { setup = [
"Dmoduledir": "/system/lib/modules"; "Dmoduledir": "/system/lib/modules"
"Dsysconfdir": "/system/etc"; "Dsysconfdir": "/system/etc"
"Dbashcompletiondir": "no"; "Dbashcompletiondir": "no"
"Dfishcompletiondir": "no"; "Dfishcompletiondir": "no"
"Dxz": "disabled"; "Dxz": "disabled"
"Dmanpages": "false"; "Dmanpages": "false"
}; ]
// makes assumptions about the running kernel // makes assumptions about the running kernel
skipTest = true; skipTest
}; }
inputs = [ inputs = [
zlib, zlib
zstd, zstd
openssl, openssl
kernel-headers, kernel-headers
]; ]
runtime = [ runtime = [
zlib, zlib
zstd, zstd
openssl, openssl
]; ]
} }

View File

@@ -1,23 +1,23 @@
package libbsd { package libbsd {
description = "provides useful functions commonly found on BSD systems"; description = "provides useful functions commonly found on BSD systems"
website = "https://libbsd.freedesktop.org"; website = "https://libbsd.freedesktop.org"
anitya = 1567; anitya = 1567
version* = "0.12.2"; version# = "0.12.2"
source = remoteGit { source = remoteGit {
url = "https://gitlab.freedesktop.org/libbsd/libbsd.git"; url = "https://gitlab.freedesktop.org/libbsd/libbsd.git"
tag = version; tag = version
checksum = "NVS0xFLTwSP8JiElEftsZ-e1_C-IgJhHrHE77RwKt5178M7r087waO-zYx2_dfGX"; checksum = "NVS0xFLTwSP8JiElEftsZ-e1_C-IgJhHrHE77RwKt5178M7r087waO-zYx2_dfGX"
}; }
exec = make { exec = make {
generate = "echo '" + version + "' > .dist-version && ./autogen"; generate = "echo '${version}' > .dist-version && ./autogen"
}; }
inputs = [ inputs = [
automake, automake
libtool, libtool
libmd, libmd
]; ]
} }

View File

@@ -1,44 +1,43 @@
package libcap { package libcap {
description = "a library for getting and setting POSIX.1e draft 15 capabilities"; description = "a library for getting and setting POSIX.1e draft 15 capabilities"
website = "https://sites.google.com/site/fullycapable"; website = "https://sites.google.com/site/fullycapable"
anitya = 1569; anitya = 1569
version* = "2.78"; version# = "2.78"
source = remoteTar { source = remoteTar {
url = "https://git.kernel.org/pub/scm/libs/libcap/libcap.git/"+ url = "https://git.kernel.org/pub/scm/libs/libcap/libcap.git/snapshot/libcap-${version}.tar.gz"
"snapshot/libcap-"+version+".tar.gz"; checksum = "wFdUkBhFMD9InPnrBZyegWrlPSAg_9JiTBC-eSFyWWlmbzL2qjh2mKxr9Kx2a8ut"
checksum = "wFdUkBhFMD9InPnrBZyegWrlPSAg_9JiTBC-eSFyWWlmbzL2qjh2mKxr9Kx2a8ut"; compress = gzip
compress = gzip; }
};
// uses source tree as scratch space // uses source tree as scratch space
writable = true; writable
chmod = true; chmod
env = [ env = [
"prefix=/system", "prefix=/system"
"lib=lib", "lib=lib"
]; ]
early = "\nln -s ../system/bin/bash /bin/\n"; early = "ln -s ../system/bin/bash /bin/"
exec = make { exec = make {
skipConfigure = true; skipConfigure
inPlace = true; inPlace
make = [ make = [
"CC=cc", "CC=cc"
"all", "all"
]; ]
check = [ check = [
"CC=cc", "CC=cc"
"test", "test"
]; ]
}; }
inputs = [ inputs = [
bash, bash
diffutils, diffutils
]; ]
} }

View File

@@ -1,21 +1,21 @@
package libdisplay-info { package libdisplay-info {
description = "EDID and DisplayID library"; description = "EDID and DisplayID library"
website = "https://gitlab.freedesktop.org/emersion/libdisplay-info"; website = "https://gitlab.freedesktop.org/emersion/libdisplay-info"
anitya = 326668; anitya = 326668
version* = "0.3.0"; version := "0.3.0"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org"
suffix = "emersion/libdisplay-info"; suffix = "emersion/libdisplay-info"
ref = version; ref = version
checksum = "yjOqPUHHYgRtpqGw5RI1n2Q1_hO5j0LiFNMbjcRWV4Nf71XwwoC9fZMlKBDeLchT"; checksum = "yjOqPUHHYgRtpqGw5RI1n2Q1_hO5j0LiFNMbjcRWV4Nf71XwwoC9fZMlKBDeLchT"
}; }
exec = meson {}; exec = meson()
inputs = [ inputs = [
diffutils, diffutils
hwdata, hwdata
]; ]
} }

View File

@@ -1,29 +1,29 @@
package libdrm { package libdrm {
description = "a userspace library for accessing the DRM"; description = "a userspace library for accessing the DRM"
website = "https://dri.freedesktop.org"; website = "https://dri.freedesktop.org"
anitya = 1596; anitya = 1596
version* = "2.4.133"; version# = "2.4.133"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org"
suffix = "mesa/libdrm"; suffix = "mesa/libdrm"
ref = "libdrm-"+version; ref = "libdrm-"+version
checksum = "bfj296NcR9DndO11hqDbSRFPqaweSLMqRk3dlCPZpM6FONX1WZ9J4JdbTDMUd1rU"; checksum = "bfj296NcR9DndO11hqDbSRFPqaweSLMqRk3dlCPZpM6FONX1WZ9J4JdbTDMUd1rU"
}; }
exec = meson { exec = meson {
setup = { setup = endi [
"Dintel": "enabled"; "Dintel": true
}; ]
}; }
inputs = [ inputs = [
// symbols check fail with llvm nm // symbols check fail with llvm nm
binutils, binutils
libpciaccess, libpciaccess
kernel-headers, kernel-headers
]; ]
runtime = [ libpciaccess ]; runtime = [ libpciaccess ]
} }

View File

@@ -1,21 +1,21 @@
package libepoxy { package libepoxy {
description = "a library for handling OpenGL function pointer management"; description = "a library for handling OpenGL function pointer management"
website = "https://github.com/anholt/libepoxy"; website = "https://github.com/anholt/libepoxy"
anitya = 6090; anitya = 6090
version* = "1.5.10"; version# = "1.5.10"
source = remoteGitHub { source = remoteGitHub {
suffix = "anholt/libepoxy"; suffix = "anholt/libepoxy"
tag = version; tag = version
checksum = "OHI8wshrlGw6BMGrmSyejJtwzM2gPhyFJrTsKxULyKMmYrfgcOe7Iw2ibVoUND_Q"; checksum = "OHI8wshrlGw6BMGrmSyejJtwzM2gPhyFJrTsKxULyKMmYrfgcOe7Iw2ibVoUND_Q"
}; }
exec = meson { exec = meson {
setup = { setup = yn [
"Dglx": "no"; "Dglx": false
"Degl": "no"; "Degl": false
}; ]
}; }
inputs = [ libX11 ]; inputs = [ libX11 ]
} }

View File

@@ -1,14 +1,14 @@
package libev { package libev {
description = "a full-featured and high-performance event loop"; description = "a full-featured and high-performance event loop"
website = "http://libev.schmorp.de"; website = "http://libev.schmorp.de"
anitya = 1605; anitya = 1605
version* = "4.33"; version# = "4.33"
source = remoteTar { source = remoteTar {
url = "https://dist.schmorp.de/libev/Attic/libev-"+version+".tar.gz"; url = "https://dist.schmorp.de/libev/Attic/libev-${version}.tar.gz"
checksum = "774eSXV_4k8PySRprUDChbEwsw-kzjIFnJ3MpNOl5zDpamBRvC3BqPyRxvkwcL6_"; checksum = "774eSXV_4k8PySRprUDChbEwsw-kzjIFnJ3MpNOl5zDpamBRvC3BqPyRxvkwcL6_"
compress = gzip; compress = gzip
}; }
exec = make {}; exec = make()
} }

View File

@@ -1,22 +1,18 @@
package libexpat { package libexpat {
description = "a stream-oriented XML parser library"; description = "a stream-oriented XML parser library"
website = "https://libexpat.github.io"; website = "https://libexpat.github.io"
anitya = 770; anitya = 770
version* = "2.8.1"; version# = "2.8.1"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "libexpat/libexpat"; suffix = "libexpat/libexpat"
tag = "R_"+replace { tag = "R_"+replace(version, ".", "_")
s = version; name = "expat-${version}.tar.bz2";
old = "."; checksum = "iMEtbOJhQfGof2GxSlxffQSI1va_NDDQ9VIuqcPbNZ0291Dr8wttD5QecYyjIQap"
new = "_"; compress = bzip2
}; }
name = "expat-"+version+".tar.bz2";
checksum = "iMEtbOJhQfGof2GxSlxffQSI1va_NDDQ9VIuqcPbNZ0291Dr8wttD5QecYyjIQap";
compress = bzip2;
};
exec = make {}; exec = make()
inputs = [ bash ]; inputs = [ bash ]
} }

View File

@@ -1,18 +1,18 @@
package libffi { package libffi {
description = "a portable, high level programming interface to various calling conventions"; description = "a portable, high level programming interface to various calling conventions"
website = "https://sourceware.org/libffi"; website = "https://sourceware.org/libffi"
anitya = 1611; anitya = 1611
version* = "3.5.2"; version# = "3.5.2"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "libffi/libffi"; suffix = "libffi/libffi"
tag = "v"+version; tag = "v"+version
name = "libffi-"+version+".tar.gz"; name = "libffi-${version}.tar.gz"
checksum = "2_Q-ZNBBbVhltfL5zEr0wljxPegUimTK4VeMSiwJEGksls3n4gj3lV0Ly3vviSFH"; checksum = "2_Q-ZNBBbVhltfL5zEr0wljxPegUimTK4VeMSiwJEGksls3n4gj3lV0Ly3vviSFH"
compress = gzip; compress = gzip
}; }
exec = make {}; exec = make()
inputs = [ kernel-headers ]; inputs = [ kernel-headers ]
} }

View File

@@ -1,25 +1,25 @@
package libgd { package libgd {
description = "an open source code library for the dynamic creation of images"; description = "an open source code library for the dynamic creation of images"
website = "https://libgd.github.io"; website = "https://libgd.github.io"
anitya = 880; anitya = 880
version* = "2.3.3"; version# = "2.3.3"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "libgd/libgd"; suffix = "libgd/libgd"
tag = "gd-"+version; tag = "gd"+version
name = "libgd-"+version+".tar.gz"; name = "libgd-${version}.tar.gz"
checksum = "8T-sh1_FJT9K9aajgxzh8ot6vWIF-xxjcKAHvTak9MgGUcsFfzP8cAvvv44u2r36"; checksum = "8T-sh1_FJT9K9aajgxzh8ot6vWIF-xxjcKAHvTak9MgGUcsFfzP8cAvvv44u2r36"
compress = gzip; compress = gzip
}; }
env = [ env = [
"TMPDIR=/dev/shm/gd", "TMPDIR=/dev/shm/gd"
]; ]
early = "\nmkdir /dev/shm/gd\n"; early = "mkdir /dev/shm/gd"
exec = make {}; exec = make()
inputs = [ zlib ]; inputs = [ zlib ]
runtime = [ zlib ]; runtime = [ zlib ]
} }

View File

@@ -1,38 +1,36 @@
package libglvnd { package libglvnd {
description = "The GL Vendor-Neutral Dispatch library"; description = "The GL Vendor-Neutral Dispatch library"
website = "https://gitlab.freedesktop.org/glvnd/libglvnd"; website = "https://gitlab.freedesktop.org/glvnd/libglvnd"
anitya = 12098; anitya = 12098
version* = "1.7.0"; version# = "1.7.0"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org"
suffix = "glvnd/libglvnd"; suffix = "glvnd/libglvnd"
ref = "v"+version; ref = "v"+version
checksum = "eIQJK2sgFQDHdeFkQO87TrSUaZRFG4y2DrwA8Ut-sGboI59uw1OOiIVqq2AIwnGY"; checksum = "eIQJK2sgFQDHdeFkQO87TrSUaZRFG4y2DrwA8Ut-sGboI59uw1OOiIVqq2AIwnGY"
}; }
exec = meson { exec = meson {
setup = { setup = endi [
"Dx11": "enabled"; "Dx11": true
"Dglx": "enabled"; "Dglx": true
}; ]
postCompile = ` postCompile = `export DISPLAY=':0'
export DISPLAY=':0' Xvfb &
Xvfb & XVFB_PID="$!"
XVFB_PID="$!" trap 'kill $XVFB_PID && wait $XVFB_PID' EXIT`
trap 'kill $XVFB_PID && wait $XVFB_PID' EXIT }
`;
};
inputs = [ inputs = [
// symbols check fail with llvm nm // symbols check fail with llvm nm
binutils, binutils
// test suite wants X server // test suite wants X server
xserver, xserver
libXext, libXext
]; ]
runtime = [ libXext ]; runtime = [ libXext ]
} }

View File

@@ -1,22 +1,22 @@
package libmd { package libmd {
description = "Message Digest functions from BSD systems"; description = "Message Digest functions from BSD systems"
website = "https://www.hadrons.org/software/libmd"; website = "https://www.hadrons.org/software/libmd"
anitya = 15525; anitya = 15525
version* = "1.2.0"; version# = "1.2.0"
source = remoteGit { source = remoteGit {
url = "https://git.hadrons.org/git/libmd.git"; url = "https://git.hadrons.org/git/libmd.git"
tag = version; tag = version
checksum = "1rJ6joAO0wwMZvSfnRNkc1MOhywyAq7SM8VmF92NvDtv7Qdl1LRbjm5fg_DFFtGj"; checksum = "1rJ6joAO0wwMZvSfnRNkc1MOhywyAq7SM8VmF92NvDtv7Qdl1LRbjm5fg_DFFtGj"
}; }
exec = make { exec = make {
generate = "echo '" + version + "' > .dist-version && ./autogen"; generate = "echo '${version}' > .dist-version && ./autogen"
preMake = "\ninstall -D /usr/src/libmd/src/helper.c src/helper.c\n"; preMake = "install -D /usr/src/libmd/src/helper.c src/helper.c"
}; }
inputs = [ inputs = [
automake, automake
libtool, libtool
]; ]
} }

View File

@@ -1,27 +1,18 @@
package libpng { package libpng {
description = "the official PNG reference library"; description = "the official PNG reference library"
website = "https://www.libpng.org/pub/png/libpng.html"; website = "https://www.libpng.org/pub/png/libpng.html"
anitya = 1705; anitya = 1705
version* = "1.6.58"; version# = "1.6.58"
source = remoteTar { source = remoteTar {
url = "https://downloads.sourceforge.net/project/libpng/libpng"+ url = "https://downloads.sourceforge.net/project/libpng/libpng"+ trimPatch(version)
join { + "/${version}/libpng-${version}.tar.gz"
elems = slice { checksum = "m_a5lROJH7vmF3cMjqwTUqURuQLhV1JQx2ySPzcN3VPdgDB9pG3UINsIx_mtkr-t"
elems = split { compress = gzip
s = version; }
sep = ".";
n = 3;
};
end = 2;
};
}+"/"+version+"/libpng-"+version+".tar.gz";
checksum = "m_a5lROJH7vmF3cMjqwTUqURuQLhV1JQx2ySPzcN3VPdgDB9pG3UINsIx_mtkr-t";
compress = gzip;
};
exec = make {}; exec = make()
inputs = [ zlib ]; inputs = [ zlib ]
runtime = [ zlib ]; runtime = [ zlib ]
} }

View File

@@ -1,25 +1,22 @@
package libpsl { package libpsl {
description = "provides functions to work with the Mozilla Public Suffix List"; description = "provides functions to work with the Mozilla Public Suffix List"
website = "https://rockdaboot.github.io/libpsl"; website = "https://rockdaboot.github.io/libpsl"
anitya = 7305; anitya = 7305
version* = "0.21.5"; version# = "0.21.5"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "rockdaboot/libpsl"; suffix = "rockdaboot/libpsl"
tag = version; tag = version
name = "libpsl-"+version+".tar.gz"; name = "libpsl-${version}.tar.gz"
checksum = "XjfxSzh7peG2Vg4vJlL8z4JZJLcXqbuP6pLWkrGCmRxlnYUFTKNBqWGHCxEOlCad"; checksum = "XjfxSzh7peG2Vg4vJlL8z4JZJLcXqbuP6pLWkrGCmRxlnYUFTKNBqWGHCxEOlCad"
compress = gzip; compress = gzip
}; }
writable = true; writable
early = ` early = `test_disable() { chmod +w "$2" && echo "$1" > "$2"; }
test_disable() { chmod +w "$2" && echo "$1" > "$2"; } test_disable 'int main(){return 0;}' tests/test-is-public-builtin.c`
test_disable 'int main(){return 0;}' tests/test-is-public-builtin.c exec = make()
`;
exec = make {}; inputs = [ python ]
inputs = [ python ];
} }

View File

@@ -1,36 +1,29 @@
package libtirpc { package libtirpc {
description = "a port of Suns Transport-Independent RPC library to Linux"; description = "a port of Suns Transport-Independent RPC library to Linux"
website = "https://sourceforge.net/projects/libtirpc"; website = "https://sourceforge.net/projects/libtirpc"
anitya = 1740; anitya = 1740
version* = "1.3.7"; version# = "1.3.7"
source = remoteGit { source = remoteGit {
url = "git://linux-nfs.org/~steved/libtirpc"; url = "git://linux-nfs.org/~steved/libtirpc"
tag = "libtirpc-"+join { tag = "libtirpc-"+join(split(version, ".", 3), "-")
elems = split { checksum = "nzFfu7LNvnSNiNAryD1vtnNWnU-Xqee8KqfXUKoBf5yjb5-dkeRkYuRijdCoYLof"
s = version; }
sep = ".";
n = 3;
};
sep = "-";
};
checksum = "nzFfu7LNvnSNiNAryD1vtnNWnU-Xqee8KqfXUKoBf5yjb5-dkeRkYuRijdCoYLof";
};
exec = make { exec = make {
generate = "sh -e ./bootstrap"; generate = "sh -e ./bootstrap"
configure = { configure = [
"CFLAGS": `"$(pkg-config --cflags libbsd-overlay) ${CFLAGS:-}"`; "CFLAGS": r`"$(pkg-config --cflags libbsd-overlay) ${CFLAGS:-}"`
"disable-gssapi"; "disable-gssapi"
}; ]
}; }
inputs = [ inputs = [
automake, automake
libtool, libtool
pkg-config, pkg-config
libbsd, libbsd
kernel-headers, kernel-headers
]; ]
} }

View File

@@ -1,28 +1,28 @@
package libucontext { package libucontext {
description = "ucontext implementation featuring glibc-compatible ABI"; description = "ucontext implementation featuring glibc-compatible ABI"
website = "https://github.com/kaniini/libucontext"; website = "https://github.com/kaniini/libucontext"
anitya = 17085; anitya = 17085
version* = "1.5.1"; version# = "1.5.1"
source = remoteGitHub { source = remoteGitHub {
suffix = "kaniini/libucontext"; suffix = "kaniini/libucontext"
tag = "libucontext-"+version; tag = "libucontext-"+version
checksum = "mUgeyJknjMxT-5fORzz-rqhZfP3Y7EZGBhOwvhuX7MsF4Pk9wkuwtrLf5IML-jWu"; checksum = "mUgeyJknjMxT-5fORzz-rqhZfP3Y7EZGBhOwvhuX7MsF4Pk9wkuwtrLf5IML-jWu"
}; }
// uses source tree as scratch space // uses source tree as scratch space
writable = true; writable
chmod = true; chmod
enterSource = true; enterSource
exec = make { exec = make {
omitDefaults = true; omitDefaults
skipConfigure = true; skipConfigure
inPlace = true; inPlace
make = [ make = [
"ARCH=" + linuxArch, "ARCH=" + linuxArch
]; ]
install = "make prefix=/system DESTDIR=/work install"; install = "make prefix=/system DESTDIR=/work install"
}; }
} }

View File

@@ -1,35 +1,35 @@
package libva { package libva {
description = "an implementation for VA-API (Video Acceleration API)"; description = "an implementation for VA-API (Video Acceleration API)"
website = "https://01.org/vaapi"; website = "https://01.org/vaapi"
anitya = 1752; anitya = 1752
version* = "2.23.0"; version# = "2.23.0"
source = remoteGitHub { source = remoteGitHub {
suffix = "intel/libva"; suffix = "intel/libva"
tag = version; tag = version
checksum = "UmF5tPyWIG_w5kiR3KFpoYbF7UUcaak5tyc-RhOheNTwQlLkPlifreFYCM9FQxbq"; checksum = "UmF5tPyWIG_w5kiR3KFpoYbF7UUcaak5tyc-RhOheNTwQlLkPlifreFYCM9FQxbq"
}; }
exec = meson { exec = meson {
setup = { setup = yn [
"Dwith_x11": "yes"; "Dwith_x11": true
"Dwith_glx": "yes"; "Dwith_glx": true
"Dwith_wayland": "yes"; "Dwith_wayland": true
}; ]
}; }
inputs = [ inputs = [
libdrm, libdrm
libXfixes, libXfixes
libglvnd, libglvnd
wayland, wayland
kernel-headers, kernel-headers
]; ]
runtime = [ runtime = [
libdrm, libdrm
libXfixes, libXfixes
libglvnd, libglvnd
wayland, wayland
]; ]
} }

View File

@@ -1,23 +1,23 @@
package libxml2 { package libxml2 {
description = "an XML toolkit implemented in C"; description = "an XML toolkit implemented in C"
website = "https://gitlab.gnome.org/GNOME/libxml2"; website = "https://gitlab.gnome.org/GNOME/libxml2"
anitya = 1783; anitya = 1783
version* = "2.15.3"; version# = "2.15.3"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.gnome.org"; domain = "gitlab.gnome.org"
suffix = "GNOME/libxml2"; suffix = "GNOME/libxml2"
ref = "v"+version; ref = "v"+version
checksum = "oJy74htGlEpf70KPvpW18fYJo0RQQkCXZRwqUz6NoXborS3HCq3Nm4gsyaSeNmUH"; checksum = "oJy74htGlEpf70KPvpW18fYJo0RQQkCXZRwqUz6NoXborS3HCq3Nm4gsyaSeNmUH"
}; }
// can't create shell.out: Read-only file system // can't create shell.out: Read-only file system
writable = true; writable
exec = meson {}; exec = meson()
inputs = [ inputs = [
git, git
diffutils, diffutils
]; ]
} }

View File

@@ -1,31 +1,31 @@
package libxslt { package libxslt {
description = "an XSLT processor based on libxml2"; description = "an XSLT processor based on libxml2"
website = "https://gitlab.gnome.org/GNOME/libxslt"; website = "https://gitlab.gnome.org/GNOME/libxslt"
anitya = 13301; anitya = 13301
version* = "1.1.45"; version# = "1.1.45"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.gnome.org"; domain = "gitlab.gnome.org"
suffix = "GNOME/libxslt"; suffix = "GNOME/libxslt"
ref = "v"+version; ref = "v"+version
checksum = "67ks7v8od2oWaEGf23Sst_Xbn_8brQyolQjqxPoO-lK35k_WJhi2Px5JJgbk-nfn"; checksum = "67ks7v8od2oWaEGf23Sst_Xbn_8brQyolQjqxPoO-lK35k_WJhi2Px5JJgbk-nfn"
}; }
exec = make { exec = make {
generate = "NOCONFIGURE=1 ./autogen.sh"; generate = "NOCONFIGURE=1 ./autogen.sh"
// python libxml2 cyclic dependency // python libxml2 cyclic dependency
skipCheck = true; skipCheck
}; }
inputs = [ inputs = [
automake, automake
libtool, libtool
python, python
pkg-config, pkg-config
libxml2, libxml2
]; ]
runtime = [ libxml2 ]; runtime = [ libxml2 ]
} }

View File

@@ -1,15 +1,15 @@
package lit { package lit {
description = "a portable tool for executing LLVM and Clang style test suites"; description = "a portable tool for executing LLVM and Clang style test suites"
website = "https://llvm.org/docs/CommandGuide/lit.html"; website = "https://llvm.org/docs/CommandGuide/lit.html"
source = llvm-project; source = llvm-project
exec = pip { exec = pip {
append = [ "llvm", "utils", "lit" ]; append = [ "llvm", "utils", "lit" ]
// already checked during llvm // already checked during llvm
skipCheck = true; skipCheck
}; }
inputs = [ python-setuptools ]; inputs = [ python-setuptools ]
runtime = [ python ]; runtime = [ python ]
} }

View File

@@ -1,49 +1,47 @@
package lm_sensors { package lm_sensors {
description = "user-space support for hardware monitoring drivers"; description = "user-space support for hardware monitoring drivers"
website = "https://hwmon.wiki.kernel.org/lm_sensors"; website = "https://hwmon.wiki.kernel.org/lm_sensors"
anitya = 1831; anitya = 1831
version* = "3-6-2"; version# = "3-6-2"
source = remoteGitHub { source = remoteGitHub {
suffix = "lm-sensors/lm-sensors"; suffix = "lm-sensors/lm-sensors"
tag = "V"+version; tag = "V"+version
checksum = "7JYNutrihe-FP6r3ftf96uFZJJWPfxnBHL0ALSMA-vovaXVRr-sAjlLitw7WWpCI"; checksum = "7JYNutrihe-FP6r3ftf96uFZJJWPfxnBHL0ALSMA-vovaXVRr-sAjlLitw7WWpCI"
}; }
writable = true; writable
chmod = true; chmod
enterSource = true; enterSource
early = ` early = r`ln -s \
ln -s \ ../../system/bin/perl \
../../system/bin/perl \ /usr/bin/`
/usr/bin/
`;
exec = make { exec = make {
inPlace = true; inPlace
skipConfigure = true; skipConfigure
make = [ make = [
"CC=cc", "CC=cc"
"ETCDIR=/system/etc", "ETCDIR=/system/etc"
"PREFIX=/system", "PREFIX=/system"
]; ]
check = [ check = [
"CC=cc", "CC=cc"
"check", "check"
]; ]
install = "make DESTDIR=/work PREFIX=/system install"; install = "make DESTDIR=/work PREFIX=/system install"
}; }
inputs = [ inputs = [
perl, perl
perl-Test-Cmd, perl-Test-Cmd
m4, m4
bison, bison
flex, flex
]; ]
} }

View File

@@ -1,25 +1,24 @@
package make { package make {
description = "a tool which controls the generation of executables and other non-source files"; description = "a tool which controls the generation of executables and other non-source files"
website = "https://www.gnu.org/software/make"; website = "https://www.gnu.org/software/make"
anitya = 1877; anitya = 1877
version* = "4.4.1"; version# = "4.4.1"
source = remoteTar { source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/make/make-"+version+".tar.gz"; url = "https://ftpmirror.gnu.org/gnu/make/make-${version}.tar.gz"
checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a"; checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a"
compress = gzip; compress = gzip
}; }
toyboxEarly = true; toyboxEarly
exec = generic { exec = generic {
build = `/usr/src/make/configure \ build = r`/usr/src/make/configure \
--prefix=/system \ --prefix=/system \
--build="${ROSA_TRIPLE}" \ --build="${ROSA_TRIPLE}" \
--disable-dependency-tracking --disable-dependency-tracking
./build.sh ./build.sh`
`;
// test suite wants perl // test suite wants perl
install = "./make DESTDIR=/work install\n"; install = "./make DESTDIR=/work install"
}; }
} }

View File

@@ -1,137 +1,128 @@
package mesa { package mesa {
description = "open source implementations of OpenGL, OpenGL ES, Vulkan, OpenCL, and more"; description = "open source implementations of OpenGL, OpenGL ES, Vulkan, OpenCL, and more"
website = "https://mesa3d.org"; website = "https://mesa3d.org"
anitya = 1970; anitya = 1970
latest = anityaFallback; latest = anityaFallback
version* = "26.1.0"; version# = "26.1.1"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org"
suffix = "mesa/mesa"; suffix = "mesa/mesa"
ref = "mesa-"+version; ref = "mesa-"+version
checksum = "zU0fjqevySBaoi_5SLW3e2UffmGeBdxOuHmAHTH68n2hV-sjYoqg30koLqFXuk5y"; checksum = "OFCxGSTBe7qbnbVdazIJBNMFaQ-ylD5aRzo-JstSAdA0-hvVdRwsZiovMBm2rMzp"
}; }
exec = meson { exec = meson {
setup = { setup = [
"Dplatforms": "x11,wayland"; "Dplatforms": "x11,wayland"
"Dvideo-codecs": "all"; "Dvideo-codecs": "all"
"Dglvnd": "enabled"; "Dglvnd": "enabled"
"Dgbm": "enabled"; "Dgbm": "enabled"
"Dgallium-drivers": join { "Dgallium-drivers": join([
elems = [ "asahi" // Apple AGX
"asahi", // Apple AGX "crocus" // Intel legacy
"crocus", // Intel legacy "etnaviv" // Vivante GPU designs (mostly NXP/Marvell SoCs)
"etnaviv", // Vivante GPU designs (mostly NXP/Marvell SoCs) "freedreno" // Qualcomm Adreno (all Qualcomm SoCs)
"freedreno", // Qualcomm Adreno (all Qualcomm SoCs) "i915" // Intel extra legacy
"i915", // Intel extra legacy "iris" // new Intel (Broadwell+)
"iris", // new Intel (Broadwell+) "lima" // ARM Mali 4xx
"lima", // ARM Mali 4xx "llvmpipe" // software renderer
"llvmpipe", // software renderer "nouveau" // Nvidia
"nouveau", // Nvidia "panfrost" // ARM Mali Midgard and up (T/G series)
"panfrost", // ARM Mali Midgard and up (T/G series) "r300" // very old AMD
"r300", // very old AMD "r600" // less old AMD
"r600", // less old AMD "radeonsi" // new AMD (GCN+)
"radeonsi", // new AMD (GCN+) "softpipe" // older software renderer
"softpipe", // older software renderer "svga" // VMWare virtualized GPU
"svga", // VMWare virtualized GPU "tegra" // Nvidia Tegra SoCs
"tegra", // Nvidia Tegra SoCs "v3d" // Broadcom VC5 (Raspberry Pi 4)
"v3d", // Broadcom VC5 (Raspberry Pi 4) "vc4" // Broadcom VC4 (Raspberry Pi 0-3)
"vc4", // Broadcom VC4 (Raspberry Pi 0-3) "virgl" // QEMU virtualized GPU (aka VirGL)
"virgl", // QEMU virtualized GPU (aka VirGL) "zink" // generic OpenGL over Vulkan, experimental
"zink", // generic OpenGL over Vulkan, experimental
// d3d12: WSL emulated GPU (aka Dozen) // d3d12: WSL emulated GPU (aka Dozen)
// ethosu: accelerator // ethosu: accelerator
// rocket: accelerator // rocket: accelerator
]; ], ",")
sep = ",";
};
"Dvulkan-drivers": join { "Dvulkan-drivers": join([
elems = [ "amd" // AMD (aka RADV)
"amd", // AMD (aka RADV) "broadcom" // Broadcom VC5 (Raspberry Pi 4, aka V3D)
"broadcom", // Broadcom VC5 (Raspberry Pi 4, aka V3D) "freedreno" // Qualcomm Adreno (all Qualcomm SoCs)
"freedreno", // Qualcomm Adreno (all Qualcomm SoCs) "intel" // new Intel (aka ANV)
"intel", // new Intel (aka ANV) "intel_hasvk" // Intel Haswell/Broadwell, "legacy" Vulkan driver (https://www.phoronix.com/news/Intel-HasVK-Drop-Dead-Code)
"intel_hasvk", // Intel Haswell/Broadwell, "legacy" Vulkan driver (https://www.phoronix.com/news/Intel-HasVK-Drop-Dead-Code) "panfrost" // ARM Mali Midgard and up (T/G series)
"panfrost", // ARM Mali Midgard and up (T/G series) "swrast" // software renderer (aka Lavapipe)
"swrast", // software renderer (aka Lavapipe) "virtio" // QEMU virtualized GPU (aka VirGL)
"virtio", // QEMU virtualized GPU (aka VirGL) "imagination" // PowerVR Rogue
"imagination", // PowerVR Rogue "asahi" // Apple AGX
"asahi", // Apple AGX "gfxstream" // Android virtualized GPU
"gfxstream", // Android virtualized GPU
// nouveau: Nouveau (aka NVK), requires rust // nouveau: Nouveau (aka NVK), requires rust
// microsoft-experimental: WSL virtualized GPU (aka DZN/Dozen) // microsoft-experimental: WSL virtualized GPU (aka DZN/Dozen)
// kosmickrisp: macOS-specific // kosmickrisp: macOS-specific
]; ], ",")
sep = ",";
};
"Dvulkan-layers": join { "Dvulkan-layers": join([
elems = [ "device-select"
"device-select", "intel-nullhw"
"intel-nullhw", "overlay"
"overlay", "screenshot"
"screenshot", "anti-lag"
"anti-lag", "vram-report-limit"
"vram-report-limit", ], ",")
];
sep = ",";
};
"Dfreedreno-kmds": "msm,virtio"; "Dfreedreno-kmds": "msm,virtio"
"Damdgpu-virtio": "true"; "Damdgpu-virtio": "true"
}; ]
}; }
inputs = [ inputs = [
m4, m4
python-packaging, python-packaging
python-mako, python-mako
python-pyyaml, python-pyyaml
python-pycparser, python-pycparser
glslang, glslang
spirv-llvm-translator, spirv-llvm-translator
zlib, zlib
zstd, zstd
gzip, gzip
ncurses, ncurses
libglvnd, libglvnd
libexpat, libexpat
libva, libva
libdrm, libdrm
elfutils, elfutils
bison, bison
flex, flex
lm_sensors, lm_sensors
libconfig, libconfig
libdisplay-info, libdisplay-info
wayland, wayland
wayland-protocols, wayland-protocols
libxshmfence, libxshmfence
libXxf86vm, libXxf86vm
libXrandr, libXrandr
libxcb-keysyms, libxcb-keysyms
libpng, libpng
libarchive, libarchive
kernel-headers, kernel-headers
]; ]
runtime = [ runtime = [
libdrm, libdrm
elfutils, elfutils
lm_sensors, lm_sensors
libdisplayInfo, libdisplayInfo
wayland, wayland
libxshmfence, libxshmfence
libXxf86vm, libXxf86vm
libXrandr, libXrandr
libxcb-keysyms, libxcb-keysyms
libpng, libpng
]; ]
} }

View File

@@ -1,56 +1,49 @@
package meson { package meson {
description = "an open source build system"; description = "an open source build system"
website = "https://mesonbuild.com"; website = "https://mesonbuild.com"
anitya = 6472; anitya = 6472
version* = "1.11.1"; version# = "1.11.1"
source = remoteGitHub { source = remoteGitHub {
suffix = "mesonbuild/meson"; suffix = "mesonbuild/meson"
tag = version; tag = version
checksum = "uvILRxdopwc6Dy17UbIeClcQr0qHqyTaqyk1M9OqWKN9PwB9N6UVAiyN8kSSz3r2"; checksum = "uvILRxdopwc6Dy17UbIeClcQr0qHqyTaqyk1M9OqWKN9PwB9N6UVAiyN8kSSz3r2"
}; }
env = [ env = [
"CMAKE_MAKE_PROGRAM=ninja", "CMAKE_MAKE_PROGRAM=ninja"
]; ]
exec = pip { exec = pip {
enterSource = true; enterSource
check = ` check = r`cd 'test cases'
cd 'test cases' rm -rf \
rm -rf \ 'common/32 has header' \
'common/32 has header' \ 'common/66 vcstag' \
'common/66 vcstag' \ 'common/153 wrap file should not failed' \
'common/153 wrap file should not failed' \ 'common/184 openmp' \
'common/184 openmp' \ 'common/189 check header' \
'common/189 check header' \ 'linuxlike/6 subdir include order' \
'linuxlike/6 subdir include order' \ 'linuxlike/9 compiler checks with dependencies' \
'linuxlike/9 compiler checks with dependencies' \ 'linuxlike/13 cmake dependency' \
'linuxlike/13 cmake dependency' \ 'frameworks/15 llvm' \
'frameworks/15 llvm' \ 'frameworks/29 blocks'
'frameworks/29 blocks' cd ..`
cd .. + "python3 ./run_project_tests.py -v ${jobsFlagE} --failfast --backend=ninja"
}
python3 ./run_project_tests.py \
-v \
` + jobsFlagE + ` \
--failfast \
--backend=ninja
`;
};
inputs = [ inputs = [
python-setuptools, python-setuptools
pkg-config, pkg-config
cmake, cmake
ninja, ninja
python-pytest, python-pytest
]; ]
runtime = [ runtime = [
python, python
pkg-config, pkg-config
cmake, cmake
ninja, ninja
]; ]
} }

View File

@@ -1,38 +1,37 @@
package mksh { package mksh {
description = "MirBSD Korn Shell"; description = "MirBSD Korn Shell"
website = "https://www.mirbsd.org/mksh"; website = "https://www.mirbsd.org/mksh"
anitya = 5590; anitya = 5590
version* = "59c"; version# = "59c"
source = remoteTar { source = remoteTar {
url = "https://mbsd.evolvis.org/MirOS/dist/mir/mksh/mksh-R"+version+".tgz"; url = "https://mbsd.evolvis.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz"
checksum = "0Zj-k4nXEu3IuJY4lvwD2OrC2t27GdZj8SPy4DoaeuBRH1padWb7oREpYgwY8JNq"; checksum = "0Zj-k4nXEu3IuJY4lvwD2OrC2t27GdZj8SPy4DoaeuBRH1padWb7oREpYgwY8JNq"
compress = gzip; compress = gzip
}; }
env = [ env = [
"LDSTATIC=-static", "LDSTATIC=-static"
"CPPFLAGS=-DMKSH_DEFAULT_PROFILEDIR=\\\"/system/etc\\\"", r`CPPFLAGS=-DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\"`
]; ]
exec = generic { exec = generic {
build = `sh /usr/src/mksh/Build.sh -r build = r`sh /usr/src/mksh/Build.sh -r
CPPFLAGS="${CPPFLAGS} -DMKSH_BINSHPOSIX -DMKSH_BINSHREDUCED" \ CPPFLAGS="${CPPFLAGS} -DMKSH_BINSHPOSIX -DMKSH_BINSHREDUCED" \
sh /usr/src/mksh/Build.sh -r -L sh /usr/src/mksh/Build.sh -r -L
`; `;
check = "./test.sh -C regress:no-ctty\n"; check = "./test.sh -C regress:no-ctty\n";
install = ` install = `
mkdir -p /work/system/bin/ mkdir -p /work/system/bin/
cp -v mksh /work/system/bin/ cp -v mksh /work/system/bin/
cp -v lksh /work/system/bin/sh cp -v lksh /work/system/bin/sh
mkdir -p /work/bin/ mkdir -p /work/bin/
ln -vs ../system/bin/sh /work/bin/ ln -vs ../system/bin/sh /work/bin/`
`; }
};
inputs = [ inputs = [
perl, perl
coreutils, coreutils
]; ]
} }

View File

@@ -1,26 +1,26 @@
package musl-fts { package musl-fts {
description = "implementation of fts(3) functions which are missing in musl libc"; description = "implementation of fts(3) functions which are missing in musl libc"
website = "https://github.com/void-linux/musl-fts"; website = "https://github.com/void-linux/musl-fts"
anitya = 26980; anitya = 26980
version* = "1.2.7"; version# = "1.2.7"
source = remoteGitHub { source = remoteGitHub {
suffix = "void-linux/musl-fts"; suffix = "void-linux/musl-fts"
tag = "v"+version; tag = "v"+version
checksum = "N_p_ZApX3eHt7xoDCw1hLf6XdJOw7ZSx7xPvpvAP0knG2zgU0zeN5w8tt5Pg60XJ"; checksum = "N_p_ZApX3eHt7xoDCw1hLf6XdJOw7ZSx7xPvpvAP0knG2zgU0zeN5w8tt5Pg60XJ"
}; }
env = [ env = [
"CC=cc -fPIC", "CC=cc -fPIC"
]; ]
exec = make { exec = make {
generate = "./bootstrap.sh"; generate = "./bootstrap.sh"
}; }
inputs = [ inputs = [
automake, automake
libtool, libtool
pkg-config, pkg-config
]; ]
} }

View File

@@ -1,26 +1,26 @@
package musl-obstack { package musl-obstack {
description = "obstack functions and macros separated from glibc"; description = "obstack functions and macros separated from glibc"
website = "https://github.com/void-linux/musl-obstack"; website = "https://github.com/void-linux/musl-obstack"
anitya = 146206; anitya = 146206
version* = "1.2.3"; version# = "1.2.3"
source = remoteGitHub { source = remoteGitHub {
suffix = "void-linux/musl-obstack"; suffix = "void-linux/musl-obstack"
tag = "v"+version; tag = "v"+version
checksum = "tVRY_KjIlkkMszcaRlkKdBVQHIXTT_T_TiMxbwErlILXrOBosocg8KklppZhNdCG"; checksum = "tVRY_KjIlkkMszcaRlkKdBVQHIXTT_T_TiMxbwErlILXrOBosocg8KklppZhNdCG"
}; }
env = [ env = [
"CC=cc -fPIC", "CC=cc -fPIC"
]; ]
exec = make { exec = make {
generate = "./bootstrap.sh"; generate = "./bootstrap.sh"
}; }
inputs = [ inputs = [
automake, automake
libtool, libtool
pkg-config, pkg-config
]; ]
} }

View File

@@ -1,26 +1,26 @@
package ncurses { package ncurses {
description = "a free software emulation of curses in System V Release 4.0 (SVr4)"; description = "a free software emulation of curses in System V Release 4.0 (SVr4)"
website = "https://invisible-island.net/ncurses"; website = "https://invisible-island.net/ncurses"
anitya = 373226; anitya = 373226
version* = "6.6"; version# = "6.6"
source = remoteTar { source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/ncurses/ncurses-"+version+".tar.gz"; url = "https://ftpmirror.gnu.org/gnu/ncurses/ncurses-${version}.tar.gz"
checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w"; checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w"
compress = gzip; compress = gzip
}; }
exec = make { exec = make {
configure = { configure = [
"with-pkg-config"; "with-pkg-config"
"enable-pc-files"; "enable-pc-files"
"with-shared"; "with-shared"
"with-cxx-shared"; "with-cxx-shared"
}; ]
// "tests" are actual demo programs, not a test suite. // "tests" are actual demo programs, not a test suite.
skipCheck = true; skipCheck
}; }
inputs = [ pkg-config ]; inputs = [ pkg-config ]
} }

View File

@@ -1,23 +1,23 @@
package nettle { package nettle {
description = "a low-level cryptographic library"; description = "a low-level cryptographic library"
website = "https://www.lysator.liu.se/~nisse/nettle"; website = "https://www.lysator.liu.se/~nisse/nettle"
anitya = 2073; anitya = 2073
version* = "4.0"; version# = "4.0"
source = remoteTar { source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz"; url = "https://ftpmirror.gnu.org/gnu/nettle/nettle-${version}.tar.gz"
checksum = "6agC-vHzzoqAlaX3K9tX8yHgrm03HLqPZzVzq8jh_ePbuPMIvpxereu_uRJFmQK7"; checksum = "6agC-vHzzoqAlaX3K9tX8yHgrm03HLqPZzVzq8jh_ePbuPMIvpxereu_uRJFmQK7"
compress = gzip; compress = gzip
}; }
exec = make {}; exec = make()
inputs = [ inputs = [
m4, m4
diffutils, diffutils
gmp, gmp
]; ]
runtime = [ gmp ]; runtime = [ gmp ]
} }

View File

@@ -1,38 +1,36 @@
package ninja { package ninja {
description = "a small build system with a focus on speed"; description = "a small build system with a focus on speed"
website = "https://ninja-build.org"; website = "https://ninja-build.org"
anitya = 2089; anitya = 2089
version* = "1.13.2"; version# = "1.13.2"
source = remoteGitHub { source = remoteGitHub {
suffix = "ninja-build/ninja"; suffix = "ninja-build/ninja"
tag = "v"+version; tag = "v"+version
checksum = "ygKWMa0YV2lWKiFro5hnL-vcKbc_-RACZuPu0Io8qDvgQlZ0dxv7hPNSFkt4214v"; checksum = "ygKWMa0YV2lWKiFro5hnL-vcKbc_-RACZuPu0Io8qDvgQlZ0dxv7hPNSFkt4214v"
}; }
extra = [ googletest ]; extra = [ googletest ]
env = [ env = [
"CFLAGS=-std=c++17", "CFLAGS=-std=c++17"
]; ]
exec = generic { exec = generic {
build = ` build = r`python3 /usr/src/ninja/configure.py \
python3 /usr/src/ninja/configure.py \ --verbose \
--verbose \ --bootstrap
--bootstrap python3 /usr/src/ninja/configure.py \
python3 /usr/src/ninja/configure.py \ --gtest-source-dir=/usr/src/extra/googletest
--gtest-source-dir=/usr/src/extra/googletest ./ninja ` + jobsFlagE + ` all`
./ninja ` + jobsFlagE + ` all`;
check = "\n./ninja_test"; check = "./ninja_test"
install = ` install = `mkdir -p /work/system/bin/
mkdir -p /work/system/bin/ cp ninja /work/system/bin/`
cp ninja /work/system/bin/`; }
};
inputs = [ inputs = [
python, python
bash, bash
]; ]
} }

View File

@@ -1,101 +1,89 @@
package nspr { package nspr {
description = "nspr source tree"; description = "nspr source tree"
anitya = 7953; anitya = 7953
exclude = true; exclude
version* = "4.38.2"; version# = "4.39"
output = remoteTar { output = remoteTar {
url = "https://ftp.mozilla.org/pub/nspr/releases/v"+version+ url = "https://ftp.mozilla.org/pub/nspr/releases/v${version}/src/nspr-${version}.tar.gz"
"/src/nspr-"+version+".tar.gz"; checksum = "lgIlqiItMBCRTuz8griNqxtJzNBAoZU1020EVR94X2IiZpJ-NgLXouF7m1knNlDs"
checksum = "BcKpVmN6bdBaoZyzht_SpGHnO1CRN5YHeVyWW2skfCKIdhy3ppKe1zMh85QBEsV_"; compress = gzip
compress = gzip; }
};
} }
package nss { package nss {
description = "Network Security Services"; description = "Network Security Services"
website = "https://firefox-source-docs.mozilla.org/security/nss/index.html"; website = "https://firefox-source-docs.mozilla.org/security/nss/index.html"
anitya = 2503; anitya = 2503
version* = "3.123.1"; version# = "3.124"
source = remoteGitHub { source = remoteGitHub {
suffix = "nss-dev/nss"; suffix = "nss-dev/nss"
tag = "NSS_"+join { tag = "NSS_"+join(split(version, ".", 3), "_")+"_RTM"
elems = split { checksum = "p_TFOmKxMVV-ZHRY0QwzEReUOxSRjEExpWIuoA3Bzxj50uNCS8EgqfzcpaiGAkr6"
s = version; }
sep = "."; extra = [ nspr ]
n = 3;
};
sep = "_";
}+"_RTM";
checksum = "g811Z_fc74ssg-s6BeXRG-ipSfJggD6hrxjVJxrOBIz98CE7piv0OLwzIRLMQpwR";
};
extra = [ nspr ];
enterSource = true; enterSource
writable = true; writable
chmod = true; chmod
early = "\nln -s extra/nspr/nspr /usr/src/nspr\n"; early = "ln -s extra/nspr/nspr /usr/src/nspr"
exec = make { exec = make {
omitDefaults = true; omitDefaults
skipConfigure = true; skipConfigure
inPlace = true; inPlace
make = [ make = [
"CCC=clang++", "CCC=clang++"
"NSDISTMODE=copy", "NSDISTMODE=copy"
"BUILD_OPT=1", "BUILD_OPT=1"
"USE_64=1", "USE_64=1"
"nss_build_all", "nss_build_all"
]; ]
skipCheck = true; skipCheck
install = ` install = r`cp -r \
cp -r \ /usr/src/dist/. \
/usr/src/dist/. \ lib/ckfw/builtins/certdata.txt \
lib/ckfw/builtins/certdata.txt \ /work/`
/work/ }
`;
};
inputs = [ inputs = [
perl, perl
python, python
gawk, gawk
coreutils, coreutils
zlib, zlib
kernel-headers, kernel-headers
]; ]
runtime = [ zlib ]; runtime = [ zlib ]
} }
package nss-cacert { package nss-cacert {
description = "bundle of X.509 certificates of public Certificate Authorities"; description = "bundle of X.509 certificates of public Certificate Authorities"
website = "https://curl.se/docs/caextract.html"; website = "https://curl.se/docs/caextract.html"
version = unversioned; version = unversioned
source = nss; source = nss
enterSource = true; enterSource
exec = generic { exec = generic {
inPlace = true; inPlace
build = ` build = r`mkdir -p /work/system/etc/ssl/{certs/unbundled,certs/hashed,trust-source}
mkdir -p /work/system/etc/ssl/{certs/unbundled,certs/hashed,trust-source} buildcatrust \
buildcatrust \ --certdata_input certdata.txt \
--certdata_input certdata.txt \ --ca_bundle_output /work/system/etc/ssl/certs/ca-bundle.crt \
--ca_bundle_output /work/system/etc/ssl/certs/ca-bundle.crt \ --ca_standard_bundle_output /work/system/etc/ssl/certs/ca-no-trust-rules-bundle.crt \
--ca_standard_bundle_output /work/system/etc/ssl/certs/ca-no-trust-rules-bundle.crt \ --ca_unpacked_output /work/system/etc/ssl/certs/unbundled \
--ca_unpacked_output /work/system/etc/ssl/certs/unbundled \ --ca_hashed_unpacked_output /work/system/etc/ssl/certs/hashed \
--ca_hashed_unpacked_output /work/system/etc/ssl/certs/hashed \ --p11kit_output /work/system/etc/ssl/trust-source/ca-bundle.trust.p11-kit`
--p11kit_output /work/system/etc/ssl/trust-source/ca-bundle.trust.p11-kit }
`;
};
inputs = [ inputs = [
bash, bash
buildcatrust, buildcatrust
]; ]
} }

View File

@@ -1,45 +1,45 @@
package openssl { package openssl {
description = "TLS/SSL and crypto library"; description = "TLS/SSL and crypto library"
website = "https://www.openssl.org"; website = "https://www.openssl.org"
anitya = 2566; anitya = 2566
// strange malformed tags treated as pre-releases in Anitya // strange malformed tags treated as pre-releases in Anitya
latest = anityaFallback; latest = anityaFallback
version* = "3.6.2"; version# = "3.6.2"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "openssl/openssl"; suffix = "openssl/openssl"
tag = "openssl-"+version; tag = "openssl-"+version
name = "openssl-"+version+".tar.gz"; name = "openssl-${version}.tar.gz"
checksum = "jH004dXTiE01Hp0kyShkWXwrSHEksZi4i_3v47D9H9Uz9LQ1aMwF7mrl2Tb4t_XA"; checksum = "jH004dXTiE01Hp0kyShkWXwrSHEksZi4i_3v47D9H9Uz9LQ1aMwF7mrl2Tb4t_XA"
compress = gzip; compress = gzip
}; }
env = [ env = [
"CC=cc", "CC=cc"
]; ]
exec = make { exec = make {
omitDefaults = true; omitDefaults
configureName = "/usr/src/openssl/Configure"; configureName = "/usr/src/openssl/Configure"
configure = { configure = [
"prefix": "/system"; "prefix": "/system"
"libdir": "lib"; "libdir": "lib"
"openssldir": "etc/ssl"; "openssldir": "etc/ssl"
"": "no-docs"; "": "no-docs"
}; ]
check = [ check = [
"HARNESS_JOBS=" + jobsE, "HARNESS_JOBS=${jobsE}"
"test", "test"
]; ]
}; }
inputs = [ inputs = [
perl, perl
coreutils, coreutils
zlib, zlib
kernel-headers, kernel-headers
]; ]
} }

View File

@@ -1,31 +1,31 @@
package p11-kit { package p11-kit {
description = "provides a way to load and enumerate PKCS#11 modules"; description = "provides a way to load and enumerate PKCS#11 modules"
website = "https://p11-glue.freedesktop.org/p11-kit.html"; website = "https://p11-glue.freedesktop.org/p11-kit.html"
anitya = 2582; anitya = 2582
version* = "0.26.2"; version# = "0.26.2"
source = remoteGit { source = remoteGit {
url = "https://github.com/p11-glue/p11-kit.git"; url = "https://github.com/p11-glue/p11-kit.git"
tag = version; tag = version
checksum = "3ei-6DUVtYzrRVe-SubtNgRlweXd6H2qHmUu-_5qVyIn6gSTvZbGS2u79Y8IFb2N"; checksum = "3ei-6DUVtYzrRVe-SubtNgRlweXd6H2qHmUu-_5qVyIn6gSTvZbGS2u79Y8IFb2N"
}; }
exec = meson { exec = meson {
setup = { setup = endi [
"Dsystemd": "disabled"; "Dsystemd": false
"Dlibffi": "enabled"; "Dlibffi": true
}; ]
}; }
inputs = [ inputs = [
coreutils, coreutils
diffutils, diffutils
libtasn1, libtasn1
]; ]
runtime = [ runtime = [
libffi, libffi
libtasn1, libtasn1
]; ]
} }

View File

@@ -1,30 +1,28 @@
package pcre2 { package pcre2 {
description = "a set of C functions that implement regular expression pattern matching"; description = "a set of C functions that implement regular expression pattern matching"
website = "https://pcre2project.github.io/pcre2"; website = "https://pcre2project.github.io/pcre2"
anitya = 5832; anitya = 5832
version* = "10.47"; version# = "10.47"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "PCRE2Project/pcre2"; suffix = "PCRE2Project/pcre2"
tag = "pcre2-"+version; tag = "pcre2-"+version
name = "pcre2-"+version+".tar.bz2"; name = "pcre2-${version}.tar.bz2";
checksum = "IbC24vVayju6nB9EhrBPSDexk22wDecdpyrjgC3nCZXkwTnUjq4CD2q5sopqu6CW"; checksum = "IbC24vVayju6nB9EhrBPSDexk22wDecdpyrjgC3nCZXkwTnUjq4CD2q5sopqu6CW"
compress = bzip2; compress = bzip2
}; }
early = ` early = `# RunGrepTest expects /bin/echo
# RunGrepTest expects /bin/echo ln -s ../system/bin/toybox /bin/echo`
ln -s ../system/bin/toybox /bin/echo
`;
exec = make { exec = make {
configure = { configure = {
"enable-jit"; "enable-jit"
"enable-pcre2-8"; "enable-pcre2-8"
"enable-pcre2-16"; "enable-pcre2-16"
"enable-pcre2-32"; "enable-pcre2-32"
}; }
}; }
inputs = [ diffutils ]; inputs = [ diffutils ]
} }

View File

@@ -1,263 +1,257 @@
package perl { package perl {
description = "The Perl Programming language"; description = "The Perl Programming language"
website = "https://www.perl.org"; website = "https://www.perl.org"
anitya = 13599; anitya = 13599
// odd-even versioning // odd-even versioning
latest = anityaFallback; latest = anityaFallback
version* = "5.42.2"; version# = "5.42.2"
source = remoteTar { source = remoteTar {
url = "https://www.cpan.org/src/5.0/perl-"+version+".tar.gz"; url = "https://www.cpan.org/src/5.0/perl-${version}.tar.gz"
checksum = "Me_xFfgkRnVyG0sE6a74TktK2OUq9Z1LVJNEu_9RdZG3S2fbjfzNiuk2SJqHAgbm"; checksum = "Me_xFfgkRnVyG0sE6a74TktK2OUq9Z1LVJNEu_9RdZG3S2fbjfzNiuk2SJqHAgbm"
compress = gzip; compress = gzip
}; }
// uses source tree as scratch space // uses source tree as scratch space
writable = true; writable
chmod = true; chmod
early = ` early = `echo 'print STDOUT "1..0 # Skip broken test\n";' > ext/Pod-Html/t/htmldir3.t
echo 'print STDOUT "1..0 # Skip broken test\n";' > ext/Pod-Html/t/htmldir3.t chmod +w /system/bin && rm -f /system/bin/ps # perl does not like toybox ps`
chmod +w /system/bin && rm -f /system/bin/ps # perl does not like toybox ps
`;
toyboxEarly = true; toyboxEarly
exec = make { exec = make {
omitDefaults = true; omitDefaults
inPlace = true; inPlace
configureName = "./Configure"; configureName = "./Configure"
configure = { configure = [
"-des"; "-des"
"Dprefix": "/system"; "Dprefix": "/system"
"Dcc": "clang"; "Dcc": "clang"
"Dcflags": "--std=gnu99"; "Dcflags": "--std=gnu99"
"Dldflags": `"${LDFLAGS:-''}"`; "Dldflags": `"${LDFLAGS:-''}"`
"Doptimize": "'-O2 -fno-strict-aliasing'"; "Doptimize": "'-O2 -fno-strict-aliasing'"
"Duseithreads"; "Duseithreads"
"Duseshrplib"; "Duseshrplib"
}; ]
check = [ check = [
"TEST_JOBS=" + jobsLE, "TEST_JOBS=" + jobsLE
"test_harness", "test_harness"
]; ]
install = `LD_LIBRARY_PATH="$PWD" ./perl -Ilib -I. installperl --destdir=/work`; install = r`LD_LIBRARY_PATH="$PWD" ./perl -Ilib -I. installperl --destdir=/work`
}; }
} }
package perl-Module-Build { package perl-Module-Build {
description = "build and install Perl modules"; description = "build and install Perl modules"
website = "https://metacpan.org/release/Module-Build"; website = "https://metacpan.org/release/Module-Build"
anitya = 3077; anitya = 3077
version* = "0.4234"; version# = "0.4234"
source = remoteCPAN { source = remoteCPAN {
author = "LEONT"; author = "LEONT"
name = "Module-Build"; name = "Module-Build"
version = version; version = version
checksum = "ZKxEFG4hE1rqZt52zBL2LRZBMkYzhjb5-cTBXcsyA52EbPeeYyVxU176yAea8-Di"; checksum = "ZKxEFG4hE1rqZt52zBL2LRZBMkYzhjb5-cTBXcsyA52EbPeeYyVxU176yAea8-Di"
}; }
enterSource = true; enterSource
writable = true; writable
chmod = true; chmod
exec = generic { exec = generic {
inPlace = true; inPlace
build = ` build = `perl Build.PL --prefix=/system
perl Build.PL --prefix=/system ./Build build`
./Build build`; check = `./Build test`
check = ` install = `./Build install --destdir=/work`
./Build test`; }
install = `
./Build install --destdir=/work
`;
};
inputs = [ perl ]; inputs = [ perl ]
runtime = [ perl ]; runtime = [ perl ]
} }
package perl-Locale-gettext { package perl-Locale-gettext {
description = "message handling functions"; description = "message handling functions"
website = "https://metacpan.org/release/Locale-gettext"; website = "https://metacpan.org/release/Locale-gettext"
anitya = 7523; anitya = 7523
version* = "1.07"; version# = "1.07"
source = remoteCPAN { source = remoteCPAN {
author = "PVANDRY"; author = "PVANDRY"
name = "Locale-gettext"; name = "Locale-gettext"
version = version; version = version
checksum = "cFq4BKFD1MWSoa7lsrPjpdo9kzPqd0jlRcBFUyL1L1isw8m3D_Sge_ff0MAu_9J3"; checksum = "cFq4BKFD1MWSoa7lsrPjpdo9kzPqd0jlRcBFUyL1L1isw8m3D_Sge_ff0MAu_9J3"
}; }
exec = makeMaker {}; exec = makeMaker()
runtime = [ perl ]; runtime = [ perl ]
} }
package perl-Pod-Parser { package perl-Pod-Parser {
description = "base class for creating POD filters and translators"; description = "base class for creating POD filters and translators"
website = "https://metacpan.org/release/Pod-Parser"; website = "https://metacpan.org/release/Pod-Parser"
anitya = 3244; anitya = 3244
version* = "1.67"; version# = "1.67"
source = remoteCPAN { source = remoteCPAN {
author = "MAREKR"; author = "MAREKR"
name = "Pod-Parser"; name = "Pod-Parser"
version = version; version = version
checksum = "RdURu9mOfExk_loCp6abxlcQV3FycSNbTqhRS9i6JUqnYfGGEgercK30g0gjYyqe"; checksum = "RdURu9mOfExk_loCp6abxlcQV3FycSNbTqhRS9i6JUqnYfGGEgercK30g0gjYyqe"
}; }
exec = makeMaker {}; exec = makeMaker {}
runtime = [ perl ]; runtime = [ perl ]
} }
package perl-SGMLS { package perl-SGMLS {
description = "class for postprocessing the output from the sgmls and nsgmls parsers"; description = "class for postprocessing the output from the sgmls and nsgmls parsers"
website = "https://metacpan.org/release/RAAB/SGMLSpm-1.1"; website = "https://metacpan.org/release/RAAB/SGMLSpm-1.1"
anitya = 389576; anitya = 389576
latest = anityaLegacyCPAN; latest = anityaLegacyCPAN
version* = "1.1"; version# = "1.1"
source = remoteCPAN { source = remoteCPAN {
author = "RAAB"; author = "RAAB"
name = "SGMLSpm"; name = "SGMLSpm"
version = version; version = version
checksum = "aZijn4MUqD-wfyZgdcCruCwl4SgDdu25cNmJ4_UvdAk9a7uz4gzMQdoeB6DQ6QOy"; checksum = "aZijn4MUqD-wfyZgdcCruCwl4SgDdu25cNmJ4_UvdAk9a7uz4gzMQdoeB6DQ6QOy"
}; }
exec = makeMaker {}; exec = makeMaker()
runtime = [ perl ]; runtime = [ perl ]
} }
package perl-Term-ReadKey { package perl-Term-ReadKey {
description = "a perl module for simple terminal control"; description = "a perl module for simple terminal control"
website = "https://metacpan.org/release/TermReadKey"; website = "https://metacpan.org/release/TermReadKey"
anitya = 3372; anitya = 3372
version* = "2.38"; version# = "2.38"
source = remoteCPAN { source = remoteCPAN {
author = "JSTOWE"; author = "JSTOWE"
name = "TermReadKey"; name = "TermReadKey"
version = version; version = version
checksum = "qerL8Xo7kD0f42PZoiEbmE8Roc_S9pOa27LXelY4DN_0UNy_u5wLrGHI8utNlaiI"; checksum = "qerL8Xo7kD0f42PZoiEbmE8Roc_S9pOa27LXelY4DN_0UNy_u5wLrGHI8utNlaiI"
}; }
exec = makeMaker {}; exec = makeMaker()
runtime = [ perl ]; runtime = [ perl ]
} }
package perl-Text-CharWidth { package perl-Text-CharWidth {
description = "get number of occupied columns of a string on terminal"; description = "get number of occupied columns of a string on terminal"
website = "https://metacpan.org/release/Text-CharWidth"; website = "https://metacpan.org/release/Text-CharWidth"
anitya = 14380; anitya = 14380
version* = "0.04"; version# = "0.04"
source = remoteCPAN { source = remoteCPAN {
author = "KUBOTA"; author = "KUBOTA"
name = "Text-CharWidth"; name = "Text-CharWidth"
version = version; version = version
checksum = "G2p5RHU4_HiZ23ZusBA_enTlVMxz0J4esUx4CGcOPhY6xYTbp-aXWRN6lYZpzBw2"; checksum = "G2p5RHU4_HiZ23ZusBA_enTlVMxz0J4esUx4CGcOPhY6xYTbp-aXWRN6lYZpzBw2"
}; }
exec = makeMaker {}; exec = makeMaker()
runtime = [ perl ]; runtime = [ perl ]
} }
package perl-Text-WrapI18N { package perl-Text-WrapI18N {
description = "line wrapping module"; description = "line wrapping module"
website = "https://metacpan.org/release/Text-WrapI18N"; website = "https://metacpan.org/release/Text-WrapI18N"
anitya = 14385; anitya = 14385
version* = "0.06"; version# = "0.06"
source = remoteCPAN { source = remoteCPAN {
author = "KUBOTA"; author = "KUBOTA"
name = "Text-WrapI18N"; name = "Text-WrapI18N"
version = version; version = version
checksum = "Vmo89qLgxUqyQ6QmWJVqu60aQAUjrNKRjFQSXGnvClxofzRjiCa6idzPgJ4VkixM"; checksum = "Vmo89qLgxUqyQ6QmWJVqu60aQAUjrNKRjFQSXGnvClxofzRjiCa6idzPgJ4VkixM"
}; }
exec = makeMaker {}; exec = makeMaker {}
inputs = [ perl-Text-CharWidth ]; inputs = [ perl-Text-CharWidth ]
runtime = [ perl-Text-CharWidth ]; runtime = [ perl-Text-CharWidth ]
} }
package perl-MIME-Charset { package perl-MIME-Charset {
description = "Charset Information for MIME"; description = "Charset Information for MIME"
website = "https://metacpan.org/release/MIME-Charset"; website = "https://metacpan.org/release/MIME-Charset"
anitya = 3070; anitya = 3070
version* = "1.013.1"; version# = "1.013.1"
source = remoteCPAN { source = remoteCPAN {
author = "NEZUMI"; author = "NEZUMI"
name = "MIME-Charset"; name = "MIME-Charset"
version = version; version = version
checksum = "Ou_ukcrOa1cgtE3mptinb-os3bdL1SXzbRDFZQF3prrJj-drc3rp_huay7iDLJol"; checksum = "Ou_ukcrOa1cgtE3mptinb-os3bdL1SXzbRDFZQF3prrJj-drc3rp_huay7iDLJol"
}; }
exec = makeMaker {}; exec = makeMaker {}
runtime = [ perl ]; runtime = [ perl ]
} }
package perl-Unicode-LineBreak { package perl-Unicode-LineBreak {
description = "String as Sequence of UAX #29 Grapheme Clusters"; description = "String as Sequence of UAX #29 Grapheme Clusters"
website = "https://metacpan.org/release/Unicode-LineBreak"; website = "https://metacpan.org/release/Unicode-LineBreak"
anitya = 6033; anitya = 6033
version* = "2019.001"; version# = "2019.001"
source = remoteCPAN { source = remoteCPAN {
author = "NEZUMI"; author = "NEZUMI"
name = "Unicode-LineBreak"; name = "Unicode-LineBreak"
version = version; version = version
checksum = "ZHVkh7EDgAUHnTpvXsnPAuWpgNoBImtY_9_8TIbo2co_WgUwEb0MtXPhI8pAZ5OH"; checksum = "ZHVkh7EDgAUHnTpvXsnPAuWpgNoBImtY_9_8TIbo2co_WgUwEb0MtXPhI8pAZ5OH"
}; }
exec = makeMaker {}; exec = makeMaker()
inputs = [ perl-MIME-Charset ]; inputs = [ perl-MIME-Charset ]
runtime = [ perl-MIME-Charset ]; runtime = [ perl-MIME-Charset ]
} }
package perl-YAML-Tiny { package perl-YAML-Tiny {
description = "read/write YAML files with as little code as possible"; description = "read/write YAML files with as little code as possible"
website = "https://metacpan.org/release/YAML-Tiny"; website = "https://metacpan.org/release/YAML-Tiny"
anitya = 3549; anitya = 3549
version* = "1.76"; version# = "1.76"
source = remoteCPAN { source = remoteCPAN {
author = "ETHER"; author = "ETHER"
name = "YAML-Tiny"; name = "YAML-Tiny"
version = version; version = version
checksum = "V1MV4KPym1LxSw8CRXqPR3K-l1hGHbT5Ob4t-9xju6R9X_CWyw6hI8wsMaNdHdBY"; checksum = "V1MV4KPym1LxSw8CRXqPR3K-l1hGHbT5Ob4t-9xju6R9X_CWyw6hI8wsMaNdHdBY"
}; }
exec = makeMaker {}; exec = makeMaker()
runtime = [ perl ]; runtime = [ perl ]
} }
package perl-Test-Cmd { package perl-Test-Cmd {
description = "portable testing of commands and scripts"; description = "portable testing of commands and scripts"
website = "https://metacpan.org/release/Test-Cmd"; website = "https://metacpan.org/release/Test-Cmd"
anitya = 6014; anitya = 6014
version* = "1.09"; version# = "1.09"
source = remoteCPAN { source = remoteCPAN {
author = "NEILB"; author = "NEILB"
name = "Test-Cmd"; name = "Test-Cmd"
version = version; version = version
checksum = "gpGUwyC9IozDiYSgW_kXARNfXsTPFa6cTowJmmCBbPqcs2-pONZca_SB06FGy-7H"; checksum = "gpGUwyC9IozDiYSgW_kXARNfXsTPFa6cTowJmmCBbPqcs2-pONZca_SB06FGy-7H"
}; }
exec = makeMaker {}; exec = makeMaker()
runtime = [ perl ]; runtime = [ perl ]
} }

View File

@@ -1,19 +1,19 @@
package pixman { package pixman {
description = "a low-level software library for pixel manipulation"; description = "a low-level software library for pixel manipulation"
website = "https://pixman.org"; website = "https://pixman.org"
anitya = 3648; anitya = 3648
version* = "0.46.4"; version# = "0.46.4"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org"
suffix = "pixman/pixman"; suffix = "pixman/pixman"
ref = "pixman-"+version; ref = "pixman-"+version
checksum = "iECDxLG9SxUrvGHqeDoaBa-b3uqdT5DC4zudjtrwb8Wodq82pyacmFNEAo4SDsiE"; checksum = "iECDxLG9SxUrvGHqeDoaBa-b3uqdT5DC4zudjtrwb8Wodq82pyacmFNEAo4SDsiE"
}; }
exec = meson { exec = meson {
setup = { setup = endi [
"Dtests": "enabled"; "Dtests": true
}; ]
}; }
} }

View File

@@ -1,26 +1,26 @@
package pkg-config { package pkg-config {
description = "a helper tool used when compiling applications and libraries"; description = "a helper tool used when compiling applications and libraries"
website = "https://pkgconfig.freedesktop.org"; website = "https://pkgconfig.freedesktop.org"
anitya = 3649; anitya = 3649
version* = "0.29.2"; version# = "0.29.2"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org"
suffix = "pkg-config/pkg-config"; suffix = "pkg-config/pkg-config"
ref = "pkg-config-"+version; ref = "pkg-config-"+version
checksum = "6UsGqEMA8EER_5b9N0b32UCqiRy39B6_RnPfvuslWhtFV1qYD4DfS10crGZN_TP2"; checksum = "6UsGqEMA8EER_5b9N0b32UCqiRy39B6_RnPfvuslWhtFV1qYD4DfS10crGZN_TP2"
}; }
exec = make { exec = make {
generate = "./autogen.sh --no-configure"; generate = "./autogen.sh --no-configure"
configure = { configure = [
"CFLAGS": "'-Wno-int-conversion'"; "CFLAGS": "'-Wno-int-conversion'"
"with-internal-glib"; "with-internal-glib"
}; ]
}; }
inputs = [ inputs = [
automake, automake
libtool, libtool
]; ]
} }

View File

@@ -1,29 +1,29 @@
package procps { package procps {
description = "command line and full screen utilities for browsing procfs"; description = "command line and full screen utilities for browsing procfs"
website = "https://gitlab.com/procps-ng/procps"; website = "https://gitlab.com/procps-ng/procps"
anitya = 3708; anitya = 3708
version* = "4.0.6"; version# = "4.0.6"
source = remoteGitLab { source = remoteGitLab {
domain = "gitlab.com"; domain = "gitlab.com"
suffix = "procps-ng/procps"; suffix = "procps-ng/procps"
ref = "v"+version; ref = "v"+version
checksum = "pl_fZLvDlv6iZTkm8l_tHFpzTDVFGCiSJEs3eu0zAX6u36AV36P_En8K7JPScRWM"; checksum = "pl_fZLvDlv6iZTkm8l_tHFpzTDVFGCiSJEs3eu0zAX6u36AV36P_En8K7JPScRWM"
}; }
exec = make { exec = make {
generate = "./autogen.sh"; generate = "./autogen.sh"
configure = { configure = [
"without-ncurses"; "without-ncurses"
}; ]
}; }
inputs = [ inputs = [
automake, automake
gettext, gettext
libtool, libtool
gzip, gzip
pkg-config, pkg-config
]; ]
} }

View File

@@ -252,11 +252,11 @@ package python-trove-classifiers {
website = "https://pypi.org/p/trove-classifiers"; website = "https://pypi.org/p/trove-classifiers";
anitya = 88298; anitya = 88298;
version* = "2026.5.7.17"; version* = "2026.5.22.10";
source = remoteGitHub { source = remoteGitHub {
suffix = "pypa/trove-classifiers"; suffix = "pypa/trove-classifiers";
tag = version; tag = version;
checksum = "1Fcps0gK9P4ofwGL8MISN9k1Q40-quxX7NDpIna50TmziBNrZy-0Vz0I9yIeHCoP"; checksum = "PgFh58qkPCee5SIN62a_8s5kYRrydXODZEqeSgMJItiLrT5kaz8senRGn5B1Hv56";
}; };
exec = pip { exec = pip {

View File

@@ -1,20 +1,20 @@
package rdfind { package rdfind {
description = "a program that finds duplicate files"; description = "a program that finds duplicate files"
website = "https://rdfind.pauldreik.se"; website = "https://rdfind.pauldreik.se"
anitya = 231641; anitya = 231641
version* = "1.8.0"; version# = "1.8.0"
source = remoteTar { source = remoteTar {
url = "https://rdfind.pauldreik.se/rdfind-"+version+".tar.gz"; url = "https://rdfind.pauldreik.se/rdfind-${version}.tar.gz"
checksum = "PoaeJ2WIG6yyfe5VAYZlOdAQiR3mb3WhAUMj2ziTCx_IIEal4640HMJUb4SzU9U3"; checksum = "PoaeJ2WIG6yyfe5VAYZlOdAQiR3mb3WhAUMj2ziTCx_IIEal4640HMJUb4SzU9U3"
compress = gzip; compress = gzip
}; }
exec = make { exec = make {
// test suite hard codes /bin/echo // test suite hard codes /bin/echo
preCheck = "\nln -s ../system/bin/toybox /bin/echo\n"; preCheck = "ln -s ../system/bin/toybox /bin/echo"
}; }
inputs = [ nettle ]; inputs = [ nettle ]
runtime = [ nettle ]; runtime = [ nettle ]
} }

View File

@@ -1,27 +1,26 @@
package rsync { package rsync {
description = "an open source utility that provides fast incremental file transfer"; description = "an open source utility that provides fast incremental file transfer"
website = "https://rsync.samba.org"; website = "https://rsync.samba.org"
anitya = 4217; anitya = 4217
version* = "3.4.2"; version# = "3.4.2"
source = remoteTar { source = remoteTar {
url = "https://download.samba.org/pub/rsync/src/"+ url = "https://download.samba.org/pub/rsync/src/rsync-${version}.tar.gz"
"rsync-"+version+".tar.gz"; checksum = "t7PxS4WHXzefLMKKc_3hJgxUmlGG6KgHMZ8i4DZvCQAUAizxbclNKwfLyOHyq5BX"
checksum = "t7PxS4WHXzefLMKKc_3hJgxUmlGG6KgHMZ8i4DZvCQAUAizxbclNKwfLyOHyq5BX"; compress = gzip
compress = gzip; }
};
toyboxEarly = true; toyboxEarly
exec = make { exec = make {
configure = { configure = [
"disable-openssl"; "disable-openssl"
"disable-xxhash"; "disable-xxhash"
"disable-zstd"; "disable-zstd"
"disable-lz4"; "disable-lz4"
}; ]
// circular dependency // circular dependency
skipCheck = true; skipCheck
}; }
} }

View File

@@ -5,11 +5,11 @@ package spirv-headers {
// upstream changed version scheme, anitya incapable of filtering them // upstream changed version scheme, anitya incapable of filtering them
latest = anityaFilterSPIRV; latest = anityaFilterSPIRV;
version* = "1.4.341.0"; version* = "1.4.350.0";
source = remoteGitHub { source = remoteGitHub {
suffix = "KhronosGroup/SPIRV-Headers"; suffix = "KhronosGroup/SPIRV-Headers";
tag = "vulkan-sdk-"+version; tag = "vulkan-sdk-"+version;
checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD"; checksum = "wFCZquDVL4HoE-kWbS_BHHb_d71EYR2A2kVp08oDutektpnQzhDP89wo821GgcpG";
}; };
exec = cmake { exec = cmake {

View File

@@ -1,51 +1,51 @@
package squashfs-tools { package squashfs-tools {
description = "tools to create and extract Squashfs filesystems"; description = "tools to create and extract Squashfs filesystems"
website = "https://github.com/plougher/squashfs-tools"; website = "https://github.com/plougher/squashfs-tools"
anitya = 4879; anitya = 4879
version* = "4.7.5"; version# = "4.7.5"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "plougher/squashfs-tools"; suffix = "plougher/squashfs-tools"
tag = version; tag = version
name = "squashfs-tools-"+version+".tar.gz"; name = "squashfs-tools-${version}.tar.gz"
checksum = "rF52wLQP-jeAmcD-48wqJcck8ZWRFwkax3T-7snaRf5EBnCQQh0YypMY9lwcivLz"; checksum = "rF52wLQP-jeAmcD-48wqJcck8ZWRFwkax3T-7snaRf5EBnCQQh0YypMY9lwcivLz"
compress = gzip; compress = gzip
}; }
// uses source tree as scratch space // uses source tree as scratch space
writable = true; writable
chmod = true; chmod
env = [ env = [
"CONFIG=1", "CONFIG=1"
"XZ_SUPPORT=0", "XZ_SUPPORT=0"
"LZO_SUPPORT=0", "LZO_SUPPORT=0"
"LZ4_SUPPORT=0", "LZ4_SUPPORT=0"
"COMP_DEFAULT=zstd", "COMP_DEFAULT=zstd"
"USE_PREBUILT_MANPAGES=y", "USE_PREBUILT_MANPAGES=y"
]; ]
early = "cd squashfs-tools"; early = "cd squashfs-tools"
exec = make { exec = make {
skipConfigure = true; skipConfigure
inPlace = true; inPlace
skipCheck = true; skipCheck
install = "make INSTALL_PREFIX=/work/system install"; install = "make INSTALL_PREFIX=/work/system install"
}; }
inputs = [ inputs = [
sed, sed
zstd, zstd
gzip, gzip
zlib, zlib
]; ]
runtime = [ runtime = [
zstd, zstd
gzip, gzip
zlib, zlib
]; ]
} }

View File

@@ -1,18 +1,37 @@
package stage0-dist { package rosa-stage0 {
description = "Rosa OS stage0 bootstrap seed"; description = "Rosa OS stage0 bootstrap seed"
exclude = true; version = unversioned
exclude
version* = "20260504"; source = hakurei-source
output = remoteTar { extra = [
url = "https://hakurei.app/seed/"+version+"/"+ llvm
"stage0-"+triple+".tar.bz2"; mksh
checksum = arch { toybox-early
amd64 = "IQjFDkiAVLo1XzflgMMiLP3gnVY2hhDMTzl-QqJDCQhcLQ3lLtRzjI5WCxGyW_lk"; ]
arm64 = "6fmwl2Umx2QssKQvxxb1JOGkAjzfA_MXKku0jVdGjYGb35OvwEVA5NYtd0HIy3yH"; overlay = "/stage0"
riscv64 = "Z2ODV0rIoo9iQRUIu35bsaOBeXc_9qQfGcyb2aGneatzNUJlXh5emSpEV2bOklUL"; exec = generic {
build = `umask 377
tar -vjc -C /stage0 -f /work/stage0-${triple}.tar.bz2 .`
}
default = 0; inputs = [ bzip2 ]
}; }
compress = bzip2;
}; package stage0-dist {
description = "Rosa OS stage0 bootstrap seed (binary distribution)"
exclude
version# = "20260504"
output = remoteTar {
url = "https://hakurei.app/seed/${version}/stage0-${triple}.tar.bz2"
checksum = arch {
amd64 = "IQjFDkiAVLo1XzflgMMiLP3gnVY2hhDMTzl-QqJDCQhcLQ3lLtRzjI5WCxGyW_lk"
arm64 = "6fmwl2Umx2QssKQvxxb1JOGkAjzfA_MXKku0jVdGjYGb35OvwEVA5NYtd0HIy3yH"
riscv64 = "Z2ODV0rIoo9iQRUIu35bsaOBeXc_9qQfGcyb2aGneatzNUJlXh5emSpEV2bOklUL"
default = 0
}
compress = bzip2
}
} }

View File

@@ -1,38 +1,36 @@
package strace { package strace {
description = "a diagnostic, debugging and instructional userspace utility"; description = "a diagnostic, debugging and instructional userspace utility"
website = "https://strace.io"; website = "https://strace.io"
anitya = 4897; anitya = 4897
version* = "6.19"; version := "6.19"
source = remoteFile { source = remoteFile {
url = "https://strace.io/files/"+version+"/strace-"+version+".tar.xz"; url = "https://strace.io/files/${version}/strace-${version}.tar.xz"
checksum = "XJFJJ9XLh_1rHS3m_QNjLKzkkBAooE-QT9p9lJNNWowAmd54IJop_fI4-IFtjeeL"; checksum = "XJFJJ9XLh_1rHS3m_QNjLKzkkBAooE-QT9p9lJNNWowAmd54IJop_fI4-IFtjeeL"
}; }
early = ` early = `sed -i 's/off64_t/off_t/g' \
sed -i 's/off64_t/off_t/g' \ tests/readahead.c \
tests/readahead.c \ tests/sync_file_range.c \
tests/sync_file_range.c \ tests/sync_file_range2.c
tests/sync_file_range2.c sed -i 's/unsigned int msg_len;$/uint32_t msg_len;/g' \
sed -i 's/unsigned int msg_len;$/uint32_t msg_len;/g' \ tests/nlattr.c`
tests/nlattr.c
`;
exec = make { exec = make {
configure = { configure = [
// tests broken on clang // tests broken on clang
"disable-gcc-Werror"; "disable-gcc-Werror"
"enable-mpers": "no"; "enable-mpers": "no"
}; ]
// does not compile on musl // does not compile on musl
skipCheck = true; skipCheck
}; }
inputs = [ inputs = [
xz, xz
kernel-headers, kernel-headers
]; ]
} }

View File

@@ -1,50 +1,45 @@
package tamago { package tamago {
description = "a Go toolchain extended with support for bare metal execution"; description = "a Go toolchain extended with support for bare metal execution"
website = "https://github.com/usbarmory/tamago-go"; website = "https://github.com/usbarmory/tamago-go"
anitya = 388872; anitya = 388872
version* = "1.26.3"; version# = "1.26.3"
source = remoteGitHub { source = remoteGitHub {
suffix = "usbarmory/tamago-go"; suffix = "usbarmory/tamago-go"
tag = "tamago-go"+version; tag = "tamago-go"+version
checksum = "-nH3MjAzDDLTeJ2hRKYJcJwo5-Ikci4zOHfB8j1vKn7zrF9TS6zYaoLi8qohGwAE"; checksum = "-nH3MjAzDDLTeJ2hRKYJcJwo5-Ikci4zOHfB8j1vKn7zrF9TS6zYaoLi8qohGwAE"
}; }
env = [ env = [
"CC=cc", "CC=cc"
"GOCACHE=/tmp/gocache", "GOCACHE=/tmp/gocache"
"CGO_ENABLED=0", "CGO_ENABLED=0"
]; ]
enterSource = true; enterSource
exec = generic { exec = generic {
inPlace = true; inPlace
build = ` build = r`mkdir /work/system/
mkdir /work/system/ cp -r . /work/system/tamago
cp -r . /work/system/tamago cd /work/system/tamago/src
cd /work/system/tamago/src chmod -R +w ..
chmod -R +w .. sed -i \
's,/lib/ld-musl-` + linuxArch + `.so.1,/system/bin/linker,' \
cmd/link/internal/` + arch + `/obj.go
sed -i \
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
internal/runtime/gc/scan/scan_amd64.go
rm \
os/root_unix_test.go \
cmd/cgo/internal/testsanitizers/tsan_test.go \
cmd/cgo/internal/testsanitizers/cshared_test.go
set +u
. ./make.bash "$@" --no-banner
set -u`
check = "bash run.bash --no-rebuild"
install = "../bin/go tool dist banner # print build info"
}
sed -i \ inputs = [ bash, go ]
's,/lib/ld-musl-` + linuxArch + `.so.1,/system/bin/linker,' \
cmd/link/internal/` + arch + `/obj.go
sed -i \
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
internal/runtime/gc/scan/scan_amd64.go
rm \
os/root_unix_test.go \
cmd/cgo/internal/testsanitizers/tsan_test.go \
cmd/cgo/internal/testsanitizers/cshared_test.go
set +u
. ./make.bash "$@" --no-banner
set -u
`;
check = "bash run.bash --no-rebuild\n";
install = "../bin/go tool dist banner # print build info";
};
inputs = [ bash, go ];
} }

View File

@@ -0,0 +1,14 @@
package tllist {
description = "a C header file only implementation of a typed linked list"
website = "https://codeberg.org/dnkl/tllist"
anitya = 141661
version# = "1.1.0"
source = remoteTar {
url = "https://codeberg.org/dnkl/tllist/archive/${version}.tar.gz"
checksum = "EEgawChPB8hO7mW9dAzakBGWSRnrgK8pWhCF7Z5F_ycYEqOXxJPCWq6mFUi95U9d"
compress = gzip
}
exec = meson()
}

View File

@@ -1,134 +1,116 @@
package toybox-source { package toybox-source {
description = "toybox source tree"; description = "toybox source tree"
exclude = true; exclude
version* = "0.8.13"; version# = "0.8.13"
output = remoteTar { output = remoteTar {
url = "https://landley.net/toybox/downloads/toybox-"+version+".tar.gz"; url = "https://landley.net/toybox/downloads/toybox-${version}.tar.gz"
checksum = "rZ1V1ATDte2WeQZanxLVoiRGdfPXhMlEo5-exX-e-ml8cGn9qOv0ABEUVZpX3wTI"; checksum = "rZ1V1ATDte2WeQZanxLVoiRGdfPXhMlEo5-exX-e-ml8cGn9qOv0ABEUVZpX3wTI"
compress = gzip; compress = gzip
}; }
} }
package toybox { package toybox {
description = "many common Linux command line utilities"; description = "many common Linux command line utilities"
website = "https://landley.net/toybox"; website = "https://landley.net/toybox"
anitya = 13818; anitya = 13818
source = toybox-source; source = toybox-source
writable = true; writable
enterSource = true; enterSource
toyboxEarly = true; toyboxEarly
exec = make { exec = make {
omitDefaults = true; omitDefaults
inPlace = true; inPlace
skipConfigure = true; skipConfigure
preMake = `
LDFLAGS="${LDFLAGS:-''} -static"
chmod +w /bin/
ln -rs "$(which bash)" /bin/ || true
chmod +w kconfig tests
rm \
tests/du.test \
tests/sed.test \
tests/tar.test \
tests/ls.test \
tests/taskset.test
make defconfig
sed -i \
's/^CONFIG_TOYBOX_ZHELP=y$/CONFIG_TOYBOX_ZHELP=0/' \
.config
`;
preMake = r`LDFLAGS="${LDFLAGS:-''} -static"
chmod +w /bin/
ln -rs "$(which bash)" /bin/ || true
chmod +w kconfig tests
rm \
tests/du.test \
tests/sed.test \
tests/tar.test \
tests/ls.test \
tests/taskset.test
make defconfig
sed -i \
's/^CONFIG_TOYBOX_ZHELP=y$/CONFIG_TOYBOX_ZHELP=0/' \
.config`
check = [ check = [
"USER=cure", "USER=cure"
"tests", "tests"
]; ]
skipEarlyStageCheck = true; skipEarlyStageCheck
install = "PREFIX=/work/system/bin make install_flat"
install = "PREFIX=/work/system/bin make install_flat"; postInstall = `mkdir -p /work/usr/bin
ln -s ../../system/bin/env /work/usr/bin`
postInstall = ` }
mkdir -p /work/usr/bin
ln -s ../../system/bin/env /work/usr/bin
`;
};
inputs = [ inputs = [
bash, bash
gzip, gzip
kernel-headers, kernel-headers
]; ]
} }
package toybox-early { package toybox-early {
description = "a build of toybox with unfinished tools enabled to break dependency loops"; description = "a build of toybox with unfinished tools enabled to break dependency loops"
website = "https://landley.net/toybox"; website = "https://landley.net/toybox"
exclude = true; exclude
source = toybox-source; source = toybox-source
writable = true; writable
enterSource = true; enterSource
toyboxEarly = true; toyboxEarly
exec = make { exec = make {
omitDefaults = true; omitDefaults
inPlace = true; inPlace
skipConfigure = true; skipConfigure
preMake = ` preMake = r`LDFLAGS="${LDFLAGS:-''} -static"
LDFLAGS="${LDFLAGS:-''} -static" chmod +w /bin/
ln -rs "$(which bash)" /bin/ || true
chmod +w /bin/ chmod +w kconfig tests
ln -rs "$(which bash)" /bin/ || true rm \
tests/du.test \
chmod +w kconfig tests tests/sed.test \
rm \ tests/tar.test \
tests/du.test \ tests/ls.test \
tests/sed.test \ tests/taskset.test
tests/tar.test \ make defconfig
tests/ls.test \ sed -i \
tests/taskset.test 's/^CONFIG_TOYBOX_ZHELP=y$/CONFIG_TOYBOX_ZHELP=0/' \
.config
make defconfig echo '
sed -i \ CONFIG_EXPR=y
's/^CONFIG_TOYBOX_ZHELP=y$/CONFIG_TOYBOX_ZHELP=0/' \ CONFIG_TR=y
.config CONFIG_AWK=y
CONFIG_DIFF=y
echo ' ' >> .config`
CONFIG_EXPR=y
CONFIG_TR=y
CONFIG_AWK=y
CONFIG_DIFF=y
' >> .config
`;
check = [ check = [
"USER=cure", "USER=cure"
"tests", "tests"
]; ]
skipEarlyStageCheck = true; skipEarlyStageCheck
install = "PREFIX=/work/system/bin make install_flat"; install = "PREFIX=/work/system/bin make install_flat"
postInstall = ` postInstall = `mkdir -p /work/usr/bin
mkdir -p /work/usr/bin ln -s ../../system/bin/env /work/usr/bin`
ln -s ../../system/bin/env /work/usr/bin }
`;
};
inputs = [ inputs = [
bash, bash
gzip, gzip
kernel-headers, kernel-headers
]; ]
} }

View File

@@ -1,36 +1,30 @@
package unzip { package unzip {
description = "portable compression/archiver utilities"; description = "portable compression/archiver utilities"
website = "https://infozip.sourceforge.net"; website = "https://infozip.sourceforge.net"
anitya = 8684; anitya = 8684
version* = "6.0"; version# = "6.0"
source = remoteTar { source = remoteTar {
url = "https://downloads.sourceforge.net/project/infozip/"+ url = "https://downloads.sourceforge.net/project/infozip/UnZip%206.x%20%28latest%29/UnZip%20${version}/unzip"+
"UnZip%206.x%20%28latest%29/UnZip%20"+version+"/"+ replace (version, ".") + ".tar.gz"
"unzip"+replace { checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1"
s = version; compress = gzip
old = "."; }
}+".tar.gz";
checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1";
compress = gzip;
};
enterSource = true; enterSource
writable = true; writable
chmod = true; chmod
exec = generic { exec = generic {
inPlace = true; inPlace
build = `unix/configure build = `unix/configure
make -f unix/Makefile generic1`; make -f unix/Makefile generic1`
install = ` install = `mkdir -p /work/system/bin/
mkdir -p /work/system/bin/ mv unzip /work/system/bin/`
mv unzip /work/system/bin/ }
`;
};
inputs = [ inputs = [
make, make
coreutils, coreutils
]; ]
} }

View File

@@ -0,0 +1,18 @@
package utf8proc {
description = "a clean C library for processing UTF-8 Unicode data"
website = "https://juliastrings.github.io/utf8proc"
anitya = 7455
version# = "2.11.3"
source = remoteGitHub {
suffix = "JuliaStrings/utf8proc"
tag = "v"+version
checksum = "LlmejkymQEhaMciSE17JSl3pAYdf6DdXNr0ucwclClsMCeq7l1dcgIJl1JmNTQVq"
}
exec = cmake {
cache = {
"UTF8PROC_ENABLE_TESTING": "ON"
}
}
}

View File

@@ -1,59 +1,45 @@
package util-linux { package util-linux {
description = "a random collection of Linux utilities"; description = "a random collection of Linux utilities"
website = "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git"; website = "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git"
anitya = 8179; anitya = 8179
// release candidates confuse Anitya // release candidates confuse Anitya
latest = anityaFallback; latest = anityaFallback
version* = "2.42"; version# = "2.42.1"
source = remoteTar { source = remoteTar {
url = "https://www.kernel.org/pub/linux/utils/util-linux/"+ url = "https://www.kernel.org/pub/linux/utils/util-linux/v"+trimPatch(version)+"/util-linux-${version}.tar.gz"
"v"+join { checksum = "f1c006mnFL9jTEsqnJn08hHqwcL8TpjCJNIToZNuGEPsLmEdNL87r8RzBT-nl9QB"
elems = slice { compress = gzip
elems = split {
s = version;
sep = ".";
n = 3;
};
end = 2;
};
sep = ".";
}+"/util-linux-"+version+".tar.gz";
checksum = "Uy8Nxg9DsW5YwDoeaZeZTyQJ2YmnaaL_fSsQXsLUiFFUd7wnZeD_3SEaVO7ClJlk";
compress = gzip;
}; };
early = "\nln -s ../system/bin/bash /bin/\n"; early = "ln -s ../system/bin/bash /bin/"
exec = make { exec = make {
configure = { configure = [
"disable-use-tty-group"; "disable-use-tty-group"
"disable-makeinstall-setuid"; "disable-makeinstall-setuid"
"disable-makeinstall-chown"; "disable-makeinstall-chown"
"enable-fs-paths-default": join { "enable-fs-paths-default": join ([
elems = [ "/system/sbin"
"/system/sbin", "/system/sbin/fs.d"
"/system/sbin/fs.d", "/system/sbin/fs"
"/system/sbin/fs", ], ":")
];
sep = ":";
};
"disable-su"; "disable-su"
"disable-liblastlog2"; "disable-liblastlog2"
"disable-pam-lastlog2"; "disable-pam-lastlog2"
}; ]
// check script claims: // check script claims:
// For development purpose only. // For development purpose only.
// Don't execute on production system! // Don't execute on production system!
skipCheck = true; skipCheck
}; };
inputs = [ inputs = [
bash, bash
kernel-headers, kernel-headers
]; ]
} }

View File

@@ -1,30 +1,30 @@
package vim { package vim {
description = "a greatly improved version of the good old UNIX editor Vi"; description = "a greatly improved version of the good old UNIX editor Vi"
website = "https://www.vim.org"; website = "https://www.vim.org"
anitya = 5092; anitya = 5092
version* = "9.2.0461"; version# = "9.2.0461"
source = remoteGitHub { source = remoteGitHub {
suffix = "vim/vim"; suffix = "vim/vim"
tag = "v"+version; tag = "v"+version
checksum = "18Rr_5oIf_PkKuqVkN4CMZIGkZEgpN1vamlrsvPLBjn4mN98CRuoJmhzRZ7MoVYM"; checksum = "18Rr_5oIf_PkKuqVkN4CMZIGkZEgpN1vamlrsvPLBjn4mN98CRuoJmhzRZ7MoVYM"
}; }
writable = true; writable
chmod = true; chmod
enterSource = true; enterSource
exec = make { exec = make {
inPlace = true; inPlace
configure = { configure = [
"with-tlib": "ncursesw"; "with-tlib": "ncursesw"
}; ]
check = [ "test" ]; check = [ "test" ]
// very expensive // very expensive
skipCheck = true; skipCheck
}; }
inputs = [ ncurses ]; inputs = [ ncurses ]
runtime = [ ncurses ]; runtime = [ ncurses ]
} }

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
package xkbcommon {
description = "a library implementing the XKB specification for handling keyboard descriptions"
website = "https://xkbcommon.org"
anitya = 1780
version# = "1.13.1"
source = remoteGitHub {
suffix = "xkbcommon/libxkbcommon"
tag = "xkbcommon-"+version
checksum = "8L8-d1OT9vmCTR6y0fpG7IsSjelAdtDcaD9PRk7--49uEW5ZybD1-bniCxsQU_8Q"
}
env = [
"HOME=/proc/nonexistent"
]
exec = meson {
setup = {
"Denable-x11": "false"
}
}
inputs = [
m4
bison
libxml2
wayland
wayland-protocols
xkeyboard-config
]
runtime = [
libxml2
wayland
wayland-protocols
]
}

View File

@@ -1,18 +1,18 @@
package xz { package xz {
description = "XZ Utils"; description = "XZ Utils"
website = "https://tukaani.org/xz"; website = "https://tukaani.org/xz"
anitya = 5277; anitya = 5277
version* = "5.8.3"; version# = "5.8.3"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "tukaani-project/xz"; suffix = "tukaani-project/xz"
tag = "v"+version; tag = "v"+version
name = "xz-"+version+".tar.bz2"; name = "xz-${version}.tar.bz2"
checksum = "nCdayphPGdIdVoAZ2hR4vYlhDG9LeVKho_i7ealTud4Vxy5o5dWe0VwFlN7utuUL"; checksum = "nCdayphPGdIdVoAZ2hR4vYlhDG9LeVKho_i7ealTud4Vxy5o5dWe0VwFlN7utuUL"
compress = bzip2; compress = bzip2
}; }
exec = make {}; exec = make()
inputs = [ diffutils ]; inputs = [ diffutils ]
} }

View File

@@ -1,28 +1,28 @@
package zlib { package zlib {
description = "lossless data-compression library"; description = "lossless data-compression library"
website = "https://zlib.net"; website = "https://zlib.net"
anitya = 5303; anitya = 5303
version* = "1.3.2"; version# = "1.3.2"
source = remoteTar { source = remoteTar {
url = "https://www.zlib.net/fossils/zlib-"+version+".tar.gz"; url = "https://www.zlib.net/fossils/zlib-${version}.tar.gz"
checksum = "KHZrePe42vL2XvOUE3KlJkp1UgWhWkl0jjT_BOvFhuM4GzieEH9S7CioepOFVGYB"; checksum = "KHZrePe42vL2XvOUE3KlJkp1UgWhWkl0jjT_BOvFhuM4GzieEH9S7CioepOFVGYB"
compress = gzip; compress = gzip
}; }
exec = cmake { exec = cmake {
cache = { cache = [
"CMAKE_C_FLAGS": "-fPIC"; "CMAKE_C_FLAGS": "-fPIC"
"ZLIB_BUILD_TESTING": "ON"; "ZLIB_BUILD_TESTING": "ON"
"ZLIB_BUILD_SHARED": "ON"; "ZLIB_BUILD_SHARED": "ON"
"ZLIB_BUILD_STATIC": "ON"; "ZLIB_BUILD_STATIC": "ON"
"ZLIB_BUILD_MINIZIP": "OFF"; "ZLIB_BUILD_MINIZIP": "OFF"
"ZLIB_INSTALL": "ON"; "ZLIB_INSTALL": "ON"
"ZLIB_PREFIX": "OFF"; "ZLIB_PREFIX": "OFF"
}; ]
// ninja dependency loop // ninja dependency loop
make = true; make
}; };
} }

View File

@@ -1,31 +1,29 @@
package zstd { package zstd {
description = "a fast compression algorithm"; description = "a fast compression algorithm"
website = "https://facebook.github.io/zstd"; website = "https://facebook.github.io/zstd"
anitya = 12083; anitya = 12083
version* = "1.5.7"; version# = "1.5.7"
source = remoteGitHubRelease { source = remoteGitHubRelease {
suffix = "facebook/zstd"; suffix = "facebook/zstd"
tag = "v"+version; tag = "v"+version
name = "zstd-"+version+".tar.gz"; name = "zstd-${version}.tar.gz"
checksum = "4XhfR7DwVkwo1R-TmYDAJOcx9YXv9WSFhcFUe3hWEAMmdMLPhFaznCqYIA19_xxV"; checksum = "4XhfR7DwVkwo1R-TmYDAJOcx9YXv9WSFhcFUe3hWEAMmdMLPhFaznCqYIA19_xxV"
compress = gzip; compress = gzip
}; }
// tests Makefile assumes writable source // tests Makefile assumes writable source
writable = true; writable
chmod = true; chmod
exec = cmake { exec = cmake {
append = [ "build", "cmake" ]; append = [ "build", "cmake" ]
test = ` test = `make -C /usr/src/zstd/tests datagen
make -C /usr/src/zstd/tests datagen ZSTD_BIN=/cure/programs/zstd /usr/src/zstd/tests/playTests.sh`
ZSTD_BIN=/cure/programs/zstd /usr/src/zstd/tests/playTests.sh }
`;
};
inputs = [ inputs = [
make, make
diffutils, diffutils
]; ]
} }

View File

@@ -1,14 +1,8 @@
package rosa package rosa
import (
"slices"
"hakurei.app/internal/pkg"
)
var _perl = H("perl") var _perl = H("perl")
// MakeMakerHelper is the [Perl] MakeMaker helper. // MakeMakerHelper builds projects using the included MakeMaker script.
type MakeMakerHelper struct { type MakeMakerHelper struct {
// Whether to skip the check target. // Whether to skip the check target.
SkipCheck bool SkipCheck bool
@@ -49,17 +43,3 @@ make \
script += "make DESTDIR=/work install\n" script += "make DESTDIR=/work install\n"
return script return script
} }
// newViaPerlMakeMaker installs a perl module via Makefile.PL.
func (t Toolchain) newViaPerlMakeMaker(
name, version string,
source pkg.Artifact,
patches []KV,
extra ...ArtifactH,
) pkg.Artifact {
return t.NewPackage("perl-"+name, version, source, &PackageAttr{
Patches: patches,
}, (*MakeMakerHelper)(nil), slices.Concat(extra, P{
_perl,
})...)
}

View File

@@ -1,17 +1,11 @@
package rosa package rosa
import (
"slices"
"hakurei.app/internal/pkg"
)
var ( var (
_python = H("python") _python = H("python")
_pythonPyTest = H("python-pytest") _pythonPyTest = H("python-pytest")
) )
// PipHelper is the [Python] pip packaging helper. // PipHelper installs python packages from source using pip.
type PipHelper struct { type PipHelper struct {
// Path elements joined with source. // Path elements joined with source.
Append []string Append []string
@@ -94,27 +88,3 @@ pip3 install \
'` + sourcePath.String() + `' '` + sourcePath.String() + `'
` + script ` + script
} }
// newPythonPackage registers a new [Python] package.
func (s *S) newPythonPackage(
name string, id int, description, website, version string,
source pkg.Artifact, attrP *PackageAttr, attr *PipHelper,
build P, extra ...ArtifactH,
) {
name = "python-" + name
s.MustRegister(name, func(t Toolchain) (*Metadata, pkg.Artifact) {
return &Metadata{
Name: name,
Description: description,
Website: website,
Version: version,
Dependencies: slices.Concat(P{_python}, extra),
ID: id,
}, t.NewPackage(name, version, source, attrP, attr, slices.Concat(
extra,
build,
)...)
})
}

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