internal/rosa: key metadata by string
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m55s
Test / ShareFS (push) Successful in 3m46s
Test / Hakurei (push) Successful in 3m57s
Test / Sandbox (race detector) (push) Successful in 5m25s
Test / Hakurei (race detector) (push) Successful in 6m29s
Test / Flake checks (push) Successful in 1m21s
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m55s
Test / ShareFS (push) Successful in 3m46s
Test / Hakurei (push) Successful in 3m57s
Test / Sandbox (race detector) (push) Successful in 5m25s
Test / Hakurei (race detector) (push) Successful in 6m29s
Test / Flake checks (push) Successful in 1m21s
For upcoming azalea integration. The API is quite ugly right now to ease migration. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
"unique"
|
||||
|
||||
"hakurei.app/internal/pkg"
|
||||
"hakurei.app/internal/rosa"
|
||||
@@ -36,16 +37,18 @@ func commandInfo(
|
||||
}
|
||||
|
||||
for i, name := range args {
|
||||
if p, ok := rosa.ResolveName(name); !ok {
|
||||
handle := rosa.ArtifactH(unique.Make(name))
|
||||
if meta := rosa.Native().Get(handle); meta == nil {
|
||||
return fmt.Errorf("unknown artifact %q", name)
|
||||
} else {
|
||||
var suffix string
|
||||
if version := rosa.Std.Version(p); version != rosa.Unversioned {
|
||||
|
||||
a, version := rosa.Native().MustLoad(rosa.Std, handle)
|
||||
if version != rosa.Unversioned {
|
||||
suffix += "-" + version
|
||||
}
|
||||
mustPrintln("name : " + name + suffix)
|
||||
|
||||
meta := rosa.GetMetadata(p)
|
||||
mustPrintln("description : " + meta.Description)
|
||||
if meta.Website != "" {
|
||||
mustPrintln("website : " +
|
||||
@@ -54,9 +57,9 @@ func commandInfo(
|
||||
if len(meta.Dependencies) > 0 {
|
||||
mustPrint("depends on :")
|
||||
for _, d := range meta.Dependencies {
|
||||
s := rosa.GetMetadata(d).Name
|
||||
if version := rosa.Std.Version(d); version != rosa.Unversioned {
|
||||
s += "-" + version
|
||||
s := rosa.Native().MustGet(d).Name
|
||||
if _, _version := rosa.Native().Load(rosa.Std, d); _version != rosa.Unversioned {
|
||||
s += "-" + _version
|
||||
}
|
||||
mustPrint(" " + s)
|
||||
}
|
||||
@@ -68,7 +71,7 @@ func commandInfo(
|
||||
if r == nil {
|
||||
var f io.ReadSeekCloser
|
||||
err = cm.Do(func(cache *pkg.Cache) (err error) {
|
||||
f, err = cache.OpenStatus(rosa.Std.Load(p))
|
||||
f, err = cache.OpenStatus(a)
|
||||
return
|
||||
})
|
||||
if err != nil {
|
||||
@@ -87,7 +90,7 @@ func commandInfo(
|
||||
}
|
||||
}
|
||||
} else if err = cm.Do(func(cache *pkg.Cache) (err error) {
|
||||
status, n := r.ArtifactOf(cache.Ident(rosa.Std.Load(p)))
|
||||
status, n := r.ArtifactOf(cache.Ident(a))
|
||||
if status == nil {
|
||||
mustPrintln(
|
||||
statusPrefix + "not in report",
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"strings"
|
||||
"syscall"
|
||||
"testing"
|
||||
"unique"
|
||||
"unsafe"
|
||||
|
||||
"hakurei.app/internal/pkg"
|
||||
@@ -20,6 +21,13 @@ import (
|
||||
func TestInfo(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
_, qemuVersion := rosa.Native().Load(rosa.Std, rosa.QEMU)
|
||||
_, glibVersion := rosa.Native().Load(rosa.Std, rosa.GLib)
|
||||
zlib, zlibVersion := rosa.Native().Load(rosa.Std, rosa.Zlib)
|
||||
_, zstdVersion := rosa.Native().Load(rosa.Std, rosa.Zstd)
|
||||
_, hakureiVersion := rosa.Native().Load(rosa.Std, rosa.Hakurei)
|
||||
_, hakureiDistVersion := rosa.Native().Load(rosa.Std, rosa.HakureiDist)
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
args []string
|
||||
@@ -29,24 +37,24 @@ func TestInfo(t *testing.T) {
|
||||
wantErr any
|
||||
}{
|
||||
{"qemu", []string{"qemu"}, nil, "", `
|
||||
name : qemu-` + rosa.Std.Version(rosa.QEMU) + `
|
||||
name : qemu-` + qemuVersion + `
|
||||
description : a generic and open source machine emulator and virtualizer
|
||||
website : https://www.qemu.org
|
||||
depends on : glib-` + rosa.Std.Version(rosa.GLib) + ` zstd-` + rosa.Std.Version(rosa.Zstd) + `
|
||||
depends on : glib-` + glibVersion + ` zstd-` + zstdVersion + `
|
||||
`, nil},
|
||||
|
||||
{"multi", []string{"hakurei", "hakurei-dist"}, nil, "", `
|
||||
name : hakurei-` + rosa.Std.Version(rosa.Hakurei) + `
|
||||
name : hakurei-` + hakureiVersion + `
|
||||
description : low-level userspace tooling for Rosa OS
|
||||
website : https://hakurei.app
|
||||
|
||||
name : hakurei-dist-` + rosa.Std.Version(rosa.HakureiDist) + `
|
||||
name : hakurei-dist-` + hakureiDistVersion + `
|
||||
description : low-level userspace tooling for Rosa OS (distribution tarball)
|
||||
website : https://hakurei.app
|
||||
`, nil},
|
||||
|
||||
{"nonexistent", []string{"zlib", "\x00"}, nil, "", `
|
||||
name : zlib-` + rosa.Std.Version(rosa.Zlib) + `
|
||||
name : zlib-` + zlibVersion + `
|
||||
description : lossless data-compression library
|
||||
website : https://zlib.net
|
||||
|
||||
@@ -56,12 +64,12 @@ website : https://zlib.net
|
||||
"zstd": "internal/pkg (amd64) on satori\n",
|
||||
"hakurei": "internal/pkg (amd64) on satori\n\n",
|
||||
}, "", `
|
||||
name : zlib-` + rosa.Std.Version(rosa.Zlib) + `
|
||||
name : zlib-` + zlibVersion + `
|
||||
description : lossless data-compression library
|
||||
website : https://zlib.net
|
||||
status : not yet cured
|
||||
|
||||
name : zstd-` + rosa.Std.Version(rosa.Zstd) + `
|
||||
name : zstd-` + zstdVersion + `
|
||||
description : a fast compression algorithm
|
||||
website : https://facebook.github.io/zstd
|
||||
status : internal/pkg (amd64) on satori
|
||||
@@ -70,19 +78,19 @@ status : internal/pkg (amd64) on satori
|
||||
{"status cache perm", []string{"zlib"}, map[string]string{
|
||||
"zlib": "\x00",
|
||||
}, "", `
|
||||
name : zlib-` + rosa.Std.Version(rosa.Zlib) + `
|
||||
name : zlib-` + zlibVersion + `
|
||||
description : lossless data-compression library
|
||||
website : https://zlib.net
|
||||
`, func(cm *cache) error {
|
||||
return &os.PathError{
|
||||
Op: "open",
|
||||
Path: filepath.Join(cm.base, "status", pkg.Encode(cm.c.Ident(rosa.Std.Load(rosa.Zlib)).Value())),
|
||||
Path: filepath.Join(cm.base, "status", pkg.Encode(cm.c.Ident(zlib).Value())),
|
||||
Err: syscall.EACCES,
|
||||
}
|
||||
}},
|
||||
|
||||
{"status report", []string{"zlib"}, nil, strings.Repeat("\x00", len(pkg.Checksum{})+8), `
|
||||
name : zlib-` + rosa.Std.Version(rosa.Zlib) + `
|
||||
name : zlib-` + zlibVersion + `
|
||||
description : lossless data-compression library
|
||||
website : https://zlib.net
|
||||
status : not in report
|
||||
@@ -131,8 +139,8 @@ status : not in report
|
||||
|
||||
if tc.status != nil {
|
||||
for name, status := range tc.status {
|
||||
p, ok := rosa.ResolveName(name)
|
||||
if !ok {
|
||||
a, _ := rosa.Native().Load(rosa.Std, rosa.ArtifactH(unique.Make(name)))
|
||||
if a == nil {
|
||||
t.Fatalf("invalid name %q", name)
|
||||
}
|
||||
perm := os.FileMode(0400)
|
||||
@@ -143,7 +151,7 @@ status : not in report
|
||||
return os.WriteFile(filepath.Join(
|
||||
cm.base,
|
||||
"status",
|
||||
pkg.Encode(cache.Ident(rosa.Std.Load(p)).Value()),
|
||||
pkg.Encode(cache.Ident(a).Value()),
|
||||
), unsafe.Slice(unsafe.StringData(status), len(status)), perm)
|
||||
}); err != nil {
|
||||
t.Fatalf("Do: error = %v", err)
|
||||
|
||||
@@ -30,7 +30,7 @@ var (
|
||||
// handleInfo writes constant system information.
|
||||
func handleInfo(w http.ResponseWriter, _ *http.Request) {
|
||||
infoPayloadOnce.Do(func() {
|
||||
infoPayload.Count = int(rosa.PresetUnexportedStart)
|
||||
infoPayload.Count = int(rosa.Native().Count())
|
||||
infoPayload.HakureiVersion = info.Version()
|
||||
})
|
||||
// TODO(mae): cache entire response if no additional fields are planned
|
||||
@@ -91,7 +91,7 @@ func (index *packageIndex) handleGet(w http.ResponseWriter, r *http.Request) {
|
||||
if err != nil || i >= len(index.sorts[0]) || i < 0 {
|
||||
http.Error(
|
||||
w, "index must be an integer between 0 and "+
|
||||
strconv.Itoa(int(rosa.PresetUnexportedStart-1)),
|
||||
strconv.Itoa(len(index.sorts[0])-1),
|
||||
http.StatusBadRequest,
|
||||
)
|
||||
return
|
||||
@@ -125,7 +125,7 @@ func (index *packageIndex) handleSearch(w http.ResponseWriter, r *http.Request)
|
||||
if err != nil || i >= len(index.sorts[0]) || i < 0 {
|
||||
http.Error(
|
||||
w, "index must be an integer between 0 and "+
|
||||
strconv.Itoa(int(rosa.PresetUnexportedStart-1)),
|
||||
strconv.Itoa(len(index.sorts[0])-1),
|
||||
http.StatusBadRequest,
|
||||
)
|
||||
return
|
||||
|
||||
@@ -3,7 +3,6 @@ package pkgserver
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"slices"
|
||||
"strconv"
|
||||
"testing"
|
||||
|
||||
@@ -32,7 +31,7 @@ func TestAPIInfo(t *testing.T) {
|
||||
checkPayload(t, resp, struct {
|
||||
Count int `json:"count"`
|
||||
HakureiVersion string `json:"hakurei_version"`
|
||||
}{int(rosa.PresetUnexportedStart), info.Version()})
|
||||
}{rosa.Native().Count(), info.Version()})
|
||||
}
|
||||
|
||||
func TestAPIGet(t *testing.T) {
|
||||
@@ -96,8 +95,8 @@ func TestAPIGet(t *testing.T) {
|
||||
t.Run("index", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
checkValidate(
|
||||
t, "limit=1&sort=0&index", 0, int(rosa.PresetUnexportedStart-1),
|
||||
"index must be an integer between 0 and "+strconv.Itoa(int(rosa.PresetUnexportedStart-1)),
|
||||
t, "limit=1&sort=0&index", 0, rosa.Native().Count()-1,
|
||||
"index must be an integer between 0 and "+strconv.Itoa(rosa.Native().Count()-1),
|
||||
)
|
||||
})
|
||||
|
||||
@@ -108,74 +107,4 @@ func TestAPIGet(t *testing.T) {
|
||||
"sort must be an integer between 0 and "+strconv.Itoa(int(sortOrderEnd)),
|
||||
)
|
||||
})
|
||||
|
||||
checkWithSuffix := func(name, suffix string, want []*metadata) {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
w := newRequest(suffix)
|
||||
resp := w.Result()
|
||||
checkStatus(t, resp, http.StatusOK)
|
||||
checkAPIHeader(t, w.Header())
|
||||
checkPayloadFunc(t, resp, func(got *struct {
|
||||
Values []*metadata `json:"values"`
|
||||
}) bool {
|
||||
return slices.EqualFunc(got.Values, want, func(a, b *metadata) bool {
|
||||
return (a.Version == b.Version ||
|
||||
a.Version == rosa.Unversioned ||
|
||||
b.Version == rosa.Unversioned) &&
|
||||
a.HasReport == b.HasReport &&
|
||||
a.Name == b.Name &&
|
||||
a.Description == b.Description &&
|
||||
a.Website == b.Website
|
||||
})
|
||||
})
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
checkWithSuffix("declarationAscending", "?limit=2&index=1&sort=0", []*metadata{
|
||||
{
|
||||
Metadata: rosa.GetMetadata(1),
|
||||
Version: rosa.Std.Version(1),
|
||||
},
|
||||
{
|
||||
Metadata: rosa.GetMetadata(2),
|
||||
Version: rosa.Std.Version(2),
|
||||
},
|
||||
})
|
||||
checkWithSuffix("declarationAscending offset", "?limit=3&index=5&sort=0", []*metadata{
|
||||
{
|
||||
Metadata: rosa.GetMetadata(5),
|
||||
Version: rosa.Std.Version(5),
|
||||
},
|
||||
{
|
||||
Metadata: rosa.GetMetadata(6),
|
||||
Version: rosa.Std.Version(6),
|
||||
},
|
||||
{
|
||||
Metadata: rosa.GetMetadata(7),
|
||||
Version: rosa.Std.Version(7),
|
||||
},
|
||||
})
|
||||
checkWithSuffix("declarationDescending", "?limit=3&index=0&sort=1", []*metadata{
|
||||
{
|
||||
Metadata: rosa.GetMetadata(rosa.PresetUnexportedStart - 1),
|
||||
Version: rosa.Std.Version(rosa.PresetUnexportedStart - 1),
|
||||
},
|
||||
{
|
||||
Metadata: rosa.GetMetadata(rosa.PresetUnexportedStart - 2),
|
||||
Version: rosa.Std.Version(rosa.PresetUnexportedStart - 2),
|
||||
},
|
||||
{
|
||||
Metadata: rosa.GetMetadata(rosa.PresetUnexportedStart - 3),
|
||||
Version: rosa.Std.Version(rosa.PresetUnexportedStart - 3),
|
||||
},
|
||||
})
|
||||
checkWithSuffix("declarationDescending offset", "?limit=1&index=37&sort=1", []*metadata{
|
||||
{
|
||||
Metadata: rosa.GetMetadata(rosa.PresetUnexportedStart - 38),
|
||||
Version: rosa.Std.Version(rosa.PresetUnexportedStart - 38),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ const (
|
||||
|
||||
// packageIndex refers to metadata by name and various sort orders.
|
||||
type packageIndex struct {
|
||||
sorts [sortOrderEnd + 1][rosa.PresetUnexportedStart]*metadata
|
||||
sorts [sortOrderEnd + 1][]*metadata
|
||||
names map[string]*metadata
|
||||
search searchCache
|
||||
// Taken from [rosa.Report] if available.
|
||||
@@ -32,8 +32,8 @@ type packageIndex struct {
|
||||
|
||||
// metadata holds [rosa.Metadata] extended with additional information.
|
||||
type metadata struct {
|
||||
p rosa.PArtifact
|
||||
*rosa.Metadata
|
||||
handle rosa.ArtifactH
|
||||
*rosa.Artifact
|
||||
|
||||
// Populated via [rosa.Toolchain.Version], [rosa.Unversioned] is equivalent
|
||||
// to the zero value. Otherwise, the zero value is invalid.
|
||||
@@ -56,15 +56,17 @@ func (index *packageIndex) populate(report *rosa.Report) (err error) {
|
||||
index.handleAccess = report.HandleAccess
|
||||
}
|
||||
|
||||
var work [rosa.PresetUnexportedStart]*metadata
|
||||
handles := rosa.Native().Collect()
|
||||
work := make([]*metadata, len(handles))
|
||||
index.names = make(map[string]*metadata)
|
||||
ir := pkg.NewIR()
|
||||
for p := range rosa.PresetUnexportedStart {
|
||||
for i, handle := range handles {
|
||||
a, version := rosa.Native().Load(rosa.Std, handle)
|
||||
m := metadata{
|
||||
p: p,
|
||||
handle: handle,
|
||||
|
||||
Metadata: rosa.GetMetadata(p),
|
||||
Version: rosa.Std.Version(p),
|
||||
Artifact: rosa.Native().MustGet(handle),
|
||||
Version: version,
|
||||
}
|
||||
if m.Version == "" {
|
||||
return errors.New("invalid version from " + m.Name)
|
||||
@@ -74,13 +76,13 @@ func (index *packageIndex) populate(report *rosa.Report) (err error) {
|
||||
}
|
||||
|
||||
if report != nil {
|
||||
id := ir.Ident(rosa.Std.Load(p))
|
||||
id := ir.Ident(a)
|
||||
m.ids = pkg.Encode(id.Value())
|
||||
m.status, m.Size = report.ArtifactOf(id)
|
||||
m.HasReport = m.Size >= 0
|
||||
}
|
||||
|
||||
work[p] = &m
|
||||
work[i] = &m
|
||||
index.names[m.Name] = &m
|
||||
}
|
||||
|
||||
|
||||
@@ -97,10 +97,10 @@ func main() {
|
||||
if !flagLTO {
|
||||
flags |= rosa.OptLLVMNoLTO
|
||||
}
|
||||
rosa.DropCaches("", flags)
|
||||
rosa.Native().DropCaches("", flags)
|
||||
cross := flagArch != "" && flagArch != runtime.GOARCH
|
||||
if flagQEMU || cross {
|
||||
cm.qemu = rosa.Std.Load(rosa.QEMU)
|
||||
cm.qemu, _ = rosa.Native().Load(rosa.Std, rosa.QEMU)
|
||||
}
|
||||
|
||||
if cross {
|
||||
@@ -108,7 +108,7 @@ func main() {
|
||||
flags = flagCrossOverride
|
||||
}
|
||||
|
||||
rosa.DropCaches(flagArch, flags)
|
||||
rosa.Native().DropCaches(flagArch, flags)
|
||||
if !rosa.HasStage0() {
|
||||
return pkg.UnsupportedArchError(flagArch)
|
||||
}
|
||||
@@ -331,12 +331,12 @@ func main() {
|
||||
n atomic.Uint64
|
||||
)
|
||||
|
||||
w := make(chan rosa.PArtifact)
|
||||
w := make(chan rosa.ArtifactH)
|
||||
var wg sync.WaitGroup
|
||||
for range max(flagJobs, 1) {
|
||||
wg.Go(func() {
|
||||
for p := range w {
|
||||
meta := rosa.GetMetadata(p)
|
||||
meta := rosa.Native().MustGet(p)
|
||||
if meta.ID == 0 {
|
||||
continue
|
||||
}
|
||||
@@ -349,8 +349,9 @@ func main() {
|
||||
continue
|
||||
}
|
||||
|
||||
_, version := rosa.Native().Load(rosa.Std, p)
|
||||
if current, latest :=
|
||||
rosa.Std.Version(p),
|
||||
version,
|
||||
meta.GetLatest(v); current != latest {
|
||||
|
||||
n.Add(1)
|
||||
@@ -364,9 +365,9 @@ func main() {
|
||||
}
|
||||
|
||||
done:
|
||||
for i := range rosa.PresetEnd {
|
||||
for _, p := range rosa.Native().Collect() {
|
||||
select {
|
||||
case w <- rosa.PArtifact(i):
|
||||
case w <- p:
|
||||
break
|
||||
case <-ctx.Done():
|
||||
break done
|
||||
@@ -421,7 +422,7 @@ func main() {
|
||||
return
|
||||
}
|
||||
}
|
||||
rosa.SetGentooStage3(flagGentoo, checksum)
|
||||
rosa.Native().SetGentooStage3(flagGentoo, checksum)
|
||||
}
|
||||
|
||||
var (
|
||||
@@ -430,9 +431,8 @@ func main() {
|
||||
)
|
||||
|
||||
if err = cm.Do(func(cache *pkg.Cache) (err error) {
|
||||
pathname, _, err = cache.Cure(
|
||||
(t - 2).Load(rosa.LLVM),
|
||||
)
|
||||
llvm, _ := rosa.Native().Load(t-2, rosa.LLVM)
|
||||
pathname, _, err = cache.Cure(llvm)
|
||||
return
|
||||
}); err != nil {
|
||||
return
|
||||
@@ -440,18 +440,16 @@ func main() {
|
||||
log.Println("stage1:", pathname)
|
||||
|
||||
if err = cm.Do(func(cache *pkg.Cache) (err error) {
|
||||
pathname, checksum[0], err = cache.Cure(
|
||||
(t - 1).Load(rosa.LLVM),
|
||||
)
|
||||
llvm, _ := rosa.Native().Load(t-1, rosa.LLVM)
|
||||
pathname, checksum[0], err = cache.Cure(llvm)
|
||||
return
|
||||
}); err != nil {
|
||||
return
|
||||
}
|
||||
log.Println("stage2:", pathname)
|
||||
if err = cm.Do(func(cache *pkg.Cache) (err error) {
|
||||
pathname, checksum[1], err = cache.Cure(
|
||||
t.Load(rosa.LLVM),
|
||||
)
|
||||
llvm, _ := rosa.Native().Load(t, rosa.LLVM)
|
||||
pathname, checksum[1], err = cache.Cure(llvm)
|
||||
return
|
||||
}); err != nil {
|
||||
return
|
||||
@@ -472,9 +470,8 @@ func main() {
|
||||
|
||||
if flagStage0 {
|
||||
if err = cm.Do(func(cache *pkg.Cache) (err error) {
|
||||
pathname, _, err = cache.Cure(
|
||||
t.Load(rosa.Stage0),
|
||||
)
|
||||
stage0, _ := rosa.Native().Load(t, rosa.Stage0)
|
||||
pathname, _, err = cache.Cure(stage0)
|
||||
return
|
||||
}); err != nil {
|
||||
return
|
||||
@@ -519,10 +516,6 @@ func main() {
|
||||
if len(args) != 1 {
|
||||
return errors.New("cure requires 1 argument")
|
||||
}
|
||||
p, ok := rosa.ResolveName(args[0])
|
||||
if !ok {
|
||||
return fmt.Errorf("unknown artifact %q", args[0])
|
||||
}
|
||||
|
||||
t := rosa.Std
|
||||
if flagBoot {
|
||||
@@ -531,11 +524,16 @@ func main() {
|
||||
t -= 1
|
||||
}
|
||||
|
||||
a, _ := rosa.Native().Load(t, rosa.ArtifactH(unique.Make(args[0])))
|
||||
if a == nil {
|
||||
return fmt.Errorf("unknown artifact %q", args[0])
|
||||
}
|
||||
|
||||
switch {
|
||||
default:
|
||||
var pathname *check.Absolute
|
||||
err := cm.Do(func(cache *pkg.Cache) (err error) {
|
||||
pathname, _, err = cache.Cure(t.Load(p))
|
||||
pathname, _, err = cache.Cure(a)
|
||||
return
|
||||
})
|
||||
if err != nil {
|
||||
@@ -577,7 +575,7 @@ func main() {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = pkg.NewIR().EncodeAll(f, rosa.Std.Load(p)); err != nil {
|
||||
if err = pkg.NewIR().EncodeAll(f, a); err != nil {
|
||||
_ = f.Close()
|
||||
return err
|
||||
}
|
||||
@@ -588,7 +586,7 @@ func main() {
|
||||
return cm.Do(func(cache *pkg.Cache) error {
|
||||
return cache.EnterExec(
|
||||
ctx,
|
||||
t.Load(p),
|
||||
a,
|
||||
true, os.Stdin, os.Stdout, os.Stderr,
|
||||
rosa.AbsSystem.Append("bin", "mksh"),
|
||||
"sh",
|
||||
@@ -600,7 +598,6 @@ func main() {
|
||||
if flagNoReply {
|
||||
flags |= remoteNoReply
|
||||
}
|
||||
a := t.Load(p)
|
||||
pathname, err := cureRemote(ctx, &addr, a, flags)
|
||||
if !flagNoReply && err == nil {
|
||||
log.Println(pathname)
|
||||
@@ -620,7 +617,7 @@ func main() {
|
||||
case flagFaults:
|
||||
var faults []pkg.Fault
|
||||
if err := cm.Do(func(cache *pkg.Cache) (err error) {
|
||||
faults, err = cache.ReadFaults(t.Load(p))
|
||||
faults, err = cache.ReadFaults(a)
|
||||
return
|
||||
}); err != nil {
|
||||
return err
|
||||
@@ -634,7 +631,7 @@ func main() {
|
||||
case flagPop:
|
||||
var faults []pkg.Fault
|
||||
if err := cm.Do(func(cache *pkg.Cache) (err error) {
|
||||
faults, err = cache.ReadFaults(t.Load(p))
|
||||
faults, err = cache.ReadFaults(a)
|
||||
return
|
||||
}); err != nil {
|
||||
return err
|
||||
@@ -740,27 +737,26 @@ func main() {
|
||||
"shell",
|
||||
"Interactive shell in the specified Rosa OS environment",
|
||||
func(args []string) error {
|
||||
presets := make([]rosa.PArtifact, len(args)+3)
|
||||
handles := make([]rosa.ArtifactH, len(args)+3)
|
||||
for i, arg := range args {
|
||||
p, ok := rosa.ResolveName(arg)
|
||||
if !ok {
|
||||
handles[i] = rosa.ArtifactH(unique.Make(arg))
|
||||
if rosa.Native().Get(handles[i]) == nil {
|
||||
return fmt.Errorf("unknown artifact %q", arg)
|
||||
}
|
||||
presets[i] = p
|
||||
}
|
||||
|
||||
base := rosa.LLVM
|
||||
if !flagWithToolchain {
|
||||
base = rosa.Musl
|
||||
}
|
||||
presets = append(presets,
|
||||
handles = append(handles,
|
||||
base,
|
||||
rosa.Mksh,
|
||||
rosa.Toybox,
|
||||
)
|
||||
|
||||
root := make(pkg.Collect, 0, 6+len(args))
|
||||
root = rosa.Std.AppendPresets(root, presets...)
|
||||
root = rosa.Native().AppendPresets(rosa.Std, root, handles...)
|
||||
|
||||
if err := cm.Do(func(cache *pkg.Cache) error {
|
||||
_, _, err := cache.Cure(&root)
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
)
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
rosa.DropCaches("", rosa.OptLLVMNoLTO)
|
||||
rosa.Native().DropCaches("", rosa.OptLLVMNoLTO)
|
||||
os.Exit(m.Run())
|
||||
}
|
||||
|
||||
@@ -35,10 +35,10 @@ func TestCureAll(t *testing.T) {
|
||||
}
|
||||
})
|
||||
|
||||
for i := range rosa.PresetEnd {
|
||||
p := rosa.PArtifact(i)
|
||||
t.Run(rosa.GetMetadata(p).Name, func(t *testing.T) {
|
||||
_, err := cureRemote(t.Context(), &addr, rosa.Std.Load(p), 0)
|
||||
for _, handle := range rosa.Native().Collect() {
|
||||
a, _ := rosa.Native().MustLoad(rosa.Std, handle)
|
||||
t.Run(rosa.Native().MustGet(handle).Name, func(t *testing.T) {
|
||||
_, err := cureRemote(t.Context(), &addr, a, 0)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newAttr() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newAttr(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.5.2"
|
||||
checksum = "YWEphrz6vg1sUMmHHVr1CRo53pFXRhq_pjN-AlG8UgwZK1y6m7zuDhxqJhD0SV0l"
|
||||
)
|
||||
return t.NewPackage("attr", version, newTar(
|
||||
return s.NewPackage(t, "attr", version, newTar(
|
||||
"https://download.savannah.nongnu.org/releases/attr/"+
|
||||
"attr-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -65,7 +65,7 @@ ln -s ../../system/bin/perl /usr/bin
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Attr] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newAttr,
|
||||
|
||||
Name: "attr",
|
||||
@@ -73,15 +73,15 @@ func init() {
|
||||
Website: "https://savannah.nongnu.org/projects/attr/",
|
||||
|
||||
ID: 137,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newACL() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newACL(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.3.2"
|
||||
checksum = "-fY5nwH4K8ZHBCRXrzLdguPkqjKI6WIiGu4dBtrZ1o0t6AIU73w8wwJz_UyjIS0P"
|
||||
)
|
||||
return t.NewPackage("acl", version, newTar(
|
||||
return s.NewPackage(t, "acl", version, newTar(
|
||||
"https://download.savannah.nongnu.org/releases/acl/"+
|
||||
"acl-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -94,7 +94,7 @@ func (t Toolchain) newACL() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[ACL] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newACL,
|
||||
|
||||
Name: "acl",
|
||||
@@ -106,5 +106,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 16,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,447 +0,0 @@
|
||||
package rosa
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"sync"
|
||||
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
// PArtifact is a lazily-initialised [pkg.Artifact] preset.
|
||||
type PArtifact int
|
||||
|
||||
const (
|
||||
LLVM PArtifact = iota
|
||||
|
||||
// EarlyInit is the Rosa OS init program.
|
||||
EarlyInit
|
||||
// ImageSystem is the Rosa OS /system image.
|
||||
ImageSystem
|
||||
// ImageInitramfs is the Rosa OS initramfs archive.
|
||||
ImageInitramfs
|
||||
|
||||
// Kernel is the generic Rosa OS Linux kernel.
|
||||
Kernel
|
||||
// KernelHeaders is an installation of kernel headers for [Kernel].
|
||||
KernelHeaders
|
||||
// KernelSource is a writable kernel source tree installed to [AbsUsrSrc].
|
||||
KernelSource
|
||||
// Firmware is firmware blobs for use with the Linux kernel.
|
||||
Firmware
|
||||
|
||||
ACL
|
||||
ArgpStandalone
|
||||
Attr
|
||||
Autoconf
|
||||
Automake
|
||||
BC
|
||||
Bash
|
||||
Binutils
|
||||
Bison
|
||||
Bzip2
|
||||
CMake
|
||||
Connman
|
||||
Coreutils
|
||||
Curl
|
||||
DBus
|
||||
DTC
|
||||
Diffutils
|
||||
Elfutils
|
||||
Fakeroot
|
||||
Findutils
|
||||
Flex
|
||||
FontUtil
|
||||
Freetype
|
||||
Fuse
|
||||
GMP
|
||||
GLib
|
||||
Gawk
|
||||
GenInitCPIO
|
||||
Gettext
|
||||
Git
|
||||
Glslang
|
||||
GnuTLS
|
||||
Go
|
||||
Gperf
|
||||
Grep
|
||||
Gzip
|
||||
Hakurei
|
||||
HakureiDist
|
||||
Hwdata
|
||||
IPTables
|
||||
Kmod
|
||||
LIT
|
||||
LibX11
|
||||
LibXau
|
||||
LibXdmcp
|
||||
LibXext
|
||||
LibXfixes
|
||||
LibXfont2
|
||||
LibXrandr
|
||||
LibXrender
|
||||
LibXxf86vm
|
||||
Libarchive
|
||||
Libbsd
|
||||
Libcap
|
||||
Libconfig
|
||||
LibdisplayInfo
|
||||
Libdrm
|
||||
Libepoxy
|
||||
Libev
|
||||
Libexpat
|
||||
Libffi
|
||||
Libfontenc
|
||||
Libgd
|
||||
Libglvnd
|
||||
Libiconv
|
||||
Libmd
|
||||
Libmnl
|
||||
Libnftnl
|
||||
Libpciaccess
|
||||
Libpng
|
||||
Libpsl
|
||||
Libseccomp
|
||||
Libtasn1
|
||||
Libtirpc
|
||||
Libtool
|
||||
Libucontext
|
||||
Libunistring
|
||||
Libva
|
||||
LibxcbRenderUtil
|
||||
LibxcbUtil
|
||||
LibxcbUtilImage
|
||||
LibxcbUtilKeysyms
|
||||
LibxcbUtilWM
|
||||
Libxcvt
|
||||
Libxkbfile
|
||||
Libxml2
|
||||
Libxshmfence
|
||||
Libxslt
|
||||
Libxtrans
|
||||
LMSensors
|
||||
M4
|
||||
MPC
|
||||
MPFR
|
||||
Make
|
||||
Mesa
|
||||
Meson
|
||||
Mksh
|
||||
MuslFts
|
||||
MuslObstack
|
||||
NSS
|
||||
NSSCACert
|
||||
Ncurses
|
||||
Nettle
|
||||
Ninja
|
||||
OpenSSL
|
||||
P11Kit
|
||||
PCRE2
|
||||
Parallel
|
||||
Patch
|
||||
Perl
|
||||
PerlLocaleGettext
|
||||
PerlMIMECharset
|
||||
PerlModuleBuild
|
||||
PerlPodParser
|
||||
PerlSGMLS
|
||||
PerlTermReadKey
|
||||
PerlTestCmd
|
||||
PerlTextCharWidth
|
||||
PerlTextWrapI18N
|
||||
PerlUnicodeLineBreak
|
||||
PerlYAMLTiny
|
||||
Pixman
|
||||
PkgConfig
|
||||
Procps
|
||||
Python
|
||||
PythonFlitCore
|
||||
PythonHatchling
|
||||
PythonIniConfig
|
||||
PythonMako
|
||||
PythonMarkupSafe
|
||||
PythonPackaging
|
||||
PythonPathspec
|
||||
PythonPluggy
|
||||
PythonPyTest
|
||||
PythonPyYAML
|
||||
PythonPycparser
|
||||
PythonPygments
|
||||
PythonSetuptools
|
||||
PythonSetuptoolsSCM
|
||||
PythonTroveClassifiers
|
||||
PythonVCSVersioning
|
||||
PythonWheel
|
||||
QEMU
|
||||
Rdfind
|
||||
Readline
|
||||
Rsync
|
||||
Sed
|
||||
SPIRVHeaders
|
||||
SPIRVLLVMTranslator
|
||||
SPIRVTools
|
||||
SquashfsTools
|
||||
Strace
|
||||
TamaGo
|
||||
Tar
|
||||
Texinfo
|
||||
Toybox
|
||||
toyboxEarly
|
||||
Unzip
|
||||
UtilLinux
|
||||
VIM
|
||||
Wayland
|
||||
WaylandProtocols
|
||||
XCB
|
||||
XCBProto
|
||||
XDGDBusProxy
|
||||
XZ
|
||||
Xkbcomp
|
||||
XkeyboardConfig
|
||||
XorgProto
|
||||
Xserver
|
||||
Zlib
|
||||
Zstd
|
||||
|
||||
// PresetUnexportedStart is the first unexported preset.
|
||||
PresetUnexportedStart
|
||||
|
||||
stage0Dist = iota - 1
|
||||
llvmSource
|
||||
// earlyCompilerRT is an early, standalone compiler-rt installation for the
|
||||
// standalone runtimes build.
|
||||
//
|
||||
// earlyCompilerRT must only be loaded by [LLVM].
|
||||
earlyCompilerRT
|
||||
// earlyRuntimes is an early, standalone installation of LLVM runtimes to
|
||||
// work around the cmake build system leaking the system LLVM installation
|
||||
// when invoking the newly built toolchain.
|
||||
//
|
||||
// earlyRuntimes must only be loaded by [LLVM].
|
||||
earlyRuntimes
|
||||
|
||||
buildcatrust
|
||||
utilMacros
|
||||
|
||||
// Musl is a standalone libc that does not depend on the toolchain.
|
||||
Musl
|
||||
// muslHeaders is a system installation of [Musl] headers.
|
||||
muslHeaders
|
||||
|
||||
// gcc is a hacked-to-pieces GCC toolchain meant for use in intermediate
|
||||
// stages only. This preset and its direct output must never be exposed.
|
||||
gcc
|
||||
|
||||
// nettle3 is an older version of [Nettle].
|
||||
nettle3
|
||||
|
||||
// Stage0 is a tarball containing all compile-time dependencies of artifacts
|
||||
// part of the [Std] toolchain.
|
||||
Stage0
|
||||
|
||||
// PresetEnd is the total number of presets and does not denote a preset.
|
||||
PresetEnd
|
||||
)
|
||||
|
||||
// P represents multiple [PArtifact] and is stable through JSON.
|
||||
type P []PArtifact
|
||||
|
||||
// MarshalJSON represents [PArtifact] by their [Metadata.Name].
|
||||
func (s P) MarshalJSON() ([]byte, error) {
|
||||
names := make([]string, len(s))
|
||||
for i, p := range s {
|
||||
names[i] = GetMetadata(p).Name
|
||||
}
|
||||
return json.Marshal(names)
|
||||
}
|
||||
|
||||
// UnmarshalJSON resolves the value created by MarshalJSON back to [P].
|
||||
func (s *P) UnmarshalJSON(data []byte) error {
|
||||
var names []string
|
||||
if err := json.Unmarshal(data, &names); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
*s = make(P, len(names))
|
||||
for i, name := range names {
|
||||
if p, ok := ResolveName(name); !ok {
|
||||
return fmt.Errorf("unknown artifact %q", name)
|
||||
} else {
|
||||
(*s)[i] = p
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Metadata is stage-agnostic information of a [PArtifact] not directly
|
||||
// representable in the resulting [pkg.Artifact].
|
||||
type Metadata struct {
|
||||
f func(t Toolchain) (a pkg.Artifact, version string)
|
||||
|
||||
// Unique package name.
|
||||
Name string `json:"name"`
|
||||
// Short user-facing description.
|
||||
Description string `json:"description"`
|
||||
// Project home page.
|
||||
Website string `json:"website,omitempty"`
|
||||
|
||||
// Runtime dependencies.
|
||||
Dependencies P `json:"dependencies"`
|
||||
|
||||
// Project identifier on [Anitya].
|
||||
//
|
||||
// [Anitya]: https://release-monitoring.org/
|
||||
ID int `json:"-"`
|
||||
|
||||
// Optional custom version checking behaviour.
|
||||
latest func(v *Versions) string
|
||||
}
|
||||
|
||||
// GetLatest returns the latest version described by v.
|
||||
func (meta *Metadata) GetLatest(v *Versions) string {
|
||||
if meta.latest != nil {
|
||||
return meta.latest(v)
|
||||
}
|
||||
return v.Latest
|
||||
}
|
||||
|
||||
// Unversioned denotes an unversioned [PArtifact].
|
||||
const Unversioned = "\x00"
|
||||
|
||||
// UnpopulatedIDError is returned by [Metadata.GetLatest] for an instance of
|
||||
// [Metadata] where ID is not populated.
|
||||
type UnpopulatedIDError struct{}
|
||||
|
||||
func (UnpopulatedIDError) Unwrap() error { return errors.ErrUnsupported }
|
||||
func (UnpopulatedIDError) Error() string { return "Anitya ID is not populated" }
|
||||
|
||||
// Versions are package versions returned by Anitya.
|
||||
type Versions struct {
|
||||
// The latest version for the project, as determined by the version sorting algorithm.
|
||||
Latest string `json:"latest_version"`
|
||||
// List of all versions that aren’t flagged as pre-release.
|
||||
Stable []string `json:"stable_versions"`
|
||||
// List of all versions stored, sorted from newest to oldest.
|
||||
All []string `json:"versions"`
|
||||
}
|
||||
|
||||
// getStable returns the first Stable version, or Latest if that is unavailable.
|
||||
func (v *Versions) getStable() string {
|
||||
if len(v.Stable) == 0 {
|
||||
return v.Latest
|
||||
}
|
||||
return v.Stable[0]
|
||||
}
|
||||
|
||||
// GetVersions returns versions fetched from Anitya.
|
||||
func (meta *Metadata) GetVersions(ctx context.Context) (*Versions, error) {
|
||||
if meta.ID == 0 {
|
||||
return nil, UnpopulatedIDError{}
|
||||
}
|
||||
|
||||
var resp *http.Response
|
||||
if req, err := http.NewRequestWithContext(
|
||||
ctx,
|
||||
http.MethodGet,
|
||||
"https://release-monitoring.org/api/v2/versions/?project_id="+
|
||||
strconv.Itoa(meta.ID),
|
||||
nil,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
req.Header.Set("User-Agent", "Rosa/1.1")
|
||||
if resp, err = http.DefaultClient.Do(req); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
var v Versions
|
||||
err := json.NewDecoder(resp.Body).Decode(&v)
|
||||
return &v, errors.Join(err, resp.Body.Close())
|
||||
}
|
||||
|
||||
var (
|
||||
// artifactsM is an array of [PArtifact] metadata.
|
||||
artifactsM [PresetEnd]Metadata
|
||||
|
||||
// artifacts stores the result of Metadata.f.
|
||||
artifacts [_toolchainEnd][len(artifactsM)]struct {
|
||||
a pkg.Artifact
|
||||
v string
|
||||
}
|
||||
// artifactsOnce is for lazy initialisation of artifacts.
|
||||
artifactsOnce [_toolchainEnd][len(artifactsM)]sync.Once
|
||||
|
||||
// arch is the target architecture.
|
||||
arch = runtime.GOARCH
|
||||
|
||||
// presetOpts globally modifies behaviour of presets.
|
||||
presetOpts int
|
||||
)
|
||||
|
||||
const (
|
||||
// OptSkipCheck skips running all test suites.
|
||||
OptSkipCheck = 1 << iota
|
||||
// OptLLVMNoLTO disables LTO in all [LLVM] stages.
|
||||
OptLLVMNoLTO
|
||||
)
|
||||
|
||||
// Arch returns the target architecture.
|
||||
func Arch() string { return arch }
|
||||
|
||||
// Flags returns the current preset flags
|
||||
func Flags() int { return presetOpts }
|
||||
|
||||
// zero zeros the value pointed to by p.
|
||||
func zero[T any](p *T) { var v T; *p = v }
|
||||
|
||||
// DropCaches arranges for all cached [pkg.Artifact] to be freed some time after
|
||||
// it returns. Must not be used concurrently with any other function from this
|
||||
// package.
|
||||
func DropCaches(targetArch string, flags int) {
|
||||
if targetArch == "" {
|
||||
targetArch = runtime.GOARCH
|
||||
}
|
||||
|
||||
arch = targetArch
|
||||
presetOpts = flags
|
||||
zero(&artifacts)
|
||||
zero(&artifactsOnce)
|
||||
}
|
||||
|
||||
// GetMetadata returns [Metadata] of a [PArtifact].
|
||||
func GetMetadata(p PArtifact) *Metadata { return &artifactsM[p] }
|
||||
|
||||
// construct constructs a [pkg.Artifact] corresponding to a [PArtifact] once.
|
||||
func (t Toolchain) construct(p PArtifact) {
|
||||
artifactsOnce[t][p].Do(func() {
|
||||
artifacts[t][p].a, artifacts[t][p].v = artifactsM[p].f(t)
|
||||
})
|
||||
}
|
||||
|
||||
// Load returns the resulting [pkg.Artifact] of [PArtifact].
|
||||
func (t Toolchain) Load(p PArtifact) pkg.Artifact {
|
||||
t.construct(p)
|
||||
return artifacts[t][p].a
|
||||
}
|
||||
|
||||
// Version returns the version string of [PArtifact].
|
||||
func (t Toolchain) Version(p PArtifact) string {
|
||||
t.construct(p)
|
||||
return artifacts[t][p].v
|
||||
}
|
||||
|
||||
// ResolveName returns a [PArtifact] by name.
|
||||
func ResolveName(name string) (p PArtifact, ok bool) {
|
||||
for i := range PresetUnexportedStart {
|
||||
if name == artifactsM[i].Name {
|
||||
return i, true
|
||||
}
|
||||
}
|
||||
return 0, false
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
package rosa_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"hakurei.app/internal/rosa"
|
||||
)
|
||||
|
||||
func TestLoad(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
for i := range rosa.PresetEnd {
|
||||
p := rosa.PArtifact(i)
|
||||
t.Run(rosa.GetMetadata(p).Name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
rosa.Std.Load(p)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkAll(b *testing.B) {
|
||||
arch, flags := rosa.Arch(), rosa.Flags()
|
||||
b.Cleanup(func() { rosa.DropCaches(arch, flags) })
|
||||
|
||||
for b.Loop() {
|
||||
for i := range rosa.PresetEnd {
|
||||
rosa.Std.Load(rosa.PArtifact(i))
|
||||
}
|
||||
|
||||
b.StopTimer()
|
||||
rosa.DropCaches("", 0)
|
||||
b.StartTimer()
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveName(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
for i := range rosa.PresetUnexportedStart {
|
||||
p := i
|
||||
name := rosa.GetMetadata(p).Name
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if got, ok := rosa.ResolveName(name); !ok {
|
||||
t.Fatal("ResolveName: ok = false")
|
||||
} else if got != p {
|
||||
t.Fatalf("ResolveName: %d, want %d", got, p)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
func TestResolveNameUnexported(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
for i := rosa.PresetUnexportedStart; i < rosa.PresetEnd; i++ {
|
||||
p := i
|
||||
name := rosa.GetMetadata(p).Name
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if got, ok := rosa.ResolveName(name); ok {
|
||||
t.Fatalf("ResolveName: resolved unexported preset %d", got)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnique(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
names := make(map[string]struct{})
|
||||
for i := range rosa.PresetEnd {
|
||||
name := rosa.GetMetadata(rosa.PArtifact(i)).Name
|
||||
if _, ok := names[name]; ok {
|
||||
t.Fatalf("name %s is not unique", name)
|
||||
}
|
||||
names[name] = struct{}{}
|
||||
}
|
||||
}
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newArgpStandalone() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newArgpStandalone(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.3"
|
||||
checksum = "vtW0VyO2pJ-hPyYmDI2zwSLS8QL0sPAUKC1t3zNYbwN2TmsaE-fADhaVtNd3eNFl"
|
||||
)
|
||||
return t.NewPackage("argp-standalone", version, newTar(
|
||||
return s.NewPackage(t, "argp-standalone", version, newTar(
|
||||
"http://www.lysator.liu.se/~nisse/misc/"+
|
||||
"argp-standalone-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -26,11 +26,11 @@ install -D -m755 libargp.a /work/system/lib/libargp.a
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[ArgpStandalone] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newArgpStandalone,
|
||||
|
||||
Name: "argp-standalone",
|
||||
Description: "hierarchical argument parsing library broken out from glibc",
|
||||
Website: "http://www.lysator.liu.se/~nisse/misc/",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -85,13 +85,13 @@ func (a busyboxBin) Cure(t *pkg.TContext) (err error) {
|
||||
|
||||
// newBusyboxBin returns a [pkg.Artifact] containing a busybox installation from
|
||||
// the https://busybox.net/downloads/binaries/ binary release.
|
||||
func newBusyboxBin() pkg.Artifact {
|
||||
func (s *S) newBusyboxBin() pkg.Artifact {
|
||||
var version, url, checksum string
|
||||
switch arch {
|
||||
switch s.arch {
|
||||
case "amd64":
|
||||
version = "1.35.0"
|
||||
url = "https://busybox.net/downloads/binaries/" +
|
||||
version + "-" + linuxArch() + "-linux-musl/busybox"
|
||||
version + "-" + s.linuxArch() + "-linux-musl/busybox"
|
||||
checksum = "L7OBIsPu9enNHn7FqpBT1kOg_mCLNmetSeNMA3i4Y60Z5jTgnlX3qX3zcQtLx5AB"
|
||||
case "arm64":
|
||||
version = "1.31.0"
|
||||
@@ -100,11 +100,11 @@ func newBusyboxBin() pkg.Artifact {
|
||||
checksum = "npJjBO7iwhjW6Kx2aXeSxf8kXhVgTCDChOZTTsI8ZfFfa3tbsklxRiidZQdrVERg"
|
||||
|
||||
default:
|
||||
panic("unsupported target " + arch)
|
||||
panic("unsupported target " + s.arch)
|
||||
}
|
||||
|
||||
return pkg.NewExec(
|
||||
"busybox-bin-"+version, arch, nil, pkg.ExecTimeoutMax, false, false,
|
||||
"busybox-bin-"+version, s.arch, nil, pkg.ExecTimeoutMax, false, false,
|
||||
fhs.AbsRoot, []string{
|
||||
"PATH=/system/bin",
|
||||
},
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newBzip2() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newBzip2(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.0.8"
|
||||
checksum = "cTLykcco7boom-s05H1JVsQi1AtChYL84nXkg_92Dm1Xt94Ob_qlMg_-NSguIK-c"
|
||||
)
|
||||
return t.NewPackage("bzip2", version, newTar(
|
||||
return s.NewPackage(t, "bzip2", version, newTar(
|
||||
"https://sourceware.org/pub/bzip2/bzip2-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -26,7 +26,7 @@ func (t Toolchain) newBzip2() (pkg.Artifact, string) {
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Bzip2] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newBzip2,
|
||||
|
||||
Name: "bzip2",
|
||||
@@ -34,5 +34,5 @@ func init() {
|
||||
Website: "https://sourceware.org/bzip2/",
|
||||
|
||||
ID: 237,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -8,12 +8,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newCMake() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newCMake(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "4.3.2"
|
||||
checksum = "6QylwRVKletndTSkZTV2YBRwgd_9rUVgav_QW23HpjUgV21AVYZOUOal8tdBDmO7"
|
||||
)
|
||||
return t.NewPackage("cmake", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "cmake", version, newFromGitHubRelease(
|
||||
"Kitware/CMake",
|
||||
"v"+version,
|
||||
"cmake-"+version+".tar.gz",
|
||||
@@ -106,7 +106,7 @@ index 2ead810437..f85cbb8b1c 100644
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[CMake] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newCMake,
|
||||
|
||||
Name: "cmake",
|
||||
@@ -114,7 +114,7 @@ func init() {
|
||||
Website: "https://cmake.org/",
|
||||
|
||||
ID: 306,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// CMakeHelper is the [CMake] build system helper.
|
||||
@@ -164,7 +164,7 @@ func (*CMakeHelper) createDir() bool { return true }
|
||||
func (*CMakeHelper) wantsDir() string { return "/cure/" }
|
||||
|
||||
// script generates the cure script.
|
||||
func (attr *CMakeHelper) script(name string) string {
|
||||
func (attr *CMakeHelper) script(s *S, name string) string {
|
||||
if attr == nil {
|
||||
attr = new(CMakeHelper)
|
||||
}
|
||||
@@ -180,7 +180,7 @@ func (attr *CMakeHelper) script(name string) string {
|
||||
}
|
||||
|
||||
script := attr.Script
|
||||
if !attr.SkipTest && presetOpts&OptSkipCheck == 0 {
|
||||
if !attr.SkipTest && s.opts&OptSkipCheck == 0 {
|
||||
script += "\n" + test
|
||||
}
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newConnman() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newConnman(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.0"
|
||||
checksum = "MhVTdJOhndnZn2SWd8URKo_Pj7Zvc14tntEbrVOf9L3yVWJvpb3v3Q6104tWJgtW"
|
||||
)
|
||||
return t.NewPackage("connman", version, newTar(
|
||||
return s.NewPackage(t, "connman", version, newTar(
|
||||
"https://git.kernel.org/pub/scm/network/connman/connman.git/"+
|
||||
"snapshot/connman-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -90,7 +90,7 @@ func (t Toolchain) newConnman() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Connman] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newConnman,
|
||||
|
||||
Name: "connman",
|
||||
@@ -105,5 +105,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 337,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newCurl() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newCurl(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "8.20.0"
|
||||
checksum = "xyHXwrngIRGMasuzhn-I5MSCOhktwINbsWt1f_LuR-5jRVvyx_g6U1EQfDLEbr9r"
|
||||
)
|
||||
return t.NewPackage("curl", version, newTar(
|
||||
return s.NewPackage(t, "curl", version, newTar(
|
||||
"https://curl.se/download/curl-"+version+".tar.bz2",
|
||||
checksum,
|
||||
pkg.TarBzip2,
|
||||
@@ -39,7 +39,7 @@ chmod +w tests/data && rm -f tests/data/test459
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Curl] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newCurl,
|
||||
|
||||
Name: "curl",
|
||||
@@ -52,5 +52,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 381,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newDBus() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newDBus(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.16.2"
|
||||
checksum = "INwOuNdrDG7XW5ilW_vn8JSxEa444rRNc5ho97i84I1CNF09OmcFcV-gzbF4uCyg"
|
||||
)
|
||||
return t.NewPackage("dbus", version, newFromGitLab(
|
||||
return s.NewPackage(t, "dbus", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"dbus/dbus",
|
||||
"dbus-"+version,
|
||||
@@ -29,7 +29,7 @@ func (t Toolchain) newDBus() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[DBus] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newDBus,
|
||||
|
||||
Name: "dbus",
|
||||
@@ -42,15 +42,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5356,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newXDGDBusProxy() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newXDGDBusProxy(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.1.7"
|
||||
checksum = "UW5Pe-TP-XAaN-kTbxrkOQ7eYdmlAQlr2pdreLtPT0uwdAz-7rzDP8V_8PWuZBup"
|
||||
)
|
||||
return t.NewPackage("xdg-dbus-proxy", version, newFromGitHub(
|
||||
return s.NewPackage(t, "xdg-dbus-proxy", version, newFromGitHub(
|
||||
"flatpak/xdg-dbus-proxy",
|
||||
version,
|
||||
checksum,
|
||||
@@ -65,7 +65,7 @@ func (t Toolchain) newXDGDBusProxy() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[XDGDBusProxy] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newXDGDBusProxy,
|
||||
|
||||
Name: "xdg-dbus-proxy",
|
||||
@@ -77,5 +77,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 58434,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newDTC() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newDTC(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.7.2"
|
||||
checksum = "vUoiRynPyYRexTpS6USweT5p4SVHvvVJs8uqFkkVD-YnFjwf6v3elQ0-Etrh00Dt"
|
||||
)
|
||||
return t.NewPackage("dtc", version, newTar(
|
||||
return s.NewPackage(t, "dtc", version, newTar(
|
||||
"https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/"+
|
||||
"dtc-v"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -31,7 +31,7 @@ func (t Toolchain) newDTC() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[DTC] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newDTC,
|
||||
|
||||
Name: "dtc",
|
||||
@@ -39,5 +39,5 @@ func init() {
|
||||
Website: "https://git.kernel.org/pub/scm/utils/dtc/dtc.git/",
|
||||
|
||||
ID: 16911,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newElfutils() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newElfutils(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.195"
|
||||
checksum = "JrGnBD38w8Mj0ZxDw3fKlRBFcLvRKu8rcYnX35R9yTlUSYnzTazyLboG-a2CsJlu"
|
||||
)
|
||||
return t.NewPackage("elfutils", version, newTar(
|
||||
return s.NewPackage(t, "elfutils", version, newTar(
|
||||
"https://sourceware.org/elfutils/ftp/"+
|
||||
version+"/elfutils-"+version+".tar.bz2",
|
||||
checksum,
|
||||
@@ -39,7 +39,7 @@ func (t Toolchain) newElfutils() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Elfutils] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newElfutils,
|
||||
|
||||
Name: "elfutils",
|
||||
@@ -55,5 +55,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5679,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newFakeroot() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newFakeroot(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.37.2"
|
||||
checksum = "4ve-eDqVspzQ6VWDhPS0NjW3aSenBJcPAJq_BFT7OOFgUdrQzoTBxZWipDAGWxF8"
|
||||
)
|
||||
return t.NewPackage("fakeroot", version, newFromGitLab(
|
||||
return s.NewPackage(t, "fakeroot", version, newFromGitLab(
|
||||
"salsa.debian.org",
|
||||
"clint/fakeroot",
|
||||
"upstream/"+version,
|
||||
@@ -46,7 +46,7 @@ index f135ad9..85c784c 100644
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Fakeroot] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newFakeroot,
|
||||
|
||||
Name: "fakeroot",
|
||||
@@ -54,5 +54,5 @@ func init() {
|
||||
Website: "https://salsa.debian.org/clint/fakeroot",
|
||||
|
||||
ID: 12048,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newFlex() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newFlex(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.6.4"
|
||||
checksum = "p9POjQU7VhgOf3x5iFro8fjhy0NOanvA7CTeuWS_veSNgCixIJshTrWVkc5XLZkB"
|
||||
)
|
||||
return t.NewPackage("flex", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "flex", version, newFromGitHubRelease(
|
||||
"westes/flex",
|
||||
"v"+version,
|
||||
"flex-"+version+".tar.gz",
|
||||
@@ -20,7 +20,7 @@ func (t Toolchain) newFlex() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Flex] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newFlex,
|
||||
|
||||
Name: "flex",
|
||||
@@ -28,5 +28,5 @@ func init() {
|
||||
Website: "https://github.com/westes/flex/",
|
||||
|
||||
ID: 819,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newFreetype() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newFreetype(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.14.3"
|
||||
checksum = "-WfLv8fVJNyCHpP_lriiDzOcVbBL9ajdQ3tl8AzIIUa9-8sVpU9irxOmSMgRHWYz"
|
||||
)
|
||||
return t.NewPackage("freetype", version, newTar(
|
||||
return s.NewPackage(t, "freetype", version, newTar(
|
||||
"https://download.savannah.gnu.org/releases/freetype/"+
|
||||
"freetype-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -15,7 +15,7 @@ func (t Toolchain) newFreetype() (pkg.Artifact, string) {
|
||||
), nil, (*MakeHelper)(nil)), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Freetype] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newFreetype,
|
||||
|
||||
Name: "freetype",
|
||||
@@ -23,5 +23,5 @@ func init() {
|
||||
Website: "http://www.freetype.org/",
|
||||
|
||||
ID: 854,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newFuse() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newFuse(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.18.2"
|
||||
checksum = "iL-7b7eUtmlVSf5cSq0dzow3UiqSjBmzV3cI_ENPs1tXcHdktkG45j1V12h-4jZe"
|
||||
)
|
||||
return t.NewPackage("fuse", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "fuse", version, newFromGitHubRelease(
|
||||
"libfuse/libfuse",
|
||||
"fuse-"+version,
|
||||
"fuse-"+version+".tar.gz",
|
||||
@@ -31,7 +31,7 @@ func (t Toolchain) newFuse() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Fuse] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newFuse,
|
||||
|
||||
Name: "fuse",
|
||||
@@ -39,5 +39,5 @@ func init() {
|
||||
Website: "https://github.com/libfuse/libfuse/",
|
||||
|
||||
ID: 861,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -7,12 +7,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newGit() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGit(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.54.0"
|
||||
checksum = "7vGKtFOJGqY8DO4e8UMRax7dLgImXKQz5MMalec6MlgYrsarffSJjgOughwRFpSH"
|
||||
)
|
||||
return t.NewPackage("git", version, newTar(
|
||||
return s.NewPackage(t, "git", version, newTar(
|
||||
"https://www.kernel.org/pub/software/scm/git/"+
|
||||
"git-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -88,7 +88,7 @@ disable_test t5515-fetch-merge-logic
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Git] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGit,
|
||||
|
||||
Name: "git",
|
||||
@@ -102,18 +102,19 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5350,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// NewViaGit returns a [pkg.Artifact] for cloning a git repository.
|
||||
func (t Toolchain) NewViaGit(
|
||||
func (s *S) NewViaGit(
|
||||
t Toolchain,
|
||||
url, rev string,
|
||||
checksum pkg.Checksum,
|
||||
) pkg.Artifact {
|
||||
return t.New(strings.TrimSuffix(
|
||||
return s.New(t, strings.TrimSuffix(
|
||||
path.Base(url),
|
||||
".git",
|
||||
)+"-src-"+path.Base(rev), THostNet, t.AppendPresets(nil,
|
||||
)+"-src-"+path.Base(rev), THostNet, s.AppendPresets(t, nil,
|
||||
NSSCACert,
|
||||
Git,
|
||||
), &checksum, nil, `
|
||||
@@ -131,6 +132,6 @@ rm -rf /work/.git
|
||||
}
|
||||
|
||||
// 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))
|
||||
func (s *S) newTagRemote(t Toolchain, url, tag, checksum string) pkg.Artifact {
|
||||
return s.NewViaGit(t, url, "refs/tags/"+tag, mustDecode(checksum))
|
||||
}
|
||||
|
||||
@@ -7,12 +7,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newSPIRVHeaders() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newSPIRVHeaders(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.4.341.0"
|
||||
checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD"
|
||||
)
|
||||
return t.NewPackage("spirv-headers", version, newFromGitHub(
|
||||
return s.NewPackage(t, "spirv-headers", version, newFromGitHub(
|
||||
"KhronosGroup/SPIRV-Headers",
|
||||
"vulkan-sdk-"+version,
|
||||
checksum,
|
||||
@@ -22,7 +22,7 @@ func (t Toolchain) newSPIRVHeaders() (pkg.Artifact, string) {
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[SPIRVHeaders] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newSPIRVHeaders,
|
||||
|
||||
Name: "spirv-headers",
|
||||
@@ -49,15 +49,15 @@ func init() {
|
||||
}
|
||||
return v.Latest
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newSPIRVTools() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newSPIRVTools(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2026.1"
|
||||
checksum = "ZSQPQx8NltCDzQLk4qlaVxyWRWeI_JtsjEpeFt3kezTanl9DTHfLixSUCezMFBjv"
|
||||
)
|
||||
return t.NewPackage("spirv-tools", version, newFromGitHub(
|
||||
return s.NewPackage(t, "spirv-tools", version, newFromGitHub(
|
||||
"KhronosGroup/SPIRV-Tools",
|
||||
"v"+version,
|
||||
checksum,
|
||||
@@ -72,7 +72,7 @@ func (t Toolchain) newSPIRVTools() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[SPIRVTools] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newSPIRVTools,
|
||||
|
||||
Name: "spirv-tools",
|
||||
@@ -86,15 +86,15 @@ func init() {
|
||||
ID: 14894,
|
||||
|
||||
latest: (*Versions).getStable,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newGlslang() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGlslang(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "16.3.0"
|
||||
checksum = "xyqDf8k3-D0_BXHGi0uLgMglnJ05Rf3j73QgbDs3sGtKNdBIQhY8JfqX1NcNoJQN"
|
||||
)
|
||||
return t.NewPackage("glslang", version, newFromGitHub(
|
||||
return s.NewPackage(t, "glslang", version, newFromGitHub(
|
||||
"KhronosGroup/glslang",
|
||||
version,
|
||||
checksum,
|
||||
@@ -116,7 +116,7 @@ func (t Toolchain) newGlslang() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Glslang] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGlslang,
|
||||
|
||||
Name: "glslang",
|
||||
@@ -124,10 +124,10 @@ func init() {
|
||||
Website: "https://github.com/KhronosGroup/glslang",
|
||||
|
||||
ID: 205796,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newSPIRVLLVMTranslator() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newSPIRVLLVMTranslator(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "22.1.2"
|
||||
checksum = "JZAaV5ewYcm-35YA_U2BM2IcsQouZtX1BLZR0zh2vSlfEXMsT5OCtY4Gh5RJkcGy"
|
||||
@@ -137,7 +137,7 @@ func (t Toolchain) newSPIRVLLVMTranslator() (pkg.Artifact, string) {
|
||||
"cooperative_matrix_constant_null.spvasm",
|
||||
}
|
||||
|
||||
switch arch {
|
||||
switch s.arch {
|
||||
case "arm64":
|
||||
skipChecks = append(skipChecks,
|
||||
// LLVM ERROR: unsupported calling convention
|
||||
@@ -183,7 +183,7 @@ func (t Toolchain) newSPIRVLLVMTranslator() (pkg.Artifact, string) {
|
||||
)
|
||||
}
|
||||
|
||||
return t.NewPackage("spirv-llvm-translator", version, newFromGitHub(
|
||||
return s.NewPackage(t, "spirv-llvm-translator", version, newFromGitHub(
|
||||
"KhronosGroup/SPIRV-LLVM-Translator",
|
||||
"v"+version, checksum,
|
||||
), &PackageAttr{
|
||||
@@ -232,7 +232,7 @@ export LIT_OPTS=` + litArgs(true, skipChecks...) + `
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[SPIRVLLVMTranslator] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newSPIRVLLVMTranslator,
|
||||
|
||||
Name: "spirv-llvm-translator",
|
||||
@@ -244,5 +244,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 227273,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -42,12 +42,12 @@ func skipGNUTests(tests ...int) string {
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
func (t Toolchain) newM4() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newM4(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.4.21"
|
||||
checksum = "pPa6YOo722Jw80l1OsH1tnUaklnPFjFT-bxGw5iAVrZTm1P8FQaWao_NXop46-pm"
|
||||
)
|
||||
return t.NewPackage("m4", version, newTar(
|
||||
return s.NewPackage(t, "m4", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/m4/m4-"+version+".tar.bz2",
|
||||
checksum,
|
||||
pkg.TarBzip2,
|
||||
@@ -63,7 +63,7 @@ chmod +w tests/test-c32ispunct.sh && echo '#!/bin/sh' > tests/test-c32ispunct.sh
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[M4] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newM4,
|
||||
|
||||
Name: "m4",
|
||||
@@ -71,15 +71,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/m4/",
|
||||
|
||||
ID: 1871,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newBison() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newBison(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.8.2"
|
||||
checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y"
|
||||
)
|
||||
return t.NewPackage("bison", version, newTar(
|
||||
return s.NewPackage(t, "bison", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/bison/bison-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -98,7 +98,7 @@ func (t Toolchain) newBison() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Bison] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newBison,
|
||||
|
||||
Name: "bison",
|
||||
@@ -106,15 +106,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/bison/",
|
||||
|
||||
ID: 193,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newSed() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newSed(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "4.10"
|
||||
checksum = "TXTRFQJCyflb-bpBRI2S5Y1DpplwvT7-KfXtpqN4AdZgZ5OtI6yStn1-bkhDKx51"
|
||||
)
|
||||
return t.NewPackage("sed", version, newTar(
|
||||
return s.NewPackage(t, "sed", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/sed/sed-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -125,7 +125,7 @@ func (t Toolchain) newSed() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Sed] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newSed,
|
||||
|
||||
Name: "sed",
|
||||
@@ -133,15 +133,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/sed/",
|
||||
|
||||
ID: 4789,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newAutoconf() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newAutoconf(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.73"
|
||||
checksum = "yGabDTeOfaCUB0JX-h3REYLYzMzvpDwFmFFzHNR7QilChCUNE4hR6q7nma4viDYg"
|
||||
)
|
||||
return t.NewPackage("autoconf", version, newTar(
|
||||
return s.NewPackage(t, "autoconf", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/autoconf/autoconf-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -160,7 +160,7 @@ func (t Toolchain) newAutoconf() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Autoconf] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newAutoconf,
|
||||
|
||||
Name: "autoconf",
|
||||
@@ -173,15 +173,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 141,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newAutomake() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newAutomake(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.18.1"
|
||||
checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG"
|
||||
)
|
||||
return t.NewPackage("automake", version, newTar(
|
||||
return s.NewPackage(t, "automake", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/automake/automake-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -205,7 +205,7 @@ test_disable '#!/bin/sh' t/pr9.sh
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Automake] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newAutomake,
|
||||
|
||||
Name: "automake",
|
||||
@@ -217,15 +217,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 144,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibtool() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibtool(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.5.4"
|
||||
checksum = "pa6LSrQggh8mSJHQfwGjysAApmZlGJt8wif2cCLzqAAa2jpsTY0jZ-6stS3BWZ2Q"
|
||||
)
|
||||
return t.NewPackage("libtool", version, newTar(
|
||||
return s.NewPackage(t, "libtool", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/libtool/libtool-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -243,7 +243,7 @@ func (t Toolchain) newLibtool() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libtool] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibtool,
|
||||
|
||||
Name: "libtool",
|
||||
@@ -251,15 +251,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/libtool/",
|
||||
|
||||
ID: 1741,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newGzip() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGzip(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.14"
|
||||
checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q"
|
||||
)
|
||||
return t.NewPackage("gzip", version, newTar(
|
||||
return s.NewPackage(t, "gzip", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/gzip/gzip-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -269,7 +269,7 @@ func (t Toolchain) newGzip() (pkg.Artifact, string) {
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Gzip] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGzip,
|
||||
|
||||
Name: "gzip",
|
||||
@@ -277,15 +277,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/gzip/",
|
||||
|
||||
ID: 1290,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newGettext() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGettext(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.0"
|
||||
checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC"
|
||||
)
|
||||
return t.NewPackage("gettext", version, newTar(
|
||||
return s.NewPackage(t, "gettext", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/gettext/gettext-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -315,7 +315,7 @@ touch gettext-tools/autotools/archive.dir.tar
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Gettext] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGettext,
|
||||
|
||||
Name: "gettext",
|
||||
@@ -323,15 +323,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/gettext/",
|
||||
|
||||
ID: 898,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newDiffutils() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newDiffutils(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.12"
|
||||
checksum = "9J5VAq5oA7eqwzS1Yvw-l3G5o-TccUrNQR3PvyB_lgdryOFAfxtvQfKfhdpquE44"
|
||||
)
|
||||
return t.NewPackage("diffutils", version, newTar(
|
||||
return s.NewPackage(t, "diffutils", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/diffutils/diffutils-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -348,7 +348,7 @@ test_disable '#!/bin/sh' tests/cmp
|
||||
}, (*MakeHelper)(nil)), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Diffutils] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newDiffutils,
|
||||
|
||||
Name: "diffutils",
|
||||
@@ -356,15 +356,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/diffutils/",
|
||||
|
||||
ID: 436,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newPatch() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPatch(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.8"
|
||||
checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR"
|
||||
)
|
||||
return t.NewPackage("patch", version, newTar(
|
||||
return s.NewPackage(t, "patch", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/patch/patch-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -380,7 +380,7 @@ test_disable '#!/bin/sh' tests/need-filename
|
||||
}, (*MakeHelper)(nil)), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Patch] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPatch,
|
||||
|
||||
Name: "patch",
|
||||
@@ -388,15 +388,15 @@ func init() {
|
||||
Website: "https://savannah.gnu.org/projects/patch/",
|
||||
|
||||
ID: 2597,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newBash() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newBash(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "5.3"
|
||||
checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq"
|
||||
)
|
||||
return t.NewPackage("bash", version, newTar(
|
||||
return s.NewPackage(t, "bash", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/bash/bash-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -410,7 +410,7 @@ func (t Toolchain) newBash() (pkg.Artifact, string) {
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Bash] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newBash,
|
||||
|
||||
Name: "bash",
|
||||
@@ -418,15 +418,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/bash/",
|
||||
|
||||
ID: 166,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newCoreutils() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newCoreutils(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "9.11"
|
||||
checksum = "t8UMed5wpFEoC56aa42_yidfOAaRGzOfj7MRtQkkqgGbpXiskNA8bd-EmVSQkZie"
|
||||
)
|
||||
return t.NewPackage("coreutils", version, newTar(
|
||||
return s.NewPackage(t, "coreutils", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/coreutils/coreutils-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -456,7 +456,7 @@ test_disable 'int main(){return 0;}' gnulib-tests/test-lchown.c
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Coreutils] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newCoreutils,
|
||||
|
||||
Name: "coreutils",
|
||||
@@ -464,15 +464,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/coreutils/",
|
||||
|
||||
ID: 343,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newTexinfo() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newTexinfo(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "7.3"
|
||||
checksum = "RRmC8Xwdof7JuZJeWGAQ_GeASIHAuJFQMbNONXBz5InooKIQGmqmWRjGNGEr5n4-"
|
||||
)
|
||||
return t.NewPackage("texinfo", version, newTar(
|
||||
return s.NewPackage(t, "texinfo", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/texinfo/texinfo-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -484,7 +484,7 @@ func (t Toolchain) newTexinfo() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Texinfo] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newTexinfo,
|
||||
|
||||
Name: "texinfo",
|
||||
@@ -497,15 +497,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 4958,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newGperf() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGperf(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.3"
|
||||
checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7"
|
||||
)
|
||||
return t.NewPackage("gperf", version, newTar(
|
||||
return s.NewPackage(t, "gperf", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gperf/gperf-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -514,7 +514,7 @@ func (t Toolchain) newGperf() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Gperf] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGperf,
|
||||
|
||||
Name: "gperf",
|
||||
@@ -522,15 +522,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/gperf/",
|
||||
|
||||
ID: 1237,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newGawk() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGawk(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "5.4.0"
|
||||
checksum = "m0RkIolC-PI7EY5q8pcx5Y-0twlIW0Yp3wXXmV-QaHorSdf8BhZ7kW9F8iWomz0C"
|
||||
)
|
||||
return t.NewPackage("gawk", version, newTar(
|
||||
return s.NewPackage(t, "gawk", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/gawk/gawk-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -542,7 +542,7 @@ func (t Toolchain) newGawk() (pkg.Artifact, string) {
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Gawk] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGawk,
|
||||
|
||||
Name: "gawk",
|
||||
@@ -550,15 +550,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/gawk/",
|
||||
|
||||
ID: 868,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newGrep() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGrep(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.12"
|
||||
checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1"
|
||||
)
|
||||
return t.NewPackage("grep", version, newTar(
|
||||
return s.NewPackage(t, "grep", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/grep/grep-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -575,7 +575,7 @@ test_disable 'int main(){return 0;}' gnulib-tests/test-c32ispunct.c
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Grep] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGrep,
|
||||
|
||||
Name: "grep",
|
||||
@@ -583,15 +583,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/grep/",
|
||||
|
||||
ID: 1251,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newFindutils() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newFindutils(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "4.10.0"
|
||||
checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6"
|
||||
)
|
||||
return t.NewPackage("findutils", version, pkg.NewHTTPGet(
|
||||
return s.NewPackage(t, "findutils", version, pkg.NewHTTPGet(
|
||||
nil, "https://ftpmirror.gnu.org/gnu/findutils/findutils-"+version+".tar.xz",
|
||||
mustDecode(checksum),
|
||||
), &PackageAttr{
|
||||
@@ -606,7 +606,7 @@ echo 'int main(){return 0;}' > tests/xargs/test-sigusr.c
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Findutils] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newFindutils,
|
||||
|
||||
Name: "findutils",
|
||||
@@ -614,15 +614,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/findutils/",
|
||||
|
||||
ID: 812,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newBC() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newBC(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.08.2"
|
||||
checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy"
|
||||
)
|
||||
return t.NewPackage("bc", version, newTar(
|
||||
return s.NewPackage(t, "bc", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/bc/bc-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -635,7 +635,7 @@ func (t Toolchain) newBC() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[BC] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newBC,
|
||||
|
||||
Name: "bc",
|
||||
@@ -643,22 +643,22 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/bc/",
|
||||
|
||||
ID: 170,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibiconv() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibiconv(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.19"
|
||||
checksum = "UibB6E23y4MksNqYmCCrA3zTFO6vJugD1DEDqqWYFZNuBsUWMVMcncb_5pPAr88x"
|
||||
)
|
||||
return t.NewPackage("libiconv", version, newTar(
|
||||
return s.NewPackage(t, "libiconv", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/libiconv/libiconv-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
), nil, (*MakeHelper)(nil)), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libiconv] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibiconv,
|
||||
|
||||
Name: "libiconv",
|
||||
@@ -666,15 +666,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/libiconv/",
|
||||
|
||||
ID: 10656,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newTar() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newTar(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.35"
|
||||
checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA"
|
||||
)
|
||||
return t.NewPackage("tar", version, newTar(
|
||||
return s.NewPackage(t, "tar", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/tar/tar-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -700,7 +700,7 @@ func (t Toolchain) newTar() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Tar] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newTar,
|
||||
|
||||
Name: "tar",
|
||||
@@ -708,15 +708,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/tar/",
|
||||
|
||||
ID: 4939,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newParallel() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newParallel(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "20260422"
|
||||
checksum = "eTsepxgqhXpMEhPd55qh-W5y4vjKn0x9TD2mzbJCNZYtFf4lT4Wzoqr74HGJYBEH"
|
||||
)
|
||||
return t.NewPackage("parallel", version, newTar(
|
||||
return s.NewPackage(t, "parallel", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/parallel/parallel-"+version+".tar.bz2",
|
||||
checksum,
|
||||
pkg.TarBzip2,
|
||||
@@ -730,7 +730,7 @@ ln -s ../system/bin/bash /bin/
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Parallel] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newParallel,
|
||||
|
||||
Name: "parallel",
|
||||
@@ -742,15 +742,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5448,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibunistring() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibunistring(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.4.2"
|
||||
checksum = "iW9BbfLoVlXjWoLTZ4AekQSu4cFBnLcZ4W8OHWbv0AhJNgD3j65_zqaLMzFKylg2"
|
||||
)
|
||||
return t.NewPackage("libunistring", version, newTar(
|
||||
return s.NewPackage(t, "libunistring", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/libunistring/libunistring-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -767,7 +767,7 @@ test_disable 'int main(){return 0;}' tests/test-c32ispunct.c
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libunistring] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibunistring,
|
||||
|
||||
Name: "libunistring",
|
||||
@@ -775,22 +775,22 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/libunistring/",
|
||||
|
||||
ID: 1747,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibtasn1() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibtasn1(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "4.21.0"
|
||||
checksum = "9DYI3UYbfYLy8JsKUcY6f0irskbfL0fHZA91Q-JEOA3kiUwpodyjemRsYRjUpjuq"
|
||||
)
|
||||
return t.NewPackage("libtasn1", version, newTar(
|
||||
return s.NewPackage(t, "libtasn1", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/libtasn1/libtasn1-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
), nil, (*MakeHelper)(nil)), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libtasn1] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibtasn1,
|
||||
|
||||
Name: "libtasn1",
|
||||
@@ -798,15 +798,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/libtasn1/",
|
||||
|
||||
ID: 1734,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newReadline() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newReadline(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "8.3"
|
||||
checksum = "r-lcGRJq_MvvBpOq47Z2Y1OI2iqrmtcqhTLVXR0xWo37ZpC2uT_md7gKq5o_qTMV"
|
||||
)
|
||||
return t.NewPackage("readline", version, newTar(
|
||||
return s.NewPackage(t, "readline", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/readline/readline-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -820,7 +820,7 @@ func (t Toolchain) newReadline() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Readline] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newReadline,
|
||||
|
||||
Name: "readline",
|
||||
@@ -832,24 +832,24 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 4173,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newGnuTLS() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGnuTLS(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.8.12"
|
||||
checksum = "VPdP-nRydQQRJcnma-YA7CJYA_kzTJ2rb3QFeP6D27emSyInJ8sQ-Wzn518I38dl"
|
||||
)
|
||||
|
||||
var configureExtra []KV
|
||||
switch arch {
|
||||
switch s.arch {
|
||||
case "arm64":
|
||||
configureExtra = []KV{
|
||||
{"disable-hardware-acceleration"},
|
||||
}
|
||||
}
|
||||
|
||||
return t.NewPackage("gnutls", version, t.newTagRemote(
|
||||
return s.NewPackage(t, "gnutls", version, s.newTagRemote(t,
|
||||
"https://gitlab.com/gnutls/gnutls.git",
|
||||
version, checksum,
|
||||
), &PackageAttr{
|
||||
@@ -997,7 +997,7 @@ index 1b78b8cf1..350156a86 100644
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[GnuTLS] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGnuTLS,
|
||||
|
||||
Name: "gnutls",
|
||||
@@ -1013,15 +1013,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1221,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newBinutils() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newBinutils(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.46.0"
|
||||
checksum = "4kK1_EXQipxSqqyvwD4LbiMLFKCUApjq6PeG4XJP4dzxYGqDeqXfh8zLuTyOuOVR"
|
||||
)
|
||||
return t.NewPackage("binutils", version, newTar(
|
||||
return s.NewPackage(t, "binutils", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/binutils/binutils-"+version+".tar.bz2",
|
||||
checksum,
|
||||
pkg.TarBzip2,
|
||||
@@ -1030,7 +1030,7 @@ func (t Toolchain) newBinutils() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Binutils] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newBinutils,
|
||||
|
||||
Name: "binutils",
|
||||
@@ -1038,15 +1038,15 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/binutils/",
|
||||
|
||||
ID: 7981,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newGMP() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGMP(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "6.3.0"
|
||||
checksum = "yrgbgEDWKDdMWVHh7gPbVl56-sRtVVhfvv0M_LX7xMUUk_mvZ1QOJEAnt7g4i3k5"
|
||||
)
|
||||
return t.NewPackage("gmp", version, newTar(
|
||||
return s.NewPackage(t, "gmp", version, newTar(
|
||||
"https://gcc.gnu.org/pub/gcc/infrastructure/"+
|
||||
"gmp-"+version+".tar.bz2",
|
||||
checksum,
|
||||
@@ -1060,7 +1060,7 @@ func (t Toolchain) newGMP() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[GMP] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGMP,
|
||||
|
||||
Name: "gmp",
|
||||
@@ -1068,15 +1068,15 @@ func init() {
|
||||
Website: "https://gmplib.org/",
|
||||
|
||||
ID: 1186,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newMPFR() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newMPFR(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "4.2.2"
|
||||
checksum = "wN3gx0zfIuCn9r3VAn_9bmfvAYILwrRfgBjYSD1IjLqyLrLojNN5vKyQuTE9kA-B"
|
||||
)
|
||||
return t.NewPackage("mpfr", version, newTar(
|
||||
return s.NewPackage(t, "mpfr", version, newTar(
|
||||
"https://gcc.gnu.org/pub/gcc/infrastructure/"+
|
||||
"mpfr-"+version+".tar.bz2",
|
||||
checksum,
|
||||
@@ -1086,7 +1086,7 @@ func (t Toolchain) newMPFR() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[MPFR] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newMPFR,
|
||||
|
||||
Name: "mpfr",
|
||||
@@ -1098,15 +1098,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 2019,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newMPC() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newMPC(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.4.1"
|
||||
checksum = "ZffaZyWkvIw0iPvRe5EJ7O-VvHtSkbbb3K_7SgPtK810NvGan7nbF0T5-6tozjQN"
|
||||
)
|
||||
return t.NewPackage("mpc", version, newFromGitLab(
|
||||
return s.NewPackage(t, "mpc", version, newFromGitLab(
|
||||
"gitlab.inria.fr",
|
||||
"mpc/mpc",
|
||||
version, checksum,
|
||||
@@ -1125,7 +1125,7 @@ func (t Toolchain) newMPC() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[MPC] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newMPC,
|
||||
|
||||
Name: "mpc",
|
||||
@@ -1137,22 +1137,22 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1667,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newGCC() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGCC(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "16.1.0"
|
||||
checksum = "4ASoWbxaA2FW7PAB0zzHDPC5XnNhyaAyjtDPpGzceSLeYnEIXsNYZR3PA_Zu5P0K"
|
||||
)
|
||||
|
||||
var configureExtra []KV
|
||||
switch arch {
|
||||
switch s.arch {
|
||||
case "amd64", "arm64":
|
||||
configureExtra = append(configureExtra, KV{"with-multilib-list", "''"})
|
||||
}
|
||||
|
||||
return t.NewPackage("gcc", version, newTar(
|
||||
return s.NewPackage(t, "gcc", version, newTar(
|
||||
"https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/"+
|
||||
"gcc-"+version+"/gcc-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -1346,7 +1346,7 @@ ln -s system/lib /work/
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[gcc] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGCC,
|
||||
|
||||
Name: "gcc",
|
||||
@@ -1362,5 +1362,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 6502,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@ import (
|
||||
)
|
||||
|
||||
// newGoBootstrap returns the Go bootstrap toolchain.
|
||||
func (t Toolchain) newGoBootstrap() pkg.Artifact {
|
||||
func (s *S) newGoBootstrap(t Toolchain) pkg.Artifact {
|
||||
const checksum = "8o9JL_ToiQKadCTb04nvBDkp8O1xiWOolAxVEqaTGodieNe4lOFEjlOxN3bwwe23"
|
||||
return t.New("go1.4-bootstrap", 0, t.AppendPresets(nil,
|
||||
return s.New(t, "go1.4-bootstrap", 0, s.AppendPresets(t, nil,
|
||||
Bash,
|
||||
), nil, []string{
|
||||
"CGO_ENABLED=0",
|
||||
@@ -28,17 +28,18 @@ chmod -R +w ..
|
||||
}
|
||||
|
||||
// newGo returns a specific version of the Go toolchain.
|
||||
func (t Toolchain) newGo(
|
||||
func (s *S) newGo(
|
||||
t Toolchain,
|
||||
version, checksum string,
|
||||
env []string,
|
||||
script string,
|
||||
extra ...pkg.Artifact,
|
||||
) pkg.Artifact {
|
||||
name := "all"
|
||||
if presetOpts&OptSkipCheck != 0 {
|
||||
if s.opts&OptSkipCheck != 0 {
|
||||
name = "make"
|
||||
}
|
||||
return t.New("go"+version, 0, t.AppendPresets(extra,
|
||||
return s.New(t, "go"+version, 0, s.AppendPresets(t, extra,
|
||||
Bash,
|
||||
), nil, slices.Concat([]string{
|
||||
"CC=cc",
|
||||
@@ -65,27 +66,27 @@ ln -s \
|
||||
)))
|
||||
}
|
||||
|
||||
func (t Toolchain) newGoLatest() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGoLatest(s *S) (pkg.Artifact, string) {
|
||||
var (
|
||||
bootstrapEnv []string
|
||||
bootstrapExtra []pkg.Artifact
|
||||
|
||||
finalEnv []string
|
||||
)
|
||||
switch arch {
|
||||
switch s.arch {
|
||||
case "amd64":
|
||||
bootstrapExtra = append(bootstrapExtra, t.newGoBootstrap())
|
||||
bootstrapExtra = append(bootstrapExtra, s.newGoBootstrap(t))
|
||||
|
||||
case "arm64", "riscv64":
|
||||
bootstrapEnv = append(bootstrapEnv, "GOROOT_BOOTSTRAP=/system")
|
||||
bootstrapExtra = t.AppendPresets(bootstrapExtra, gcc)
|
||||
bootstrapExtra = s.AppendPresets(t, bootstrapExtra, gcc)
|
||||
finalEnv = append(finalEnv, "CGO_ENABLED=0")
|
||||
|
||||
default:
|
||||
panic("unsupported target " + arch)
|
||||
panic("unsupported target " + s.arch)
|
||||
}
|
||||
|
||||
go119 := t.newGo(
|
||||
go119 := s.newGo(t,
|
||||
"1.19",
|
||||
"9_e0aFHsIkVxWVGsp9T2RvvjOc3p4n9o9S8tkNe9Cvgzk_zI2FhRQB7ioQkeAAro",
|
||||
append(bootstrapEnv, "CGO_ENABLED=0"), `
|
||||
@@ -101,13 +102,13 @@ echo \
|
||||
os/rawconn_test.go
|
||||
`, bootstrapExtra...)
|
||||
|
||||
go121 := t.newGo(
|
||||
go121 := s.newGo(t,
|
||||
"1.21.13",
|
||||
"YtrDka402BOAEwywx03Vz4QlVwoBiguJHzG7PuythMCPHXS8CVMLvzmvgEbu4Tzu",
|
||||
[]string{"CGO_ENABLED=0"}, `
|
||||
sed -i \
|
||||
's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+arch+`/obj.go
|
||||
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+s.arch+`/obj.go
|
||||
|
||||
rm \
|
||||
crypto/tls/handshake_client_test.go \
|
||||
@@ -119,23 +120,23 @@ echo \
|
||||
`, go119,
|
||||
)
|
||||
|
||||
go123 := t.newGo(
|
||||
go123 := s.newGo(t,
|
||||
"1.23.12",
|
||||
"wcI32bl1tkqbgcelGtGWPI4RtlEddd-PTd76Eb-k7nXA5LbE9yTNdIL9QSOOxMOs",
|
||||
[]string{"CGO_ENABLED=0"}, `
|
||||
sed -i \
|
||||
's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+arch+`/obj.go
|
||||
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+s.arch+`/obj.go
|
||||
`, go121,
|
||||
)
|
||||
|
||||
go125 := t.newGo(
|
||||
go125 := s.newGo(t,
|
||||
"1.25.10",
|
||||
"TwKwatkpwal-j9U2sDSRPEdM3YesI4Gm88YgGV59wtU-L85K9gA7UPy9SCxn6PMb",
|
||||
[]string{"CGO_ENABLED=0"}, `
|
||||
sed -i \
|
||||
's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+arch+`/obj.go
|
||||
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+s.arch+`/obj.go
|
||||
|
||||
rm \
|
||||
os/root_unix_test.go \
|
||||
@@ -147,13 +148,13 @@ rm \
|
||||
version = "1.26.3"
|
||||
checksum = "lEiFocZFnN5fKvZzmwVdqc9pYUjAuhzqZGbuiOqxUP4XdcY8yECisKcqsQ_eNn1N"
|
||||
)
|
||||
return t.newGo(
|
||||
return s.newGo(t,
|
||||
version,
|
||||
checksum,
|
||||
finalEnv, `
|
||||
sed -i \
|
||||
's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+arch+`/obj.go
|
||||
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+s.arch+`/obj.go
|
||||
sed -i \
|
||||
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
|
||||
internal/runtime/gc/scan/scan_amd64.go
|
||||
@@ -166,7 +167,7 @@ rm \
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Go] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGoLatest,
|
||||
|
||||
Name: "go",
|
||||
@@ -174,5 +175,5 @@ func init() {
|
||||
Website: "https://go.dev/",
|
||||
|
||||
ID: 1227,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newGLib() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newGLib(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.88.1"
|
||||
checksum = "Rkszn6W4RHjyspyqfXdVAVawdwDJCuS0Zu0f7qot7tbJhnw2fUDoUUJB40m-1MCX"
|
||||
)
|
||||
return t.NewPackage("glib", version, t.newTagRemote(
|
||||
return s.NewPackage(t, "glib", version, s.newTagRemote(t,
|
||||
"https://gitlab.gnome.org/GNOME/glib.git",
|
||||
version, checksum,
|
||||
), &PackageAttr{
|
||||
@@ -42,7 +42,7 @@ func (t Toolchain) newGLib() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[GLib] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGLib,
|
||||
|
||||
Name: "glib",
|
||||
@@ -56,5 +56,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 10024,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,7 +2,8 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newHakurei(
|
||||
func (s *S) newHakurei(
|
||||
t Toolchain,
|
||||
suffix, script string,
|
||||
withHostname bool,
|
||||
) pkg.Artifact {
|
||||
@@ -14,7 +15,7 @@ go build -o /bin/hostname /usr/src/hostname/main.go
|
||||
hostname = ""
|
||||
}
|
||||
|
||||
return t.New("hakurei"+suffix+"-"+hakureiVersion, 0, t.AppendPresets(nil,
|
||||
return s.New(t, "hakurei"+suffix+"-"+hakureiVersion, 0, s.AppendPresets(t, nil,
|
||||
Go,
|
||||
PkgConfig,
|
||||
|
||||
@@ -38,8 +39,8 @@ go build -o /bin/hostname /usr/src/hostname/main.go
|
||||
cd /usr/src/hakurei
|
||||
|
||||
HAKUREI_VERSION='v`+hakureiVersion+`'
|
||||
`+script, pkg.Path(AbsUsrSrc.Append("hakurei"), true, t.NewPatchedSource(
|
||||
"hakurei", hakureiVersion, hakureiSource, false, hakureiPatches...,
|
||||
`+script, pkg.Path(AbsUsrSrc.Append("hakurei"), true, s.NewPatchedSource(
|
||||
t, "hakurei", hakureiVersion, hakureiSource, false, hakureiPatches...,
|
||||
)), pkg.Path(AbsUsrSrc.Append("hostname", "main.go"), false, pkg.NewFile(
|
||||
"hostname.go",
|
||||
[]byte(`
|
||||
@@ -58,9 +59,9 @@ func main() {
|
||||
)))
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Hakurei] = Metadata{
|
||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||
return t.newHakurei("", `
|
||||
native.MustRegister(&Artifact{
|
||||
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
|
||||
return s.newHakurei(t, "", `
|
||||
mkdir -p /work/system/libexec/hakurei/
|
||||
|
||||
echo "Building hakurei for $(go env GOOS)/$(go env GOARCH)."
|
||||
@@ -93,14 +94,14 @@ mkdir -p /work/system/bin/
|
||||
Website: "https://hakurei.app/",
|
||||
|
||||
ID: 388834,
|
||||
}
|
||||
artifactsM[HakureiDist] = Metadata{
|
||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||
})
|
||||
native.MustRegister(&Artifact{
|
||||
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
|
||||
name := "all"
|
||||
if presetOpts&OptSkipCheck != 0 {
|
||||
if s.opts&OptSkipCheck != 0 {
|
||||
name = "make"
|
||||
}
|
||||
return t.newHakurei("-dist", `
|
||||
return s.newHakurei(t, "-dist", `
|
||||
export HAKUREI_VERSION
|
||||
DESTDIR=/work /usr/src/hakurei/`+name+`.sh
|
||||
`, true), hakureiVersion
|
||||
@@ -109,5 +110,5 @@ DESTDIR=/work /usr/src/hakurei/`+name+`.sh
|
||||
Name: "hakurei-dist",
|
||||
Description: "low-level userspace tooling for Rosa OS (distribution tarball)",
|
||||
Website: "https://hakurei.app/",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newHwdata() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newHwdata(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.407"
|
||||
checksum = "6p1XD0CRuzt6hLfjv4ShKBW934BexmoPkRrmwxD4J63fBVCzVBRHyF8pVJdW_Xjm"
|
||||
)
|
||||
return t.NewPackage("hwdata", version, newFromGitHub(
|
||||
return s.NewPackage(t, "hwdata", version, newFromGitHub(
|
||||
"vcrhonek/hwdata",
|
||||
"v"+version, checksum,
|
||||
), &PackageAttr{
|
||||
@@ -22,7 +22,7 @@ func (t Toolchain) newHwdata() (pkg.Artifact, string) {
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Hwdata] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newHwdata,
|
||||
|
||||
Name: "hwdata",
|
||||
@@ -30,5 +30,5 @@ func init() {
|
||||
Website: "https://github.com/vcrhonek/hwdata",
|
||||
|
||||
ID: 5387,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@ import (
|
||||
)
|
||||
|
||||
func init() {
|
||||
artifactsM[EarlyInit] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
Name: "earlyinit",
|
||||
Description: "Rosa OS initramfs init program",
|
||||
|
||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||
return t.newHakurei("-early-init", `
|
||||
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
|
||||
return s.newHakurei(t, "-early-init", `
|
||||
mkdir -p /work/system/libexec/hakurei/
|
||||
|
||||
echo '# Building earlyinit.'
|
||||
@@ -24,15 +24,14 @@ go build -trimpath -v -o /work/system/libexec/hakurei -ldflags="-s -w
|
||||
echo
|
||||
`, false), Unversioned
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newImageSystem() (pkg.Artifact, string) {
|
||||
return t.New("system.img", TNoToolchain, t.AppendPresets(nil,
|
||||
func (t Toolchain) newImageSystem(s *S) (pkg.Artifact, string) {
|
||||
return s.New(t, "system.img", TNoToolchain, s.AppendPresets(t, nil,
|
||||
SquashfsTools,
|
||||
), nil, nil, `
|
||||
mksquashfs /mnt/system /work/system.img
|
||||
`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.AppendPresets(nil,
|
||||
`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, s.AppendPresets(t, nil,
|
||||
Musl,
|
||||
Mksh,
|
||||
Toybox,
|
||||
@@ -43,16 +42,15 @@ mksquashfs /mnt/system /work/system.img
|
||||
)...)), Unversioned
|
||||
}
|
||||
func init() {
|
||||
artifactsM[ImageSystem] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
Name: "system-image",
|
||||
Description: "Rosa OS system image",
|
||||
|
||||
f: Toolchain.newImageSystem,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newImageInitramfs() (pkg.Artifact, string) {
|
||||
return t.New("initramfs", TNoToolchain, t.AppendPresets(nil,
|
||||
func (t Toolchain) newImageInitramfs(s *S) (pkg.Artifact, string) {
|
||||
return s.New(t, "initramfs", TNoToolchain, s.AppendPresets(t, nil,
|
||||
Zstd,
|
||||
EarlyInit,
|
||||
GenInitCPIO,
|
||||
@@ -66,10 +64,10 @@ file /init /system/libexec/hakurei/earlyinit 0555 0 0
|
||||
`)))), Unversioned
|
||||
}
|
||||
func init() {
|
||||
artifactsM[ImageInitramfs] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
Name: "initramfs-image",
|
||||
Description: "Rosa OS initramfs image",
|
||||
|
||||
f: Toolchain.newImageInitramfs,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -11,26 +11,26 @@ var kernelSource = newTar(
|
||||
pkg.TarGzip,
|
||||
)
|
||||
|
||||
func (t Toolchain) newKernelSource() (pkg.Artifact, string) {
|
||||
return t.New("kernel-"+kernelVersion+"-src", 0, nil, nil, nil, `
|
||||
func (t Toolchain) newKernelSource(s *S) (pkg.Artifact, string) {
|
||||
return s.New(t, "kernel-"+kernelVersion+"-src", 0, nil, nil, nil, `
|
||||
mkdir -p /work/usr/src/
|
||||
cp -r /usr/src/linux /work/usr/src/
|
||||
chmod -R +w /work/usr/src/linux/
|
||||
`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource)), kernelVersion
|
||||
}
|
||||
func init() {
|
||||
artifactsM[KernelSource] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newKernelSource,
|
||||
|
||||
Name: "kernel-source",
|
||||
Description: "a writable kernel source tree installed to /usr/src/linux",
|
||||
Website: "https://kernel.org/",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newKernelHeaders() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newKernelHeaders(s *S) (pkg.Artifact, string) {
|
||||
const checksum = "lCmBNcMeUmXifg0vecKOPy3GAaFcJSmOPnf3wit9xYTDSTsFADPt1xxUFfmTn1fD"
|
||||
return t.NewPackage("kernel-headers", kernelVersion, kernelSource, &PackageAttr{
|
||||
return s.NewPackage(t, "kernel-headers", kernelVersion, kernelSource, &PackageAttr{
|
||||
Flag: TEarly,
|
||||
KnownChecksum: new(mustDecode(checksum)),
|
||||
|
||||
@@ -67,17 +67,17 @@ cat \
|
||||
), kernelVersion
|
||||
}
|
||||
func init() {
|
||||
artifactsM[KernelHeaders] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newKernelHeaders,
|
||||
|
||||
Name: "kernel-headers",
|
||||
Description: "an installation of kernel headers",
|
||||
Website: "https://kernel.org/",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newKernel() (pkg.Artifact, string) {
|
||||
return t.NewPackage("kernel", kernelVersion, kernelSource, &PackageAttr{
|
||||
func (t Toolchain) newKernel(s *S) (pkg.Artifact, string) {
|
||||
return s.NewPackage(t, "kernel", kernelVersion, kernelSource, &PackageAttr{
|
||||
Env: []string{
|
||||
"PATH=/system/sbin",
|
||||
},
|
||||
@@ -1272,7 +1272,7 @@ rm -v /work/system/lib/modules/` + kernelVersion + `/build
|
||||
), kernelVersion
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Kernel] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newKernel,
|
||||
|
||||
Name: "kernel",
|
||||
@@ -1280,30 +1280,30 @@ func init() {
|
||||
Website: "https://kernel.org/",
|
||||
|
||||
ID: 375621,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newGenInitCPIO() (pkg.Artifact, string) {
|
||||
return t.New("gen_init_cpio-"+kernelVersion, 0, nil, nil, nil, `
|
||||
func (t Toolchain) newGenInitCPIO(s *S) (pkg.Artifact, string) {
|
||||
return s.New(t, "gen_init_cpio-"+kernelVersion, 0, nil, nil, nil, `
|
||||
mkdir -p /work/system/bin/
|
||||
cc -o /work/system/bin/gen_init_cpio /usr/src/linux/usr/gen_init_cpio.c
|
||||
`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource)), kernelVersion
|
||||
}
|
||||
func init() {
|
||||
artifactsM[GenInitCPIO] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newGenInitCPIO,
|
||||
|
||||
Name: "gen_init_cpio",
|
||||
Description: "a program in the kernel source tree for creating initramfs archive",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newFirmware() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newFirmware(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "20260410"
|
||||
checksum = "J8PdQlGqwrivpskPzbL6xacqR6mlKtXpe5RpzFfVzKPAgG81ZRXsc3qrxwdGJbil"
|
||||
)
|
||||
return t.NewPackage("firmware", version, newFromGitLab(
|
||||
return s.NewPackage(t, "firmware", version, newFromGitLab(
|
||||
"gitlab.com",
|
||||
"kernel-firmware/linux-firmware",
|
||||
version,
|
||||
@@ -1337,7 +1337,7 @@ func (t Toolchain) newFirmware() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Firmware] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newFirmware,
|
||||
|
||||
Name: "firmware",
|
||||
@@ -1345,5 +1345,5 @@ func init() {
|
||||
Website: "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/",
|
||||
|
||||
ID: 141464,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newKmod() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newKmod(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "34.2"
|
||||
checksum = "0K7POeTKxMhExsaTsnKAC6LUNsRSfe6sSZxWONPbOu-GI_pXOw3toU_BIoqfBhJV"
|
||||
)
|
||||
return t.NewPackage("kmod", version, newTar(
|
||||
return s.NewPackage(t, "kmod", version, newTar(
|
||||
"https://www.kernel.org/pub/linux/utils/kernel/"+
|
||||
"kmod/kmod-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -32,7 +32,7 @@ func (t Toolchain) newKmod() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Kmod] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newKmod,
|
||||
|
||||
Name: "kmod",
|
||||
@@ -46,5 +46,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1517,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibarchive() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibarchive(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.8.7"
|
||||
checksum = "CUJK4MDQmZmATClgQBH2Wt-7Ts4iiSUlg1J_TVb6-5IK3rVUgVLIMc5k-bnWB9w3"
|
||||
)
|
||||
return t.NewPackage("libarchive", version, newFromGitHub(
|
||||
return s.NewPackage(t, "libarchive", version, newFromGitHub(
|
||||
"libarchive/libarchive",
|
||||
"v"+version, checksum,
|
||||
), &PackageAttr{
|
||||
@@ -88,7 +88,7 @@ install -Dv /usr/src/CTestCustom.cmake /cure/
|
||||
}, (*CMakeHelper)(nil)), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libarchive] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibarchive,
|
||||
|
||||
Name: "libarchive",
|
||||
@@ -96,5 +96,5 @@ func init() {
|
||||
Website: "https://www.libarchive.org/",
|
||||
|
||||
ID: 1558,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibmd() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibmd(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.2.0"
|
||||
checksum = "1rJ6joAO0wwMZvSfnRNkc1MOhywyAq7SM8VmF92NvDtv7Qdl1LRbjm5fg_DFFtGj"
|
||||
)
|
||||
return t.NewPackage("libmd", version, t.newTagRemote(
|
||||
return s.NewPackage(t, "libmd", version, s.newTagRemote(t,
|
||||
"https://git.hadrons.org/git/libmd.git",
|
||||
version, checksum,
|
||||
), nil, &MakeHelper{
|
||||
@@ -21,7 +21,7 @@ install -D /usr/src/libmd/src/helper.c src/helper.c
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libmd] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibmd,
|
||||
|
||||
Name: "libmd",
|
||||
@@ -29,15 +29,15 @@ func init() {
|
||||
Website: "https://www.hadrons.org/software/libmd/",
|
||||
|
||||
ID: 15525,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibbsd() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibbsd(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.12.2"
|
||||
checksum = "NVS0xFLTwSP8JiElEftsZ-e1_C-IgJhHrHE77RwKt5178M7r087waO-zYx2_dfGX"
|
||||
)
|
||||
return t.NewPackage("libbsd", version, t.newTagRemote(
|
||||
return s.NewPackage(t, "libbsd", version, s.newTagRemote(t,
|
||||
"https://gitlab.freedesktop.org/libbsd/libbsd.git",
|
||||
version, checksum,
|
||||
), nil, &MakeHelper{
|
||||
@@ -50,7 +50,7 @@ func (t Toolchain) newLibbsd() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libbsd] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibbsd,
|
||||
|
||||
Name: "libbsd",
|
||||
@@ -58,5 +58,5 @@ func init() {
|
||||
Website: "https://libbsd.freedesktop.org/",
|
||||
|
||||
ID: 1567,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibcap() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibcap(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.78"
|
||||
checksum = "wFdUkBhFMD9InPnrBZyegWrlPSAg_9JiTBC-eSFyWWlmbzL2qjh2mKxr9Kx2a8ut"
|
||||
)
|
||||
return t.NewPackage("libcap", version, newTar(
|
||||
return s.NewPackage(t, "libcap", version, newTar(
|
||||
"https://git.kernel.org/pub/scm/libs/libcap/libcap.git/"+
|
||||
"snapshot/libcap-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -42,7 +42,7 @@ ln -s ../system/bin/bash /bin/
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libcap] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibcap,
|
||||
|
||||
Name: "libcap",
|
||||
@@ -50,5 +50,5 @@ func init() {
|
||||
Website: "https://sites.google.com/site/fullycapable/",
|
||||
|
||||
ID: 1569,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibconfig() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibconfig(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.8.2"
|
||||
checksum = "fD32hjeAZuTz98g6WYHRwsxphrgrEFqxi5Z1jlJemPckPBfxpS3i5HgshAuA6vmT"
|
||||
)
|
||||
return t.NewPackage("libconfig", version, newFromGitHub(
|
||||
return s.NewPackage(t, "libconfig", version, newFromGitHub(
|
||||
"hyperrealm/libconfig",
|
||||
"v"+version,
|
||||
checksum,
|
||||
@@ -38,7 +38,7 @@ index eba7eae..f916d2e 100644
|
||||
}, (*CMakeHelper)(nil)), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libconfig] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibconfig,
|
||||
|
||||
Name: "libconfig",
|
||||
@@ -46,5 +46,5 @@ func init() {
|
||||
Website: "https://hyperrealm.github.io/libconfig/",
|
||||
|
||||
ID: 1580,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibdisplayInfo() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibdisplayInfo(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.3.0"
|
||||
checksum = "yjOqPUHHYgRtpqGw5RI1n2Q1_hO5j0LiFNMbjcRWV4Nf71XwwoC9fZMlKBDeLchT"
|
||||
)
|
||||
return t.NewPackage("libdisplay-info", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libdisplay-info", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"emersion/libdisplay-info",
|
||||
version, checksum,
|
||||
@@ -18,7 +18,7 @@ func (t Toolchain) newLibdisplayInfo() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibdisplayInfo] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibdisplayInfo,
|
||||
|
||||
Name: "libdisplay-info",
|
||||
@@ -26,5 +26,5 @@ func init() {
|
||||
Website: "https://gitlab.freedesktop.org/emersion/libdisplay-info",
|
||||
|
||||
ID: 326668,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibepoxy() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibepoxy(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.5.10"
|
||||
checksum = "OHI8wshrlGw6BMGrmSyejJtwzM2gPhyFJrTsKxULyKMmYrfgcOe7Iw2ibVoUND_Q"
|
||||
)
|
||||
return t.NewPackage("libepoxy", version, newFromGitHub(
|
||||
return s.NewPackage(t, "libepoxy", version, newFromGitHub(
|
||||
"anholt/libepoxy",
|
||||
version,
|
||||
checksum,
|
||||
@@ -21,7 +21,7 @@ func (t Toolchain) newLibepoxy() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libepoxy] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibepoxy,
|
||||
|
||||
Name: "libepoxy",
|
||||
@@ -29,5 +29,5 @@ func init() {
|
||||
Website: "https://github.com/anholt/libepoxy",
|
||||
|
||||
ID: 6090,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,19 +2,19 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibev() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibev(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "4.33"
|
||||
checksum = "774eSXV_4k8PySRprUDChbEwsw-kzjIFnJ3MpNOl5zDpamBRvC3BqPyRxvkwcL6_"
|
||||
)
|
||||
return t.NewPackage("libev", version, newTar(
|
||||
return s.NewPackage(t, "libev", version, newTar(
|
||||
"https://dist.schmorp.de/libev/Attic/libev-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
), nil, (*MakeHelper)(nil)), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libev] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibev,
|
||||
|
||||
Name: "libev",
|
||||
@@ -22,5 +22,5 @@ func init() {
|
||||
Website: "http://libev.schmorp.de/",
|
||||
|
||||
ID: 1605,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newLibexpat() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibexpat(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.8.1"
|
||||
checksum = "iMEtbOJhQfGof2GxSlxffQSI1va_NDDQ9VIuqcPbNZ0291Dr8wttD5QecYyjIQap"
|
||||
)
|
||||
return t.NewPackage("libexpat", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "libexpat", version, newFromGitHubRelease(
|
||||
"libexpat/libexpat",
|
||||
"R_"+strings.ReplaceAll(version, ".", "_"),
|
||||
"expat-"+version+".tar.bz2",
|
||||
@@ -22,7 +22,7 @@ func (t Toolchain) newLibexpat() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libexpat] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibexpat,
|
||||
|
||||
Name: "libexpat",
|
||||
@@ -30,5 +30,5 @@ func init() {
|
||||
Website: "https://libexpat.github.io/",
|
||||
|
||||
ID: 770,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibffi() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibffi(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.5.2"
|
||||
checksum = "2_Q-ZNBBbVhltfL5zEr0wljxPegUimTK4VeMSiwJEGksls3n4gj3lV0Ly3vviSFH"
|
||||
)
|
||||
return t.NewPackage("libffi", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "libffi", version, newFromGitHubRelease(
|
||||
"libffi/libffi",
|
||||
"v"+version,
|
||||
"libffi-"+version+".tar.gz",
|
||||
@@ -18,7 +18,7 @@ func (t Toolchain) newLibffi() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libffi] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibffi,
|
||||
|
||||
Name: "libffi",
|
||||
@@ -26,5 +26,5 @@ func init() {
|
||||
Website: "https://sourceware.org/libffi/",
|
||||
|
||||
ID: 1611,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibgd() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibgd(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.3.3"
|
||||
checksum = "8T-sh1_FJT9K9aajgxzh8ot6vWIF-xxjcKAHvTak9MgGUcsFfzP8cAvvv44u2r36"
|
||||
)
|
||||
return t.NewPackage("libgd", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "libgd", version, newFromGitHubRelease(
|
||||
"libgd/libgd",
|
||||
"gd-"+version,
|
||||
"libgd-"+version+".tar.gz", checksum,
|
||||
@@ -24,7 +24,7 @@ mkdir /dev/shm/gd
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libgd] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibgd,
|
||||
|
||||
Name: "libgd",
|
||||
@@ -36,5 +36,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 880,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newLibpng() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibpng(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.6.58"
|
||||
checksum = "m_a5lROJH7vmF3cMjqwTUqURuQLhV1JQx2ySPzcN3VPdgDB9pG3UINsIx_mtkr-t"
|
||||
)
|
||||
return t.NewPackage("libpng", version, newTar(
|
||||
return s.NewPackage(t, "libpng", version, newTar(
|
||||
"https://downloads.sourceforge.net/project/libpng/libpng"+
|
||||
strings.Join(strings.SplitN(version, ".", 3)[:2], "")+
|
||||
"/"+version+"/libpng-"+version+".tar.gz",
|
||||
@@ -22,7 +22,7 @@ func (t Toolchain) newLibpng() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libpng] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibpng,
|
||||
|
||||
Name: "libpng",
|
||||
@@ -34,5 +34,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1705,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibpsl() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibpsl(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.21.5"
|
||||
checksum = "XjfxSzh7peG2Vg4vJlL8z4JZJLcXqbuP6pLWkrGCmRxlnYUFTKNBqWGHCxEOlCad"
|
||||
)
|
||||
return t.NewPackage("libpsl", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "libpsl", version, newFromGitHubRelease(
|
||||
"rockdaboot/libpsl",
|
||||
version,
|
||||
"libpsl-"+version+".tar.gz",
|
||||
@@ -25,7 +25,7 @@ test_disable 'int main(){return 0;}' tests/test-is-public-builtin.c
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libpsl] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibpsl,
|
||||
|
||||
Name: "libpsl",
|
||||
@@ -33,5 +33,5 @@ func init() {
|
||||
Website: "https://rockdaboot.github.io/libpsl/",
|
||||
|
||||
ID: 7305,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibseccomp() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibseccomp(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.6.0"
|
||||
checksum = "mMu-iR71guPjFbb31u-YexBaanKE_nYPjPux-vuBiPfS_0kbwJdfCGlkofaUm-EY"
|
||||
)
|
||||
return t.NewPackage("libseccomp", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "libseccomp", version, newFromGitHubRelease(
|
||||
"seccomp/libseccomp",
|
||||
"v"+version,
|
||||
"libseccomp-"+version+".tar.gz",
|
||||
@@ -43,7 +43,7 @@ index adccef3..65a277a 100644
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libseccomp] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibseccomp,
|
||||
|
||||
Name: "libseccomp",
|
||||
@@ -51,5 +51,5 @@ func init() {
|
||||
Website: "https://github.com/seccomp/libseccomp/",
|
||||
|
||||
ID: 13823,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newLibtirpc() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibtirpc(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.3.7"
|
||||
checksum = "nzFfu7LNvnSNiNAryD1vtnNWnU-Xqee8KqfXUKoBf5yjb5-dkeRkYuRijdCoYLof"
|
||||
)
|
||||
return t.NewPackage("libtirpc", version, t.newTagRemote(
|
||||
return s.NewPackage(t, "libtirpc", version, s.newTagRemote(t,
|
||||
"git://linux-nfs.org/~steved/libtirpc",
|
||||
"libtirpc-"+
|
||||
strings.Join(strings.SplitN(version, ".", 3), "-"),
|
||||
@@ -32,7 +32,7 @@ func (t Toolchain) newLibtirpc() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libtirpc] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibtirpc,
|
||||
|
||||
Name: "libtirpc",
|
||||
@@ -40,5 +40,5 @@ func init() {
|
||||
Website: "https://sourceforge.net/projects/libtirpc/",
|
||||
|
||||
ID: 1740,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibucontext() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibucontext(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.5.1"
|
||||
checksum = "mUgeyJknjMxT-5fORzz-rqhZfP3Y7EZGBhOwvhuX7MsF4Pk9wkuwtrLf5IML-jWu"
|
||||
)
|
||||
return t.NewPackage("libucontext", version, newFromGitHub(
|
||||
return s.NewPackage(t, "libucontext", version, newFromGitHub(
|
||||
"kaniini/libucontext",
|
||||
"libucontext-"+version,
|
||||
checksum,
|
||||
@@ -21,13 +21,13 @@ func (t Toolchain) newLibucontext() (pkg.Artifact, string) {
|
||||
SkipConfigure: true,
|
||||
InPlace: true,
|
||||
Make: []string{
|
||||
"ARCH=" + linuxArch(),
|
||||
"ARCH=" + s.linuxArch(),
|
||||
},
|
||||
Install: "make prefix=/system DESTDIR=/work install",
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libucontext] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibucontext,
|
||||
|
||||
Name: "libucontext",
|
||||
@@ -35,5 +35,5 @@ func init() {
|
||||
Website: "https://github.com/kaniini/libucontext/",
|
||||
|
||||
ID: 17085,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibxml2() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxml2(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.15.3"
|
||||
checksum = "oJy74htGlEpf70KPvpW18fYJo0RQQkCXZRwqUz6NoXborS3HCq3Nm4gsyaSeNmUH"
|
||||
)
|
||||
return t.NewPackage("libxml2", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libxml2", version, newFromGitLab(
|
||||
"gitlab.gnome.org",
|
||||
"GNOME/libxml2",
|
||||
"v"+version, checksum,
|
||||
@@ -20,7 +20,7 @@ func (t Toolchain) newLibxml2() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libxml2] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxml2,
|
||||
|
||||
Name: "libxml2",
|
||||
@@ -28,5 +28,5 @@ func init() {
|
||||
Website: "https://gitlab.gnome.org/GNOME/libxml2/",
|
||||
|
||||
ID: 1783,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibxslt() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxslt(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.1.45"
|
||||
checksum = "67ks7v8od2oWaEGf23Sst_Xbn_8brQyolQjqxPoO-lK35k_WJhi2Px5JJgbk-nfn"
|
||||
)
|
||||
return t.NewPackage("libxslt", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libxslt", version, newFromGitLab(
|
||||
"gitlab.gnome.org",
|
||||
"GNOME/libxslt",
|
||||
"v"+version, checksum,
|
||||
@@ -26,7 +26,7 @@ func (t Toolchain) newLibxslt() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libxslt] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxslt,
|
||||
|
||||
Name: "libxslt",
|
||||
@@ -38,5 +38,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 13301,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -29,10 +29,10 @@ func litArgs(verbose bool, skipChecks ...string) string {
|
||||
return "'" + strings.Join(args, " ") + "'"
|
||||
}
|
||||
|
||||
func (t Toolchain) newEarlyCompilerRT() (pkg.Artifact, string) {
|
||||
version := t.Version(llvmSource)
|
||||
func (t Toolchain) newEarlyCompilerRT(s *S) (pkg.Artifact, string) {
|
||||
source, version := s.Load(t, llvmSource)
|
||||
major, _, _ := strings.Cut(version, ".")
|
||||
return t.NewPackage("early-compiler-rt", version, t.Load(llvmSource), &PackageAttr{
|
||||
return s.NewPackage(t, "early-compiler-rt", version, source, &PackageAttr{
|
||||
Flag: TExclusive,
|
||||
}, &CMakeHelper{
|
||||
Append: []string{"compiler-rt"},
|
||||
@@ -71,10 +71,10 @@ ln -s \
|
||||
"/work/system/lib/clang/` + major + `/lib/"
|
||||
|
||||
ln -s \
|
||||
"clang_rt.crtbegin-` + linuxArch() + `.o" \
|
||||
"clang_rt.crtbegin-` + s.linuxArch() + `.o" \
|
||||
"/work/system/lib/${ROSA_TRIPLE}/crtbeginS.o"
|
||||
ln -s \
|
||||
"clang_rt.crtend-` + linuxArch() + `.o" \
|
||||
"clang_rt.crtend-` + s.linuxArch() + `.o" \
|
||||
"/work/system/lib/${ROSA_TRIPLE}/crtendS.o"
|
||||
`,
|
||||
},
|
||||
@@ -85,7 +85,7 @@ ln -s \
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[earlyCompilerRT] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newEarlyCompilerRT,
|
||||
|
||||
Name: "early-compiler-rt",
|
||||
@@ -94,12 +94,12 @@ func init() {
|
||||
Dependencies: P{
|
||||
Musl,
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newEarlyRuntimes() (pkg.Artifact, string) {
|
||||
version := t.Version(llvmSource)
|
||||
return t.NewPackage("early-runtimes", version, t.Load(llvmSource), &PackageAttr{
|
||||
func (t Toolchain) newEarlyRuntimes(s *S) (pkg.Artifact, string) {
|
||||
source, version := s.Load(t, llvmSource)
|
||||
return s.NewPackage(t, "early-runtimes", version, source, &PackageAttr{
|
||||
Flag: TExclusive,
|
||||
}, &CMakeHelper{
|
||||
Append: []string{"runtimes"},
|
||||
@@ -145,7 +145,7 @@ func (t Toolchain) newEarlyRuntimes() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[earlyRuntimes] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newEarlyRuntimes,
|
||||
|
||||
Name: "early-runtimes",
|
||||
@@ -154,11 +154,11 @@ func init() {
|
||||
Dependencies: P{
|
||||
earlyCompilerRT,
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLLVM() (pkg.Artifact, string) {
|
||||
var early PArtifact = muslHeaders
|
||||
func (t Toolchain) newLLVM(s *S) (pkg.Artifact, string) {
|
||||
early := muslHeaders
|
||||
if t.isStage0() {
|
||||
// The LLVM build system uses the system installation when building with
|
||||
// LLVM_LINK_LLVM_DYLIB, since it builds runtimes after the fact, using
|
||||
@@ -247,7 +247,7 @@ func (t Toolchain) newLLVM() (pkg.Artifact, string) {
|
||||
// unwind: fails on musl
|
||||
"eh_frame_fde_pc_range",
|
||||
}
|
||||
switch arch {
|
||||
switch s.arch {
|
||||
case "arm64":
|
||||
skipChecks = append(skipChecks,
|
||||
// LLVM: intermittently crashes
|
||||
@@ -257,7 +257,7 @@ func (t Toolchain) newLLVM() (pkg.Artifact, string) {
|
||||
)
|
||||
}
|
||||
|
||||
if presetOpts&OptLLVMNoLTO == 0 {
|
||||
if s.opts&OptLLVMNoLTO == 0 {
|
||||
cache = append(cache, []KV{
|
||||
// very expensive
|
||||
{"LLVM_ENABLE_LTO", "Thin"},
|
||||
@@ -273,8 +273,8 @@ func (t Toolchain) newLLVM() (pkg.Artifact, string) {
|
||||
}...)
|
||||
}
|
||||
|
||||
version := t.Version(llvmSource)
|
||||
return t.NewPackage("llvm", version, t.Load(llvmSource), &PackageAttr{
|
||||
source, version := s.Load(t, llvmSource)
|
||||
return s.NewPackage(t, "llvm", version, source, &PackageAttr{
|
||||
Flag: TExclusive,
|
||||
}, &CMakeHelper{
|
||||
Append: []string{"llvm"},
|
||||
@@ -324,9 +324,9 @@ func init() {
|
||||
checksum = "32gOaLPHcUlo3hkdk5RbFumTE01XKeCAYZcpvn8IDHF95egXVfDFSl6eZL3ChMen"
|
||||
)
|
||||
|
||||
artifactsM[llvmSource] = Metadata{
|
||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||
return t.NewPatchedSource("llvm", version, newFromGitHub(
|
||||
native.MustRegister(&Artifact{
|
||||
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
|
||||
return s.NewPatchedSource(t, "llvm", version, newFromGitHub(
|
||||
"llvm/llvm-project",
|
||||
"llvmorg-"+version,
|
||||
checksum,
|
||||
@@ -337,9 +337,9 @@ func init() {
|
||||
Description: "LLVM monorepo with Rosa OS patches",
|
||||
|
||||
ID: 1830,
|
||||
}
|
||||
})
|
||||
|
||||
artifactsM[LLVM] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLLVM,
|
||||
|
||||
Name: "llvm",
|
||||
@@ -351,5 +351,5 @@ func init() {
|
||||
Zstd,
|
||||
Musl,
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLMSensors() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLMSensors(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3-6-2"
|
||||
checksum = "7JYNutrihe-FP6r3ftf96uFZJJWPfxnBHL0ALSMA-vovaXVRr-sAjlLitw7WWpCI"
|
||||
)
|
||||
return t.NewPackage("lm_sensors", version, newFromGitHub(
|
||||
return s.NewPackage(t, "lm_sensors", version, newFromGitHub(
|
||||
"lm-sensors/lm-sensors",
|
||||
"V"+version,
|
||||
checksum,
|
||||
@@ -47,7 +47,7 @@ ln -s \
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LMSensors] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLMSensors,
|
||||
|
||||
Name: "lm_sensors",
|
||||
@@ -55,5 +55,5 @@ func init() {
|
||||
Website: "https://hwmon.wiki.kernel.org/lm_sensors",
|
||||
|
||||
ID: 1831,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -7,12 +7,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newMake() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newMake(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "4.4.1"
|
||||
checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a"
|
||||
)
|
||||
return t.New("make-"+version, TEarly, nil, nil, nil, `
|
||||
return s.New(t, "make-"+version, TEarly, nil, nil, nil, `
|
||||
cd "$(mktemp -d)"
|
||||
/usr/src/make/configure \
|
||||
--prefix=/system \
|
||||
@@ -27,7 +27,7 @@ cd "$(mktemp -d)"
|
||||
))), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Make] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newMake,
|
||||
|
||||
Name: "make",
|
||||
@@ -35,7 +35,7 @@ func init() {
|
||||
Website: "https://www.gnu.org/software/make/",
|
||||
|
||||
ID: 1877,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// MakeHelper is the [Make] build system helper.
|
||||
@@ -123,7 +123,7 @@ func (attr *MakeHelper) wantsDir() string {
|
||||
}
|
||||
|
||||
// script generates the cure script.
|
||||
func (attr *MakeHelper) script(name string) string {
|
||||
func (attr *MakeHelper) script(s *S, name string) string {
|
||||
if attr == nil {
|
||||
attr = new(MakeHelper)
|
||||
}
|
||||
@@ -194,7 +194,7 @@ make \
|
||||
}
|
||||
scriptMake += "\n"
|
||||
|
||||
if !attr.SkipCheck && presetOpts&OptSkipCheck == 0 {
|
||||
if !attr.SkipCheck && s.opts&OptSkipCheck == 0 {
|
||||
scriptMake += attr.ScriptCheckEarly + `make \
|
||||
` + jobsFlagE + ` \
|
||||
`
|
||||
|
||||
@@ -6,12 +6,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newLibglvnd() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibglvnd(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.7.0"
|
||||
checksum = "eIQJK2sgFQDHdeFkQO87TrSUaZRFG4y2DrwA8Ut-sGboI59uw1OOiIVqq2AIwnGY"
|
||||
)
|
||||
return t.NewPackage("libglvnd", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libglvnd", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"glvnd/libglvnd",
|
||||
"v"+version,
|
||||
@@ -35,7 +35,7 @@ trap 'kill $XVFB_PID && wait $XVFB_PID' EXIT
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libglvnd] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibglvnd,
|
||||
|
||||
Name: "libglvnd",
|
||||
@@ -47,15 +47,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 12098,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibdrm() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibdrm(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.4.133"
|
||||
checksum = "bfj296NcR9DndO11hqDbSRFPqaweSLMqRk3dlCPZpM6FONX1WZ9J4JdbTDMUd1rU"
|
||||
)
|
||||
return t.NewPackage("libdrm", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libdrm", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"mesa/libdrm",
|
||||
"libdrm-"+version,
|
||||
@@ -72,7 +72,7 @@ func (t Toolchain) newLibdrm() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libdrm] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibdrm,
|
||||
|
||||
Name: "libdrm",
|
||||
@@ -84,15 +84,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1596,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibva() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibva(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.23.0"
|
||||
checksum = "UmF5tPyWIG_w5kiR3KFpoYbF7UUcaak5tyc-RhOheNTwQlLkPlifreFYCM9FQxbq"
|
||||
)
|
||||
return t.NewPackage("libva", version, newFromGitHub(
|
||||
return s.NewPackage(t, "libva", version, newFromGitHub(
|
||||
"intel/libva",
|
||||
version,
|
||||
checksum,
|
||||
@@ -111,7 +111,7 @@ func (t Toolchain) newLibva() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libva] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibva,
|
||||
|
||||
Name: "libva",
|
||||
@@ -126,15 +126,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1752,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newMesa() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newMesa(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "26.1.0"
|
||||
checksum = "zU0fjqevySBaoi_5SLW3e2UffmGeBdxOuHmAHTH68n2hV-sjYoqg30koLqFXuk5y"
|
||||
)
|
||||
return t.NewPackage("mesa", version, newFromGitLab(
|
||||
return s.NewPackage(t, "mesa", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"mesa/mesa",
|
||||
"mesa-"+version,
|
||||
@@ -238,7 +238,7 @@ func (t Toolchain) newMesa() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Mesa] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newMesa,
|
||||
|
||||
Name: "mesa",
|
||||
@@ -261,5 +261,5 @@ func init() {
|
||||
ID: 1970,
|
||||
|
||||
latest: (*Versions).getStable,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -7,12 +7,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newMeson() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newMeson(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.11.1"
|
||||
checksum = "uvILRxdopwc6Dy17UbIeClcQr0qHqyTaqyk1M9OqWKN9PwB9N6UVAiyN8kSSz3r2"
|
||||
)
|
||||
return t.NewPackage("meson", version, newFromGitHub(
|
||||
return s.NewPackage(t, "meson", version, newFromGitHub(
|
||||
"mesonbuild/meson",
|
||||
version,
|
||||
checksum,
|
||||
@@ -52,7 +52,7 @@ python3 ./run_project_tests.py \
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Meson] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newMeson,
|
||||
|
||||
Name: "meson",
|
||||
@@ -67,7 +67,7 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 6472,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// MesonHelper is the [Meson] build system helper.
|
||||
@@ -106,7 +106,7 @@ func (*MesonHelper) createDir() bool { return false }
|
||||
func (*MesonHelper) wantsDir() string { return `"$(mktemp -d)"` }
|
||||
|
||||
// script generates the cure script.
|
||||
func (attr *MesonHelper) script(name string) string {
|
||||
func (attr *MesonHelper) script(s *S, name string) string {
|
||||
if attr == nil {
|
||||
attr = new(MesonHelper)
|
||||
}
|
||||
@@ -117,7 +117,7 @@ func (attr *MesonHelper) script(name string) string {
|
||||
}
|
||||
|
||||
var scriptTest string
|
||||
if !attr.SkipTest && presetOpts&OptSkipCheck == 0 {
|
||||
if !attr.SkipTest && s.opts&OptSkipCheck == 0 {
|
||||
scriptTest = `
|
||||
meson test \
|
||||
--print-errorlogs`
|
||||
|
||||
@@ -2,16 +2,16 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newMksh() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newMksh(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "59c"
|
||||
checksum = "0Zj-k4nXEu3IuJY4lvwD2OrC2t27GdZj8SPy4DoaeuBRH1padWb7oREpYgwY8JNq"
|
||||
)
|
||||
scriptTest := "./test.sh -C regress:no-ctty\n"
|
||||
if presetOpts&OptSkipCheck != 0 {
|
||||
if s.opts&OptSkipCheck != 0 {
|
||||
scriptTest = ""
|
||||
}
|
||||
return t.New("mksh-"+version, 0, t.AppendPresets(nil,
|
||||
return s.New(t, "mksh-"+version, 0, s.AppendPresets(t, nil,
|
||||
Perl,
|
||||
Coreutils,
|
||||
), nil, []string{
|
||||
@@ -36,7 +36,7 @@ ln -vs ../system/bin/sh /work/bin/
|
||||
))), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Mksh] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newMksh,
|
||||
|
||||
Name: "mksh",
|
||||
@@ -44,5 +44,5 @@ func init() {
|
||||
Website: "https://www.mirbsd.org/mksh",
|
||||
|
||||
ID: 5590,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newMuslFts() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newMuslFts(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.2.7"
|
||||
checksum = "N_p_ZApX3eHt7xoDCw1hLf6XdJOw7ZSx7xPvpvAP0knG2zgU0zeN5w8tt5Pg60XJ"
|
||||
)
|
||||
return t.NewPackage("musl-fts", version, newFromGitHub(
|
||||
return s.NewPackage(t, "musl-fts", version, newFromGitHub(
|
||||
"void-linux/musl-fts",
|
||||
"v"+version,
|
||||
checksum,
|
||||
@@ -24,7 +24,7 @@ func (t Toolchain) newMuslFts() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[MuslFts] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newMuslFts,
|
||||
|
||||
Name: "musl-fts",
|
||||
@@ -32,5 +32,5 @@ func init() {
|
||||
Website: "https://github.com/void-linux/musl-fts",
|
||||
|
||||
ID: 26980,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newMuslObstack() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newMuslObstack(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.2.3"
|
||||
checksum = "tVRY_KjIlkkMszcaRlkKdBVQHIXTT_T_TiMxbwErlILXrOBosocg8KklppZhNdCG"
|
||||
)
|
||||
return t.NewPackage("musl-obstack", version, newFromGitHub(
|
||||
return s.NewPackage(t, "musl-obstack", version, newFromGitHub(
|
||||
"void-linux/musl-obstack",
|
||||
"v"+version,
|
||||
checksum,
|
||||
@@ -24,7 +24,7 @@ func (t Toolchain) newMuslObstack() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[MuslObstack] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newMuslObstack,
|
||||
|
||||
Name: "musl-obstack",
|
||||
@@ -32,5 +32,5 @@ func init() {
|
||||
Website: "https://github.com/void-linux/musl-obstack",
|
||||
|
||||
ID: 146206,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newMusl(headers bool) (pkg.Artifact, string) {
|
||||
func (s *S) newMusl(t Toolchain, headers bool) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.2.6"
|
||||
checksum = "WtWb_OV_XxLDAB5NerOL9loLlHVadV00MmGk65PPBU1evaolagoMHfvpZp_vxEzS"
|
||||
@@ -14,7 +14,7 @@ func (t Toolchain) newMusl(headers bool) (pkg.Artifact, string) {
|
||||
SkipCheck: true,
|
||||
Script: `
|
||||
mkdir -p /work/system/bin
|
||||
COMPAT_LINKER_NAME="ld-musl-` + linuxArch() + `.so.1"
|
||||
COMPAT_LINKER_NAME="ld-musl-` + s.linuxArch() + `.so.1"
|
||||
ln -vs ../lib/libc.so /work/system/bin/linker
|
||||
ln -vs ../lib/libc.so /work/system/bin/ldd
|
||||
ln -vs libc.so "/work/system/lib/${COMPAT_LINKER_NAME}"
|
||||
@@ -34,7 +34,7 @@ rmdir -v /work/lib
|
||||
}
|
||||
|
||||
env := []string{
|
||||
"LDFLAGS=" + earlyLDFLAGS(false),
|
||||
"LDFLAGS=" + s.earlyLDFLAGS(false),
|
||||
}
|
||||
if t.isStage0() {
|
||||
env = append(env,
|
||||
@@ -44,7 +44,7 @@ rmdir -v /work/lib
|
||||
)
|
||||
}
|
||||
|
||||
return t.NewPackage(name, version, newTar(
|
||||
return s.NewPackage(t, name, version, newTar(
|
||||
"https://musl.libc.org/releases/musl-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -75,9 +75,9 @@ index 715948f4..c2fece68 100644
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Musl] = Metadata{
|
||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||
return t.newMusl(false)
|
||||
native.MustRegister(&Artifact{
|
||||
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
|
||||
return s.newMusl(t, false)
|
||||
},
|
||||
|
||||
Name: "musl",
|
||||
@@ -85,14 +85,14 @@ func init() {
|
||||
Website: "https://musl.libc.org/",
|
||||
|
||||
ID: 11688,
|
||||
}
|
||||
})
|
||||
|
||||
artifactsM[muslHeaders] = Metadata{
|
||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||
return t.newMusl(true)
|
||||
native.MustRegister(&Artifact{
|
||||
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
|
||||
return s.newMusl(t, true)
|
||||
},
|
||||
|
||||
Name: "musl-headers",
|
||||
Description: "system installation of musl headers",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newNcurses() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newNcurses(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "6.6"
|
||||
checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w"
|
||||
)
|
||||
return t.NewPackage("ncurses", version, newTar(
|
||||
return s.NewPackage(t, "ncurses", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/ncurses/ncurses-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -26,7 +26,7 @@ func (t Toolchain) newNcurses() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Ncurses] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newNcurses,
|
||||
|
||||
Name: "ncurses",
|
||||
@@ -34,5 +34,5 @@ func init() {
|
||||
Website: "https://invisible-island.net/ncurses/",
|
||||
|
||||
ID: 373226,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newLibmnl() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibmnl(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.0.5"
|
||||
checksum = "DN-vbbvQDpxXJm0TJ6xlluILvfrB86avrCTX50XyE9SEFSAZ_o8nuKc5Gu0Am7-u"
|
||||
)
|
||||
return t.NewPackage("libmnl", version, newTar(
|
||||
return s.NewPackage(t, "libmnl", version, newTar(
|
||||
"https://www.netfilter.org/projects/libmnl/files/"+
|
||||
"libmnl-"+version+".tar.bz2",
|
||||
checksum,
|
||||
@@ -39,7 +39,7 @@ index d223ac2..a7878d0 100644
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libmnl] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibmnl,
|
||||
|
||||
Name: "libmnl",
|
||||
@@ -47,15 +47,15 @@ func init() {
|
||||
Website: "https://www.netfilter.org/projects/libmnl/",
|
||||
|
||||
ID: 1663,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibnftnl() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibnftnl(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.3.1"
|
||||
checksum = "91ou66K-I17iX6DB6hiQkhhC_v4DFW5iDGzwjVRNbJNEmKqowLZBlh3FY-ZDO0r9"
|
||||
)
|
||||
return t.NewPackage("libnftnl", version, t.newTagRemote(
|
||||
return s.NewPackage(t, "libnftnl", version, s.newTagRemote(t,
|
||||
"https://git.netfilter.org/libnftnl",
|
||||
"libnftnl-"+version, checksum,
|
||||
), &PackageAttr{
|
||||
@@ -77,7 +77,7 @@ func (t Toolchain) newLibnftnl() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libnftnl] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibnftnl,
|
||||
|
||||
Name: "libnftnl",
|
||||
@@ -89,15 +89,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1681,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newIPTables() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newIPTables(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.8.13"
|
||||
checksum = "TUA-cFIAsiMvtRR-XzQvXzoIhJUOc9J2gQDJCbBRjmgmVfGfPTCf58wL7e-cUKVQ"
|
||||
)
|
||||
return t.NewPackage("iptables", version, t.newTagRemote(
|
||||
return s.NewPackage(t, "iptables", version, s.newTagRemote(t,
|
||||
"https://git.netfilter.org/iptables",
|
||||
"v"+version, checksum,
|
||||
), &PackageAttr{
|
||||
@@ -131,7 +131,7 @@ chmod +w /etc/ && ln -s ../usr/src/iptables/etc/ethertypes /etc/
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[IPTables] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newIPTables,
|
||||
|
||||
Name: "iptables",
|
||||
@@ -143,5 +143,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1394,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newNettle() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newNettle(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "4.0"
|
||||
checksum = "6agC-vHzzoqAlaX3K9tX8yHgrm03HLqPZzVzq8jh_ePbuPMIvpxereu_uRJFmQK7"
|
||||
)
|
||||
return t.NewPackage("nettle", version, newTar(
|
||||
return s.NewPackage(t, "nettle", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -19,7 +19,7 @@ func (t Toolchain) newNettle() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Nettle] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newNettle,
|
||||
|
||||
Name: "nettle",
|
||||
@@ -31,5 +31,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 2073,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newNettle3() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newNettle3(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.10.2"
|
||||
checksum = "07aXlj10X5llf67jIqRQAA1pgLSgb0w_JYggZVPuKNoc-B-_usb5Kr8FrfBe7g1S"
|
||||
)
|
||||
return t.NewPackage("nettle", version, newTar(
|
||||
return s.NewPackage(t, "nettle", version, newTar(
|
||||
"https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -19,7 +19,7 @@ func (t Toolchain) newNettle3() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[nettle3] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newNettle3,
|
||||
|
||||
Name: "nettle3",
|
||||
@@ -29,5 +29,5 @@ func init() {
|
||||
Dependencies: P{
|
||||
GMP,
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,14 +2,16 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newNinja() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newNinja(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.13.2"
|
||||
checksum = "ygKWMa0YV2lWKiFro5hnL-vcKbc_-RACZuPu0Io8qDvgQlZ0dxv7hPNSFkt4214v"
|
||||
)
|
||||
return t.New("ninja-"+version, 0, []pkg.Artifact{
|
||||
t.Load(Python),
|
||||
t.Load(Bash),
|
||||
python, _ := s.Load(t, Python)
|
||||
bash, _ := s.Load(t, Bash)
|
||||
return s.New(t, "ninja-"+version, 0, []pkg.Artifact{
|
||||
python,
|
||||
bash,
|
||||
}, nil, nil, `
|
||||
cd "$(mktemp -d)"
|
||||
python3 /usr/src/ninja/configure.py \
|
||||
@@ -28,7 +30,7 @@ cp ninja /work/system/bin/
|
||||
"googletest-1.16.0.tar.gz",
|
||||
"NjLGvSbgPy_B-y-o1hdanlzEzaYeStFcvFGxpYV3KYlhrWWFRcugYhM3ZMzOA9B_",
|
||||
pkg.TarGzip,
|
||||
)), pkg.Path(AbsUsrSrc.Append("ninja"), true, t.NewPatchedSource(
|
||||
)), pkg.Path(AbsUsrSrc.Append("ninja"), true, s.NewPatchedSource(t,
|
||||
"ninja", version, newFromGitHub(
|
||||
"ninja-build/ninja",
|
||||
"v"+version,
|
||||
@@ -37,7 +39,7 @@ cp ninja /work/system/bin/
|
||||
))), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Ninja] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newNinja,
|
||||
|
||||
Name: "ninja",
|
||||
@@ -45,5 +47,5 @@ func init() {
|
||||
Website: "https://ninja-build.org/",
|
||||
|
||||
ID: 2089,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newNSS() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newNSS(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.123.1"
|
||||
checksum = "g811Z_fc74ssg-s6BeXRG-ipSfJggD6hrxjVJxrOBIz98CE7piv0OLwzIRLMQpwR"
|
||||
@@ -14,7 +14,7 @@ func (t Toolchain) newNSS() (pkg.Artifact, string) {
|
||||
version0 = "4_38_2"
|
||||
checksum0 = "25x2uJeQnOHIiq_zj17b4sYqKgeoU8-IsySUptoPcdHZ52PohFZfGuIisBreWzx0"
|
||||
)
|
||||
return t.NewPackage("nss", version, newFromGitHub(
|
||||
return s.NewPackage(t, "nss", version, newFromGitHub(
|
||||
"nss-dev/nss",
|
||||
"NSS_"+strings.Join(strings.SplitN(version, ".", 3), "_")+"_RTM",
|
||||
checksum,
|
||||
@@ -67,7 +67,7 @@ cp -r \
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[NSS] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newNSS,
|
||||
|
||||
Name: "nss",
|
||||
@@ -79,7 +79,7 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 2503,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func init() {
|
||||
@@ -87,7 +87,7 @@ func init() {
|
||||
version = "0.5.1"
|
||||
checksum = "oxjnuIrPVMPvD6x8VFLqB7EdbfuhouGQdtPuHDpEHGzoyH5nkxqtYN9UthMY9noA"
|
||||
)
|
||||
artifactsM[buildcatrust] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"buildcatrust", 233988,
|
||||
"transform certificate stores between formats",
|
||||
"https://github.com/nix-community/buildcatrust",
|
||||
@@ -102,8 +102,8 @@ rm buildcatrust/tests/test_nonhermetic.py
|
||||
)
|
||||
}
|
||||
|
||||
func (t Toolchain) newNSSCACert() (pkg.Artifact, string) {
|
||||
return t.New("nss-cacert", 0, t.AppendPresets(nil,
|
||||
func (t Toolchain) newNSSCACert(s *S) (pkg.Artifact, string) {
|
||||
return s.New(t, "nss-cacert", 0, s.AppendPresets(t, nil,
|
||||
Bash,
|
||||
|
||||
NSS,
|
||||
@@ -120,11 +120,11 @@ buildcatrust \
|
||||
`), Unversioned
|
||||
}
|
||||
func init() {
|
||||
artifactsM[NSSCACert] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newNSSCACert,
|
||||
|
||||
Name: "nss-cacert",
|
||||
Description: "bundle of X.509 certificates of public Certificate Authorities",
|
||||
Website: "https://curl.se/docs/caextract.html",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newOpenSSL() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newOpenSSL(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.6.2"
|
||||
checksum = "jH004dXTiE01Hp0kyShkWXwrSHEksZi4i_3v47D9H9Uz9LQ1aMwF7mrl2Tb4t_XA"
|
||||
)
|
||||
return t.NewPackage("openssl", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "openssl", version, newFromGitHubRelease(
|
||||
"openssl/openssl",
|
||||
"openssl-"+version,
|
||||
"openssl-"+version+".tar.gz",
|
||||
@@ -40,7 +40,7 @@ func (t Toolchain) newOpenSSL() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[OpenSSL] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newOpenSSL,
|
||||
|
||||
Name: "openssl",
|
||||
@@ -51,5 +51,5 @@ func init() {
|
||||
|
||||
// strange malformed tags treated as pre-releases in Anitya
|
||||
latest: (*Versions).getStable,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newP11Kit() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newP11Kit(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.26.2"
|
||||
checksum = "3ei-6DUVtYzrRVe-SubtNgRlweXd6H2qHmUu-_5qVyIn6gSTvZbGS2u79Y8IFb2N"
|
||||
)
|
||||
return t.NewPackage("p11-kit", version, t.newTagRemote(
|
||||
return s.NewPackage(t, "p11-kit", version, s.newTagRemote(t,
|
||||
"https://github.com/p11-glue/p11-kit.git",
|
||||
version, checksum,
|
||||
), nil, &MesonHelper{
|
||||
@@ -23,7 +23,7 @@ func (t Toolchain) newP11Kit() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[P11Kit] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newP11Kit,
|
||||
|
||||
Name: "p11-kit",
|
||||
@@ -36,5 +36,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 2582,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newPCRE2() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPCRE2(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "10.47"
|
||||
checksum = "IbC24vVayju6nB9EhrBPSDexk22wDecdpyrjgC3nCZXkwTnUjq4CD2q5sopqu6CW"
|
||||
)
|
||||
return t.NewPackage("pcre2", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "pcre2", version, newFromGitHubRelease(
|
||||
"PCRE2Project/pcre2",
|
||||
"pcre2-"+version,
|
||||
"pcre2-"+version+".tar.bz2",
|
||||
@@ -32,7 +32,7 @@ ln -s ../system/bin/toybox /bin/echo
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PCRE2] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPCRE2,
|
||||
|
||||
Name: "pcre2",
|
||||
@@ -40,5 +40,5 @@ func init() {
|
||||
Website: "https://pcre2project.github.io/pcre2/",
|
||||
|
||||
ID: 5832,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -7,12 +7,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newPerl() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerl(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "5.42.2"
|
||||
checksum = "Me_xFfgkRnVyG0sE6a74TktK2OUq9Z1LVJNEu_9RdZG3S2fbjfzNiuk2SJqHAgbm"
|
||||
)
|
||||
return t.NewPackage("perl", version, newTar(
|
||||
return s.NewPackage(t, "perl", version, newTar(
|
||||
"https://www.cpan.org/src/5.0/perl-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -50,7 +50,7 @@ chmod +w /system/bin && rm -f /system/bin/ps # perl does not like toybox ps
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Perl] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerl,
|
||||
|
||||
Name: "perl",
|
||||
@@ -61,20 +61,21 @@ func init() {
|
||||
|
||||
// odd-even versioning
|
||||
latest: (*Versions).getStable,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// newViaPerlModuleBuild installs a perl module via Build.PL.
|
||||
func (t Toolchain) newViaPerlModuleBuild(
|
||||
func (s *S) newViaPerlModuleBuild(
|
||||
t Toolchain,
|
||||
name, version string,
|
||||
source pkg.Artifact,
|
||||
patches []KV,
|
||||
extra ...PArtifact,
|
||||
extra ...ArtifactH,
|
||||
) pkg.Artifact {
|
||||
if name == "" || version == "" {
|
||||
panic("names must be non-empty")
|
||||
}
|
||||
return t.New("perl-"+name, 0, t.AppendPresets(nil,
|
||||
return s.New(t, "perl-"+name, 0, s.AppendPresets(t, nil,
|
||||
slices.Concat(P{Perl}, extra)...,
|
||||
), nil, nil, `
|
||||
cd /usr/src/`+name+`
|
||||
@@ -82,17 +83,17 @@ perl Build.PL --prefix=/system
|
||||
./Build build
|
||||
./Build test
|
||||
./Build install --destdir=/work
|
||||
`, pkg.Path(AbsUsrSrc.Append(name), true, t.NewPatchedSource(
|
||||
`, pkg.Path(AbsUsrSrc.Append(name), true, s.NewPatchedSource(t,
|
||||
"perl-"+name, version, source, false, patches...,
|
||||
)))
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlModuleBuild() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlModuleBuild(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.4234"
|
||||
checksum = "ZKxEFG4hE1rqZt52zBL2LRZBMkYzhjb5-cTBXcsyA52EbPeeYyVxU176yAea8-Di"
|
||||
)
|
||||
return t.newViaPerlModuleBuild("Module-Build", version, newTar(
|
||||
return s.newViaPerlModuleBuild(t, "Module-Build", version, newTar(
|
||||
"https://cpan.metacpan.org/authors/id/L/LE/LEONT/"+
|
||||
"Module-Build-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -100,7 +101,7 @@ func (t Toolchain) newPerlModuleBuild() (pkg.Artifact, string) {
|
||||
), nil), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlModuleBuild] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlModuleBuild,
|
||||
|
||||
Name: "perl-Module::Build",
|
||||
@@ -110,17 +111,18 @@ func init() {
|
||||
Dependencies: P{
|
||||
Perl,
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// newViaPerlMakeMaker installs a perl module via Makefile.PL.
|
||||
func (t Toolchain) newViaPerlMakeMaker(
|
||||
func (s *S) newViaPerlMakeMaker(
|
||||
t Toolchain,
|
||||
name, version string,
|
||||
source pkg.Artifact,
|
||||
patches []KV,
|
||||
extra ...PArtifact,
|
||||
extra ...ArtifactH,
|
||||
) pkg.Artifact {
|
||||
return t.NewPackage("perl-"+name, version, source, &PackageAttr{
|
||||
return s.NewPackage(t, "perl-"+name, version, source, &PackageAttr{
|
||||
// uses source tree as scratch space
|
||||
Writable: true,
|
||||
Chmod: true,
|
||||
@@ -141,12 +143,12 @@ func (t Toolchain) newViaPerlMakeMaker(
|
||||
})...)
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlLocaleGettext() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlLocaleGettext(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.07"
|
||||
checksum = "cFq4BKFD1MWSoa7lsrPjpdo9kzPqd0jlRcBFUyL1L1isw8m3D_Sge_ff0MAu_9J3"
|
||||
)
|
||||
return t.newViaPerlMakeMaker("Locale::gettext", version, newFromCPAN(
|
||||
return s.newViaPerlMakeMaker(t, "Locale::gettext", version, newFromCPAN(
|
||||
"PVANDRY",
|
||||
"Locale-gettext",
|
||||
version,
|
||||
@@ -154,7 +156,7 @@ func (t Toolchain) newPerlLocaleGettext() (pkg.Artifact, string) {
|
||||
), nil), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlLocaleGettext] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlLocaleGettext,
|
||||
|
||||
Name: "perl-Locale::gettext",
|
||||
@@ -162,15 +164,15 @@ func init() {
|
||||
Website: "https://metacpan.org/release/Locale-gettext",
|
||||
|
||||
ID: 7523,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlPodParser() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlPodParser(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.67"
|
||||
checksum = "RdURu9mOfExk_loCp6abxlcQV3FycSNbTqhRS9i6JUqnYfGGEgercK30g0gjYyqe"
|
||||
)
|
||||
return t.newViaPerlMakeMaker("Pod::Parser", version, newFromCPAN(
|
||||
return s.newViaPerlMakeMaker(t, "Pod::Parser", version, newFromCPAN(
|
||||
"MAREKR",
|
||||
"Pod-Parser",
|
||||
version,
|
||||
@@ -178,7 +180,7 @@ func (t Toolchain) newPerlPodParser() (pkg.Artifact, string) {
|
||||
), nil), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlPodParser] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlPodParser,
|
||||
|
||||
Name: "perl-Pod::Parser",
|
||||
@@ -186,15 +188,15 @@ func init() {
|
||||
Website: "https://metacpan.org/release/Pod-Parser",
|
||||
|
||||
ID: 3244,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlSGMLS() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlSGMLS(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.1"
|
||||
checksum = "aZijn4MUqD-wfyZgdcCruCwl4SgDdu25cNmJ4_UvdAk9a7uz4gzMQdoeB6DQ6QOy"
|
||||
)
|
||||
return t.newViaPerlMakeMaker("SGMLS", version, newFromCPAN(
|
||||
return s.newViaPerlMakeMaker(t, "SGMLS", version, newFromCPAN(
|
||||
"RAAB",
|
||||
"SGMLSpm",
|
||||
version,
|
||||
@@ -202,7 +204,7 @@ func (t Toolchain) newPerlSGMLS() (pkg.Artifact, string) {
|
||||
), nil), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlSGMLS] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlSGMLS,
|
||||
|
||||
Name: "perl-SGMLS",
|
||||
@@ -224,15 +226,15 @@ func init() {
|
||||
}
|
||||
return v.Latest
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlTermReadKey() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlTermReadKey(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.38"
|
||||
checksum = "qerL8Xo7kD0f42PZoiEbmE8Roc_S9pOa27LXelY4DN_0UNy_u5wLrGHI8utNlaiI"
|
||||
)
|
||||
return t.newViaPerlMakeMaker("Term::ReadKey", version, newFromCPAN(
|
||||
return s.newViaPerlMakeMaker(t, "Term::ReadKey", version, newFromCPAN(
|
||||
"JSTOWE",
|
||||
"TermReadKey",
|
||||
version,
|
||||
@@ -240,7 +242,7 @@ func (t Toolchain) newPerlTermReadKey() (pkg.Artifact, string) {
|
||||
), nil), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlTermReadKey] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlTermReadKey,
|
||||
|
||||
Name: "perl-Term::ReadKey",
|
||||
@@ -248,15 +250,15 @@ func init() {
|
||||
Website: "https://metacpan.org/release/TermReadKey",
|
||||
|
||||
ID: 3372,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlTextCharWidth() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlTextCharWidth(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.04"
|
||||
checksum = "G2p5RHU4_HiZ23ZusBA_enTlVMxz0J4esUx4CGcOPhY6xYTbp-aXWRN6lYZpzBw2"
|
||||
)
|
||||
return t.newViaPerlMakeMaker("Text::CharWidth", version, newFromCPAN(
|
||||
return s.newViaPerlMakeMaker(t, "Text::CharWidth", version, newFromCPAN(
|
||||
"KUBOTA",
|
||||
"Text-CharWidth",
|
||||
version,
|
||||
@@ -264,7 +266,7 @@ func (t Toolchain) newPerlTextCharWidth() (pkg.Artifact, string) {
|
||||
), nil), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlTextCharWidth] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlTextCharWidth,
|
||||
|
||||
Name: "perl-Text::CharWidth",
|
||||
@@ -272,15 +274,15 @@ func init() {
|
||||
Website: "https://metacpan.org/release/Text-CharWidth",
|
||||
|
||||
ID: 14380,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlTextWrapI18N() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlTextWrapI18N(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.06"
|
||||
checksum = "Vmo89qLgxUqyQ6QmWJVqu60aQAUjrNKRjFQSXGnvClxofzRjiCa6idzPgJ4VkixM"
|
||||
)
|
||||
return t.newViaPerlMakeMaker("Text::WrapI18N", version, newFromCPAN(
|
||||
return s.newViaPerlMakeMaker(t, "Text::WrapI18N", version, newFromCPAN(
|
||||
"KUBOTA",
|
||||
"Text-WrapI18N",
|
||||
version,
|
||||
@@ -290,7 +292,7 @@ func (t Toolchain) newPerlTextWrapI18N() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlTextWrapI18N] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlTextWrapI18N,
|
||||
|
||||
Name: "perl-Text::WrapI18N",
|
||||
@@ -302,15 +304,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 14385,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlMIMECharset() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlMIMECharset(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.013.1"
|
||||
checksum = "Ou_ukcrOa1cgtE3mptinb-os3bdL1SXzbRDFZQF3prrJj-drc3rp_huay7iDLJol"
|
||||
)
|
||||
return t.newViaPerlMakeMaker("MIME::Charset", version, newFromCPAN(
|
||||
return s.newViaPerlMakeMaker(t, "MIME::Charset", version, newFromCPAN(
|
||||
"NEZUMI",
|
||||
"MIME-Charset",
|
||||
version,
|
||||
@@ -318,7 +320,7 @@ func (t Toolchain) newPerlMIMECharset() (pkg.Artifact, string) {
|
||||
), nil), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlMIMECharset] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlMIMECharset,
|
||||
|
||||
Name: "perl-MIME::Charset",
|
||||
@@ -326,15 +328,15 @@ func init() {
|
||||
Website: "https://metacpan.org/release/MIME-Charset",
|
||||
|
||||
ID: 3070,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlUnicodeLineBreak() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlUnicodeLineBreak(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2019.001"
|
||||
checksum = "ZHVkh7EDgAUHnTpvXsnPAuWpgNoBImtY_9_8TIbo2co_WgUwEb0MtXPhI8pAZ5OH"
|
||||
)
|
||||
return t.newViaPerlMakeMaker("Unicode::LineBreak", version, newFromCPAN(
|
||||
return s.newViaPerlMakeMaker(t, "Unicode::LineBreak", version, newFromCPAN(
|
||||
"NEZUMI",
|
||||
"Unicode-LineBreak",
|
||||
version,
|
||||
@@ -344,7 +346,7 @@ func (t Toolchain) newPerlUnicodeLineBreak() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlUnicodeLineBreak] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlUnicodeLineBreak,
|
||||
|
||||
Name: "perl-Unicode::LineBreak",
|
||||
@@ -356,15 +358,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 6033,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlYAMLTiny() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlYAMLTiny(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.76"
|
||||
checksum = "V1MV4KPym1LxSw8CRXqPR3K-l1hGHbT5Ob4t-9xju6R9X_CWyw6hI8wsMaNdHdBY"
|
||||
)
|
||||
return t.newViaPerlMakeMaker("YAML::Tiny", version, newFromCPAN(
|
||||
return s.newViaPerlMakeMaker(t, "YAML::Tiny", version, newFromCPAN(
|
||||
"ETHER",
|
||||
"YAML-Tiny",
|
||||
version,
|
||||
@@ -372,7 +374,7 @@ func (t Toolchain) newPerlYAMLTiny() (pkg.Artifact, string) {
|
||||
), nil), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlYAMLTiny] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlYAMLTiny,
|
||||
|
||||
Name: "perl-YAML::Tiny",
|
||||
@@ -380,15 +382,15 @@ func init() {
|
||||
Website: "https://metacpan.org/release/YAML-Tiny",
|
||||
|
||||
ID: 3549,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newPerlTestCmd() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPerlTestCmd(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.09"
|
||||
checksum = "gpGUwyC9IozDiYSgW_kXARNfXsTPFa6cTowJmmCBbPqcs2-pONZca_SB06FGy-7H"
|
||||
)
|
||||
return t.newViaPerlMakeMaker("Test::Cmd", version, newFromCPAN(
|
||||
return s.newViaPerlMakeMaker(t, "Test::Cmd", version, newFromCPAN(
|
||||
"NEILB",
|
||||
"Test-Cmd",
|
||||
version,
|
||||
@@ -396,7 +398,7 @@ func (t Toolchain) newPerlTestCmd() (pkg.Artifact, string) {
|
||||
), nil), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PerlTestCmd] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPerlTestCmd,
|
||||
|
||||
Name: "perl-Test::Cmd",
|
||||
@@ -404,5 +406,5 @@ func init() {
|
||||
Website: "https://metacpan.org/release/Test-Cmd",
|
||||
|
||||
ID: 6014,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newPixman() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPixman(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.46.4"
|
||||
checksum = "iECDxLG9SxUrvGHqeDoaBa-b3uqdT5DC4zudjtrwb8Wodq82pyacmFNEAo4SDsiE"
|
||||
)
|
||||
return t.NewPackage("pixman", version, newFromGitLab(
|
||||
return s.NewPackage(t, "pixman", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"pixman/pixman",
|
||||
"pixman-"+version,
|
||||
@@ -19,7 +19,7 @@ func (t Toolchain) newPixman() (pkg.Artifact, string) {
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Pixman] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPixman,
|
||||
|
||||
Name: "pixman",
|
||||
@@ -27,5 +27,5 @@ func init() {
|
||||
Website: "https://pixman.org/",
|
||||
|
||||
ID: 3648,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newPkgConfig() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPkgConfig(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.29.2"
|
||||
checksum = "6UsGqEMA8EER_5b9N0b32UCqiRy39B6_RnPfvuslWhtFV1qYD4DfS10crGZN_TP2"
|
||||
)
|
||||
return t.NewPackage("pkg-config", version, newFromGitLab(
|
||||
return s.NewPackage(t, "pkg-config", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"pkg-config/pkg-config",
|
||||
"pkg-config-"+version,
|
||||
@@ -24,7 +24,7 @@ func (t Toolchain) newPkgConfig() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[PkgConfig] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPkgConfig,
|
||||
|
||||
Name: "pkg-config",
|
||||
@@ -32,5 +32,5 @@ func init() {
|
||||
Website: "https://pkgconfig.freedesktop.org/",
|
||||
|
||||
ID: 3649,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newProcps() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newProcps(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "4.0.6"
|
||||
checksum = "pl_fZLvDlv6iZTkm8l_tHFpzTDVFGCiSJEs3eu0zAX6u36AV36P_En8K7JPScRWM"
|
||||
)
|
||||
return t.NewPackage("procps", version, newFromGitLab(
|
||||
return s.NewPackage(t, "procps", version, newFromGitLab(
|
||||
"gitlab.com",
|
||||
"procps-ng/procps",
|
||||
"v"+version,
|
||||
@@ -27,7 +27,7 @@ func (t Toolchain) newProcps() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Procps] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newProcps,
|
||||
|
||||
Name: "procps",
|
||||
@@ -35,5 +35,5 @@ func init() {
|
||||
Website: "https://gitlab.com/procps-ng/procps",
|
||||
|
||||
ID: 3708,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -7,12 +7,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newPython() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newPython(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.14.5"
|
||||
checksum = "zYIpDlk2ftZ-UVGCQS1rthle2OHoyXV653ztWiopKV1NhmIJf1K2hHbkwM4DozQ9"
|
||||
)
|
||||
return t.NewPackage("python", version, newTar(
|
||||
return s.NewPackage(t, "python", version, newTar(
|
||||
"https://www.python.org/ftp/python/"+version+
|
||||
"/Python-"+version+".tgz",
|
||||
checksum,
|
||||
@@ -73,7 +73,7 @@ index 19aea290b58..51603ba9510 100644
|
||||
|
||||
// _ctypes appears to infer something from the linker name
|
||||
"LDFLAGS=-Wl,--dynamic-linker=/system/lib/" +
|
||||
"ld-musl-" + linuxArch() + ".so.1",
|
||||
"ld-musl-" + s.linuxArch() + ".so.1",
|
||||
},
|
||||
}, &MakeHelper{
|
||||
Check: []string{"test"},
|
||||
@@ -88,7 +88,7 @@ index 19aea290b58..51603ba9510 100644
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Python] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newPython,
|
||||
|
||||
Name: "python",
|
||||
@@ -103,7 +103,7 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 13254,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// PipHelper is the [Python] pip packaging helper.
|
||||
@@ -150,7 +150,7 @@ func (*PipHelper) createDir() bool { return false }
|
||||
func (*PipHelper) wantsDir() string { return `"$(mktemp -d)"` }
|
||||
|
||||
// script generates the pip3 install command.
|
||||
func (attr *PipHelper) script(name string) string {
|
||||
func (attr *PipHelper) script(_ *S, name string) string {
|
||||
if attr == nil {
|
||||
attr = new(PipHelper)
|
||||
}
|
||||
@@ -193,16 +193,16 @@ pip3 install \
|
||||
` + script
|
||||
}
|
||||
|
||||
// newPythonPackage creates [Metadata] for a [Python] package.
|
||||
func newPythonPackage(
|
||||
// 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 ...PArtifact,
|
||||
) Metadata {
|
||||
build P, extra ...ArtifactH,
|
||||
) {
|
||||
name = "python-" + name
|
||||
return Metadata{
|
||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||
return t.NewPackage(name, version, source, attrP, attr, slices.Concat(
|
||||
s.MustRegister(&Artifact{
|
||||
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
|
||||
return s.NewPackage(t, name, version, source, attrP, attr, slices.Concat(
|
||||
P{Python},
|
||||
extra,
|
||||
build,
|
||||
@@ -216,7 +216,7 @@ func newPythonPackage(
|
||||
Dependencies: slices.Concat(P{Python}, extra),
|
||||
|
||||
ID: id,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func init() {
|
||||
@@ -224,7 +224,7 @@ func init() {
|
||||
version = "0.47.0"
|
||||
checksum = "HZ-MvkUP8mbbx2YmsRNswj_bbOCIiXckuHqL5Qbvb5NxN5DYfWnqwkGNyS7OrId0"
|
||||
)
|
||||
artifactsM[PythonWheel] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"wheel", 11428,
|
||||
"the official binary distribution format for Python",
|
||||
"https://peps.python.org/pep-0427/",
|
||||
@@ -242,7 +242,7 @@ func init() {
|
||||
version = "82.0.1"
|
||||
checksum = "nznP46Tj539yqswtOrIM4nQgwLA1h-ApKX7z7ghazROCpyF5swtQGwsZoI93wkhc"
|
||||
)
|
||||
artifactsM[PythonSetuptools] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"setuptools", 4021,
|
||||
"the autotools of the Python ecosystem",
|
||||
"https://pypi.org/project/setuptools/",
|
||||
@@ -262,7 +262,7 @@ func init() {
|
||||
version = "1.1.1"
|
||||
checksum = "rXZixTsZcRcIoUC1LvWrjySsiXSv5uhW6ng2P-yXZrbdj7FrSrDeJLCfC2b-ladV"
|
||||
)
|
||||
artifactsM[PythonVCSVersioning] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"vcs-versioning", 389421,
|
||||
"core VCS versioning functionality extracted as a standalone library",
|
||||
"https://setuptools-scm.readthedocs.io/en/latest/",
|
||||
@@ -289,7 +289,7 @@ func init() {
|
||||
version = "10.0.5"
|
||||
checksum = "vTN_TPd-b4Wbsw5WmAcsWjrs-FNXXznOeVTDnb54NtXve9Oy-eb2HPy-RG3FzNqp"
|
||||
)
|
||||
artifactsM[PythonSetuptoolsSCM] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"setuptools-scm", 7874,
|
||||
"extracts Python package versions from Git or Mercurial metadata",
|
||||
"https://setuptools-scm.readthedocs.io/en/latest/",
|
||||
@@ -316,7 +316,7 @@ func init() {
|
||||
version = "3.12.0"
|
||||
checksum = "VcTsiGiDU1aPLbjSPe38f9OjJDCLcxFz9loObJqUI1ZxDHXAaQMxBpNyLz_G1Rff"
|
||||
)
|
||||
artifactsM[PythonFlitCore] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"flit-core", 44841,
|
||||
"a PEP 517 build backend for packages using Flit",
|
||||
"https://flit.pypa.io/",
|
||||
@@ -337,7 +337,7 @@ func init() {
|
||||
version = "26.2"
|
||||
checksum = "rdpGa2EkPFbj1mFtLKLnSwIX9gPfELcuneiICjRVDNw6By49szTFVoW8gtMMZ6ZS"
|
||||
)
|
||||
artifactsM[PythonPackaging] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"packaging", 60461,
|
||||
"reusable core utilities for various Python Packaging interoperability specifications",
|
||||
"https://packaging.pypa.io/",
|
||||
@@ -352,10 +352,10 @@ func init() {
|
||||
}
|
||||
|
||||
func init() {
|
||||
artifactsM[LIT] = Metadata{
|
||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||
version := t.Version(LLVM)
|
||||
return t.NewPackage("lit", version, t.Load(llvmSource), nil, &PipHelper{
|
||||
native.MustRegister(&Artifact{
|
||||
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
|
||||
source, version := s.Load(t, llvmSource)
|
||||
return s.NewPackage(t, "lit", version, source, nil, &PipHelper{
|
||||
Append: []string{"llvm", "utils", "lit"},
|
||||
// already checked during llvm
|
||||
SkipCheck: true,
|
||||
@@ -371,7 +371,7 @@ func init() {
|
||||
Dependencies: P{
|
||||
Python,
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func init() {
|
||||
@@ -379,7 +379,7 @@ func init() {
|
||||
version = "1.1.1"
|
||||
checksum = "1fVwoal6FoKXczoG3qRUi87TxSWESSGcgvnbEZDYuaOgsO25o36iF3SbAhwkr4Va"
|
||||
)
|
||||
artifactsM[PythonPathspec] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"pathspec", 23424,
|
||||
"utility library for gitignore style pattern matching of file paths",
|
||||
"https://github.com/cpburnz/python-pathspec",
|
||||
@@ -398,7 +398,7 @@ func init() {
|
||||
version = "2026.5.7.17"
|
||||
checksum = "1Fcps0gK9P4ofwGL8MISN9k1Q40-quxX7NDpIna50TmziBNrZy-0Vz0I9yIeHCoP"
|
||||
)
|
||||
artifactsM[PythonTroveClassifiers] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"trove-classifiers", 88298,
|
||||
"canonical source for classifiers on PyPI",
|
||||
"https://pypi.org/p/trove-classifiers/",
|
||||
@@ -417,7 +417,7 @@ func init() {
|
||||
version = "1.6.0"
|
||||
checksum = "GiUgDkKjF8Xn1cmq6iMhTGXzcPIYeaJrvQpHBSAJapNVx4UyuiTXqd5eVlxSClJu"
|
||||
)
|
||||
artifactsM[PythonPluggy] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"pluggy", 7500,
|
||||
"the core framework used by the pytest, tox, and devpi projects",
|
||||
"https://pluggy.readthedocs.io/en/latest/",
|
||||
@@ -440,7 +440,7 @@ func init() {
|
||||
version = "1.16.5"
|
||||
checksum = "V2eREtqZLZeV85yb4O-bfAJCUluHcQP76Qfs0QH5s7RF_Oc8xIP8jD0jl85qFyWk"
|
||||
)
|
||||
artifactsM[PythonHatchling] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"hatchling", 16137,
|
||||
"the extensible, standards compliant build backend used by Hatch",
|
||||
"https://hatch.pypa.io/latest/",
|
||||
@@ -465,7 +465,7 @@ func init() {
|
||||
version = "2.20.0"
|
||||
checksum = "L-2P6vn7c_CNZYliE5CJAWLxO1ziDQVVkf8bnZbHj8aSCQ43oWv11wC9KzU9MeCa"
|
||||
)
|
||||
artifactsM[PythonPygments] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"pygments", 3986,
|
||||
"a syntax highlighting package written in Python",
|
||||
"https://pygments.org/",
|
||||
@@ -484,7 +484,7 @@ func init() {
|
||||
version = "2.3.0"
|
||||
checksum = "mH7VBZaXcYatBPE3RQQZvSzz_Ay8IPPek60NpPHZulPq4ReAFUUsA4EPWfiyMknZ"
|
||||
)
|
||||
artifactsM[PythonIniConfig] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"iniconfig", 114778,
|
||||
"a small and simple INI-file parser module",
|
||||
"https://github.com/pytest-dev/iniconfig",
|
||||
@@ -507,7 +507,7 @@ func init() {
|
||||
version = "9.0.3"
|
||||
checksum = "qfLL_znWhbJCDbNJvrx9H3-orJ86z4ifhaW0bIn21jl2sDP-FVoX_1yieOypArQe"
|
||||
)
|
||||
artifactsM[PythonPyTest] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"pytest", 3765,
|
||||
"the pytest framework",
|
||||
"https://pytest.org",
|
||||
@@ -534,7 +534,7 @@ func init() {
|
||||
version = "3.0.3"
|
||||
checksum = "txRGYdWE3his1lHHRI-lZADw0-ILvUg2l5OGdFHtFXIb_QowGxwdxHCUSJIgmjQs"
|
||||
)
|
||||
artifactsM[PythonMarkupSafe] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"markupsafe", 3918,
|
||||
"implements a text object that escapes characters so it is safe to use in HTML and XML",
|
||||
"https://markupsafe.palletsprojects.com/",
|
||||
@@ -553,7 +553,7 @@ func init() {
|
||||
version = "1.3.12"
|
||||
checksum = "OZbBsQe2MzRuAo5Mr4qRwWHGqU1EEZeBuSprDDIceAtMLIUJtO7SbERlxHIxNhLk"
|
||||
)
|
||||
artifactsM[PythonMako] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"mako", 3915,
|
||||
"a template library written in Python",
|
||||
"https://www.makotemplates.org/",
|
||||
@@ -571,7 +571,7 @@ func init() {
|
||||
version = "6.0.3"
|
||||
checksum = "7wDv0RW9chBdu9l5Q4Hun5F2HHdo105ZSIixwdFPKbEYbftW9YxmsegfL-zafnbJ"
|
||||
)
|
||||
artifactsM[PythonPyYAML] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"pyyaml", 4123,
|
||||
"a YAML parser and emitter for Python",
|
||||
"https://pyyaml.org/",
|
||||
@@ -590,7 +590,7 @@ func init() {
|
||||
version = "3.00"
|
||||
checksum = "4qfCMFKp0fLsRsloOAF780tXX_Ce_68RwinCmjNGObAX32WpF_iBafIKW1S1bYlA"
|
||||
)
|
||||
artifactsM[PythonPycparser] = newPythonPackage(
|
||||
native.newPythonPackage(
|
||||
"pycparser", 8175,
|
||||
"complete C99 parser in pure Python",
|
||||
"https://github.com/eliben/pycparser",
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newQEMU() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newQEMU(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "11.0.0"
|
||||
checksum = "C64gdi_Tkdg2fTwD9ERxtWGcf8vNn_6UvczW0c-x0KW1NZtd3NbEOIrlDhYGn15n"
|
||||
)
|
||||
return t.NewPackage("qemu", version, newTar(
|
||||
return s.NewPackage(t, "qemu", version, newTar(
|
||||
"https://download.qemu.org/qemu-"+version+".tar.bz2",
|
||||
checksum,
|
||||
pkg.TarBzip2,
|
||||
@@ -94,7 +94,7 @@ EOF
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[QEMU] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newQEMU,
|
||||
|
||||
Name: "qemu",
|
||||
@@ -107,5 +107,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 13607,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newRdfind() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newRdfind(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.8.0"
|
||||
checksum = "PoaeJ2WIG6yyfe5VAYZlOdAQiR3mb3WhAUMj2ziTCx_IIEal4640HMJUb4SzU9U3"
|
||||
)
|
||||
return t.NewPackage("rdfind", version, newTar(
|
||||
return s.NewPackage(t, "rdfind", version, newTar(
|
||||
"https://rdfind.pauldreik.se/rdfind-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -21,7 +21,7 @@ ln -s ../system/bin/toybox /bin/echo
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Rdfind] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newRdfind,
|
||||
|
||||
Name: "rdfind",
|
||||
@@ -33,5 +33,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 231641,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -32,10 +32,14 @@ func WriteReport(msg message.Msg, w io.Writer, c *pkg.Cache) error {
|
||||
zero [wordSize]byte
|
||||
buf [len(pkg.ID{}) + wordSize]byte
|
||||
)
|
||||
for i := range PresetEnd {
|
||||
a := Std.Load(PArtifact(i))
|
||||
for _, p := range native.Collect() {
|
||||
a, _ := native.Load(Std, p)
|
||||
meta := native.Get(p)
|
||||
if meta == nil {
|
||||
return errors.New("artifact " + p.String() + " in inconsistent state")
|
||||
}
|
||||
if _, ok := a.(pkg.FileArtifact); ok {
|
||||
msg.Verbosef("skipping file artifact %s", artifactsM[i].Name)
|
||||
msg.Verbosef("skipping file artifact %s", meta.Name)
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -44,7 +48,7 @@ func WriteReport(msg message.Msg, w io.Writer, c *pkg.Cache) error {
|
||||
var f *os.File
|
||||
if r, err := c.OpenStatus(a); err != nil {
|
||||
if errors.Is(err, os.ErrNotExist) {
|
||||
msg.Verbosef("artifact %s unavailable", artifactsM[i].Name)
|
||||
msg.Verbosef("artifact %s unavailable", meta.Name)
|
||||
continue
|
||||
}
|
||||
return err
|
||||
@@ -52,7 +56,7 @@ func WriteReport(msg message.Msg, w io.Writer, c *pkg.Cache) error {
|
||||
f = r.(*os.File)
|
||||
}
|
||||
|
||||
msg.Verbosef("writing artifact %s...", artifactsM[i].Name)
|
||||
msg.Verbosef("writing artifact %s...", meta.Name)
|
||||
|
||||
var sz int64
|
||||
if fi, err := f.Stat(); err != nil {
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
package rosa
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"path"
|
||||
"slices"
|
||||
"strconv"
|
||||
@@ -54,8 +53,8 @@ var (
|
||||
)
|
||||
|
||||
// linuxArch returns the architecture name used by linux corresponding to arch.
|
||||
func linuxArch() string {
|
||||
switch arch {
|
||||
func (s *S) linuxArch() string {
|
||||
switch s.arch {
|
||||
case "amd64":
|
||||
return "x86_64"
|
||||
case "arm64":
|
||||
@@ -64,23 +63,23 @@ func linuxArch() string {
|
||||
return "riscv64"
|
||||
|
||||
default:
|
||||
panic("unsupported target " + arch)
|
||||
panic("unsupported target " + s.arch)
|
||||
}
|
||||
}
|
||||
|
||||
// triplet returns the Rosa OS host triple corresponding to arch.
|
||||
func triplet() string {
|
||||
return linuxArch() + "-rosa-linux-musl"
|
||||
// triple returns the Rosa OS host triple corresponding to arch.
|
||||
func (s *S) triple() string {
|
||||
return s.linuxArch() + "-rosa-linux-musl"
|
||||
}
|
||||
|
||||
// perArch is a value that differs per architecture.
|
||||
type perArch[T any] map[string]T
|
||||
|
||||
// unwrap returns the value for the current architecture.
|
||||
func (p perArch[T]) unwrap() T {
|
||||
v, ok := p[arch]
|
||||
func (p perArch[T]) unwrap(s *S) T {
|
||||
v, ok := p[s.arch]
|
||||
if !ok {
|
||||
panic("unsupported target " + arch)
|
||||
panic("unsupported target " + s.arch)
|
||||
}
|
||||
return v
|
||||
}
|
||||
@@ -91,18 +90,18 @@ const (
|
||||
)
|
||||
|
||||
// earlyLDFLAGS returns LDFLAGS corresponding to triplet.
|
||||
func earlyLDFLAGS(static bool) string {
|
||||
s := "-fuse-ld=lld " +
|
||||
func (s *S) earlyLDFLAGS(static bool) string {
|
||||
p := "-fuse-ld=lld " +
|
||||
"-L/system/lib -Wl,-rpath=/system/lib " +
|
||||
"-L/system/lib/" + triplet() + " " +
|
||||
"-Wl,-rpath=/system/lib/" + triplet() + " " +
|
||||
"-L/system/lib/" + s.triple() + " " +
|
||||
"-Wl,-rpath=/system/lib/" + s.triple() + " " +
|
||||
"-rtlib=compiler-rt " +
|
||||
"-unwindlib=libunwind " +
|
||||
"-Wl,--as-needed"
|
||||
if !static {
|
||||
s += " -Wl,--dynamic-linker=/system/bin/linker"
|
||||
p += " -Wl,--dynamic-linker=/system/bin/linker"
|
||||
}
|
||||
return s
|
||||
return p
|
||||
}
|
||||
|
||||
// Toolchain denotes the infrastructure to compile a [pkg.Artifact] on.
|
||||
@@ -224,27 +223,9 @@ const (
|
||||
THostNet
|
||||
)
|
||||
|
||||
var (
|
||||
// gentooStage3 is the url of a Gentoo stage3 tarball.
|
||||
gentooStage3 string
|
||||
// gentooStage3Checksum is the expected checksum of gentooStage3.
|
||||
gentooStage3Checksum pkg.Checksum
|
||||
)
|
||||
|
||||
// SetGentooStage3 sets the Gentoo stage3 tarball url and checksum. It panics
|
||||
// if given zero values or if these values have already been set.
|
||||
func SetGentooStage3(url string, checksum pkg.Checksum) {
|
||||
if gentooStage3 != "" {
|
||||
panic(errors.New("attempting to set Gentoo stage3 url twice"))
|
||||
}
|
||||
if url == "" {
|
||||
panic(errors.New("attempting to set Gentoo stage3 url to the zero value"))
|
||||
}
|
||||
gentooStage3, gentooStage3Checksum = url, checksum
|
||||
}
|
||||
|
||||
// New returns a [pkg.Artifact] compiled on this toolchain.
|
||||
func (t Toolchain) New(
|
||||
// New returns a [pkg.Artifact] based on a [Toolchain] via s.
|
||||
func (s *S) New(
|
||||
t Toolchain,
|
||||
name string,
|
||||
flag int,
|
||||
extra []pkg.Artifact,
|
||||
@@ -260,7 +241,7 @@ func (t Toolchain) New(
|
||||
switch t {
|
||||
case _toolchainBusybox:
|
||||
name += "-early"
|
||||
support = slices.Concat([]pkg.Artifact{newBusyboxBin()}, extra)
|
||||
support = slices.Concat([]pkg.Artifact{s.newBusyboxBin()}, extra)
|
||||
env = fixupEnviron(env, nil, "/system/bin")
|
||||
|
||||
case toolchainGentoo, toolchainStage0:
|
||||
@@ -268,9 +249,10 @@ func (t Toolchain) New(
|
||||
support = append(support, extra...)
|
||||
support = append(support, cureEtc{})
|
||||
if t == toolchainStage0 {
|
||||
support = append(support, t.Load(stage0Dist))
|
||||
a, _ := s.Load(t, stage0Dist)
|
||||
support = append(support, a)
|
||||
} else {
|
||||
support = append(support, _toolchainBusybox.New("gentoo", 0, nil, nil, nil, `
|
||||
support = append(support, s.New(_toolchainBusybox, "gentoo", 0, nil, nil, nil, `
|
||||
tar -C /work -xf /usr/src/stage3.tar.xz
|
||||
rm -rf /work/dev/ /work/proc/
|
||||
ln -vs ../usr/bin /work/bin
|
||||
@@ -281,15 +263,15 @@ mkdir -vp /work/system/bin
|
||||
.)
|
||||
`, pkg.Path(AbsUsrSrc.Append("stage3.tar.xz"), false,
|
||||
pkg.NewHTTPGet(
|
||||
nil, gentooStage3,
|
||||
gentooStage3Checksum,
|
||||
nil, s.gentooStage3,
|
||||
s.gentooStage3Checksum,
|
||||
),
|
||||
)))
|
||||
}
|
||||
env = fixupEnviron(env, []string{
|
||||
EnvTriplet + "=" + triplet(),
|
||||
EnvTriplet + "=" + s.triple(),
|
||||
lcMessages,
|
||||
"LDFLAGS=" + earlyLDFLAGS(true),
|
||||
"LDFLAGS=" + s.earlyLDFLAGS(true),
|
||||
}, "/system/bin",
|
||||
"/usr/bin",
|
||||
)
|
||||
@@ -310,7 +292,7 @@ mkdir -vp /work/system/bin
|
||||
base = Musl
|
||||
}
|
||||
|
||||
support = slices.Concat(extra, (t-1).AppendPresets([]pkg.Artifact{
|
||||
support = slices.Concat(extra, s.AppendPresets(t-1, []pkg.Artifact{
|
||||
cureEtc{newIANAEtc()},
|
||||
},
|
||||
base,
|
||||
@@ -318,7 +300,7 @@ mkdir -vp /work/system/bin
|
||||
toybox,
|
||||
))
|
||||
env = fixupEnviron(env, []string{
|
||||
EnvTriplet + "=" + triplet(),
|
||||
EnvTriplet + "=" + s.triple(),
|
||||
lcMessages,
|
||||
}, "/system/bin", "/bin")
|
||||
|
||||
@@ -327,7 +309,7 @@ mkdir -vp /work/system/bin
|
||||
}
|
||||
|
||||
return pkg.NewExec(
|
||||
name, arch, knownChecksum, pkg.ExecTimeoutMax,
|
||||
name, s.arch, knownChecksum, pkg.ExecTimeoutMax,
|
||||
flag&THostNet != 0,
|
||||
flag&TExclusive != 0,
|
||||
fhs.AbsRoot, env,
|
||||
@@ -346,7 +328,8 @@ mkdir -vp /work/system/bin
|
||||
|
||||
// NewPatchedSource returns [pkg.Artifact] of source with patches applied. If
|
||||
// passthrough is true, source is returned as is for zero length patches.
|
||||
func (t Toolchain) NewPatchedSource(
|
||||
func (s *S) NewPatchedSource(
|
||||
t Toolchain,
|
||||
name, version string,
|
||||
source pkg.Artifact,
|
||||
passthrough bool,
|
||||
@@ -379,7 +362,7 @@ cat /usr/src/` + name + `-patches/* | \
|
||||
`
|
||||
aname += "-patched"
|
||||
}
|
||||
return t.New(aname, 0, t.AppendPresets(nil,
|
||||
return s.New(t, aname, 0, s.AppendPresets(t, nil,
|
||||
Patch,
|
||||
), nil, nil, script, paths...)
|
||||
}
|
||||
@@ -407,7 +390,7 @@ type Helper interface {
|
||||
// also empty. The special value helperInPlace omits the cd statement.
|
||||
wantsDir() string
|
||||
// script returns the helper-specific segment of cure script.
|
||||
script(name string) string
|
||||
script(s *S, name string) string
|
||||
}
|
||||
|
||||
// PackageAttr holds build-system-agnostic attributes.
|
||||
@@ -436,55 +419,59 @@ type PackageAttr struct {
|
||||
Flag int
|
||||
}
|
||||
|
||||
// pa holds whether a [PArtifact] is present.
|
||||
type pa = [PresetEnd]bool
|
||||
// pa holds whether an [ArtifactH] is present.
|
||||
type pa = map[ArtifactH]struct{}
|
||||
|
||||
// paPool holds addresses of pa.
|
||||
var paPool = sync.Pool{New: func() any { return new(pa) }}
|
||||
var paPool = sync.Pool{New: func() any { return make(pa) }}
|
||||
|
||||
// paGet returns the address of a new pa.
|
||||
func paGet() *pa { return paPool.Get().(*pa) }
|
||||
func paGet() pa { return paPool.Get().(pa) }
|
||||
|
||||
// paPut returns a pa to paPool.
|
||||
func paPut(pv *pa) { *pv = pa{}; paPool.Put(pv) }
|
||||
func paPut(pv pa) { clear(pv); paPool.Put(pv) }
|
||||
|
||||
// appendPreset recursively appends a [PArtifact] and its runtime dependencies.
|
||||
func (t Toolchain) appendPreset(
|
||||
func (s *S) appendPreset(
|
||||
t Toolchain,
|
||||
a []pkg.Artifact,
|
||||
pv *pa, p PArtifact,
|
||||
pv pa, p ArtifactH,
|
||||
) []pkg.Artifact {
|
||||
if pv[p] {
|
||||
if _, ok := pv[p]; ok {
|
||||
return a
|
||||
}
|
||||
pv[p] = true
|
||||
pv[p] = struct{}{}
|
||||
|
||||
for _, d := range GetMetadata(p).Dependencies {
|
||||
a = t.appendPreset(a, pv, d)
|
||||
for _, d := range s.Get(p).Dependencies {
|
||||
a = s.appendPreset(t, a, pv, d)
|
||||
}
|
||||
return append(a, t.Load(p))
|
||||
d, _ := s.Load(t, p)
|
||||
return append(a, d)
|
||||
}
|
||||
|
||||
// AppendPresets recursively appends multiple [PArtifact] and their runtime
|
||||
// dependencies.
|
||||
func (t Toolchain) AppendPresets(
|
||||
func (s *S) AppendPresets(
|
||||
t Toolchain,
|
||||
a []pkg.Artifact,
|
||||
presets ...PArtifact,
|
||||
presets ...ArtifactH,
|
||||
) []pkg.Artifact {
|
||||
pv := paGet()
|
||||
for _, p := range presets {
|
||||
a = t.appendPreset(a, pv, p)
|
||||
a = s.appendPreset(t, a, pv, p)
|
||||
}
|
||||
paPut(pv)
|
||||
return a
|
||||
}
|
||||
|
||||
// NewPackage constructs a [pkg.Artifact] via a build system helper.
|
||||
func (t Toolchain) NewPackage(
|
||||
func (s *S) NewPackage(
|
||||
t Toolchain,
|
||||
name, version string,
|
||||
source pkg.Artifact,
|
||||
attr *PackageAttr,
|
||||
helper Helper,
|
||||
extra ...PArtifact,
|
||||
extra ...ArtifactH,
|
||||
) pkg.Artifact {
|
||||
if attr == nil {
|
||||
attr = new(PackageAttr)
|
||||
@@ -501,10 +488,10 @@ func (t Toolchain) NewPackage(
|
||||
{
|
||||
pv := paGet()
|
||||
for _, p := range helper.extra(attr.Flag) {
|
||||
extraRes = t.appendPreset(extraRes, pv, p)
|
||||
extraRes = s.appendPreset(t, extraRes, pv, p)
|
||||
}
|
||||
for _, p := range extra {
|
||||
extraRes = t.appendPreset(extraRes, pv, p)
|
||||
extraRes = s.appendPreset(t, extraRes, pv, p)
|
||||
}
|
||||
paPut(pv)
|
||||
}
|
||||
@@ -548,18 +535,19 @@ cd '/usr/src/` + name + `/'
|
||||
panic("cannot remain in root")
|
||||
}
|
||||
|
||||
return t.New(
|
||||
return s.New(
|
||||
t,
|
||||
name+"-"+version,
|
||||
attr.Flag,
|
||||
extraRes,
|
||||
attr.KnownChecksum,
|
||||
attr.Env,
|
||||
scriptEarly+helper.script(name),
|
||||
scriptEarly+helper.script(s, name),
|
||||
slices.Concat(attr.Paths, []pkg.ExecPath{
|
||||
pkg.Path(AbsUsrSrc.Append(
|
||||
name+sourceSuffix,
|
||||
), attr.Writable || wantsWrite, t.NewPatchedSource(
|
||||
name, version, source, !attr.Chmod && !wantsChmod, attr.Patches...,
|
||||
), attr.Writable || wantsWrite, s.NewPatchedSource(
|
||||
t, name, version, source, !attr.Chmod && !wantsChmod, attr.Patches...,
|
||||
)),
|
||||
})...,
|
||||
)
|
||||
@@ -626,3 +614,8 @@ func newFromGitHubRelease(
|
||||
compression,
|
||||
)
|
||||
}
|
||||
|
||||
var native S
|
||||
|
||||
// Native returns the global [S].
|
||||
func Native() *S { return &native }
|
||||
|
||||
@@ -28,7 +28,7 @@ var (
|
||||
)
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
rosa.DropCaches("", rosa.OptLLVMNoLTO)
|
||||
rosa.Native().DropCaches("", rosa.OptLLVMNoLTO)
|
||||
container.TryArgv0(nil)
|
||||
|
||||
code := m.Run()
|
||||
@@ -77,10 +77,9 @@ func TestCureAll(t *testing.T) {
|
||||
cache := getCache(t)
|
||||
t.Parallel()
|
||||
|
||||
for i := range rosa.PresetEnd {
|
||||
p := rosa.PArtifact(i)
|
||||
meta := rosa.GetMetadata(p)
|
||||
a := rosa.Std.Load(p)
|
||||
for _, p := range rosa.Native().Collect() {
|
||||
a, _ := rosa.Native().Load(rosa.Std, p)
|
||||
meta := rosa.Native().MustGet(p)
|
||||
t.Run(meta.Name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
@@ -94,14 +93,13 @@ func TestCureAll(t *testing.T) {
|
||||
}
|
||||
|
||||
func BenchmarkStage3(b *testing.B) {
|
||||
arch, flags := rosa.Arch(), rosa.Flags()
|
||||
b.Cleanup(func() { rosa.DropCaches(arch, flags) })
|
||||
s := rosa.Native().Clone()
|
||||
|
||||
for b.Loop() {
|
||||
rosa.Std.Load(rosa.LLVM)
|
||||
s.Load(rosa.Std, rosa.LLVM)
|
||||
|
||||
b.StopTimer()
|
||||
rosa.DropCaches("", 0)
|
||||
s.DropCaches("", 0)
|
||||
b.StartTimer()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newRsync() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newRsync(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "3.4.2"
|
||||
checksum = "t7PxS4WHXzefLMKKc_3hJgxUmlGG6KgHMZ8i4DZvCQAUAizxbclNKwfLyOHyq5BX"
|
||||
)
|
||||
return t.NewPackage("rsync", version, newTar(
|
||||
return s.NewPackage(t, "rsync", version, newTar(
|
||||
"https://download.samba.org/pub/rsync/src/"+
|
||||
"rsync-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -27,7 +27,7 @@ func (t Toolchain) newRsync() (pkg.Artifact, string) {
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Rsync] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newRsync,
|
||||
|
||||
Name: "rsync",
|
||||
@@ -35,5 +35,5 @@ func init() {
|
||||
Website: "https://rsync.samba.org/",
|
||||
|
||||
ID: 4217,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newSquashfsTools() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newSquashfsTools(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "4.7.5"
|
||||
checksum = "rF52wLQP-jeAmcD-48wqJcck8ZWRFwkax3T-7snaRf5EBnCQQh0YypMY9lwcivLz"
|
||||
)
|
||||
return t.NewPackage("squashfs-tools", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "squashfs-tools", version, newFromGitHubRelease(
|
||||
"plougher/squashfs-tools",
|
||||
version,
|
||||
"squashfs-tools-"+version+".tar.gz",
|
||||
@@ -42,7 +42,7 @@ func (t Toolchain) newSquashfsTools() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[SquashfsTools] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newSquashfsTools,
|
||||
|
||||
Name: "squashfs-tools",
|
||||
@@ -56,5 +56,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 4879,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -5,57 +5,57 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newStage0() (pkg.Artifact, string) {
|
||||
return t.New("rosa-stage0", 0, t.AppendPresets(nil,
|
||||
func (t Toolchain) newStage0(s *S) (pkg.Artifact, string) {
|
||||
return s.New(t, "rosa-stage0", 0, s.AppendPresets(t, nil,
|
||||
Bzip2,
|
||||
), nil, nil, `
|
||||
umask 377
|
||||
tar \
|
||||
-vjc \
|
||||
-C /stage0 \
|
||||
-f /work/stage0-`+triplet()+`.tar.bz2 \
|
||||
-f /work/stage0-`+s.triple()+`.tar.bz2 \
|
||||
.
|
||||
`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, t.AppendPresets(nil,
|
||||
`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, s.AppendPresets(t, nil,
|
||||
LLVM,
|
||||
Mksh,
|
||||
toyboxEarly,
|
||||
)...)), Unversioned
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Stage0] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newStage0,
|
||||
|
||||
Name: "rosa-stage0",
|
||||
Description: "Rosa OS stage0 toolchain tarball for bootstrap",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func init() {
|
||||
const version = "20260504"
|
||||
artifactsM[stage0Dist] = Metadata{
|
||||
f: func(Toolchain) (pkg.Artifact, string) {
|
||||
native.MustRegister(&Artifact{
|
||||
f: func(_ Toolchain, s *S) (pkg.Artifact, string) {
|
||||
return newTar(
|
||||
"https://hakurei.app/seed/"+version+"/"+
|
||||
"stage0-"+triplet()+".tar.bz2",
|
||||
"stage0-"+s.triple()+".tar.bz2",
|
||||
perArch[string]{
|
||||
"amd64": "IQjFDkiAVLo1XzflgMMiLP3gnVY2hhDMTzl-QqJDCQhcLQ3lLtRzjI5WCxGyW_lk",
|
||||
"arm64": "6fmwl2Umx2QssKQvxxb1JOGkAjzfA_MXKku0jVdGjYGb35OvwEVA5NYtd0HIy3yH",
|
||||
"riscv64": "Z2ODV0rIoo9iQRUIu35bsaOBeXc_9qQfGcyb2aGneatzNUJlXh5emSpEV2bOklUL",
|
||||
}.unwrap(),
|
||||
}.unwrap(s),
|
||||
pkg.TarBzip2,
|
||||
), version
|
||||
},
|
||||
|
||||
Name: "stage0-dist",
|
||||
Description: "Rosa OS stage0 bootstrap seed",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// HasStage0 returns whether a stage0 distribution is available.
|
||||
func HasStage0() (ok bool) {
|
||||
func() {
|
||||
defer func() { ok = recover() == nil }()
|
||||
toolchainStage0.Load(stage0Dist)
|
||||
native.Load(toolchainStage0, stage0Dist)
|
||||
}()
|
||||
return
|
||||
}
|
||||
|
||||
307
internal/rosa/state.go
Normal file
307
internal/rosa/state.go
Normal file
@@ -0,0 +1,307 @@
|
||||
package rosa
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"net/http"
|
||||
"runtime"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
"unique"
|
||||
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
// ArtifactH is a handle of the unique name of a prepared [pkg.Artifact].
|
||||
type ArtifactH unique.Handle[string]
|
||||
|
||||
// String returns the name of p.
|
||||
func (p ArtifactH) String() string {
|
||||
return unique.Handle[string](p).Value()
|
||||
}
|
||||
|
||||
// MarshalJSON represents [ArtifactH] by its [Artifact.Name].
|
||||
func (p ArtifactH) MarshalJSON() ([]byte, error) { return json.Marshal(p.String()) }
|
||||
|
||||
// UnmarshalJSON resolves [ArtifactH] by its [Artifact.Name].
|
||||
func (p *ArtifactH) UnmarshalJSON(data []byte) error {
|
||||
var name string
|
||||
if err := json.Unmarshal(data, &name); err != nil {
|
||||
return err
|
||||
}
|
||||
*p = ArtifactH(unique.Make(name))
|
||||
return nil
|
||||
}
|
||||
|
||||
// P represents multiple [ArtifactH].
|
||||
type P []ArtifactH
|
||||
|
||||
// Artifact is stage-agnostic immutable data with a deterministic resulting
|
||||
// [pkg.Artifact]. It can be created natively or through evaluation.
|
||||
type Artifact struct {
|
||||
f func(t Toolchain, s *S) (a pkg.Artifact, version string)
|
||||
|
||||
// Unique package name.
|
||||
Name string `json:"name"`
|
||||
// Short user-facing description.
|
||||
Description string `json:"description"`
|
||||
// Project home page.
|
||||
Website string `json:"website,omitempty"`
|
||||
|
||||
// Runtime dependencies.
|
||||
Dependencies P `json:"dependencies"`
|
||||
|
||||
// Project identifier on [Anitya].
|
||||
//
|
||||
// [Anitya]: https://release-monitoring.org/
|
||||
ID int `json:"-"`
|
||||
|
||||
// Whether to exclude from exported functions.
|
||||
Exclude bool `json:"exclude,omitempty"`
|
||||
|
||||
// Optional custom version checking behaviour.
|
||||
latest func(v *Versions) string
|
||||
}
|
||||
|
||||
// GetLatest returns the latest version described by v.
|
||||
func (meta *Artifact) GetLatest(v *Versions) string {
|
||||
if meta.latest != nil {
|
||||
return meta.latest(v)
|
||||
}
|
||||
return v.Latest
|
||||
}
|
||||
|
||||
// Unversioned denotes an unversioned [Artifact].
|
||||
const Unversioned = "\x00"
|
||||
|
||||
// UnpopulatedIDError is returned by [Artifact.GetLatest] for an instance of
|
||||
// [Artifact] where ID is not populated.
|
||||
type UnpopulatedIDError struct{}
|
||||
|
||||
func (UnpopulatedIDError) Unwrap() error { return errors.ErrUnsupported }
|
||||
func (UnpopulatedIDError) Error() string { return "Anitya ID is not populated" }
|
||||
|
||||
// Versions are package versions returned by Anitya.
|
||||
type Versions struct {
|
||||
// The latest version for the project, as determined by the version sorting algorithm.
|
||||
Latest string `json:"latest_version"`
|
||||
// List of all versions that aren’t flagged as pre-release.
|
||||
Stable []string `json:"stable_versions"`
|
||||
// List of all versions stored, sorted from newest to oldest.
|
||||
All []string `json:"versions"`
|
||||
}
|
||||
|
||||
// getStable returns the first Stable version, or Latest if that is unavailable.
|
||||
func (v *Versions) getStable() string {
|
||||
if len(v.Stable) == 0 {
|
||||
return v.Latest
|
||||
}
|
||||
return v.Stable[0]
|
||||
}
|
||||
|
||||
// GetVersions returns versions fetched from Anitya.
|
||||
func (meta *Artifact) GetVersions(ctx context.Context) (*Versions, error) {
|
||||
if meta.ID == 0 {
|
||||
return nil, UnpopulatedIDError{}
|
||||
}
|
||||
|
||||
var resp *http.Response
|
||||
if req, err := http.NewRequestWithContext(
|
||||
ctx,
|
||||
http.MethodGet,
|
||||
"https://release-monitoring.org/api/v2/versions/?project_id="+
|
||||
strconv.Itoa(meta.ID),
|
||||
nil,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
req.Header.Set("User-Agent", "Rosa/1.1")
|
||||
if resp, err = http.DefaultClient.Do(req); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
var v Versions
|
||||
err := json.NewDecoder(resp.Body).Decode(&v)
|
||||
return &v, errors.Join(err, resp.Body.Close())
|
||||
}
|
||||
|
||||
// A cachedArtifact holds [pkg.Artifact] and its corresponding version string.
|
||||
type cachedArtifact struct {
|
||||
a pkg.Artifact
|
||||
v string
|
||||
}
|
||||
|
||||
const (
|
||||
// OptSkipCheck skips running all test suites.
|
||||
OptSkipCheck = 1 << iota
|
||||
// OptLLVMNoLTO disables LTO in all [LLVM] stages.
|
||||
OptLLVMNoLTO
|
||||
)
|
||||
|
||||
// S holds a set of [Artifact].
|
||||
type S struct {
|
||||
// [ArtifactH] to [Artifact].
|
||||
artifacts sync.Map
|
||||
// Size of artifacts.
|
||||
artifactCount atomic.Uint64
|
||||
|
||||
// Target architecture.
|
||||
arch string
|
||||
// For initialising arch.
|
||||
archOnce sync.Once
|
||||
|
||||
// Options for [pkg.Artifact] created against [S].
|
||||
opts int
|
||||
|
||||
// Cached [pkg.Artifact].
|
||||
c [_toolchainEnd]sync.Map
|
||||
|
||||
// URL of a Gentoo stage3 tarball.
|
||||
gentooStage3 string
|
||||
// Expected checksum of gentooStage3.
|
||||
gentooStage3Checksum pkg.Checksum
|
||||
}
|
||||
|
||||
// Clone returns a copy of s.
|
||||
func (s *S) Clone() *S {
|
||||
v := S{arch: s.arch}
|
||||
s.artifacts.Range(func(key, value any) bool {
|
||||
v.artifacts.Store(key, value)
|
||||
v.artifactCount.Add(1)
|
||||
return true
|
||||
})
|
||||
return &v
|
||||
}
|
||||
|
||||
// wantsArch must be called before accessing arch.
|
||||
func (s *S) wantsArch() {
|
||||
s.archOnce.Do(func() {
|
||||
if s.arch == "" {
|
||||
s.arch = runtime.GOARCH
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Arch returns the target architecture.
|
||||
func (s *S) Arch() string { s.wantsArch(); return s.arch }
|
||||
|
||||
// Flags returns the current preset flags.
|
||||
func (s *S) Flags() int { return s.opts }
|
||||
|
||||
// DropCaches arranges for all cached [pkg.Artifact] to be freed some time after
|
||||
// it returns. Must not be used concurrently with any other method.
|
||||
func (s *S) DropCaches(targetArch string, flags int) {
|
||||
if targetArch == "" {
|
||||
targetArch = runtime.GOARCH
|
||||
}
|
||||
|
||||
s.arch = targetArch
|
||||
s.opts = flags
|
||||
for i := range s.c {
|
||||
s.c[i].Clear()
|
||||
}
|
||||
}
|
||||
|
||||
// Get returns the address of the named [Artifact].
|
||||
func (s *S) Get(p ArtifactH) (meta *Artifact) {
|
||||
s.wantsArch()
|
||||
v, ok := s.artifacts.Load(p)
|
||||
if ok {
|
||||
meta = v.(*Artifact)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// MustGet is like Get, but panics if the named [Artifact] is not registered.
|
||||
func (s *S) MustGet(p ArtifactH) (meta *Artifact) {
|
||||
meta = s.Get(p)
|
||||
if meta == nil {
|
||||
panic("artifact " + strconv.Quote(p.String()) + " not available")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Load returns the resulting [pkg.Artifact] of [ArtifactH].
|
||||
func (s *S) Load(t Toolchain, p ArtifactH) (pkg.Artifact, string) {
|
||||
s.wantsArch()
|
||||
e, ok := s.c[t].Load(p)
|
||||
if ok {
|
||||
r := e.(cachedArtifact)
|
||||
return r.a, r.v
|
||||
}
|
||||
|
||||
meta := s.Get(p)
|
||||
if meta == nil {
|
||||
return nil, ""
|
||||
}
|
||||
var r cachedArtifact
|
||||
r.a, r.v = meta.f(t, s)
|
||||
s.c[t].Store(p, r)
|
||||
return r.a, r.v
|
||||
}
|
||||
|
||||
// MustLoad is like Load, but panics if the named [Artifact] is not registered.
|
||||
func (s *S) MustLoad(t Toolchain, p ArtifactH) (pkg.Artifact, string) {
|
||||
a, version := s.Load(t, p)
|
||||
if a == nil {
|
||||
panic("artifact " + strconv.Quote(p.String()) + " not available")
|
||||
}
|
||||
return a, version
|
||||
}
|
||||
|
||||
// Register arranges for a new [Artifact] to be cured under s. It returns false
|
||||
// if another [Artifact] is already registered under the same name.
|
||||
func (s *S) Register(meta *Artifact) bool {
|
||||
if meta.Name == "" {
|
||||
return false
|
||||
}
|
||||
p := ArtifactH(unique.Make(meta.Name))
|
||||
_, ok := s.artifacts.LoadOrStore(p, meta)
|
||||
if !ok {
|
||||
s.artifactCount.Add(1)
|
||||
}
|
||||
return !ok
|
||||
}
|
||||
|
||||
// MustRegister is like Register, but panics if registration fails.
|
||||
func (s *S) MustRegister(meta *Artifact) {
|
||||
if !s.Register(meta) {
|
||||
panic("attempting to register " + strconv.Quote(meta.Name) + " twice")
|
||||
}
|
||||
}
|
||||
|
||||
// Count returns the number of [Artifact] registered to s.
|
||||
func (s *S) Count() int {
|
||||
return int(s.artifactCount.Load())
|
||||
}
|
||||
|
||||
// Collect returns all [ArtifactH] registered to s.
|
||||
func (s *S) Collect() (handles []ArtifactH) {
|
||||
handles = make([]ArtifactH, 0, s.Count())
|
||||
s.artifacts.Range(func(key, _ any) bool {
|
||||
handles = append(handles, key.(ArtifactH))
|
||||
return true
|
||||
})
|
||||
slices.SortFunc(handles, func(a, b ArtifactH) int {
|
||||
return strings.Compare(a.String(), b.String())
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// SetGentooStage3 sets the Gentoo stage3 tarball url and checksum. It panics
|
||||
// if given zero values or if these values have already been set.
|
||||
func (s *S) SetGentooStage3(url string, checksum pkg.Checksum) {
|
||||
if s.gentooStage3 != "" {
|
||||
panic(errors.New("attempting to set Gentoo stage3 url twice"))
|
||||
}
|
||||
if url == "" {
|
||||
panic(errors.New("attempting to set Gentoo stage3 url to the zero value"))
|
||||
}
|
||||
s.gentooStage3, s.gentooStage3Checksum = url, checksum
|
||||
s.DropCaches(s.Arch(), s.Flags())
|
||||
}
|
||||
197
internal/rosa/state_native.go
Normal file
197
internal/rosa/state_native.go
Normal file
@@ -0,0 +1,197 @@
|
||||
package rosa
|
||||
|
||||
import "unique"
|
||||
|
||||
var (
|
||||
LLVM = ArtifactH(unique.Make("llvm"))
|
||||
EarlyInit = ArtifactH(unique.Make("earlyinit"))
|
||||
ImageSystem = ArtifactH(unique.Make("system-image"))
|
||||
ImageInitramfs = ArtifactH(unique.Make("initramfs-image"))
|
||||
Kernel = ArtifactH(unique.Make("kernel"))
|
||||
KernelHeaders = ArtifactH(unique.Make("kernel-headers"))
|
||||
KernelSource = ArtifactH(unique.Make("kernel-source"))
|
||||
Firmware = ArtifactH(unique.Make("firmware"))
|
||||
ACL = ArtifactH(unique.Make("acl"))
|
||||
ArgpStandalone = ArtifactH(unique.Make("argp-standalone"))
|
||||
Attr = ArtifactH(unique.Make("attr"))
|
||||
Autoconf = ArtifactH(unique.Make("autoconf"))
|
||||
Automake = ArtifactH(unique.Make("automake"))
|
||||
BC = ArtifactH(unique.Make("bc"))
|
||||
Bash = ArtifactH(unique.Make("bash"))
|
||||
Binutils = ArtifactH(unique.Make("binutils"))
|
||||
Bison = ArtifactH(unique.Make("bison"))
|
||||
Bzip2 = ArtifactH(unique.Make("bzip2"))
|
||||
CMake = ArtifactH(unique.Make("cmake"))
|
||||
Connman = ArtifactH(unique.Make("connman"))
|
||||
Coreutils = ArtifactH(unique.Make("coreutils"))
|
||||
Curl = ArtifactH(unique.Make("curl"))
|
||||
DBus = ArtifactH(unique.Make("dbus"))
|
||||
DTC = ArtifactH(unique.Make("dtc"))
|
||||
Diffutils = ArtifactH(unique.Make("diffutils"))
|
||||
Elfutils = ArtifactH(unique.Make("elfutils"))
|
||||
Fakeroot = ArtifactH(unique.Make("fakeroot"))
|
||||
Findutils = ArtifactH(unique.Make("findutils"))
|
||||
Flex = ArtifactH(unique.Make("flex"))
|
||||
FontUtil = ArtifactH(unique.Make("font-util"))
|
||||
Freetype = ArtifactH(unique.Make("freetype"))
|
||||
Fuse = ArtifactH(unique.Make("fuse"))
|
||||
GMP = ArtifactH(unique.Make("gmp"))
|
||||
GLib = ArtifactH(unique.Make("glib"))
|
||||
Gawk = ArtifactH(unique.Make("gawk"))
|
||||
GenInitCPIO = ArtifactH(unique.Make("gen_init_cpio"))
|
||||
Gettext = ArtifactH(unique.Make("gettext"))
|
||||
Git = ArtifactH(unique.Make("git"))
|
||||
Glslang = ArtifactH(unique.Make("glslang"))
|
||||
GnuTLS = ArtifactH(unique.Make("gnutls"))
|
||||
Go = ArtifactH(unique.Make("go"))
|
||||
Gperf = ArtifactH(unique.Make("gperf"))
|
||||
Grep = ArtifactH(unique.Make("grep"))
|
||||
Gzip = ArtifactH(unique.Make("gzip"))
|
||||
Hakurei = ArtifactH(unique.Make("hakurei"))
|
||||
HakureiDist = ArtifactH(unique.Make("hakurei-dist"))
|
||||
Hwdata = ArtifactH(unique.Make("hwdata"))
|
||||
IPTables = ArtifactH(unique.Make("iptables"))
|
||||
Kmod = ArtifactH(unique.Make("kmod"))
|
||||
LIT = ArtifactH(unique.Make("lit"))
|
||||
LibX11 = ArtifactH(unique.Make("libX11"))
|
||||
LibXau = ArtifactH(unique.Make("libXau"))
|
||||
LibXdmcp = ArtifactH(unique.Make("libXdmcp"))
|
||||
LibXext = ArtifactH(unique.Make("libXext"))
|
||||
LibXfixes = ArtifactH(unique.Make("libXfixes"))
|
||||
LibXfont2 = ArtifactH(unique.Make("libXfont2"))
|
||||
LibXrandr = ArtifactH(unique.Make("libXrandr"))
|
||||
LibXrender = ArtifactH(unique.Make("libXrender"))
|
||||
LibXxf86vm = ArtifactH(unique.Make("libXxf86vm"))
|
||||
Libarchive = ArtifactH(unique.Make("libarchive"))
|
||||
Libbsd = ArtifactH(unique.Make("libbsd"))
|
||||
Libcap = ArtifactH(unique.Make("libcap"))
|
||||
Libconfig = ArtifactH(unique.Make("libconfig"))
|
||||
LibdisplayInfo = ArtifactH(unique.Make("libdisplay-info"))
|
||||
Libdrm = ArtifactH(unique.Make("libdrm"))
|
||||
Libepoxy = ArtifactH(unique.Make("libepoxy"))
|
||||
Libev = ArtifactH(unique.Make("libev"))
|
||||
Libexpat = ArtifactH(unique.Make("libexpat"))
|
||||
Libffi = ArtifactH(unique.Make("libffi"))
|
||||
Libfontenc = ArtifactH(unique.Make("libfontenc"))
|
||||
Libgd = ArtifactH(unique.Make("libgd"))
|
||||
Libglvnd = ArtifactH(unique.Make("libglvnd"))
|
||||
Libiconv = ArtifactH(unique.Make("libiconv"))
|
||||
Libmd = ArtifactH(unique.Make("libmd"))
|
||||
Libmnl = ArtifactH(unique.Make("libmnl"))
|
||||
Libnftnl = ArtifactH(unique.Make("libnftnl"))
|
||||
Libpciaccess = ArtifactH(unique.Make("libpciaccess"))
|
||||
Libpng = ArtifactH(unique.Make("libpng"))
|
||||
Libpsl = ArtifactH(unique.Make("libpsl"))
|
||||
Libseccomp = ArtifactH(unique.Make("libseccomp"))
|
||||
Libtasn1 = ArtifactH(unique.Make("libtasn1"))
|
||||
Libtirpc = ArtifactH(unique.Make("libtirpc"))
|
||||
Libtool = ArtifactH(unique.Make("libtool"))
|
||||
Libucontext = ArtifactH(unique.Make("libucontext"))
|
||||
Libunistring = ArtifactH(unique.Make("libunistring"))
|
||||
Libva = ArtifactH(unique.Make("libva"))
|
||||
LibxcbRenderUtil = ArtifactH(unique.Make("libxcb-render-util"))
|
||||
LibxcbUtil = ArtifactH(unique.Make("libxcb-util"))
|
||||
LibxcbUtilImage = ArtifactH(unique.Make("libxcb-util-image"))
|
||||
LibxcbUtilKeysyms = ArtifactH(unique.Make("libxcb-util-keysyms"))
|
||||
LibxcbUtilWM = ArtifactH(unique.Make("libxcb-util-wm"))
|
||||
Libxcvt = ArtifactH(unique.Make("libxcvt"))
|
||||
Libxkbfile = ArtifactH(unique.Make("libxkbfile"))
|
||||
Libxml2 = ArtifactH(unique.Make("libxml2"))
|
||||
Libxshmfence = ArtifactH(unique.Make("libxshmfence"))
|
||||
Libxslt = ArtifactH(unique.Make("libxslt"))
|
||||
Libxtrans = ArtifactH(unique.Make("libxtrans"))
|
||||
LMSensors = ArtifactH(unique.Make("lm_sensors"))
|
||||
M4 = ArtifactH(unique.Make("m4"))
|
||||
MPC = ArtifactH(unique.Make("mpc"))
|
||||
MPFR = ArtifactH(unique.Make("mpfr"))
|
||||
Make = ArtifactH(unique.Make("make"))
|
||||
Mesa = ArtifactH(unique.Make("mesa"))
|
||||
Meson = ArtifactH(unique.Make("meson"))
|
||||
Mksh = ArtifactH(unique.Make("mksh"))
|
||||
MuslFts = ArtifactH(unique.Make("musl-fts"))
|
||||
MuslObstack = ArtifactH(unique.Make("musl-obstack"))
|
||||
NSS = ArtifactH(unique.Make("nss"))
|
||||
NSSCACert = ArtifactH(unique.Make("nss-cacert"))
|
||||
Ncurses = ArtifactH(unique.Make("ncurses"))
|
||||
Nettle = ArtifactH(unique.Make("nettle"))
|
||||
Ninja = ArtifactH(unique.Make("ninja"))
|
||||
OpenSSL = ArtifactH(unique.Make("openssl"))
|
||||
P11Kit = ArtifactH(unique.Make("p11-kit"))
|
||||
PCRE2 = ArtifactH(unique.Make("pcre2"))
|
||||
Parallel = ArtifactH(unique.Make("parallel"))
|
||||
Patch = ArtifactH(unique.Make("patch"))
|
||||
Perl = ArtifactH(unique.Make("perl"))
|
||||
PerlLocaleGettext = ArtifactH(unique.Make("perl-Locale::gettext"))
|
||||
PerlMIMECharset = ArtifactH(unique.Make("perl-MIME::Charset"))
|
||||
PerlModuleBuild = ArtifactH(unique.Make("perl-Module::Build"))
|
||||
PerlPodParser = ArtifactH(unique.Make("perl-Pod::Parser"))
|
||||
PerlSGMLS = ArtifactH(unique.Make("perl-SGMLS"))
|
||||
PerlTermReadKey = ArtifactH(unique.Make("perl-Term::ReadKey"))
|
||||
PerlTestCmd = ArtifactH(unique.Make("perl-Test::Cmd"))
|
||||
PerlTextCharWidth = ArtifactH(unique.Make("perl-Text::CharWidth"))
|
||||
PerlTextWrapI18N = ArtifactH(unique.Make("perl-Text::WrapI18N"))
|
||||
PerlUnicodeLineBreak = ArtifactH(unique.Make("perl-Unicode::LineBreak"))
|
||||
PerlYAMLTiny = ArtifactH(unique.Make("perl-YAML::Tiny"))
|
||||
Pixman = ArtifactH(unique.Make("pixman"))
|
||||
PkgConfig = ArtifactH(unique.Make("pkg-config"))
|
||||
Procps = ArtifactH(unique.Make("procps"))
|
||||
Python = ArtifactH(unique.Make("python"))
|
||||
PythonFlitCore = ArtifactH(unique.Make("python-flit-core"))
|
||||
PythonHatchling = ArtifactH(unique.Make("python-hatchling"))
|
||||
PythonIniConfig = ArtifactH(unique.Make("python-iniconfig"))
|
||||
PythonMako = ArtifactH(unique.Make("python-mako"))
|
||||
PythonMarkupSafe = ArtifactH(unique.Make("python-markupsafe"))
|
||||
PythonPackaging = ArtifactH(unique.Make("python-packaging"))
|
||||
PythonPathspec = ArtifactH(unique.Make("python-pathspec"))
|
||||
PythonPluggy = ArtifactH(unique.Make("python-pluggy"))
|
||||
PythonPyTest = ArtifactH(unique.Make("python-pytest"))
|
||||
PythonPyYAML = ArtifactH(unique.Make("python-pyyaml"))
|
||||
PythonPycparser = ArtifactH(unique.Make("python-pycparser"))
|
||||
PythonPygments = ArtifactH(unique.Make("python-pygments"))
|
||||
PythonSetuptools = ArtifactH(unique.Make("python-setuptools"))
|
||||
PythonSetuptoolsSCM = ArtifactH(unique.Make("python-setuptools-scm"))
|
||||
PythonTroveClassifiers = ArtifactH(unique.Make("python-trove-classifiers"))
|
||||
PythonVCSVersioning = ArtifactH(unique.Make("python-vcs-versioning"))
|
||||
PythonWheel = ArtifactH(unique.Make("python-wheel"))
|
||||
QEMU = ArtifactH(unique.Make("qemu"))
|
||||
Rdfind = ArtifactH(unique.Make("rdfind"))
|
||||
Readline = ArtifactH(unique.Make("readline"))
|
||||
Rsync = ArtifactH(unique.Make("rsync"))
|
||||
Sed = ArtifactH(unique.Make("sed"))
|
||||
SPIRVHeaders = ArtifactH(unique.Make("spirv-headers"))
|
||||
SPIRVLLVMTranslator = ArtifactH(unique.Make("spirv-llvm-translator"))
|
||||
SPIRVTools = ArtifactH(unique.Make("spirv-tools"))
|
||||
SquashfsTools = ArtifactH(unique.Make("squashfs-tools"))
|
||||
Strace = ArtifactH(unique.Make("strace"))
|
||||
TamaGo = ArtifactH(unique.Make("tamago"))
|
||||
Tar = ArtifactH(unique.Make("tar"))
|
||||
Texinfo = ArtifactH(unique.Make("texinfo"))
|
||||
Toybox = ArtifactH(unique.Make("toybox"))
|
||||
toyboxEarly = ArtifactH(unique.Make("toybox-early"))
|
||||
Unzip = ArtifactH(unique.Make("unzip"))
|
||||
UtilLinux = ArtifactH(unique.Make("util-linux"))
|
||||
VIM = ArtifactH(unique.Make("vim"))
|
||||
Wayland = ArtifactH(unique.Make("wayland"))
|
||||
WaylandProtocols = ArtifactH(unique.Make("wayland-protocols"))
|
||||
XCB = ArtifactH(unique.Make("xcb"))
|
||||
XCBProto = ArtifactH(unique.Make("xcb-proto"))
|
||||
XDGDBusProxy = ArtifactH(unique.Make("xdg-dbus-proxy"))
|
||||
XZ = ArtifactH(unique.Make("xz"))
|
||||
Xkbcomp = ArtifactH(unique.Make("xkbcomp"))
|
||||
XkeyboardConfig = ArtifactH(unique.Make("xkeyboard-config"))
|
||||
XorgProto = ArtifactH(unique.Make("xorgproto"))
|
||||
Xserver = ArtifactH(unique.Make("xserver"))
|
||||
Zlib = ArtifactH(unique.Make("zlib"))
|
||||
Zstd = ArtifactH(unique.Make("zstd"))
|
||||
stage0Dist = ArtifactH(unique.Make("stage0-dist"))
|
||||
llvmSource = ArtifactH(unique.Make("llvm-project"))
|
||||
earlyCompilerRT = ArtifactH(unique.Make("early-compiler-rt"))
|
||||
earlyRuntimes = ArtifactH(unique.Make("early-runtimes"))
|
||||
buildcatrust = ArtifactH(unique.Make("python-buildcatrust"))
|
||||
utilMacros = ArtifactH(unique.Make("util-macros"))
|
||||
Musl = ArtifactH(unique.Make("musl"))
|
||||
muslHeaders = ArtifactH(unique.Make("musl-headers"))
|
||||
gcc = ArtifactH(unique.Make("gcc"))
|
||||
nettle3 = ArtifactH(unique.Make("nettle3"))
|
||||
Stage0 = ArtifactH(unique.Make("rosa-stage0"))
|
||||
)
|
||||
33
internal/rosa/state_test.go
Normal file
33
internal/rosa/state_test.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package rosa_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"hakurei.app/internal/rosa"
|
||||
)
|
||||
|
||||
func TestLoad(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
for _, p := range rosa.Native().Collect() {
|
||||
t.Run(rosa.Native().MustGet(p).Name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
rosa.Native().Load(rosa.Std, p)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkAll(b *testing.B) {
|
||||
s := rosa.Native().Clone()
|
||||
|
||||
for b.Loop() {
|
||||
for _, p := range s.Collect() {
|
||||
s.Load(rosa.Std, p)
|
||||
}
|
||||
|
||||
b.StopTimer()
|
||||
s.DropCaches("", 0)
|
||||
b.StartTimer()
|
||||
}
|
||||
}
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newStrace() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newStrace(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "6.19"
|
||||
checksum = "XJFJJ9XLh_1rHS3m_QNjLKzkkBAooE-QT9p9lJNNWowAmd54IJop_fI4-IFtjeeL"
|
||||
)
|
||||
return t.NewPackage("strace", version, pkg.NewHTTPGet(
|
||||
return s.NewPackage(t, "strace", version, pkg.NewHTTPGet(
|
||||
nil, "https://strace.io/files/"+version+"/strace-"+version+".tar.xz",
|
||||
mustDecode(checksum),
|
||||
), &PackageAttr{
|
||||
@@ -37,7 +37,7 @@ sed -i 's/unsigned int msg_len;$/uint32_t msg_len;/g' \
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Strace] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newStrace,
|
||||
|
||||
Name: "strace",
|
||||
@@ -45,5 +45,5 @@ func init() {
|
||||
Website: "https://strace.io/",
|
||||
|
||||
ID: 4897,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newTamaGo() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newTamaGo(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.26.3"
|
||||
checksum = "-nH3MjAzDDLTeJ2hRKYJcJwo5-Ikci4zOHfB8j1vKn7zrF9TS6zYaoLi8qohGwAE"
|
||||
)
|
||||
return t.New("tamago-go"+version, 0, t.AppendPresets(nil,
|
||||
return s.New(t, "tamago-go"+version, 0, s.AppendPresets(t, nil,
|
||||
Bash,
|
||||
Go,
|
||||
), nil, []string{
|
||||
@@ -21,8 +21,8 @@ cd /work/system/tamago/src
|
||||
chmod -R +w ..
|
||||
|
||||
sed -i \
|
||||
's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+arch+`/obj.go
|
||||
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
|
||||
cmd/link/internal/`+s.arch+`/obj.go
|
||||
sed -i \
|
||||
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
|
||||
internal/runtime/gc/scan/scan_amd64.go
|
||||
@@ -40,7 +40,7 @@ rm \
|
||||
))), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[TamaGo] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newTamaGo,
|
||||
|
||||
Name: "tamago",
|
||||
@@ -48,5 +48,5 @@ func init() {
|
||||
Website: "https://github.com/usbarmory/tamago-go",
|
||||
|
||||
ID: 388872,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newToybox(suffix, script string) (pkg.Artifact, string) {
|
||||
func (s *S) newToybox(t Toolchain, suffix, script string) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.8.13"
|
||||
checksum = "rZ1V1ATDte2WeQZanxLVoiRGdfPXhMlEo5-exX-e-ml8cGn9qOv0ABEUVZpX3wTI"
|
||||
)
|
||||
return t.NewPackage("toybox"+suffix, version, newTar(
|
||||
return s.NewPackage(t, "toybox"+suffix, version, newTar(
|
||||
"https://landley.net/toybox/downloads/toybox-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -59,9 +59,9 @@ ln -s ../../system/bin/env /work/usr/bin
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Toybox] = Metadata{
|
||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||
return t.newToybox("", "")
|
||||
native.MustRegister(&Artifact{
|
||||
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
|
||||
return s.newToybox(t, "", "")
|
||||
},
|
||||
|
||||
Name: "toybox",
|
||||
@@ -69,11 +69,11 @@ func init() {
|
||||
Website: "https://landley.net/toybox/",
|
||||
|
||||
ID: 13818,
|
||||
}
|
||||
})
|
||||
|
||||
artifactsM[toyboxEarly] = Metadata{
|
||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||
return t.newToybox("-early", `
|
||||
native.MustRegister(&Artifact{
|
||||
f: func(t Toolchain, s *S) (pkg.Artifact, string) {
|
||||
return s.newToybox(t, "-early", `
|
||||
echo '
|
||||
CONFIG_EXPR=y
|
||||
CONFIG_TR=y
|
||||
@@ -86,5 +86,5 @@ CONFIG_DIFF=y
|
||||
Name: "toybox-early",
|
||||
Description: "a build of toybox with unfinished tools enabled to break dependency loops",
|
||||
Website: "https://landley.net/toybox/",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newUnzip() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newUnzip(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "6.0"
|
||||
checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1"
|
||||
)
|
||||
return t.New("unzip-"+version, 0, t.AppendPresets(nil,
|
||||
return s.New(t, "unzip-"+version, 0, s.AppendPresets(t, nil,
|
||||
Make,
|
||||
Coreutils,
|
||||
), nil, nil, `
|
||||
@@ -21,7 +21,7 @@ make -f unix/Makefile generic1
|
||||
|
||||
mkdir -p /work/system/bin/
|
||||
mv unzip /work/system/bin/
|
||||
`, pkg.Path(AbsUsrSrc.Append("unzip"), true, t.NewPatchedSource(
|
||||
`, pkg.Path(AbsUsrSrc.Append("unzip"), true, s.NewPatchedSource(t,
|
||||
"unzip", version, newTar(
|
||||
"https://downloads.sourceforge.net/project/infozip/"+
|
||||
"UnZip%206.x%20%28latest%29/UnZip%20"+version+"/"+
|
||||
@@ -32,7 +32,7 @@ mv unzip /work/system/bin/
|
||||
))), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Unzip] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newUnzip,
|
||||
|
||||
Name: "unzip",
|
||||
@@ -40,5 +40,5 @@ func init() {
|
||||
Website: "https://infozip.sourceforge.net/",
|
||||
|
||||
ID: 8684,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@ import (
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func (t Toolchain) newUtilLinux() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newUtilLinux(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.42"
|
||||
checksum = "Uy8Nxg9DsW5YwDoeaZeZTyQJ2YmnaaL_fSsQXsLUiFFUd7wnZeD_3SEaVO7ClJlk"
|
||||
)
|
||||
return t.NewPackage("util-linux", version, newTar(
|
||||
return s.NewPackage(t, "util-linux", version, newTar(
|
||||
"https://www.kernel.org/pub/linux/utils/util-linux/"+
|
||||
"v"+strings.Join(strings.SplitN(version, ".", 3)[:2], ".")+
|
||||
"/util-linux-"+version+".tar.gz",
|
||||
@@ -47,7 +47,7 @@ ln -s ../system/bin/bash /bin/
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[UtilLinux] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newUtilLinux,
|
||||
|
||||
Name: "util-linux",
|
||||
@@ -58,5 +58,5 @@ func init() {
|
||||
|
||||
// release candidates confuse Anitya
|
||||
latest: (*Versions).getStable,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newVIM() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newVIM(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "9.2.0461"
|
||||
checksum = "18Rr_5oIf_PkKuqVkN4CMZIGkZEgpN1vamlrsvPLBjn4mN98CRuoJmhzRZ7MoVYM"
|
||||
)
|
||||
return t.NewPackage("vim", version, newFromGitHub(
|
||||
return s.NewPackage(t, "vim", version, newFromGitHub(
|
||||
"vim/vim",
|
||||
"v"+version,
|
||||
checksum,
|
||||
@@ -29,7 +29,7 @@ func (t Toolchain) newVIM() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[VIM] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newVIM,
|
||||
|
||||
Name: "vim",
|
||||
@@ -41,5 +41,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5092,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newWayland() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newWayland(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.25.0"
|
||||
checksum = "q-4dYXme46JPgLGtXAxyZGTy7udll9RfT0VXtcW2YRR1WWViUhvdZXZneXzLqpCg"
|
||||
)
|
||||
return t.NewPackage("wayland", version, newFromGitLab(
|
||||
return s.NewPackage(t, "wayland", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"wayland/wayland",
|
||||
version,
|
||||
@@ -35,7 +35,7 @@ echo 'int main(){}' > tests/sanity-test.c
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Wayland] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newWayland,
|
||||
|
||||
Name: "wayland",
|
||||
@@ -49,15 +49,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 10061,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newWaylandProtocols() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newWaylandProtocols(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.48"
|
||||
checksum = "xvfHCBIzXGwOqOu9b8dfhGw_U29Pd-g4JBwpYIaxee8SwEbxi6NaVU-Y1Q7wY4jK"
|
||||
)
|
||||
return t.NewPackage("wayland-protocols", version, newFromGitLab(
|
||||
return s.NewPackage(t, "wayland-protocols", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"wayland/wayland-protocols",
|
||||
version,
|
||||
@@ -121,7 +121,7 @@ GitLab
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[WaylandProtocols] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newWaylandProtocols,
|
||||
|
||||
Name: "wayland-protocols",
|
||||
@@ -129,5 +129,5 @@ func init() {
|
||||
Website: "https://wayland.freedesktop.org/",
|
||||
|
||||
ID: 13997,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newUtilMacros() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newUtilMacros(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.20.2"
|
||||
checksum = "Ze8QH3Z3emC0pWFP-0nUYeMy7aBW3L_dxBBmVgcumIHNzEKc1iGTR-yUFR3JcM1G"
|
||||
)
|
||||
return t.NewPackage("util-macros", version, newTar(
|
||||
return s.NewPackage(t, "util-macros", version, newTar(
|
||||
"https://www.x.org/releases/individual/util/"+
|
||||
"util-macros-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -15,7 +15,7 @@ func (t Toolchain) newUtilMacros() (pkg.Artifact, string) {
|
||||
), nil, (*MakeHelper)(nil)), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[utilMacros] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newUtilMacros,
|
||||
|
||||
Name: "util-macros",
|
||||
@@ -23,15 +23,15 @@ func init() {
|
||||
Website: "https://xorg.freedesktop.org/",
|
||||
|
||||
ID: 5252,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibxtrans() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxtrans(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.6.0"
|
||||
checksum = "1cxDCF59fLf1HyGDMcjR1L50ZbjD0RTTEDUpOJYcHXu6HUK_Ds0x-KREY7rLNxu9"
|
||||
)
|
||||
return t.NewPackage("libxtrans", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libxtrans", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxtrans",
|
||||
"xtrans-"+version,
|
||||
@@ -47,7 +47,7 @@ func (t Toolchain) newLibxtrans() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libxtrans] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxtrans,
|
||||
|
||||
Name: "libxtrans",
|
||||
@@ -55,15 +55,15 @@ func init() {
|
||||
Website: "https://gitlab.freedesktop.org/xorg/lib/libxtrans",
|
||||
|
||||
ID: 13441,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newXorgProto() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newXorgProto(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2025.1"
|
||||
checksum = "pTwJiBJHKA6Rgm3cVDXy1lyvXNIUzTRaukvvYdk1xWoJ_1G-Dfjm9MyewuyIjoHz"
|
||||
)
|
||||
return t.NewPackage("xorgproto", version, newFromGitLab(
|
||||
return s.NewPackage(t, "xorgproto", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/proto/xorgproto",
|
||||
"xorgproto-"+version,
|
||||
@@ -78,7 +78,7 @@ func (t Toolchain) newXorgProto() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[XorgProto] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newXorgProto,
|
||||
|
||||
Name: "xorgproto",
|
||||
@@ -86,15 +86,15 @@ func init() {
|
||||
Website: "https://gitlab.freedesktop.org/xorg/proto/xorgproto",
|
||||
|
||||
ID: 17190,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibXau() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibXau(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.0.12"
|
||||
checksum = "G9AjnU_C160q814MCdjFOVt_mQz_pIt4wf4GNOQmGJS3UuuyMw53sfPvJ7WOqwXN"
|
||||
)
|
||||
return t.NewPackage("libXau", version, newTar(
|
||||
return s.NewPackage(t, "libXau", version, newTar(
|
||||
"https://www.x.org/releases/individual/lib/"+
|
||||
"libXau-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -112,7 +112,7 @@ func (t Toolchain) newLibXau() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibXau] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibXau,
|
||||
|
||||
Name: "libXau",
|
||||
@@ -124,15 +124,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1765,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newXCBProto() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newXCBProto(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.17.0"
|
||||
checksum = "_NtbKaJ_iyT7XiJz25mXQ7y-niTzE8sHPvLXZPcqtNoV_-vTzqkezJ8Hp2U1enCv"
|
||||
)
|
||||
return t.NewPackage("xcb-proto", version, newTar(
|
||||
return s.NewPackage(t, "xcb-proto", version, newTar(
|
||||
"https://xcb.freedesktop.org/dist/xcb-proto-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -141,7 +141,7 @@ func (t Toolchain) newXCBProto() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[XCBProto] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newXCBProto,
|
||||
|
||||
Name: "xcb-proto",
|
||||
@@ -149,15 +149,15 @@ func init() {
|
||||
Website: "https://gitlab.freedesktop.org/xorg/proto/xcbproto",
|
||||
|
||||
ID: 13646,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newXCB() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newXCB(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.17.0"
|
||||
checksum = "hjjsc79LpWM_hZjNWbDDS6qRQUXREjjekS6UbUsDq-RR1_AjgNDxhRvZf-1_kzDd"
|
||||
)
|
||||
return t.NewPackage("xcb", version, newTar(
|
||||
return s.NewPackage(t, "xcb", version, newTar(
|
||||
"https://xcb.freedesktop.org/dist/libxcb-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -170,7 +170,7 @@ func (t Toolchain) newXCB() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[XCB] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newXCB,
|
||||
|
||||
Name: "xcb",
|
||||
@@ -183,15 +183,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1767,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibxcbUtilKeysyms() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxcbUtilKeysyms(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.4.1"
|
||||
checksum = "-EEje12UEjtFBuIjb6Fy4cxEghV20BXwQ1BLvhtvSuVcrFkp_X-ZHRM48wAspXZ4"
|
||||
)
|
||||
return t.NewPackage("libxcb-util-keysyms", version, newTar(
|
||||
return s.NewPackage(t, "libxcb-util-keysyms", version, newTar(
|
||||
"https://xcb.freedesktop.org/dist/xcb-util-keysyms-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -202,7 +202,7 @@ func (t Toolchain) newLibxcbUtilKeysyms() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibxcbUtilKeysyms] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxcbUtilKeysyms,
|
||||
|
||||
Name: "libxcb-util-keysyms",
|
||||
@@ -214,15 +214,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5168,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibxcbUtilImage() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxcbUtilImage(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.4.1"
|
||||
checksum = "47pvXmFwaUBZIrJ4CE9xjTQIFyxeqoNAL-DshlB11GZ_jjI3G1a6KF0K7mtBQ1E7"
|
||||
)
|
||||
return t.NewPackage("libxcb-util-image", version, newTar(
|
||||
return s.NewPackage(t, "libxcb-util-image", version, newTar(
|
||||
"https://xcb.freedesktop.org/dist/xcb-util-image-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -233,7 +233,7 @@ func (t Toolchain) newLibxcbUtilImage() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibxcbUtilImage] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxcbUtilImage,
|
||||
|
||||
Name: "libxcb-util-image",
|
||||
@@ -245,15 +245,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5168,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibxcbUtilWM() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxcbUtilWM(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.4.2"
|
||||
checksum = "g0VZgMU9hcIgyXb3XxBR9xqsvUMBd9qt_Dbmwoj2h5y24pODr_S_D0DhRsuXUNjF"
|
||||
)
|
||||
return t.NewPackage("libxcb-util-wm", version, newTar(
|
||||
return s.NewPackage(t, "libxcb-util-wm", version, newTar(
|
||||
"https://xcb.freedesktop.org/dist/xcb-util-wm-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -265,7 +265,7 @@ func (t Toolchain) newLibxcbUtilWM() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibxcbUtilWM] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxcbUtilWM,
|
||||
|
||||
Name: "libxcb-util-wm",
|
||||
@@ -277,15 +277,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5170,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibxcbUtil() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxcbUtil(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.4.1"
|
||||
checksum = "YMXGQUQbF6PoEAGflvYnJYsLWjti6sL_ifY47wIXTNGVM3tQ8u41nkBYN4K1D5CD"
|
||||
)
|
||||
return t.NewPackage("libxcb-util", version, newTar(
|
||||
return s.NewPackage(t, "libxcb-util", version, newTar(
|
||||
"https://www.x.org/releases/individual/xcb/"+
|
||||
"xcb-util-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -298,7 +298,7 @@ func (t Toolchain) newLibxcbUtil() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibxcbUtil] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxcbUtil,
|
||||
|
||||
Name: "libxcb-util",
|
||||
@@ -310,15 +310,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5165,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibxcbRenderUtil() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxcbRenderUtil(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.3.10"
|
||||
checksum = "n08L8PyCoOd7v2vb6fSVq5Pq6JtteXVh9K2wrQMTNwGMf_Fjpi6i3HWF-TMFSVTI"
|
||||
)
|
||||
return t.NewPackage("libxcb-render-util", version, newTar(
|
||||
return s.NewPackage(t, "libxcb-render-util", version, newTar(
|
||||
"https://www.x.org/releases/individual/xcb/"+
|
||||
"xcb-util-renderutil-"+version+".tar.gz",
|
||||
checksum,
|
||||
@@ -331,7 +331,7 @@ func (t Toolchain) newLibxcbRenderUtil() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibxcbRenderUtil] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxcbRenderUtil,
|
||||
|
||||
Name: "libxcb-render-util",
|
||||
@@ -343,15 +343,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5169,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibX11() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibX11(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.8.13"
|
||||
checksum = "ARh-cuZY_U2v3DbPS1byc7ybh9NInZc-yav7SJiusk_C7408s058qWV83ocMd2pT"
|
||||
)
|
||||
return t.NewPackage("libX11", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libX11", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libx11",
|
||||
"libX11-"+version,
|
||||
@@ -375,7 +375,7 @@ func (t Toolchain) newLibX11() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibX11] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibX11,
|
||||
|
||||
Name: "libX11",
|
||||
@@ -387,15 +387,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1764,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibXext() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibXext(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.3.7"
|
||||
checksum = "-0wvUDaucLPLNOrK1pcKhHNoO-5nUqQyyw6JAbhx65gRjuMiNKKaF2_tcrbC_KNq"
|
||||
)
|
||||
return t.NewPackage("libXext", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libXext", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxext",
|
||||
"libXext-"+version,
|
||||
@@ -412,7 +412,7 @@ func (t Toolchain) newLibXext() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibXext] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibXext,
|
||||
|
||||
Name: "libXext",
|
||||
@@ -424,15 +424,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1774,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibXfixes() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibXfixes(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "6.0.2"
|
||||
checksum = "_-kJfKZ7cE3NNeMr6NLSXCmsyP7MVEHVPLNfxatz2qBy3_fZJvPMQwZNOC9y6V5L"
|
||||
)
|
||||
return t.NewPackage("libXfixes", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libXfixes", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxfixes",
|
||||
"libXfixes-"+version,
|
||||
@@ -450,7 +450,7 @@ func (t Toolchain) newLibXfixes() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibXfixes] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibXfixes,
|
||||
|
||||
Name: "libXfixes",
|
||||
@@ -462,15 +462,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1775,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibXrender() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibXrender(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.9.12"
|
||||
checksum = "s6nWn-r17X_W-7anaS7wIcq5_Levf9zAigwJDD9Klp-cCJTVDhLo7GufuVOrxVP0"
|
||||
)
|
||||
return t.NewPackage("libXrender", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libXrender", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxrender",
|
||||
"libXrender-"+version,
|
||||
@@ -487,7 +487,7 @@ func (t Toolchain) newLibXrender() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibXrender] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibXrender,
|
||||
|
||||
Name: "libXrender",
|
||||
@@ -499,15 +499,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1789,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibxshmfence() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxshmfence(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.3.3"
|
||||
checksum = "JamExTPg81By2fs3vWdeo_dzlpBQeAwXr2sDXeHJqm9XBoLW5pamiD6FgAWtAKyA"
|
||||
)
|
||||
return t.NewPackage("libxshmfence", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libxshmfence", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxshmfence",
|
||||
"libxshmfence-"+version,
|
||||
@@ -524,7 +524,7 @@ func (t Toolchain) newLibxshmfence() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libxshmfence] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxshmfence,
|
||||
|
||||
Name: "libxshmfence",
|
||||
@@ -532,15 +532,15 @@ func init() {
|
||||
Website: "https://gitlab.freedesktop.org/xorg/lib/libxshmfence",
|
||||
|
||||
ID: 1792,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibXxf86vm() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibXxf86vm(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.1.7"
|
||||
checksum = "mS4cgKWrwz6M1Lb6Qu4ZVh8Xn2Ca_4HXPxr3LDad4iYY1LecZfeLUPW1hkp6amX_"
|
||||
)
|
||||
return t.NewPackage("libXxf86vm", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libXxf86vm", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxxf86vm",
|
||||
"libXxf86vm-"+version,
|
||||
@@ -558,7 +558,7 @@ func (t Toolchain) newLibXxf86vm() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibXxf86vm] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibXxf86vm,
|
||||
|
||||
Name: "libXxf86vm",
|
||||
@@ -570,15 +570,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1799,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibXrandr() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibXrandr(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.5.5"
|
||||
checksum = "OF7C7VC5MwnFue9UX5UnIkG1PIWvn9bBMq6d4mVyJJ_rcF0w4Kedn1lfxBsXEKAP"
|
||||
)
|
||||
return t.NewPackage("libXrandr", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libXrandr", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxrandr",
|
||||
"libXrandr-"+version,
|
||||
@@ -597,7 +597,7 @@ func (t Toolchain) newLibXrandr() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibXrandr] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibXrandr,
|
||||
|
||||
Name: "libXrandr",
|
||||
@@ -610,15 +610,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1788,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newFontUtil() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newFontUtil(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.4.2"
|
||||
checksum = "YWiaIxkq-N2yNdbGa_RF1S0UkQq6xsgoRT73WZP2DOmyH_CJ0TAkpQjId657MQmh"
|
||||
)
|
||||
return t.NewPackage("font-util", version, newFromGitLab(
|
||||
return s.NewPackage(t, "font-util", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/font/util",
|
||||
"font-util-"+version,
|
||||
@@ -634,7 +634,7 @@ func (t Toolchain) newFontUtil() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[FontUtil] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newFontUtil,
|
||||
|
||||
Name: "font-util",
|
||||
@@ -642,15 +642,15 @@ func init() {
|
||||
Website: "https://gitlab.freedesktop.org/xorg/font/util",
|
||||
|
||||
ID: 15055,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibfontenc() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibfontenc(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.1.9"
|
||||
checksum = "XqosXfbVwaoYzG9vVyRCl3eatwjASoJdLZsxQ37NN8S_jTyqNmbxpRSJGImJj7RS"
|
||||
)
|
||||
return t.NewPackage("libfontenc", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libfontenc", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libfontenc",
|
||||
"libfontenc-"+version,
|
||||
@@ -668,7 +668,7 @@ func (t Toolchain) newLibfontenc() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libfontenc] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibfontenc,
|
||||
|
||||
Name: "libfontenc",
|
||||
@@ -676,15 +676,15 @@ func init() {
|
||||
Website: "https://gitlab.freedesktop.org/xorg/lib/libfontenc",
|
||||
|
||||
ID: 1613,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibxkbfile() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxkbfile(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.2.0"
|
||||
checksum = "WUtph1ab0AyATahlwljchBxZJcpjYrjyhCK9DW2VO0uXEXaN22GWmUaibcA83i_B"
|
||||
)
|
||||
return t.NewPackage("libxkbfile", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libxkbfile", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxkbfile",
|
||||
"libxkbfile-"+version,
|
||||
@@ -694,7 +694,7 @@ func (t Toolchain) newLibxkbfile() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libxkbfile] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxkbfile,
|
||||
|
||||
Name: "libxkbfile",
|
||||
@@ -706,15 +706,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1781,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newXkbcomp() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newXkbcomp(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.5.0"
|
||||
checksum = "ttICW8ZPbljI-nw2kknvxFhwFoDK40iAMBeZDLAHYsHf3B6UPO_zc9TpzZYRRyZH"
|
||||
)
|
||||
return t.NewPackage("xkbcomp", version, newFromGitLab(
|
||||
return s.NewPackage(t, "xkbcomp", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/app/xkbcomp",
|
||||
"xkbcomp-"+version,
|
||||
@@ -732,7 +732,7 @@ func (t Toolchain) newXkbcomp() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Xkbcomp] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newXkbcomp,
|
||||
|
||||
Name: "xkbcomp",
|
||||
@@ -744,15 +744,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 15018,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibXfont2() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibXfont2(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.0.7"
|
||||
checksum = "jv9BZNA02493KB8j1lfAErF5SA3ZFcAhm3_UVJ--Bp1maz-vNprl_wXpkHApBi9M"
|
||||
)
|
||||
return t.NewPackage("libXfont2", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libXfont2", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxfont",
|
||||
"libXfont2-"+version,
|
||||
@@ -772,7 +772,7 @@ func (t Toolchain) newLibXfont2() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibXfont2] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibXfont2,
|
||||
|
||||
Name: "libXfont2",
|
||||
@@ -785,15 +785,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 17165,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibxcvt() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibxcvt(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.1.3"
|
||||
checksum = "IfIA7SxlHMWh681e1AgYmZcRAfkZd5LlzmqcMRifNY5nNVRrUx_wnoaidAv0Yu03"
|
||||
)
|
||||
return t.NewPackage("libxcvt", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libxcvt", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxcvt",
|
||||
"libxcvt-"+version,
|
||||
@@ -801,7 +801,7 @@ func (t Toolchain) newLibxcvt() (pkg.Artifact, string) {
|
||||
), nil, (*MesonHelper)(nil)), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libxcvt] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibxcvt,
|
||||
|
||||
Name: "libxcvt",
|
||||
@@ -809,15 +809,15 @@ func init() {
|
||||
Website: "https://gitlab.freedesktop.org/xorg/lib/libxcvt",
|
||||
|
||||
ID: 235147,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibXdmcp() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibXdmcp(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.1.5"
|
||||
checksum = "N6AJSv9pmeBedFn8KuSIOUGvTken4rkypNWVE2KfPlliwkfIbhfXrt5YHZkBMUHp"
|
||||
)
|
||||
return t.NewPackage("libXdmcp", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libXdmcp", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libxdmcp",
|
||||
"libXdmcp-"+version,
|
||||
@@ -834,7 +834,7 @@ func (t Toolchain) newLibXdmcp() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[LibXdmcp] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibXdmcp,
|
||||
|
||||
Name: "libXdmcp",
|
||||
@@ -842,15 +842,15 @@ func init() {
|
||||
Website: "https://gitlab.freedesktop.org/xorg/lib/libxdmcp",
|
||||
|
||||
ID: 1772,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newXkeyboardConfig() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newXkeyboardConfig(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "2.47"
|
||||
checksum = "E03PsPIaRrxPAuKgDGSQyPiJB49wXtyyvdV0lVx3_G-pelMMlaFLkoTDHTHG_qgA"
|
||||
)
|
||||
return t.NewPackage("xkeyboard-config", version, newFromGitLab(
|
||||
return s.NewPackage(t, "xkeyboard-config", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xkeyboard-config/xkeyboard-config",
|
||||
"xkeyboard-config-"+version,
|
||||
@@ -860,7 +860,7 @@ func (t Toolchain) newXkeyboardConfig() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[XkeyboardConfig] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newXkeyboardConfig,
|
||||
|
||||
Name: "xkeyboard-config",
|
||||
@@ -868,15 +868,15 @@ func init() {
|
||||
Website: "https://www.freedesktop.org/wiki/Software/XKeyboardConfig/",
|
||||
|
||||
ID: 5191,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newLibpciaccess() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newLibpciaccess(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "0.19"
|
||||
checksum = "84H0c_U_7fMqo81bpuwyXGXtk4XvvFH_YK00UiOriv3YGsuAhmbo2IkFhmJnvu2x"
|
||||
)
|
||||
return t.NewPackage("libpciaccess", version, newFromGitLab(
|
||||
return s.NewPackage(t, "libpciaccess", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/lib/libpciaccess",
|
||||
"libpciaccess-"+version,
|
||||
@@ -888,7 +888,7 @@ func (t Toolchain) newLibpciaccess() (pkg.Artifact, string) {
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Libpciaccess] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newLibpciaccess,
|
||||
|
||||
Name: "libpciaccess",
|
||||
@@ -900,15 +900,15 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 1703,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t Toolchain) newXserver() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newXserver(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "21.1.22"
|
||||
checksum = "prLT2wKecBu5m9w1ThgIt0GvenNpjKXoOyvTiMA1oQTlP0QHh6QiWsdvH3OmUwNo"
|
||||
)
|
||||
return t.NewPackage("xserver", version, newFromGitLab(
|
||||
return s.NewPackage(t, "xserver", version, newFromGitLab(
|
||||
"gitlab.freedesktop.org",
|
||||
"xorg/xserver",
|
||||
"xorg-server-"+version,
|
||||
@@ -955,7 +955,7 @@ func (t Toolchain) newXserver() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Xserver] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newXserver,
|
||||
|
||||
Name: "xserver",
|
||||
@@ -984,5 +984,5 @@ func init() {
|
||||
},
|
||||
|
||||
ID: 5250,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newXZ() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newXZ(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "5.8.3"
|
||||
checksum = "nCdayphPGdIdVoAZ2hR4vYlhDG9LeVKho_i7ealTud4Vxy5o5dWe0VwFlN7utuUL"
|
||||
)
|
||||
return t.NewPackage("xz", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "xz", version, newFromGitHubRelease(
|
||||
"tukaani-project/xz",
|
||||
"v"+version,
|
||||
"xz-"+version+".tar.bz2",
|
||||
@@ -18,7 +18,7 @@ func (t Toolchain) newXZ() (pkg.Artifact, string) {
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[XZ] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newXZ,
|
||||
|
||||
Name: "xz",
|
||||
@@ -26,5 +26,5 @@ func init() {
|
||||
Website: "https://tukaani.org/xz/",
|
||||
|
||||
ID: 5277,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newZlib() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newZlib(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.3.2"
|
||||
checksum = "KHZrePe42vL2XvOUE3KlJkp1UgWhWkl0jjT_BOvFhuM4GzieEH9S7CioepOFVGYB"
|
||||
)
|
||||
return t.NewPackage("zlib", version, newTar(
|
||||
return s.NewPackage(t, "zlib", version, newTar(
|
||||
"https://www.zlib.net/fossils/zlib-"+version+".tar.gz",
|
||||
checksum,
|
||||
pkg.TarGzip,
|
||||
@@ -28,7 +28,7 @@ func (t Toolchain) newZlib() (pkg.Artifact, string) {
|
||||
}), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Zlib] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newZlib,
|
||||
|
||||
Name: "zlib",
|
||||
@@ -36,5 +36,5 @@ func init() {
|
||||
Website: "https://zlib.net/",
|
||||
|
||||
ID: 5303,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newZstd() (pkg.Artifact, string) {
|
||||
func (t Toolchain) newZstd(s *S) (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "1.5.7"
|
||||
checksum = "4XhfR7DwVkwo1R-TmYDAJOcx9YXv9WSFhcFUe3hWEAMmdMLPhFaznCqYIA19_xxV"
|
||||
)
|
||||
return t.NewPackage("zstd", version, newFromGitHubRelease(
|
||||
return s.NewPackage(t, "zstd", version, newFromGitHubRelease(
|
||||
"facebook/zstd",
|
||||
"v"+version,
|
||||
"zstd-"+version+".tar.gz",
|
||||
@@ -29,7 +29,7 @@ ZSTD_BIN=/cure/programs/zstd /usr/src/zstd/tests/playTests.sh
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
artifactsM[Zstd] = Metadata{
|
||||
native.MustRegister(&Artifact{
|
||||
f: Toolchain.newZstd,
|
||||
|
||||
Name: "zstd",
|
||||
@@ -37,5 +37,5 @@ func init() {
|
||||
Website: "https://facebook.github.io/zstd/",
|
||||
|
||||
ID: 12083,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user