forked from rosa/hakurei
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
b208af8b85
|
|||
|
8d650c0c8f
|
|||
|
a720efc32d
|
|||
|
400540cd41
|
|||
|
1113efa5c2
|
|||
|
8b875f865c
|
|||
|
8905d653ba
|
|||
|
9c2fb6246f
|
|||
|
9c116acec6
|
|||
|
988239a2bc
|
|||
|
bc03118142
|
|||
|
74c213264a
|
|||
|
345cffddc2
|
|||
|
49163758c8
|
|||
|
ad22c15fb1
|
|||
|
9c774f7e0a
|
|||
|
707f0a349f
|
|||
|
7c35be066a
|
|||
|
f91d55fa5e
|
|||
|
5862cc1966
|
|||
|
b3f0360a05
|
|||
|
8938994036
|
|||
|
96d382f805
|
|||
|
5c785c135c
|
|||
|
0130f8ea6d
|
|||
|
faac5c4a83
|
@@ -1,5 +1,5 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://git.gensokyo.uk/security/hakurei">
|
<a href="https://git.gensokyo.uk/rosa/hakurei">
|
||||||
<picture>
|
<picture>
|
||||||
<img src="https://basement.gensokyo.uk/images/yukari1.png" width="200px" alt="Yukari">
|
<img src="https://basement.gensokyo.uk/images/yukari1.png" width="200px" alt="Yukari">
|
||||||
</picture>
|
</picture>
|
||||||
@@ -8,16 +8,16 @@
|
|||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://pkg.go.dev/hakurei.app"><img src="https://pkg.go.dev/badge/hakurei.app.svg" alt="Go Reference" /></a>
|
<a href="https://pkg.go.dev/hakurei.app"><img src="https://pkg.go.dev/badge/hakurei.app.svg" alt="Go Reference" /></a>
|
||||||
<a href="https://git.gensokyo.uk/security/hakurei/actions"><img src="https://git.gensokyo.uk/security/hakurei/actions/workflows/test.yml/badge.svg?branch=staging&style=flat-square" alt="Gitea Workflow Status" /></a>
|
<a href="https://git.gensokyo.uk/rosa/hakurei/actions"><img src="https://git.gensokyo.uk/rosa/hakurei/actions/workflows/test.yml/badge.svg?branch=staging&style=flat-square" alt="Gitea Workflow Status" /></a>
|
||||||
<br/>
|
<br/>
|
||||||
<a href="https://git.gensokyo.uk/security/hakurei/releases"><img src="https://img.shields.io/gitea/v/release/security/hakurei?gitea_url=https%3A%2F%2Fgit.gensokyo.uk&color=purple" alt="Release" /></a>
|
<a href="https://git.gensokyo.uk/rosa/hakurei/releases"><img src="https://img.shields.io/gitea/v/release/rosa/hakurei?gitea_url=https%3A%2F%2Fgit.gensokyo.uk&color=purple" alt="Release" /></a>
|
||||||
<a href="https://goreportcard.com/report/hakurei.app"><img src="https://goreportcard.com/badge/hakurei.app" alt="Go Report Card" /></a>
|
<a href="https://goreportcard.com/report/hakurei.app"><img src="https://goreportcard.com/badge/hakurei.app" alt="Go Report Card" /></a>
|
||||||
<a href="https://hakurei.app"><img src="https://img.shields.io/website?url=https%3A%2F%2Fhakurei.app" alt="Website" /></a>
|
<a href="https://hakurei.app"><img src="https://img.shields.io/website?url=https%3A%2F%2Fhakurei.app" alt="Website" /></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
Hakurei is a tool for running sandboxed desktop applications as dedicated
|
Hakurei is a tool for running sandboxed desktop applications as dedicated
|
||||||
subordinate users on the Linux kernel. It implements the application container
|
subordinate users on the Linux kernel. It implements the application container
|
||||||
of [planterette (WIP)](https://git.gensokyo.uk/security/planterette), a
|
of [planterette (WIP)](https://git.gensokyo.uk/rosa/planterette), a
|
||||||
self-contained Android-like package manager with modern security features.
|
self-contained Android-like package manager with modern security features.
|
||||||
|
|
||||||
Interaction with hakurei happens entirely through structures described by
|
Interaction with hakurei happens entirely through structures described by
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"strings"
|
||||||
. "syscall"
|
. "syscall"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -12,6 +13,22 @@ func main() {
|
|||||||
log.SetFlags(0)
|
log.SetFlags(0)
|
||||||
log.SetPrefix("earlyinit: ")
|
log.SetPrefix("earlyinit: ")
|
||||||
|
|
||||||
|
var (
|
||||||
|
option map[string]string
|
||||||
|
flags []string
|
||||||
|
)
|
||||||
|
if len(os.Args) > 1 {
|
||||||
|
option = make(map[string]string)
|
||||||
|
for _, s := range os.Args[1:] {
|
||||||
|
key, value, ok := strings.Cut(s, "=")
|
||||||
|
if !ok {
|
||||||
|
flags = append(flags, s)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
option[key] = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err := Mount(
|
if err := Mount(
|
||||||
"devtmpfs",
|
"devtmpfs",
|
||||||
"/dev/",
|
"/dev/",
|
||||||
@@ -55,4 +72,56 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// staying in rootfs, these are no longer used
|
||||||
|
must(os.Remove("/root"))
|
||||||
|
must(os.Remove("/init"))
|
||||||
|
|
||||||
|
must(os.Mkdir("/proc", 0))
|
||||||
|
mustSyscall("mount proc", Mount(
|
||||||
|
"proc",
|
||||||
|
"/proc",
|
||||||
|
"proc",
|
||||||
|
MS_NOSUID|MS_NOEXEC|MS_NODEV,
|
||||||
|
"hidepid=1",
|
||||||
|
))
|
||||||
|
|
||||||
|
must(os.Mkdir("/sys", 0))
|
||||||
|
mustSyscall("mount sysfs", Mount(
|
||||||
|
"sysfs",
|
||||||
|
"/sys",
|
||||||
|
"sysfs",
|
||||||
|
0,
|
||||||
|
"",
|
||||||
|
))
|
||||||
|
|
||||||
|
// after top level has been set up
|
||||||
|
mustSyscall("remount root", Mount(
|
||||||
|
"",
|
||||||
|
"/",
|
||||||
|
"",
|
||||||
|
MS_REMOUNT|MS_BIND|
|
||||||
|
MS_RDONLY|MS_NODEV|MS_NOSUID|MS_NOEXEC,
|
||||||
|
"",
|
||||||
|
))
|
||||||
|
|
||||||
|
must(os.WriteFile(
|
||||||
|
"/sys/module/firmware_class/parameters/path",
|
||||||
|
[]byte("/system/lib/firmware"),
|
||||||
|
0,
|
||||||
|
))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// mustSyscall calls [log.Fatalln] if err is non-nil.
|
||||||
|
func mustSyscall(action string, err error) {
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalln("cannot "+action+":", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// must calls [log.Fatal] with err if it is non-nil.
|
||||||
|
func must(err error) {
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,6 +175,17 @@ func main() {
|
|||||||
fmt.Println("website : " +
|
fmt.Println("website : " +
|
||||||
strings.TrimSuffix(meta.Website, "/"))
|
strings.TrimSuffix(meta.Website, "/"))
|
||||||
}
|
}
|
||||||
|
if len(meta.Dependencies) > 0 {
|
||||||
|
fmt.Print("depends on :")
|
||||||
|
for _, d := range meta.Dependencies {
|
||||||
|
s := rosa.GetMetadata(d).Name
|
||||||
|
if version := rosa.Std.Version(d); version != rosa.Unversioned {
|
||||||
|
s += "-" + version
|
||||||
|
}
|
||||||
|
fmt.Print(" " + s)
|
||||||
|
}
|
||||||
|
fmt.Println()
|
||||||
|
}
|
||||||
|
|
||||||
const statusPrefix = "status : "
|
const statusPrefix = "status : "
|
||||||
if flagStatus {
|
if flagStatus {
|
||||||
@@ -424,6 +435,7 @@ func main() {
|
|||||||
{
|
{
|
||||||
var (
|
var (
|
||||||
flagDump string
|
flagDump string
|
||||||
|
flagExport string
|
||||||
)
|
)
|
||||||
c.NewCommand(
|
c.NewCommand(
|
||||||
"cure",
|
"cure",
|
||||||
@@ -436,10 +448,34 @@ func main() {
|
|||||||
return fmt.Errorf("unknown artifact %q", args[0])
|
return fmt.Errorf("unknown artifact %q", args[0])
|
||||||
} else if flagDump == "" {
|
} else if flagDump == "" {
|
||||||
pathname, _, err := cache.Cure(rosa.Std.Load(p))
|
pathname, _, err := cache.Cure(rosa.Std.Load(p))
|
||||||
if err == nil {
|
if err != nil {
|
||||||
log.Println(pathname)
|
|
||||||
}
|
|
||||||
return err
|
return err
|
||||||
|
}
|
||||||
|
log.Println(pathname)
|
||||||
|
|
||||||
|
if flagExport != "" {
|
||||||
|
msg.Verbosef("exporting %s to %s...", args[0], flagExport)
|
||||||
|
|
||||||
|
var f *os.File
|
||||||
|
if f, err = os.OpenFile(
|
||||||
|
flagExport,
|
||||||
|
os.O_WRONLY|os.O_CREATE|os.O_EXCL,
|
||||||
|
0400,
|
||||||
|
); err != nil {
|
||||||
|
return err
|
||||||
|
} else if _, err = pkg.Flatten(
|
||||||
|
os.DirFS(pathname.String()),
|
||||||
|
".",
|
||||||
|
f,
|
||||||
|
); err != nil {
|
||||||
|
_ = f.Close()
|
||||||
|
return err
|
||||||
|
} else if err = f.Close(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
} else {
|
} else {
|
||||||
f, err := os.OpenFile(
|
f, err := os.OpenFile(
|
||||||
flagDump,
|
flagDump,
|
||||||
@@ -463,6 +499,11 @@ func main() {
|
|||||||
&flagDump,
|
&flagDump,
|
||||||
"dump", command.StringFlag(""),
|
"dump", command.StringFlag(""),
|
||||||
"Write IR to specified pathname and terminate",
|
"Write IR to specified pathname and terminate",
|
||||||
|
).
|
||||||
|
Flag(
|
||||||
|
&flagExport,
|
||||||
|
"export", command.StringFlag(""),
|
||||||
|
"Export cured artifact to specified pathname",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -477,17 +518,19 @@ func main() {
|
|||||||
"shell",
|
"shell",
|
||||||
"Interactive shell in the specified Rosa OS environment",
|
"Interactive shell in the specified Rosa OS environment",
|
||||||
func(args []string) error {
|
func(args []string) error {
|
||||||
root := make([]pkg.Artifact, 0, 6+len(args))
|
presets := make([]rosa.PArtifact, len(args))
|
||||||
for _, arg := range args {
|
for i, arg := range args {
|
||||||
p, ok := rosa.ResolveName(arg)
|
p, ok := rosa.ResolveName(arg)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("unknown artifact %q", arg)
|
return fmt.Errorf("unknown artifact %q", arg)
|
||||||
}
|
}
|
||||||
root = append(root, rosa.Std.Load(p))
|
presets[i] = p
|
||||||
}
|
}
|
||||||
|
root := make(rosa.Collect, 0, 6+len(args))
|
||||||
|
root = rosa.Std.AppendPresets(root, presets...)
|
||||||
|
|
||||||
if flagWithToolchain {
|
if flagWithToolchain {
|
||||||
musl, compilerRT, runtimes, clang := rosa.Std.NewLLVM()
|
musl, compilerRT, runtimes, clang := (rosa.Std - 1).NewLLVM()
|
||||||
root = append(root, musl, compilerRT, runtimes, clang)
|
root = append(root, musl, compilerRT, runtimes, clang)
|
||||||
} else {
|
} else {
|
||||||
root = append(root, rosa.Std.Load(rosa.Musl))
|
root = append(root, rosa.Std.Load(rosa.Musl))
|
||||||
@@ -497,6 +540,12 @@ func main() {
|
|||||||
rosa.Std.Load(rosa.Toybox),
|
rosa.Std.Load(rosa.Toybox),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if _, _, err := cache.Cure(&root); err == nil {
|
||||||
|
return errors.New("unreachable")
|
||||||
|
} else if !errors.Is(err, rosa.Collected{}) {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
type cureRes struct {
|
type cureRes struct {
|
||||||
pathname *check.Absolute
|
pathname *check.Absolute
|
||||||
checksum unique.Handle[pkg.Checksum]
|
checksum unique.Handle[pkg.Checksum]
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ type Config struct {
|
|||||||
//
|
//
|
||||||
// Do not set this to true, it is insecure under any configuration.
|
// Do not set this to true, it is insecure under any configuration.
|
||||||
//
|
//
|
||||||
// [the /.flatpak-info hack]: https://git.gensokyo.uk/security/hakurei/issues/21
|
// [the /.flatpak-info hack]: https://git.gensokyo.uk/rosa/hakurei/issues/21
|
||||||
DirectPipeWire bool `json:"direct_pipewire,omitempty"`
|
DirectPipeWire bool `json:"direct_pipewire,omitempty"`
|
||||||
|
|
||||||
// Direct access to PulseAudio socket, no attempt is made to establish
|
// Direct access to PulseAudio socket, no attempt is made to establish
|
||||||
|
|||||||
@@ -101,6 +101,10 @@ func init() {
|
|||||||
Description: "Commands for Manipulating POSIX Access Control Lists",
|
Description: "Commands for Manipulating POSIX Access Control Lists",
|
||||||
Website: "https://savannah.nongnu.org/projects/acl/",
|
Website: "https://savannah.nongnu.org/projects/acl/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Attr,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 16,
|
ID: 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
@@ -19,8 +20,10 @@ const (
|
|||||||
LLVMRuntimes
|
LLVMRuntimes
|
||||||
LLVMClang
|
LLVMClang
|
||||||
|
|
||||||
// EarlyInit is the Rosa OS initramfs init program.
|
// EarlyInit is the Rosa OS init program.
|
||||||
EarlyInit
|
EarlyInit
|
||||||
|
// ImageSystem is the Rosa OS /system image.
|
||||||
|
ImageSystem
|
||||||
// ImageInitramfs is the Rosa OS initramfs archive.
|
// ImageInitramfs is the Rosa OS initramfs archive.
|
||||||
ImageInitramfs
|
ImageInitramfs
|
||||||
|
|
||||||
@@ -167,6 +170,36 @@ const (
|
|||||||
PresetEnd
|
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
|
// Metadata is stage-agnostic information of a [PArtifact] not directly
|
||||||
// representable in the resulting [pkg.Artifact].
|
// representable in the resulting [pkg.Artifact].
|
||||||
type Metadata struct {
|
type Metadata struct {
|
||||||
@@ -179,6 +212,9 @@ type Metadata struct {
|
|||||||
// Project home page.
|
// Project home page.
|
||||||
Website string `json:"website,omitempty"`
|
Website string `json:"website,omitempty"`
|
||||||
|
|
||||||
|
// Runtime dependencies.
|
||||||
|
Dependencies P `json:"dependencies"`
|
||||||
|
|
||||||
// Project identifier on [Anitya].
|
// Project identifier on [Anitya].
|
||||||
//
|
//
|
||||||
// [Anitya]: https://release-monitoring.org/
|
// [Anitya]: https://release-monitoring.org/
|
||||||
@@ -256,9 +292,10 @@ var (
|
|||||||
artifactsM [PresetEnd]Metadata
|
artifactsM [PresetEnd]Metadata
|
||||||
|
|
||||||
// artifacts stores the result of Metadata.f.
|
// artifacts stores the result of Metadata.f.
|
||||||
artifacts [_toolchainEnd][len(artifactsM)]pkg.Artifact
|
artifacts [_toolchainEnd][len(artifactsM)]struct {
|
||||||
// versions stores the version of [PArtifact].
|
a pkg.Artifact
|
||||||
versions [_toolchainEnd][len(artifactsM)]string
|
v string
|
||||||
|
}
|
||||||
// artifactsOnce is for lazy initialisation of artifacts.
|
// artifactsOnce is for lazy initialisation of artifacts.
|
||||||
artifactsOnce [_toolchainEnd][len(artifactsM)]sync.Once
|
artifactsOnce [_toolchainEnd][len(artifactsM)]sync.Once
|
||||||
)
|
)
|
||||||
@@ -266,20 +303,23 @@ var (
|
|||||||
// GetMetadata returns [Metadata] of a [PArtifact].
|
// GetMetadata returns [Metadata] of a [PArtifact].
|
||||||
func GetMetadata(p PArtifact) *Metadata { return &artifactsM[p] }
|
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].
|
// Load returns the resulting [pkg.Artifact] of [PArtifact].
|
||||||
func (t Toolchain) Load(p PArtifact) pkg.Artifact {
|
func (t Toolchain) Load(p PArtifact) pkg.Artifact {
|
||||||
artifactsOnce[t][p].Do(func() {
|
t.construct(p)
|
||||||
artifacts[t][p], versions[t][p] = artifactsM[p].f(t)
|
return artifacts[t][p].a
|
||||||
})
|
|
||||||
return artifacts[t][p]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Version returns the version string of [PArtifact].
|
// Version returns the version string of [PArtifact].
|
||||||
func (t Toolchain) Version(p PArtifact) string {
|
func (t Toolchain) Version(p PArtifact) string {
|
||||||
artifactsOnce[t][p].Do(func() {
|
t.construct(p)
|
||||||
artifacts[t][p], versions[t][p] = artifactsM[p].f(t)
|
return artifacts[t][p].v
|
||||||
})
|
|
||||||
return versions[t][p]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ResolveName returns a [PArtifact] by name.
|
// ResolveName returns a [PArtifact] by name.
|
||||||
|
|||||||
@@ -4,24 +4,48 @@ import "hakurei.app/internal/pkg"
|
|||||||
|
|
||||||
func (t Toolchain) newCurl() (pkg.Artifact, string) {
|
func (t Toolchain) newCurl() (pkg.Artifact, string) {
|
||||||
const (
|
const (
|
||||||
version = "8.18.0"
|
version = "8.19.0"
|
||||||
checksum = "YpOolP_sx1DIrCEJ3elgVAu0wTLDS-EZMZFvOP0eha7FaLueZUlEpuMwDzJNyi7i"
|
checksum = "YHuVLVVp8q_Y7-JWpID5ReNjq2Zk6t7ArHB6ngQXilp_R5l3cubdxu3UKo-xDByv"
|
||||||
)
|
)
|
||||||
return t.NewPackage("curl", version, pkg.NewHTTPGetTar(
|
return t.NewPackage("curl", version, pkg.NewHTTPGetTar(
|
||||||
nil, "https://curl.se/download/curl-"+version+".tar.bz2",
|
nil, "https://curl.se/download/curl-"+version+".tar.bz2",
|
||||||
mustDecode(checksum),
|
mustDecode(checksum),
|
||||||
pkg.TarBzip2,
|
pkg.TarBzip2,
|
||||||
), nil, &MakeHelper{
|
), &PackageAttr{
|
||||||
|
Patches: [][2]string{
|
||||||
|
{"test459-misplaced-line-break", `diff --git a/tests/data/test459 b/tests/data/test459
|
||||||
|
index 7a2e1db7b3..cc716aa65a 100644
|
||||||
|
--- a/tests/data/test459
|
||||||
|
+++ b/tests/data/test459
|
||||||
|
@@ -54,8 +54,8 @@ Content-Type: application/x-www-form-urlencoded
|
||||||
|
arg
|
||||||
|
</protocol>
|
||||||
|
<stderr mode="text">
|
||||||
|
-Warning: %LOGDIR/config:1 Option 'data' uses argument with unquoted whitespace.%SP
|
||||||
|
-Warning: This may cause side-effects. Consider double quotes.
|
||||||
|
+Warning: %LOGDIR/config:1 Option 'data' uses argument with unquoted%SP
|
||||||
|
+Warning: whitespace. This may cause side-effects. Consider double quotes.
|
||||||
|
</stderr>
|
||||||
|
</verify>
|
||||||
|
</testcase>
|
||||||
|
`},
|
||||||
|
},
|
||||||
|
}, &MakeHelper{
|
||||||
Configure: [][2]string{
|
Configure: [][2]string{
|
||||||
{"with-openssl"},
|
{"with-openssl"},
|
||||||
{"with-ca-bundle", "/system/etc/ssl/certs/ca-bundle.crt"},
|
{"with-ca-bundle", "/system/etc/ssl/certs/ca-bundle.crt"},
|
||||||
|
|
||||||
|
{"disable-smb"},
|
||||||
},
|
},
|
||||||
Check: []string{
|
Check: []string{
|
||||||
"TFLAGS=-j256",
|
`TFLAGS="-j$(expr "$(nproc)" '*' 2)"`,
|
||||||
"check",
|
"test-nonflaky",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Perl,
|
Perl,
|
||||||
|
Python,
|
||||||
|
PkgConfig,
|
||||||
|
Diffutils,
|
||||||
|
|
||||||
Libpsl,
|
Libpsl,
|
||||||
OpenSSL,
|
OpenSSL,
|
||||||
@@ -35,6 +59,11 @@ func init() {
|
|||||||
Description: "command line tool and library for transferring data with URLs",
|
Description: "command line tool and library for transferring data with URLs",
|
||||||
Website: "https://curl.se/",
|
Website: "https://curl.se/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Libpsl,
|
||||||
|
OpenSSL,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 381,
|
ID: 381,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,14 @@ func init() {
|
|||||||
Description: "utilities and libraries to handle ELF files and DWARF data",
|
Description: "utilities and libraries to handle ELF files and DWARF data",
|
||||||
Website: "https://sourceware.org/elfutils/",
|
Website: "https://sourceware.org/elfutils/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Zlib,
|
||||||
|
Bzip2,
|
||||||
|
Zstd,
|
||||||
|
MuslFts,
|
||||||
|
MuslObstack,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 5679,
|
ID: 5679,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,9 +36,6 @@ index f135ad9..85c784c 100644
|
|||||||
// makes assumptions about /etc/passwd
|
// makes assumptions about /etc/passwd
|
||||||
SkipCheck: true,
|
SkipCheck: true,
|
||||||
},
|
},
|
||||||
M4,
|
|
||||||
Perl,
|
|
||||||
Autoconf,
|
|
||||||
Automake,
|
Automake,
|
||||||
Libtool,
|
Libtool,
|
||||||
PkgConfig,
|
PkgConfig,
|
||||||
|
|||||||
@@ -24,10 +24,6 @@ func (t Toolchain) newFuse() (pkg.Artifact, string) {
|
|||||||
// this project uses pytest
|
// this project uses pytest
|
||||||
SkipTest: true,
|
SkipTest: true,
|
||||||
},
|
},
|
||||||
PythonIniConfig,
|
|
||||||
PythonPackaging,
|
|
||||||
PythonPluggy,
|
|
||||||
PythonPygments,
|
|
||||||
PythonPyTest,
|
PythonPyTest,
|
||||||
|
|
||||||
KernelHeaders,
|
KernelHeaders,
|
||||||
|
|||||||
@@ -52,16 +52,18 @@ disable_test t2200-add-update
|
|||||||
`GIT_PROVE_OPTS="--jobs 32 --failures"`,
|
`GIT_PROVE_OPTS="--jobs 32 --failures"`,
|
||||||
"prove",
|
"prove",
|
||||||
},
|
},
|
||||||
|
Install: `make \
|
||||||
|
"-j$(nproc)" \
|
||||||
|
DESTDIR=/work \
|
||||||
|
NO_INSTALL_HARDLINKS=1 \
|
||||||
|
install`,
|
||||||
},
|
},
|
||||||
Perl,
|
|
||||||
Diffutils,
|
Diffutils,
|
||||||
M4,
|
|
||||||
Autoconf,
|
Autoconf,
|
||||||
Gettext,
|
Gettext,
|
||||||
|
|
||||||
Zlib,
|
Zlib,
|
||||||
Curl,
|
Curl,
|
||||||
OpenSSL,
|
|
||||||
Libexpat,
|
Libexpat,
|
||||||
), version
|
), version
|
||||||
}
|
}
|
||||||
@@ -73,6 +75,12 @@ func init() {
|
|||||||
Description: "distributed version control system",
|
Description: "distributed version control system",
|
||||||
Website: "https://www.git-scm.com/",
|
Website: "https://www.git-scm.com/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Zlib,
|
||||||
|
Curl,
|
||||||
|
Libexpat,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 5350,
|
ID: 5350,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -82,14 +90,10 @@ func (t Toolchain) NewViaGit(
|
|||||||
name, url, rev string,
|
name, url, rev string,
|
||||||
checksum pkg.Checksum,
|
checksum pkg.Checksum,
|
||||||
) pkg.Artifact {
|
) pkg.Artifact {
|
||||||
return t.New(name+"-"+rev, 0, []pkg.Artifact{
|
return t.New(name+"-"+rev, 0, t.AppendPresets(nil,
|
||||||
t.Load(NSSCACert),
|
NSSCACert,
|
||||||
t.Load(OpenSSL),
|
Git,
|
||||||
t.Load(Libpsl),
|
), &checksum, nil, `
|
||||||
t.Load(Curl),
|
|
||||||
t.Load(Libexpat),
|
|
||||||
t.Load(Git),
|
|
||||||
}, &checksum, nil, `
|
|
||||||
git \
|
git \
|
||||||
-c advice.detachedHead=false \
|
-c advice.detachedHead=false \
|
||||||
clone \
|
clone \
|
||||||
|
|||||||
@@ -117,6 +117,11 @@ func init() {
|
|||||||
Description: "M4 macros to produce self-contained configure script",
|
Description: "M4 macros to produce self-contained configure script",
|
||||||
Website: "https://www.gnu.org/software/autoconf/",
|
Website: "https://www.gnu.org/software/autoconf/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
M4,
|
||||||
|
Perl,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 141,
|
ID: 141,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -143,8 +148,6 @@ test_disable '#!/bin/sh' t/distname.sh
|
|||||||
test_disable '#!/bin/sh' t/pr9.sh
|
test_disable '#!/bin/sh' t/pr9.sh
|
||||||
`,
|
`,
|
||||||
}, (*MakeHelper)(nil),
|
}, (*MakeHelper)(nil),
|
||||||
M4,
|
|
||||||
Perl,
|
|
||||||
Grep,
|
Grep,
|
||||||
Gzip,
|
Gzip,
|
||||||
Autoconf,
|
Autoconf,
|
||||||
@@ -159,6 +162,10 @@ func init() {
|
|||||||
Description: "a tool for automatically generating Makefile.in files",
|
Description: "a tool for automatically generating Makefile.in files",
|
||||||
Website: "https://www.gnu.org/software/automake/",
|
Website: "https://www.gnu.org/software/automake/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Autoconf,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 144,
|
ID: 144,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -524,6 +531,11 @@ func init() {
|
|||||||
Description: "the GNU square-wheel-reinvension of man pages",
|
Description: "the GNU square-wheel-reinvension of man pages",
|
||||||
Website: "https://www.gnu.org/software/texinfo/",
|
Website: "https://www.gnu.org/software/texinfo/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Perl,
|
||||||
|
Gawk,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 4958,
|
ID: 4958,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -660,7 +672,6 @@ func (t Toolchain) newBC() (pkg.Artifact, string) {
|
|||||||
Writable: true,
|
Writable: true,
|
||||||
Chmod: true,
|
Chmod: true,
|
||||||
}, (*MakeHelper)(nil),
|
}, (*MakeHelper)(nil),
|
||||||
Perl,
|
|
||||||
Texinfo,
|
Texinfo,
|
||||||
), version
|
), version
|
||||||
}
|
}
|
||||||
@@ -762,6 +773,10 @@ func init() {
|
|||||||
Description: "a shell tool for executing jobs in parallel using one or more computers",
|
Description: "a shell tool for executing jobs in parallel using one or more computers",
|
||||||
Website: "https://www.gnu.org/software/parallel/",
|
Website: "https://www.gnu.org/software/parallel/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Perl,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 5448,
|
ID: 5448,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -839,6 +854,10 @@ func init() {
|
|||||||
Description: "a C library for multiple-precision floating-point computations",
|
Description: "a C library for multiple-precision floating-point computations",
|
||||||
Website: "https://www.mpfr.org/",
|
Website: "https://www.mpfr.org/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
GMP,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 2019,
|
ID: 2019,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -854,7 +873,6 @@ func (t Toolchain) newMPC() (pkg.Artifact, string) {
|
|||||||
mustDecode(checksum),
|
mustDecode(checksum),
|
||||||
pkg.TarGzip,
|
pkg.TarGzip,
|
||||||
), nil, (*MakeHelper)(nil),
|
), nil, (*MakeHelper)(nil),
|
||||||
GMP,
|
|
||||||
MPFR,
|
MPFR,
|
||||||
), version
|
), version
|
||||||
}
|
}
|
||||||
@@ -866,6 +884,10 @@ func init() {
|
|||||||
Description: "a C library for the arithmetic of complex numbers",
|
Description: "a C library for the arithmetic of complex numbers",
|
||||||
Website: "https://www.multiprecision.org/",
|
Website: "https://www.multiprecision.org/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
MPFR,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 1667,
|
ID: 1667,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1063,10 +1085,7 @@ ln -s system/lib /work/
|
|||||||
},
|
},
|
||||||
Binutils,
|
Binutils,
|
||||||
|
|
||||||
GMP,
|
|
||||||
MPFR,
|
|
||||||
MPC,
|
MPC,
|
||||||
|
|
||||||
Zlib,
|
Zlib,
|
||||||
Libucontext,
|
Libucontext,
|
||||||
KernelHeaders,
|
KernelHeaders,
|
||||||
@@ -1080,6 +1099,14 @@ func init() {
|
|||||||
Description: "The GNU Compiler Collection",
|
Description: "The GNU Compiler Collection",
|
||||||
Website: "https://www.gnu.org/software/gcc/",
|
Website: "https://www.gnu.org/software/gcc/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Binutils,
|
||||||
|
|
||||||
|
MPC,
|
||||||
|
Zlib,
|
||||||
|
Libucontext,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 6502,
|
ID: 6502,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,22 +74,8 @@ func (t Toolchain) newGoLatest() (pkg.Artifact, string) {
|
|||||||
bootstrapExtra = append(bootstrapExtra, t.newGoBootstrap())
|
bootstrapExtra = append(bootstrapExtra, t.newGoBootstrap())
|
||||||
|
|
||||||
case "arm64":
|
case "arm64":
|
||||||
bootstrapEnv = append(bootstrapEnv,
|
bootstrapEnv = append(bootstrapEnv, "GOROOT_BOOTSTRAP=/system")
|
||||||
"GOROOT_BOOTSTRAP=/system",
|
bootstrapExtra = t.AppendPresets(bootstrapExtra, gcc)
|
||||||
)
|
|
||||||
bootstrapExtra = append(bootstrapExtra,
|
|
||||||
t.Load(Binutils),
|
|
||||||
|
|
||||||
t.Load(GMP),
|
|
||||||
t.Load(MPFR),
|
|
||||||
t.Load(MPC),
|
|
||||||
|
|
||||||
t.Load(Zlib),
|
|
||||||
t.Load(Libucontext),
|
|
||||||
|
|
||||||
t.Load(gcc),
|
|
||||||
)
|
|
||||||
|
|
||||||
finalEnv = append(finalEnv, "CGO_ENABLED=0")
|
finalEnv = append(finalEnv, "CGO_ENABLED=0")
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import (
|
|||||||
|
|
||||||
func (t Toolchain) newGLib() (pkg.Artifact, string) {
|
func (t Toolchain) newGLib() (pkg.Artifact, string) {
|
||||||
const (
|
const (
|
||||||
version = "2.87.3"
|
version = "2.87.5"
|
||||||
checksum = "iKSLpzZZVfmAZZmqfO1y6uHdlIks4hzPWrqeUCp4ZeQjrPFA3aAa4OmrBYMNS-Si"
|
checksum = "L5jurSfyCTlcSTfx-1RBHbNZPL0HnNQakmFXidgAV1JFu0lbytowCCBAALTp-WGc"
|
||||||
)
|
)
|
||||||
return t.NewPackage("glib", version, pkg.NewHTTPGet(
|
return t.NewPackage("glib", version, pkg.NewHTTPGet(
|
||||||
nil, "https://download.gnome.org/sources/glib/"+
|
nil, "https://download.gnome.org/sources/glib/"+
|
||||||
@@ -56,6 +56,12 @@ func init() {
|
|||||||
Description: "the GNU library of miscellaneous stuff",
|
Description: "the GNU library of miscellaneous stuff",
|
||||||
Website: "https://developer.gnome.org/glib/",
|
Website: "https://developer.gnome.org/glib/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
PCRE2,
|
||||||
|
Libffi,
|
||||||
|
Zlib,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 10024,
|
ID: 10024,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,29 +15,23 @@ echo
|
|||||||
hostname = ""
|
hostname = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
return t.New("hakurei"+suffix+"-"+hakureiVersion, 0, []pkg.Artifact{
|
return t.New("hakurei"+suffix+"-"+hakureiVersion, 0, t.AppendPresets(nil,
|
||||||
t.Load(Go),
|
Go,
|
||||||
|
PkgConfig,
|
||||||
|
|
||||||
t.Load(Gzip),
|
// dist tarball
|
||||||
t.Load(PkgConfig),
|
Gzip,
|
||||||
|
|
||||||
t.Load(KernelHeaders),
|
// statically linked
|
||||||
t.Load(Libseccomp),
|
Libseccomp,
|
||||||
t.Load(ACL),
|
ACL,
|
||||||
t.Load(Attr),
|
Fuse,
|
||||||
t.Load(Fuse),
|
XCB,
|
||||||
|
Wayland,
|
||||||
|
WaylandProtocols,
|
||||||
|
|
||||||
t.Load(Xproto),
|
KernelHeaders,
|
||||||
t.Load(LibXau),
|
), nil, []string{
|
||||||
t.Load(XCBProto),
|
|
||||||
t.Load(XCB),
|
|
||||||
|
|
||||||
t.Load(Libffi),
|
|
||||||
t.Load(Libexpat),
|
|
||||||
t.Load(Libxml2),
|
|
||||||
t.Load(Wayland),
|
|
||||||
t.Load(WaylandProtocols),
|
|
||||||
}, nil, []string{
|
|
||||||
"CGO_ENABLED=1",
|
"CGO_ENABLED=1",
|
||||||
"GOCACHE=/tmp/gocache",
|
"GOCACHE=/tmp/gocache",
|
||||||
"CC=clang -O3 -Werror",
|
"CC=clang -O3 -Werror",
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package rosa
|
package rosa
|
||||||
|
|
||||||
import "hakurei.app/internal/pkg"
|
import (
|
||||||
|
"hakurei.app/container/fhs"
|
||||||
|
"hakurei.app/internal/pkg"
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
artifactsM[EarlyInit] = Metadata{
|
artifactsM[EarlyInit] = Metadata{
|
||||||
@@ -24,12 +27,36 @@ echo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t Toolchain) newImageSystem() (pkg.Artifact, string) {
|
||||||
|
return t.New("system.img", TNoToolchain, t.AppendPresets(nil,
|
||||||
|
SquashfsTools,
|
||||||
|
), nil, nil, `
|
||||||
|
mksquashfs /mnt/system /work/system.img
|
||||||
|
`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.AppendPresets(nil,
|
||||||
|
Musl,
|
||||||
|
Mksh,
|
||||||
|
Toybox,
|
||||||
|
|
||||||
|
Kmod,
|
||||||
|
Kernel,
|
||||||
|
Firmware,
|
||||||
|
)...)), Unversioned
|
||||||
|
}
|
||||||
|
func init() {
|
||||||
|
artifactsM[ImageSystem] = Metadata{
|
||||||
|
Name: "system-image",
|
||||||
|
Description: "Rosa OS system image",
|
||||||
|
|
||||||
|
f: Toolchain.newImageSystem,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (t Toolchain) newImageInitramfs() (pkg.Artifact, string) {
|
func (t Toolchain) newImageInitramfs() (pkg.Artifact, string) {
|
||||||
return t.New("initramfs", TNoToolchain, []pkg.Artifact{
|
return t.New("initramfs", TNoToolchain, t.AppendPresets(nil,
|
||||||
t.Load(Zstd),
|
Zstd,
|
||||||
t.Load(EarlyInit),
|
EarlyInit,
|
||||||
t.Load(GenInitCPIO),
|
GenInitCPIO,
|
||||||
}, nil, nil, `
|
), nil, nil, `
|
||||||
gen_init_cpio -t 4294967295 -c /usr/src/initramfs | zstd > /work/initramfs.zst
|
gen_init_cpio -t 4294967295 -c /usr/src/initramfs | zstd > /work/initramfs.zst
|
||||||
`, pkg.Path(AbsUsrSrc.Append("initramfs"), false, pkg.NewFile("initramfs", []byte(`
|
`, pkg.Path(AbsUsrSrc.Append("initramfs"), false, pkg.NewFile("initramfs", []byte(`
|
||||||
dir /dev 0755 0 0
|
dir /dev 0755 0 0
|
||||||
|
|||||||
@@ -1246,13 +1246,9 @@ rm -v /work/system/lib/modules/` + kernelVersion + `/build
|
|||||||
Python,
|
Python,
|
||||||
|
|
||||||
XZ,
|
XZ,
|
||||||
Zlib,
|
|
||||||
Gzip,
|
Gzip,
|
||||||
Bzip2,
|
|
||||||
Zstd,
|
|
||||||
Kmod,
|
Kmod,
|
||||||
Elfutils,
|
Elfutils,
|
||||||
OpenSSL,
|
|
||||||
UtilLinux,
|
UtilLinux,
|
||||||
KernelHeaders,
|
KernelHeaders,
|
||||||
), kernelVersion
|
), kernelVersion
|
||||||
@@ -1286,8 +1282,8 @@ func init() {
|
|||||||
|
|
||||||
func (t Toolchain) newFirmware() (pkg.Artifact, string) {
|
func (t Toolchain) newFirmware() (pkg.Artifact, string) {
|
||||||
const (
|
const (
|
||||||
version = "20260221"
|
version = "20260309"
|
||||||
checksum = "vTENPW5rZ6yLVq7YKDLHkCVgKXvwUWigEx7T4LcxoKeBVYIyf1_sEExeV4mo-e46"
|
checksum = "M1az8BxSiOEH3LA11Trc5VAlakwAHhP7-_LKWg6k-SVIzU3xclMDO4Tiujw1gQrC"
|
||||||
)
|
)
|
||||||
return t.NewPackage("firmware", version, pkg.NewHTTPGetTar(
|
return t.NewPackage("firmware", version, pkg.NewHTTPGetTar(
|
||||||
nil, "https://gitlab.com/kernel-firmware/linux-firmware/-/"+
|
nil, "https://gitlab.com/kernel-firmware/linux-firmware/-/"+
|
||||||
@@ -1315,9 +1311,7 @@ func (t Toolchain) newFirmware() (pkg.Artifact, string) {
|
|||||||
SkipCheck: true, // requires pre-commit
|
SkipCheck: true, // requires pre-commit
|
||||||
Install: `make "-j$(nproc)" DESTDIR=/work/system dedup`,
|
Install: `make "-j$(nproc)" DESTDIR=/work/system dedup`,
|
||||||
},
|
},
|
||||||
Perl,
|
|
||||||
Parallel,
|
Parallel,
|
||||||
Nettle,
|
|
||||||
Rdfind,
|
Rdfind,
|
||||||
Zstd,
|
Zstd,
|
||||||
Findutils,
|
Findutils,
|
||||||
|
|||||||
@@ -2,15 +2,15 @@
|
|||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/x86 6.12.76 Kernel Configuration
|
# Linux/x86 6.12.76 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="clang version 22.1.0"
|
CONFIG_CC_VERSION_TEXT="clang version 22.1.1"
|
||||||
CONFIG_GCC_VERSION=0
|
CONFIG_GCC_VERSION=0
|
||||||
CONFIG_CC_IS_CLANG=y
|
CONFIG_CC_IS_CLANG=y
|
||||||
CONFIG_CLANG_VERSION=220100
|
CONFIG_CLANG_VERSION=220101
|
||||||
CONFIG_AS_IS_LLVM=y
|
CONFIG_AS_IS_LLVM=y
|
||||||
CONFIG_AS_VERSION=220100
|
CONFIG_AS_VERSION=220101
|
||||||
CONFIG_LD_VERSION=0
|
CONFIG_LD_VERSION=0
|
||||||
CONFIG_LD_IS_LLD=y
|
CONFIG_LD_IS_LLD=y
|
||||||
CONFIG_LLD_VERSION=220100
|
CONFIG_LLD_VERSION=220101
|
||||||
CONFIG_RUSTC_VERSION=0
|
CONFIG_RUSTC_VERSION=0
|
||||||
CONFIG_RUSTC_LLVM_VERSION=0
|
CONFIG_RUSTC_LLVM_VERSION=0
|
||||||
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
||||||
@@ -2402,7 +2402,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
|
|||||||
#
|
#
|
||||||
# Firmware loader
|
# Firmware loader
|
||||||
#
|
#
|
||||||
CONFIG_FW_LOADER=m
|
CONFIG_FW_LOADER=y
|
||||||
CONFIG_FW_LOADER_DEBUG=y
|
CONFIG_FW_LOADER_DEBUG=y
|
||||||
CONFIG_FW_LOADER_PAGED_BUF=y
|
CONFIG_FW_LOADER_PAGED_BUF=y
|
||||||
CONFIG_FW_LOADER_SYSFS=y
|
CONFIG_FW_LOADER_SYSFS=y
|
||||||
@@ -2749,7 +2749,7 @@ CONFIG_BLK_DEV_NULL_BLK=m
|
|||||||
CONFIG_BLK_DEV_FD=m
|
CONFIG_BLK_DEV_FD=m
|
||||||
# CONFIG_BLK_DEV_FD_RAWCMD is not set
|
# CONFIG_BLK_DEV_FD_RAWCMD is not set
|
||||||
CONFIG_CDROM=m
|
CONFIG_CDROM=m
|
||||||
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
|
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=y
|
||||||
CONFIG_ZRAM=m
|
CONFIG_ZRAM=m
|
||||||
# CONFIG_ZRAM_BACKEND_LZ4 is not set
|
# CONFIG_ZRAM_BACKEND_LZ4 is not set
|
||||||
# CONFIG_ZRAM_BACKEND_LZ4HC is not set
|
# CONFIG_ZRAM_BACKEND_LZ4HC is not set
|
||||||
@@ -2775,9 +2775,9 @@ CONFIG_CDROM_PKTCDVD=m
|
|||||||
CONFIG_CDROM_PKTCDVD_BUFFERS=8
|
CONFIG_CDROM_PKTCDVD_BUFFERS=8
|
||||||
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
|
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
|
||||||
CONFIG_ATA_OVER_ETH=m
|
CONFIG_ATA_OVER_ETH=m
|
||||||
CONFIG_XEN_BLKDEV_FRONTEND=m
|
CONFIG_XEN_BLKDEV_FRONTEND=y
|
||||||
CONFIG_XEN_BLKDEV_BACKEND=m
|
# CONFIG_XEN_BLKDEV_BACKEND is not set
|
||||||
CONFIG_VIRTIO_BLK=m
|
CONFIG_VIRTIO_BLK=y
|
||||||
CONFIG_BLK_DEV_RBD=m
|
CONFIG_BLK_DEV_RBD=m
|
||||||
CONFIG_BLK_DEV_UBLK=m
|
CONFIG_BLK_DEV_UBLK=m
|
||||||
CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y
|
CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y
|
||||||
@@ -2788,13 +2788,12 @@ CONFIG_BLK_DEV_RNBD_SERVER=m
|
|||||||
#
|
#
|
||||||
# NVME Support
|
# NVME Support
|
||||||
#
|
#
|
||||||
CONFIG_NVME_KEYRING=m
|
CONFIG_NVME_KEYRING=y
|
||||||
CONFIG_NVME_AUTH=m
|
CONFIG_NVME_AUTH=y
|
||||||
CONFIG_NVME_CORE=m
|
CONFIG_NVME_CORE=y
|
||||||
CONFIG_BLK_DEV_NVME=m
|
CONFIG_BLK_DEV_NVME=y
|
||||||
CONFIG_NVME_MULTIPATH=y
|
CONFIG_NVME_MULTIPATH=y
|
||||||
# CONFIG_NVME_VERBOSE_ERRORS is not set
|
# CONFIG_NVME_VERBOSE_ERRORS is not set
|
||||||
CONFIG_NVME_HWMON=y
|
|
||||||
CONFIG_NVME_FABRICS=m
|
CONFIG_NVME_FABRICS=m
|
||||||
CONFIG_NVME_RDMA=m
|
CONFIG_NVME_RDMA=m
|
||||||
CONFIG_NVME_FC=m
|
CONFIG_NVME_FC=m
|
||||||
@@ -2911,10 +2910,10 @@ CONFIG_KEBA_CP500=m
|
|||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
CONFIG_SCSI_MOD=m
|
CONFIG_SCSI_MOD=y
|
||||||
CONFIG_RAID_ATTRS=m
|
CONFIG_RAID_ATTRS=m
|
||||||
CONFIG_SCSI_COMMON=m
|
CONFIG_SCSI_COMMON=y
|
||||||
CONFIG_SCSI=m
|
CONFIG_SCSI=y
|
||||||
CONFIG_SCSI_DMA=y
|
CONFIG_SCSI_DMA=y
|
||||||
CONFIG_SCSI_NETLINK=y
|
CONFIG_SCSI_NETLINK=y
|
||||||
CONFIG_SCSI_PROC_FS=y
|
CONFIG_SCSI_PROC_FS=y
|
||||||
@@ -2922,7 +2921,7 @@ CONFIG_SCSI_PROC_FS=y
|
|||||||
#
|
#
|
||||||
# SCSI support type (disk, tape, CD-ROM)
|
# SCSI support type (disk, tape, CD-ROM)
|
||||||
#
|
#
|
||||||
CONFIG_BLK_DEV_SD=m
|
CONFIG_BLK_DEV_SD=y
|
||||||
CONFIG_CHR_DEV_ST=m
|
CONFIG_CHR_DEV_ST=m
|
||||||
CONFIG_BLK_DEV_SR=m
|
CONFIG_BLK_DEV_SR=m
|
||||||
CONFIG_CHR_DEV_SG=m
|
CONFIG_CHR_DEV_SG=m
|
||||||
@@ -3042,7 +3041,7 @@ CONFIG_SCSI_DEBUG=m
|
|||||||
CONFIG_SCSI_PMCRAID=m
|
CONFIG_SCSI_PMCRAID=m
|
||||||
CONFIG_SCSI_PM8001=m
|
CONFIG_SCSI_PM8001=m
|
||||||
CONFIG_SCSI_BFA_FC=m
|
CONFIG_SCSI_BFA_FC=m
|
||||||
CONFIG_SCSI_VIRTIO=m
|
CONFIG_SCSI_VIRTIO=y
|
||||||
CONFIG_SCSI_CHELSIO_FCOE=m
|
CONFIG_SCSI_CHELSIO_FCOE=m
|
||||||
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
|
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
|
||||||
CONFIG_PCMCIA_AHA152X=m
|
CONFIG_PCMCIA_AHA152X=m
|
||||||
@@ -3052,7 +3051,7 @@ CONFIG_PCMCIA_SYM53C500=m
|
|||||||
# CONFIG_SCSI_DH is not set
|
# CONFIG_SCSI_DH is not set
|
||||||
# end of SCSI device support
|
# end of SCSI device support
|
||||||
|
|
||||||
CONFIG_ATA=m
|
CONFIG_ATA=y
|
||||||
CONFIG_SATA_HOST=y
|
CONFIG_SATA_HOST=y
|
||||||
CONFIG_PATA_TIMINGS=y
|
CONFIG_PATA_TIMINGS=y
|
||||||
CONFIG_ATA_VERBOSE_ERROR=y
|
CONFIG_ATA_VERBOSE_ERROR=y
|
||||||
@@ -3064,39 +3063,39 @@ CONFIG_SATA_PMP=y
|
|||||||
#
|
#
|
||||||
# Controllers with non-SFF native interface
|
# Controllers with non-SFF native interface
|
||||||
#
|
#
|
||||||
CONFIG_SATA_AHCI=m
|
CONFIG_SATA_AHCI=y
|
||||||
CONFIG_SATA_MOBILE_LPM_POLICY=3
|
CONFIG_SATA_MOBILE_LPM_POLICY=3
|
||||||
CONFIG_SATA_AHCI_PLATFORM=m
|
CONFIG_SATA_AHCI_PLATFORM=y
|
||||||
CONFIG_AHCI_DWC=m
|
CONFIG_AHCI_DWC=y
|
||||||
CONFIG_AHCI_CEVA=m
|
CONFIG_AHCI_CEVA=y
|
||||||
CONFIG_SATA_INIC162X=m
|
CONFIG_SATA_INIC162X=m
|
||||||
CONFIG_SATA_ACARD_AHCI=m
|
CONFIG_SATA_ACARD_AHCI=y
|
||||||
CONFIG_SATA_SIL24=m
|
CONFIG_SATA_SIL24=y
|
||||||
CONFIG_ATA_SFF=y
|
CONFIG_ATA_SFF=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# SFF controllers with custom DMA interface
|
# SFF controllers with custom DMA interface
|
||||||
#
|
#
|
||||||
CONFIG_PDC_ADMA=m
|
CONFIG_PDC_ADMA=y
|
||||||
CONFIG_SATA_QSTOR=m
|
CONFIG_SATA_QSTOR=y
|
||||||
CONFIG_SATA_SX4=m
|
CONFIG_SATA_SX4=m
|
||||||
CONFIG_ATA_BMDMA=y
|
CONFIG_ATA_BMDMA=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# SATA SFF controllers with BMDMA
|
# SATA SFF controllers with BMDMA
|
||||||
#
|
#
|
||||||
CONFIG_ATA_PIIX=m
|
CONFIG_ATA_PIIX=y
|
||||||
CONFIG_SATA_DWC=m
|
CONFIG_SATA_DWC=y
|
||||||
# CONFIG_SATA_DWC_OLD_DMA is not set
|
# CONFIG_SATA_DWC_OLD_DMA is not set
|
||||||
CONFIG_SATA_MV=m
|
CONFIG_SATA_MV=y
|
||||||
CONFIG_SATA_NV=m
|
CONFIG_SATA_NV=y
|
||||||
CONFIG_SATA_PROMISE=m
|
CONFIG_SATA_PROMISE=y
|
||||||
CONFIG_SATA_SIL=m
|
CONFIG_SATA_SIL=y
|
||||||
CONFIG_SATA_SIS=m
|
CONFIG_SATA_SIS=y
|
||||||
CONFIG_SATA_SVW=m
|
CONFIG_SATA_SVW=y
|
||||||
CONFIG_SATA_ULI=m
|
CONFIG_SATA_ULI=y
|
||||||
CONFIG_SATA_VIA=m
|
CONFIG_SATA_VIA=y
|
||||||
CONFIG_SATA_VITESSE=m
|
CONFIG_SATA_VITESSE=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# PATA SFF controllers with BMDMA
|
# PATA SFF controllers with BMDMA
|
||||||
@@ -3130,7 +3129,7 @@ CONFIG_PATA_RDC=m
|
|||||||
CONFIG_PATA_SCH=m
|
CONFIG_PATA_SCH=m
|
||||||
CONFIG_PATA_SERVERWORKS=m
|
CONFIG_PATA_SERVERWORKS=m
|
||||||
CONFIG_PATA_SIL680=m
|
CONFIG_PATA_SIL680=m
|
||||||
CONFIG_PATA_SIS=m
|
CONFIG_PATA_SIS=y
|
||||||
CONFIG_PATA_TOSHIBA=m
|
CONFIG_PATA_TOSHIBA=m
|
||||||
CONFIG_PATA_TRIFLEX=m
|
CONFIG_PATA_TRIFLEX=m
|
||||||
CONFIG_PATA_VIA=m
|
CONFIG_PATA_VIA=m
|
||||||
@@ -3172,8 +3171,8 @@ CONFIG_PATA_PARPORT_ON26=m
|
|||||||
#
|
#
|
||||||
# Generic fallback / legacy drivers
|
# Generic fallback / legacy drivers
|
||||||
#
|
#
|
||||||
CONFIG_PATA_ACPI=m
|
CONFIG_PATA_ACPI=y
|
||||||
CONFIG_ATA_GENERIC=m
|
CONFIG_ATA_GENERIC=y
|
||||||
CONFIG_PATA_LEGACY=m
|
CONFIG_PATA_LEGACY=m
|
||||||
CONFIG_MD=y
|
CONFIG_MD=y
|
||||||
CONFIG_BLK_DEV_MD=m
|
CONFIG_BLK_DEV_MD=m
|
||||||
@@ -9621,11 +9620,11 @@ CONFIG_EFI_SECRET=m
|
|||||||
CONFIG_SEV_GUEST=m
|
CONFIG_SEV_GUEST=m
|
||||||
CONFIG_TDX_GUEST_DRIVER=m
|
CONFIG_TDX_GUEST_DRIVER=m
|
||||||
CONFIG_VIRTIO_ANCHOR=y
|
CONFIG_VIRTIO_ANCHOR=y
|
||||||
CONFIG_VIRTIO=m
|
CONFIG_VIRTIO=y
|
||||||
CONFIG_VIRTIO_PCI_LIB=m
|
CONFIG_VIRTIO_PCI_LIB=y
|
||||||
CONFIG_VIRTIO_PCI_LIB_LEGACY=m
|
CONFIG_VIRTIO_PCI_LIB_LEGACY=y
|
||||||
CONFIG_VIRTIO_MENU=y
|
CONFIG_VIRTIO_MENU=y
|
||||||
CONFIG_VIRTIO_PCI=m
|
CONFIG_VIRTIO_PCI=y
|
||||||
CONFIG_VIRTIO_PCI_ADMIN_LEGACY=y
|
CONFIG_VIRTIO_PCI_ADMIN_LEGACY=y
|
||||||
CONFIG_VIRTIO_PCI_LEGACY=y
|
CONFIG_VIRTIO_PCI_LEGACY=y
|
||||||
CONFIG_VIRTIO_VDPA=m
|
CONFIG_VIRTIO_VDPA=m
|
||||||
|
|||||||
@@ -2,15 +2,15 @@
|
|||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/arm64 6.12.76 Kernel Configuration
|
# Linux/arm64 6.12.76 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="clang version 22.1.0"
|
CONFIG_CC_VERSION_TEXT="clang version 22.1.1"
|
||||||
CONFIG_GCC_VERSION=0
|
CONFIG_GCC_VERSION=0
|
||||||
CONFIG_CC_IS_CLANG=y
|
CONFIG_CC_IS_CLANG=y
|
||||||
CONFIG_CLANG_VERSION=220100
|
CONFIG_CLANG_VERSION=220101
|
||||||
CONFIG_AS_IS_LLVM=y
|
CONFIG_AS_IS_LLVM=y
|
||||||
CONFIG_AS_VERSION=220100
|
CONFIG_AS_VERSION=220101
|
||||||
CONFIG_LD_VERSION=0
|
CONFIG_LD_VERSION=0
|
||||||
CONFIG_LD_IS_LLD=y
|
CONFIG_LD_IS_LLD=y
|
||||||
CONFIG_LLD_VERSION=220100
|
CONFIG_LLD_VERSION=220101
|
||||||
CONFIG_RUSTC_VERSION=0
|
CONFIG_RUSTC_VERSION=0
|
||||||
CONFIG_RUSTC_LLVM_VERSION=0
|
CONFIG_RUSTC_LLVM_VERSION=0
|
||||||
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
||||||
@@ -2384,7 +2384,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
|
|||||||
#
|
#
|
||||||
# Firmware loader
|
# Firmware loader
|
||||||
#
|
#
|
||||||
CONFIG_FW_LOADER=m
|
CONFIG_FW_LOADER=y
|
||||||
CONFIG_FW_LOADER_DEBUG=y
|
CONFIG_FW_LOADER_DEBUG=y
|
||||||
CONFIG_FW_LOADER_PAGED_BUF=y
|
CONFIG_FW_LOADER_PAGED_BUF=y
|
||||||
CONFIG_FW_LOADER_SYSFS=y
|
CONFIG_FW_LOADER_SYSFS=y
|
||||||
@@ -2849,8 +2849,8 @@ CONFIG_CDROM_PKTCDVD=m
|
|||||||
CONFIG_CDROM_PKTCDVD_BUFFERS=8
|
CONFIG_CDROM_PKTCDVD_BUFFERS=8
|
||||||
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
|
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
|
||||||
CONFIG_ATA_OVER_ETH=m
|
CONFIG_ATA_OVER_ETH=m
|
||||||
CONFIG_XEN_BLKDEV_FRONTEND=m
|
CONFIG_XEN_BLKDEV_FRONTEND=y
|
||||||
CONFIG_XEN_BLKDEV_BACKEND=m
|
# CONFIG_XEN_BLKDEV_BACKEND is not set
|
||||||
CONFIG_VIRTIO_BLK=m
|
CONFIG_VIRTIO_BLK=m
|
||||||
CONFIG_BLK_DEV_RBD=m
|
CONFIG_BLK_DEV_RBD=m
|
||||||
CONFIG_BLK_DEV_UBLK=m
|
CONFIG_BLK_DEV_UBLK=m
|
||||||
@@ -2862,13 +2862,12 @@ CONFIG_BLK_DEV_RNBD_SERVER=m
|
|||||||
#
|
#
|
||||||
# NVME Support
|
# NVME Support
|
||||||
#
|
#
|
||||||
CONFIG_NVME_KEYRING=m
|
CONFIG_NVME_KEYRING=y
|
||||||
CONFIG_NVME_AUTH=m
|
CONFIG_NVME_AUTH=y
|
||||||
CONFIG_NVME_CORE=m
|
CONFIG_NVME_CORE=y
|
||||||
CONFIG_BLK_DEV_NVME=m
|
CONFIG_BLK_DEV_NVME=y
|
||||||
CONFIG_NVME_MULTIPATH=y
|
CONFIG_NVME_MULTIPATH=y
|
||||||
# CONFIG_NVME_VERBOSE_ERRORS is not set
|
# CONFIG_NVME_VERBOSE_ERRORS is not set
|
||||||
CONFIG_NVME_HWMON=y
|
|
||||||
CONFIG_NVME_FABRICS=m
|
CONFIG_NVME_FABRICS=m
|
||||||
CONFIG_NVME_RDMA=m
|
CONFIG_NVME_RDMA=m
|
||||||
CONFIG_NVME_FC=m
|
CONFIG_NVME_FC=m
|
||||||
@@ -2977,10 +2976,10 @@ CONFIG_KEBA_CP500=m
|
|||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
CONFIG_SCSI_MOD=m
|
CONFIG_SCSI_MOD=y
|
||||||
CONFIG_RAID_ATTRS=m
|
CONFIG_RAID_ATTRS=m
|
||||||
CONFIG_SCSI_COMMON=m
|
CONFIG_SCSI_COMMON=y
|
||||||
CONFIG_SCSI=m
|
CONFIG_SCSI=y
|
||||||
CONFIG_SCSI_DMA=y
|
CONFIG_SCSI_DMA=y
|
||||||
CONFIG_SCSI_NETLINK=y
|
CONFIG_SCSI_NETLINK=y
|
||||||
CONFIG_SCSI_PROC_FS=y
|
CONFIG_SCSI_PROC_FS=y
|
||||||
@@ -2988,7 +2987,7 @@ CONFIG_SCSI_PROC_FS=y
|
|||||||
#
|
#
|
||||||
# SCSI support type (disk, tape, CD-ROM)
|
# SCSI support type (disk, tape, CD-ROM)
|
||||||
#
|
#
|
||||||
CONFIG_BLK_DEV_SD=m
|
CONFIG_BLK_DEV_SD=y
|
||||||
CONFIG_CHR_DEV_ST=m
|
CONFIG_CHR_DEV_ST=m
|
||||||
CONFIG_BLK_DEV_SR=m
|
CONFIG_BLK_DEV_SR=m
|
||||||
CONFIG_CHR_DEV_SG=m
|
CONFIG_CHR_DEV_SG=m
|
||||||
@@ -3108,7 +3107,7 @@ CONFIG_SCSI_DEBUG=m
|
|||||||
CONFIG_SCSI_PMCRAID=m
|
CONFIG_SCSI_PMCRAID=m
|
||||||
CONFIG_SCSI_PM8001=m
|
CONFIG_SCSI_PM8001=m
|
||||||
CONFIG_SCSI_BFA_FC=m
|
CONFIG_SCSI_BFA_FC=m
|
||||||
CONFIG_SCSI_VIRTIO=m
|
CONFIG_SCSI_VIRTIO=y
|
||||||
CONFIG_SCSI_CHELSIO_FCOE=m
|
CONFIG_SCSI_CHELSIO_FCOE=m
|
||||||
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
|
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
|
||||||
CONFIG_PCMCIA_AHA152X=m
|
CONFIG_PCMCIA_AHA152X=m
|
||||||
@@ -3118,7 +3117,7 @@ CONFIG_PCMCIA_SYM53C500=m
|
|||||||
# CONFIG_SCSI_DH is not set
|
# CONFIG_SCSI_DH is not set
|
||||||
# end of SCSI device support
|
# end of SCSI device support
|
||||||
|
|
||||||
CONFIG_ATA=m
|
CONFIG_ATA=y
|
||||||
CONFIG_SATA_HOST=y
|
CONFIG_SATA_HOST=y
|
||||||
CONFIG_PATA_TIMINGS=y
|
CONFIG_PATA_TIMINGS=y
|
||||||
CONFIG_ATA_VERBOSE_ERROR=y
|
CONFIG_ATA_VERBOSE_ERROR=y
|
||||||
@@ -3130,23 +3129,23 @@ CONFIG_SATA_PMP=y
|
|||||||
#
|
#
|
||||||
# Controllers with non-SFF native interface
|
# Controllers with non-SFF native interface
|
||||||
#
|
#
|
||||||
CONFIG_SATA_AHCI=m
|
CONFIG_SATA_AHCI=y
|
||||||
CONFIG_SATA_MOBILE_LPM_POLICY=3
|
CONFIG_SATA_MOBILE_LPM_POLICY=3
|
||||||
CONFIG_SATA_AHCI_PLATFORM=m
|
CONFIG_SATA_AHCI_PLATFORM=y
|
||||||
CONFIG_AHCI_BRCM=m
|
CONFIG_AHCI_BRCM=y
|
||||||
CONFIG_AHCI_DWC=m
|
CONFIG_AHCI_DWC=y
|
||||||
CONFIG_AHCI_IMX=m
|
CONFIG_AHCI_IMX=m
|
||||||
CONFIG_AHCI_CEVA=m
|
CONFIG_AHCI_CEVA=y
|
||||||
CONFIG_AHCI_MTK=m
|
CONFIG_AHCI_MTK=y
|
||||||
CONFIG_AHCI_MVEBU=m
|
CONFIG_AHCI_MVEBU=y
|
||||||
CONFIG_AHCI_SUNXI=m
|
CONFIG_AHCI_SUNXI=y
|
||||||
CONFIG_AHCI_TEGRA=m
|
CONFIG_AHCI_TEGRA=y
|
||||||
CONFIG_AHCI_XGENE=m
|
CONFIG_AHCI_XGENE=m
|
||||||
CONFIG_AHCI_QORIQ=m
|
CONFIG_AHCI_QORIQ=y
|
||||||
CONFIG_SATA_AHCI_SEATTLE=m
|
CONFIG_SATA_AHCI_SEATTLE=y
|
||||||
CONFIG_SATA_INIC162X=m
|
CONFIG_SATA_INIC162X=m
|
||||||
CONFIG_SATA_ACARD_AHCI=m
|
CONFIG_SATA_ACARD_AHCI=y
|
||||||
CONFIG_SATA_SIL24=m
|
CONFIG_SATA_SIL24=y
|
||||||
CONFIG_ATA_SFF=y
|
CONFIG_ATA_SFF=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -3160,19 +3159,19 @@ CONFIG_ATA_BMDMA=y
|
|||||||
#
|
#
|
||||||
# SATA SFF controllers with BMDMA
|
# SATA SFF controllers with BMDMA
|
||||||
#
|
#
|
||||||
CONFIG_ATA_PIIX=m
|
CONFIG_ATA_PIIX=y
|
||||||
CONFIG_SATA_DWC=m
|
CONFIG_SATA_DWC=y
|
||||||
# CONFIG_SATA_DWC_OLD_DMA is not set
|
# CONFIG_SATA_DWC_OLD_DMA is not set
|
||||||
CONFIG_SATA_MV=m
|
CONFIG_SATA_MV=y
|
||||||
CONFIG_SATA_NV=m
|
CONFIG_SATA_NV=y
|
||||||
CONFIG_SATA_PROMISE=m
|
CONFIG_SATA_PROMISE=y
|
||||||
CONFIG_SATA_RCAR=m
|
CONFIG_SATA_RCAR=y
|
||||||
CONFIG_SATA_SIL=m
|
CONFIG_SATA_SIL=y
|
||||||
CONFIG_SATA_SIS=m
|
CONFIG_SATA_SIS=y
|
||||||
CONFIG_SATA_SVW=m
|
CONFIG_SATA_SVW=y
|
||||||
CONFIG_SATA_ULI=m
|
CONFIG_SATA_ULI=y
|
||||||
CONFIG_SATA_VIA=m
|
CONFIG_SATA_VIA=y
|
||||||
CONFIG_SATA_VITESSE=m
|
CONFIG_SATA_VITESSE=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# PATA SFF controllers with BMDMA
|
# PATA SFF controllers with BMDMA
|
||||||
@@ -3207,7 +3206,7 @@ CONFIG_PATA_RDC=m
|
|||||||
CONFIG_PATA_SCH=m
|
CONFIG_PATA_SCH=m
|
||||||
CONFIG_PATA_SERVERWORKS=m
|
CONFIG_PATA_SERVERWORKS=m
|
||||||
CONFIG_PATA_SIL680=m
|
CONFIG_PATA_SIL680=m
|
||||||
CONFIG_PATA_SIS=m
|
CONFIG_PATA_SIS=y
|
||||||
CONFIG_PATA_TOSHIBA=m
|
CONFIG_PATA_TOSHIBA=m
|
||||||
CONFIG_PATA_TRIFLEX=m
|
CONFIG_PATA_TRIFLEX=m
|
||||||
CONFIG_PATA_VIA=m
|
CONFIG_PATA_VIA=m
|
||||||
@@ -3249,8 +3248,8 @@ CONFIG_PATA_PARPORT_ON26=m
|
|||||||
#
|
#
|
||||||
# Generic fallback / legacy drivers
|
# Generic fallback / legacy drivers
|
||||||
#
|
#
|
||||||
CONFIG_PATA_ACPI=m
|
CONFIG_PATA_ACPI=y
|
||||||
CONFIG_ATA_GENERIC=m
|
CONFIG_ATA_GENERIC=y
|
||||||
CONFIG_PATA_LEGACY=m
|
CONFIG_PATA_LEGACY=m
|
||||||
CONFIG_MD=y
|
CONFIG_MD=y
|
||||||
CONFIG_BLK_DEV_MD=m
|
CONFIG_BLK_DEV_MD=m
|
||||||
@@ -10436,11 +10435,11 @@ CONFIG_VMGENID=m
|
|||||||
CONFIG_NITRO_ENCLAVES=m
|
CONFIG_NITRO_ENCLAVES=m
|
||||||
CONFIG_ARM_PKVM_GUEST=y
|
CONFIG_ARM_PKVM_GUEST=y
|
||||||
CONFIG_VIRTIO_ANCHOR=y
|
CONFIG_VIRTIO_ANCHOR=y
|
||||||
CONFIG_VIRTIO=m
|
CONFIG_VIRTIO=y
|
||||||
CONFIG_VIRTIO_PCI_LIB=m
|
CONFIG_VIRTIO_PCI_LIB=y
|
||||||
CONFIG_VIRTIO_PCI_LIB_LEGACY=m
|
CONFIG_VIRTIO_PCI_LIB_LEGACY=y
|
||||||
CONFIG_VIRTIO_MENU=y
|
CONFIG_VIRTIO_MENU=y
|
||||||
CONFIG_VIRTIO_PCI=m
|
CONFIG_VIRTIO_PCI=y
|
||||||
CONFIG_VIRTIO_PCI_LEGACY=y
|
CONFIG_VIRTIO_PCI_LEGACY=y
|
||||||
CONFIG_VIRTIO_VDPA=m
|
CONFIG_VIRTIO_VDPA=m
|
||||||
CONFIG_VIRTIO_PMEM=m
|
CONFIG_VIRTIO_PMEM=m
|
||||||
|
|||||||
@@ -39,6 +39,12 @@ func init() {
|
|||||||
Description: "a set of tools to handle common tasks with Linux kernel modules",
|
Description: "a set of tools to handle common tasks with Linux kernel modules",
|
||||||
Website: "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git",
|
Website: "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Zlib,
|
||||||
|
Zstd,
|
||||||
|
OpenSSL,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 1517,
|
ID: 1517,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,10 @@ func init() {
|
|||||||
Description: "an open source code library for the dynamic creation of images",
|
Description: "an open source code library for the dynamic creation of images",
|
||||||
Website: "https://libgd.github.io/",
|
Website: "https://libgd.github.io/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Zlib,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 880,
|
ID: 880,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ func (t Toolchain) newLibxslt() (pkg.Artifact, string) {
|
|||||||
SkipCheck: true,
|
SkipCheck: true,
|
||||||
},
|
},
|
||||||
XZ,
|
XZ,
|
||||||
Zlib,
|
|
||||||
Python,
|
Python,
|
||||||
PkgConfig,
|
PkgConfig,
|
||||||
|
|
||||||
@@ -38,6 +37,10 @@ func init() {
|
|||||||
Description: "an XSLT processor based on libxml2",
|
Description: "an XSLT processor based on libxml2",
|
||||||
Website: "https://gitlab.gnome.org/GNOME/libxslt/",
|
Website: "https://gitlab.gnome.org/GNOME/libxslt/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Libxml2,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 13301,
|
ID: 13301,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,14 +73,8 @@ func llvmFlagName(flag int) string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
|
||||||
llvmVersionMajor = "22"
|
|
||||||
llvmVersion = llvmVersionMajor + ".1.0"
|
|
||||||
)
|
|
||||||
|
|
||||||
// newLLVMVariant returns a [pkg.Artifact] containing a LLVM variant.
|
// newLLVMVariant returns a [pkg.Artifact] containing a LLVM variant.
|
||||||
func (t Toolchain) newLLVMVariant(variant string, attr *llvmAttr) pkg.Artifact {
|
func (t Toolchain) newLLVMVariant(variant string, attr *llvmAttr) pkg.Artifact {
|
||||||
const checksum = "-_Tu5Lt8xkWoxm2VDVV7crh0WqZQbbblN3fYamMdPTDSy_54FAkD2ii7afSymPVV"
|
|
||||||
|
|
||||||
if attr == nil {
|
if attr == nil {
|
||||||
panic("LLVM attr must be non-nil")
|
panic("LLVM attr must be non-nil")
|
||||||
@@ -169,7 +163,7 @@ ln -s ld.lld /work/system/bin/ld
|
|||||||
return t.NewPackage("llvm", llvmVersion, pkg.NewHTTPGetTar(
|
return t.NewPackage("llvm", llvmVersion, pkg.NewHTTPGetTar(
|
||||||
nil, "https://github.com/llvm/llvm-project/archive/refs/tags/"+
|
nil, "https://github.com/llvm/llvm-project/archive/refs/tags/"+
|
||||||
"llvmorg-"+llvmVersion+".tar.gz",
|
"llvmorg-"+llvmVersion+".tar.gz",
|
||||||
mustDecode(checksum),
|
mustDecode(llvmChecksum),
|
||||||
pkg.TarGzip,
|
pkg.TarGzip,
|
||||||
), &PackageAttr{
|
), &PackageAttr{
|
||||||
Patches: attr.patches,
|
Patches: attr.patches,
|
||||||
@@ -189,8 +183,6 @@ ln -s ld.lld /work/system/bin/ld
|
|||||||
Append: cmakeAppend,
|
Append: cmakeAppend,
|
||||||
Script: script + attr.script,
|
Script: script + attr.script,
|
||||||
},
|
},
|
||||||
Zlib,
|
|
||||||
Libffi,
|
|
||||||
Python,
|
Python,
|
||||||
Perl,
|
Perl,
|
||||||
Diffutils,
|
Diffutils,
|
||||||
@@ -318,7 +310,7 @@ ln -s clang++ /work/system/bin/c++
|
|||||||
ninja check-all
|
ninja check-all
|
||||||
`,
|
`,
|
||||||
|
|
||||||
patches: [][2]string{
|
patches: slices.Concat([][2]string{
|
||||||
{"add-rosa-vendor", `diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h
|
{"add-rosa-vendor", `diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h
|
||||||
index 9c83abeeb3b1..5acfe5836a23 100644
|
index 9c83abeeb3b1..5acfe5836a23 100644
|
||||||
--- a/llvm/include/llvm/TargetParser/Triple.h
|
--- a/llvm/include/llvm/TargetParser/Triple.h
|
||||||
@@ -490,7 +482,7 @@ index 64324a3f8b01..15ce70b68217 100644
|
|||||||
"/System/Library/Frameworks"};
|
"/System/Library/Frameworks"};
|
||||||
|
|
||||||
`},
|
`},
|
||||||
},
|
}, clangPatches),
|
||||||
})
|
})
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
4
internal/rosa/llvm_amd64.go
Normal file
4
internal/rosa/llvm_amd64.go
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
package rosa
|
||||||
|
|
||||||
|
// clangPatches are patches applied to the LLVM source tree for building clang.
|
||||||
|
var clangPatches [][2]string
|
||||||
12
internal/rosa/llvm_arm64.go
Normal file
12
internal/rosa/llvm_arm64.go
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package rosa
|
||||||
|
|
||||||
|
// clangPatches are patches applied to the LLVM source tree for building clang.
|
||||||
|
var clangPatches [][2]string
|
||||||
|
|
||||||
|
// one version behind, latest fails 5 tests with 2 flaky on arm64
|
||||||
|
const (
|
||||||
|
llvmVersionMajor = "21"
|
||||||
|
llvmVersion = llvmVersionMajor + ".1.8"
|
||||||
|
|
||||||
|
llvmChecksum = "8SUpqDkcgwOPsqHVtmf9kXfFeVmjVxl4LMn-qSE1AI_Xoeju-9HaoPNGtidyxyka"
|
||||||
|
)
|
||||||
11
internal/rosa/llvm_latest.go
Normal file
11
internal/rosa/llvm_latest.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
//go:build !arm64
|
||||||
|
|
||||||
|
package rosa
|
||||||
|
|
||||||
|
// latest version of LLVM, conditional to temporarily avoid broken new releases
|
||||||
|
const (
|
||||||
|
llvmVersionMajor = "22"
|
||||||
|
llvmVersion = llvmVersionMajor + ".1.1"
|
||||||
|
|
||||||
|
llvmChecksum = "bQvV6D8AZvQykg7-uQb_saTbVavnSo1ykNJ3g57F5iE-evU3HuOYtcRnVIXTK76e"
|
||||||
|
)
|
||||||
@@ -38,6 +38,13 @@ func init() {
|
|||||||
Description: "an open source build system",
|
Description: "an open source build system",
|
||||||
Website: "https://mesonbuild.com/",
|
Website: "https://mesonbuild.com/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Python,
|
||||||
|
PkgConfig,
|
||||||
|
CMake,
|
||||||
|
Ninja,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 6472,
|
ID: 6472,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -66,15 +73,7 @@ func (*MesonHelper) name(name, version string) string {
|
|||||||
|
|
||||||
// extra returns hardcoded meson runtime dependencies.
|
// extra returns hardcoded meson runtime dependencies.
|
||||||
func (*MesonHelper) extra(int) []PArtifact {
|
func (*MesonHelper) extra(int) []PArtifact {
|
||||||
return []PArtifact{
|
return []PArtifact{Meson}
|
||||||
Zlib,
|
|
||||||
Python,
|
|
||||||
Meson,
|
|
||||||
Ninja,
|
|
||||||
|
|
||||||
PkgConfig,
|
|
||||||
CMake,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// wantsChmod returns false.
|
// wantsChmod returns false.
|
||||||
|
|||||||
@@ -19,9 +19,6 @@ func (t Toolchain) newMuslFts() (pkg.Artifact, string) {
|
|||||||
}, &MakeHelper{
|
}, &MakeHelper{
|
||||||
Generate: "./bootstrap.sh",
|
Generate: "./bootstrap.sh",
|
||||||
},
|
},
|
||||||
M4,
|
|
||||||
Perl,
|
|
||||||
Autoconf,
|
|
||||||
Automake,
|
Automake,
|
||||||
Libtool,
|
Libtool,
|
||||||
PkgConfig,
|
PkgConfig,
|
||||||
|
|||||||
@@ -19,9 +19,6 @@ func (t Toolchain) newMuslObstack() (pkg.Artifact, string) {
|
|||||||
}, &MakeHelper{
|
}, &MakeHelper{
|
||||||
Generate: "./bootstrap.sh",
|
Generate: "./bootstrap.sh",
|
||||||
},
|
},
|
||||||
M4,
|
|
||||||
Perl,
|
|
||||||
Autoconf,
|
|
||||||
Automake,
|
Automake,
|
||||||
Libtool,
|
Libtool,
|
||||||
PkgConfig,
|
PkgConfig,
|
||||||
|
|||||||
@@ -26,6 +26,10 @@ func init() {
|
|||||||
Description: "a low-level cryptographic library",
|
Description: "a low-level cryptographic library",
|
||||||
Website: "https://www.lysator.liu.se/~nisse/nettle/",
|
Website: "https://www.lysator.liu.se/~nisse/nettle/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
GMP,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 2073,
|
ID: 2073,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,6 +75,10 @@ func init() {
|
|||||||
Description: "Network Security Services",
|
Description: "Network Security Services",
|
||||||
Website: "https://firefox-source-docs.mozilla.org/security/nss/index.html",
|
Website: "https://firefox-source-docs.mozilla.org/security/nss/index.html",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Zlib,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 2503,
|
ID: 2503,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -92,14 +96,12 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t Toolchain) newNSSCACert() (pkg.Artifact, string) {
|
func (t Toolchain) newNSSCACert() (pkg.Artifact, string) {
|
||||||
return t.New("nss-cacert", 0, []pkg.Artifact{
|
return t.New("nss-cacert", 0, t.AppendPresets(nil,
|
||||||
t.Load(Zlib),
|
Bash,
|
||||||
t.Load(Bash),
|
|
||||||
t.Load(Python),
|
|
||||||
|
|
||||||
t.Load(NSS),
|
NSS,
|
||||||
t.Load(buildcatrust),
|
buildcatrust,
|
||||||
}, nil, nil, `
|
), nil, nil, `
|
||||||
mkdir -p /work/system/etc/ssl/{certs/unbundled,certs/hashed,trust-source}
|
mkdir -p /work/system/etc/ssl/{certs/unbundled,certs/hashed,trust-source}
|
||||||
buildcatrust \
|
buildcatrust \
|
||||||
--certdata_input /system/nss/certdata.txt \
|
--certdata_input /system/nss/certdata.txt \
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import (
|
|||||||
|
|
||||||
func (t Toolchain) newPerl() (pkg.Artifact, string) {
|
func (t Toolchain) newPerl() (pkg.Artifact, string) {
|
||||||
const (
|
const (
|
||||||
version = "5.42.0"
|
version = "5.42.1"
|
||||||
checksum = "2KR7Jbpk-ZVn1a30LQRwbgUvg2AXlPQZfzrqCr31qD5-yEsTwVQ_W76eZH-EdxM9"
|
checksum = "FsJVq5CZFA7nZklfUl1eC6z2ECEu02XaB1pqfHSKtRLZWpnaBjlB55QOhjKpjkQ2"
|
||||||
)
|
)
|
||||||
return t.NewPackage("perl", version, pkg.NewHTTPGetTar(
|
return t.NewPackage("perl", version, pkg.NewHTTPGetTar(
|
||||||
nil, "https://www.cpan.org/src/5.0/perl-"+version+".tar.gz",
|
nil, "https://www.cpan.org/src/5.0/perl-"+version+".tar.gz",
|
||||||
@@ -68,14 +68,14 @@ func (t Toolchain) newViaPerlModuleBuild(
|
|||||||
name, version string,
|
name, version string,
|
||||||
source pkg.Artifact,
|
source pkg.Artifact,
|
||||||
patches [][2]string,
|
patches [][2]string,
|
||||||
extra ...pkg.Artifact,
|
extra ...PArtifact,
|
||||||
) pkg.Artifact {
|
) pkg.Artifact {
|
||||||
if name == "" || version == "" {
|
if name == "" || version == "" {
|
||||||
panic("names must be non-empty")
|
panic("names must be non-empty")
|
||||||
}
|
}
|
||||||
return t.New("perl-"+name, 0, slices.Concat(extra, []pkg.Artifact{
|
return t.New("perl-"+name, 0, t.AppendPresets(nil,
|
||||||
t.Load(Perl),
|
slices.Concat(P{Perl}, extra)...,
|
||||||
}), nil, nil, `
|
), nil, nil, `
|
||||||
cd /usr/src/`+name+`
|
cd /usr/src/`+name+`
|
||||||
perl Build.PL --prefix=/system
|
perl Build.PL --prefix=/system
|
||||||
./Build build
|
./Build build
|
||||||
@@ -105,6 +105,10 @@ func init() {
|
|||||||
Name: "perl-Module::Build",
|
Name: "perl-Module::Build",
|
||||||
Description: "build and install Perl modules",
|
Description: "build and install Perl modules",
|
||||||
Website: "https://metacpan.org/release/Module-Build",
|
Website: "https://metacpan.org/release/Module-Build",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Perl,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,6 +271,10 @@ func init() {
|
|||||||
Name: "perl-Text::WrapI18N",
|
Name: "perl-Text::WrapI18N",
|
||||||
Description: "line wrapping module",
|
Description: "line wrapping module",
|
||||||
Website: "https://metacpan.org/release/Text-WrapI18N",
|
Website: "https://metacpan.org/release/Text-WrapI18N",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
PerlTextCharWidth,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -313,6 +321,10 @@ func init() {
|
|||||||
Name: "perl-Unicode::GCString",
|
Name: "perl-Unicode::GCString",
|
||||||
Description: "String as Sequence of UAX #29 Grapheme Clusters",
|
Description: "String as Sequence of UAX #29 Grapheme Clusters",
|
||||||
Website: "https://metacpan.org/release/Unicode-LineBreak",
|
Website: "https://metacpan.org/release/Unicode-LineBreak",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
PerlMIMECharset,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,6 @@ func (t Toolchain) newProcps() (pkg.Artifact, string) {
|
|||||||
{"without-ncurses"},
|
{"without-ncurses"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
M4,
|
|
||||||
Perl,
|
|
||||||
Autoconf,
|
|
||||||
Automake,
|
Automake,
|
||||||
Gettext,
|
Gettext,
|
||||||
Libtool,
|
Libtool,
|
||||||
|
|||||||
@@ -53,11 +53,11 @@ func (t Toolchain) newPython() (pkg.Artifact, string) {
|
|||||||
Check: []string{"test"},
|
Check: []string{"test"},
|
||||||
},
|
},
|
||||||
Zlib,
|
Zlib,
|
||||||
|
Bzip2,
|
||||||
Libffi,
|
Libffi,
|
||||||
|
OpenSSL,
|
||||||
|
|
||||||
PkgConfig,
|
PkgConfig,
|
||||||
OpenSSL,
|
|
||||||
Bzip2,
|
|
||||||
XZ,
|
XZ,
|
||||||
), version
|
), version
|
||||||
}
|
}
|
||||||
@@ -69,6 +69,13 @@ func init() {
|
|||||||
Description: "the Python programming language interpreter",
|
Description: "the Python programming language interpreter",
|
||||||
Website: "https://www.python.org/",
|
Website: "https://www.python.org/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Zlib,
|
||||||
|
Bzip2,
|
||||||
|
Libffi,
|
||||||
|
OpenSSL,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 13254,
|
ID: 13254,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -81,15 +88,9 @@ func newViaPip(
|
|||||||
wname := name + "-" + version + "-" + interpreter + "-" + abi + "-" + platform + ".whl"
|
wname := name + "-" + version + "-" + interpreter + "-" + abi + "-" + platform + ".whl"
|
||||||
return Metadata{
|
return Metadata{
|
||||||
f: func(t Toolchain) (pkg.Artifact, string) {
|
f: func(t Toolchain) (pkg.Artifact, string) {
|
||||||
extraRes := make([]pkg.Artifact, len(extra))
|
return t.New(name+"-"+version, 0, t.AppendPresets(nil,
|
||||||
for i, p := range extra {
|
slices.Concat(P{Python}, extra)...,
|
||||||
extraRes[i] = t.Load(p)
|
), nil, nil, `
|
||||||
}
|
|
||||||
|
|
||||||
return t.New(name+"-"+version, 0, slices.Concat([]pkg.Artifact{
|
|
||||||
t.Load(Zlib),
|
|
||||||
t.Load(Python),
|
|
||||||
}, extraRes), nil, nil, `
|
|
||||||
pip3 install \
|
pip3 install \
|
||||||
--no-index \
|
--no-index \
|
||||||
--prefix=/system \
|
--prefix=/system \
|
||||||
@@ -104,18 +105,19 @@ pip3 install \
|
|||||||
Name: "python-" + name,
|
Name: "python-" + name,
|
||||||
Description: description,
|
Description: description,
|
||||||
Website: "https://pypi.org/project/" + name + "/",
|
Website: "https://pypi.org/project/" + name + "/",
|
||||||
|
|
||||||
|
Dependencies: slices.Concat(P{Python}, extra),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t Toolchain) newSetuptools() (pkg.Artifact, string) {
|
func (t Toolchain) newSetuptools() (pkg.Artifact, string) {
|
||||||
const (
|
const (
|
||||||
version = "82.0.0"
|
version = "82.0.1"
|
||||||
checksum = "K9f8Yi7Gg95zjmQsE1LLw9UBb8NglI6EY6pQpdD6DM0Pmc_Td5w2qs1SMngTI6Jp"
|
checksum = "nznP46Tj539yqswtOrIM4nQgwLA1h-ApKX7z7ghazROCpyF5swtQGwsZoI93wkhc"
|
||||||
)
|
)
|
||||||
return t.New("setuptools-"+version, 0, []pkg.Artifact{
|
return t.New("setuptools-"+version, 0, t.AppendPresets(nil,
|
||||||
t.Load(Zlib),
|
Python,
|
||||||
t.Load(Python),
|
), nil, nil, `
|
||||||
}, nil, nil, `
|
|
||||||
pip3 install \
|
pip3 install \
|
||||||
--no-index \
|
--no-index \
|
||||||
--prefix=/system \
|
--prefix=/system \
|
||||||
@@ -132,10 +134,14 @@ func init() {
|
|||||||
artifactsM[Setuptools] = Metadata{
|
artifactsM[Setuptools] = Metadata{
|
||||||
f: Toolchain.newSetuptools,
|
f: Toolchain.newSetuptools,
|
||||||
|
|
||||||
Name: "setuptools",
|
Name: "python-setuptools",
|
||||||
Description: "the autotools of the Python ecosystem",
|
Description: "the autotools of the Python ecosystem",
|
||||||
Website: "https://pypi.org/project/setuptools/",
|
Website: "https://pypi.org/project/setuptools/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Python,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 4021,
|
ID: 4021,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -272,8 +278,6 @@ func init() {
|
|||||||
"https://files.pythonhosted.org/packages/"+
|
"https://files.pythonhosted.org/packages/"+
|
||||||
"78/55/896b06bf93a49bec0f4ae2a6f1ed12bd05c8860744ac3a70eda041064e4d/",
|
"78/55/896b06bf93a49bec0f4ae2a6f1ed12bd05c8860744ac3a70eda041064e4d/",
|
||||||
PythonDistlib,
|
PythonDistlib,
|
||||||
PythonFilelock,
|
|
||||||
PythonPlatformdirs,
|
|
||||||
PythonDiscovery,
|
PythonDiscovery,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -288,10 +292,6 @@ func init() {
|
|||||||
PythonIdentify,
|
PythonIdentify,
|
||||||
PythonNodeenv,
|
PythonNodeenv,
|
||||||
PythonPyYAML,
|
PythonPyYAML,
|
||||||
PythonDistlib,
|
|
||||||
PythonFilelock,
|
|
||||||
PythonPlatformdirs,
|
|
||||||
PythonDiscovery,
|
|
||||||
PythonVirtualenv,
|
PythonVirtualenv,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,21 +74,16 @@ EOF
|
|||||||
Bash,
|
Bash,
|
||||||
Python,
|
Python,
|
||||||
Ninja,
|
Ninja,
|
||||||
Bzip2,
|
|
||||||
PkgConfig,
|
PkgConfig,
|
||||||
Diffutils,
|
Diffutils,
|
||||||
|
|
||||||
OpenSSL,
|
OpenSSL,
|
||||||
Bzip2,
|
|
||||||
XZ,
|
XZ,
|
||||||
|
|
||||||
Flex,
|
Flex,
|
||||||
Bison,
|
Bison,
|
||||||
M4,
|
M4,
|
||||||
|
|
||||||
PCRE2,
|
|
||||||
Libffi,
|
|
||||||
Zlib,
|
|
||||||
GLib,
|
GLib,
|
||||||
Zstd,
|
Zstd,
|
||||||
DTC,
|
DTC,
|
||||||
@@ -103,6 +98,11 @@ func init() {
|
|||||||
Description: "a generic and open source machine emulator and virtualizer",
|
Description: "a generic and open source machine emulator and virtualizer",
|
||||||
Website: "https://www.qemu.org/",
|
Website: "https://www.qemu.org/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
GLib,
|
||||||
|
Zstd,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 13607,
|
ID: 13607,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,10 @@ func init() {
|
|||||||
Description: "a program that finds duplicate files",
|
Description: "a program that finds duplicate files",
|
||||||
Website: "https://rdfind.pauldreik.se/",
|
Website: "https://rdfind.pauldreik.se/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Nettle,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 231641,
|
ID: 231641,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"slices"
|
"slices"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"hakurei.app/container/fhs"
|
"hakurei.app/container/fhs"
|
||||||
"hakurei.app/internal/pkg"
|
"hakurei.app/internal/pkg"
|
||||||
@@ -19,6 +20,9 @@ const (
|
|||||||
|
|
||||||
// kindBusyboxBin is the kind of [pkg.Artifact] of busyboxBin.
|
// kindBusyboxBin is the kind of [pkg.Artifact] of busyboxBin.
|
||||||
kindBusyboxBin
|
kindBusyboxBin
|
||||||
|
|
||||||
|
// kindCollection is the kind of [Collect]. It never cures successfully.
|
||||||
|
kindCollection
|
||||||
)
|
)
|
||||||
|
|
||||||
// mustDecode is like [pkg.MustDecode], but replaces the zero value and prints
|
// mustDecode is like [pkg.MustDecode], but replaces the zero value and prints
|
||||||
@@ -454,6 +458,48 @@ type PackageAttr struct {
|
|||||||
Flag int
|
Flag int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// pa holds whether a [PArtifact] is present.
|
||||||
|
type pa = [PresetEnd]bool
|
||||||
|
|
||||||
|
// paPool holds addresses of pa.
|
||||||
|
var paPool = sync.Pool{New: func() any { return new(pa) }}
|
||||||
|
|
||||||
|
// paGet returns the address of a new pa.
|
||||||
|
func paGet() *pa { return paPool.Get().(*pa) }
|
||||||
|
|
||||||
|
// paPut returns a pa to paPool.
|
||||||
|
func paPut(pv *pa) { *pv = pa{}; paPool.Put(pv) }
|
||||||
|
|
||||||
|
// appendPreset recursively appends a [PArtifact] and its runtime dependencies.
|
||||||
|
func (t Toolchain) appendPreset(
|
||||||
|
a []pkg.Artifact,
|
||||||
|
pv *pa, p PArtifact,
|
||||||
|
) []pkg.Artifact {
|
||||||
|
if pv[p] {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
pv[p] = true
|
||||||
|
|
||||||
|
for _, d := range GetMetadata(p).Dependencies {
|
||||||
|
a = t.appendPreset(a, pv, d)
|
||||||
|
}
|
||||||
|
return append(a, t.Load(p))
|
||||||
|
}
|
||||||
|
|
||||||
|
// AppendPresets recursively appends multiple [PArtifact] and their runtime
|
||||||
|
// dependencies.
|
||||||
|
func (t Toolchain) AppendPresets(
|
||||||
|
a []pkg.Artifact,
|
||||||
|
presets ...PArtifact,
|
||||||
|
) []pkg.Artifact {
|
||||||
|
pv := paGet()
|
||||||
|
for _, p := range presets {
|
||||||
|
a = t.appendPreset(a, pv, p)
|
||||||
|
}
|
||||||
|
paPut(pv)
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
|
||||||
// NewPackage constructs a [pkg.Artifact] via a build system helper.
|
// NewPackage constructs a [pkg.Artifact] via a build system helper.
|
||||||
func (t Toolchain) NewPackage(
|
func (t Toolchain) NewPackage(
|
||||||
name, version string,
|
name, version string,
|
||||||
@@ -486,12 +532,14 @@ func (t Toolchain) NewPackage(
|
|||||||
extraRes := make([]pkg.Artifact, 0, dc)
|
extraRes := make([]pkg.Artifact, 0, dc)
|
||||||
extraRes = append(extraRes, attr.NonStage0...)
|
extraRes = append(extraRes, attr.NonStage0...)
|
||||||
if !t.isStage0() {
|
if !t.isStage0() {
|
||||||
|
pv := paGet()
|
||||||
for _, p := range helper.extra(attr.Flag) {
|
for _, p := range helper.extra(attr.Flag) {
|
||||||
extraRes = append(extraRes, t.Load(p))
|
extraRes = t.appendPreset(extraRes, pv, p)
|
||||||
}
|
}
|
||||||
for _, p := range extra {
|
for _, p := range extra {
|
||||||
extraRes = append(extraRes, t.Load(p))
|
extraRes = t.appendPreset(extraRes, pv, p)
|
||||||
}
|
}
|
||||||
|
paPut(pv)
|
||||||
}
|
}
|
||||||
|
|
||||||
var scriptEarly string
|
var scriptEarly string
|
||||||
@@ -543,3 +591,29 @@ cd '/usr/src/` + name + `/'
|
|||||||
})...,
|
})...,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Collected is returned by [Collect.Cure] to indicate a successful collection.
|
||||||
|
type Collected struct{}
|
||||||
|
|
||||||
|
// Error returns a constant string to satisfy error, but should never be seen
|
||||||
|
// by the user.
|
||||||
|
func (Collected) Error() string { return "artifacts successfully collected" }
|
||||||
|
|
||||||
|
// Collect implements [pkg.FloodArtifact] to concurrently cure multiple
|
||||||
|
// [pkg.Artifact]. It returns [Collected].
|
||||||
|
type Collect []pkg.Artifact
|
||||||
|
|
||||||
|
// Cure returns [Collected].
|
||||||
|
func (*Collect) Cure(*pkg.FContext) error { return Collected{} }
|
||||||
|
|
||||||
|
// Kind returns the hardcoded [pkg.Kind] value.
|
||||||
|
func (*Collect) Kind() pkg.Kind { return kindCollection }
|
||||||
|
|
||||||
|
// Params does not write anything, dependencies are already represented in the header.
|
||||||
|
func (*Collect) Params(*pkg.IContext) {}
|
||||||
|
|
||||||
|
// Dependencies returns [Collect] as is.
|
||||||
|
func (c *Collect) Dependencies() []pkg.Artifact { return *c }
|
||||||
|
|
||||||
|
// IsExclusive returns false: Cure is a noop.
|
||||||
|
func (*Collect) IsExclusive() bool { return false }
|
||||||
|
|||||||
@@ -48,6 +48,12 @@ func init() {
|
|||||||
Description: "tools to create and extract Squashfs filesystems",
|
Description: "tools to create and extract Squashfs filesystems",
|
||||||
Website: "https://github.com/plougher/squashfs-tools",
|
Website: "https://github.com/plougher/squashfs-tools",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Zstd,
|
||||||
|
Gzip,
|
||||||
|
Zlib,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 4879,
|
ID: 4879,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,13 +8,13 @@ import (
|
|||||||
|
|
||||||
func (t Toolchain) newTamaGo() (pkg.Artifact, string) {
|
func (t Toolchain) newTamaGo() (pkg.Artifact, string) {
|
||||||
const (
|
const (
|
||||||
version = "1.26.0"
|
version = "1.26.1"
|
||||||
checksum = "5XkfbpTpSdPJfwtTfUegfdu4LUy8nuZ7sCondiRIxTJI9eQONi8z_O_dq9yDkjw8"
|
checksum = "fimZnklQcYWGsTQU8KepLn-yCYaTfNdMI9DCg6NJVQv-3gOJnUEO9mqRCMAHnEXZ"
|
||||||
)
|
)
|
||||||
return t.New("tamago-go"+version, 0, []pkg.Artifact{
|
return t.New("tamago-go"+version, 0, t.AppendPresets(nil,
|
||||||
t.Load(Bash),
|
Bash,
|
||||||
t.Load(Go),
|
Go,
|
||||||
}, nil, []string{
|
), nil, []string{
|
||||||
"CC=cc",
|
"CC=cc",
|
||||||
"GOCACHE=/tmp/gocache",
|
"GOCACHE=/tmp/gocache",
|
||||||
}, `
|
}, `
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ func (t Toolchain) newUnzip() (pkg.Artifact, string) {
|
|||||||
version = "6.0"
|
version = "6.0"
|
||||||
checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1"
|
checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1"
|
||||||
)
|
)
|
||||||
return t.New("unzip-"+version, 0, []pkg.Artifact{
|
return t.New("unzip-"+version, 0, t.AppendPresets(nil,
|
||||||
t.Load(Make),
|
Make,
|
||||||
t.Load(Coreutils),
|
Coreutils,
|
||||||
}, nil, nil, `
|
), nil, nil, `
|
||||||
cd /usr/src/unzip/
|
cd /usr/src/unzip/
|
||||||
unix/configure
|
unix/configure
|
||||||
make -f unix/Makefile generic1
|
make -f unix/Makefile generic1
|
||||||
|
|||||||
@@ -42,6 +42,12 @@ func init() {
|
|||||||
Description: "core Wayland window system code and protocol",
|
Description: "core Wayland window system code and protocol",
|
||||||
Website: "https://wayland.freedesktop.org/",
|
Website: "https://wayland.freedesktop.org/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Libffi,
|
||||||
|
Libexpat,
|
||||||
|
Libxml2,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 10061,
|
ID: 10061,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -112,9 +118,6 @@ GitLab
|
|||||||
},
|
},
|
||||||
}, (*MesonHelper)(nil),
|
}, (*MesonHelper)(nil),
|
||||||
Wayland,
|
Wayland,
|
||||||
Libffi,
|
|
||||||
Libexpat,
|
|
||||||
Libxml2,
|
|
||||||
), version
|
), version
|
||||||
}
|
}
|
||||||
func init() {
|
func init() {
|
||||||
|
|||||||
@@ -40,9 +40,6 @@ func (t Toolchain) newXproto() (pkg.Artifact, string) {
|
|||||||
// ancient configure script
|
// ancient configure script
|
||||||
Generate: "autoreconf -if",
|
Generate: "autoreconf -if",
|
||||||
},
|
},
|
||||||
M4,
|
|
||||||
Perl,
|
|
||||||
Autoconf,
|
|
||||||
Automake,
|
Automake,
|
||||||
PkgConfig,
|
PkgConfig,
|
||||||
|
|
||||||
@@ -75,9 +72,6 @@ func (t Toolchain) newLibXau() (pkg.Artifact, string) {
|
|||||||
// ancient configure script
|
// ancient configure script
|
||||||
Generate: "autoreconf -if",
|
Generate: "autoreconf -if",
|
||||||
},
|
},
|
||||||
M4,
|
|
||||||
Perl,
|
|
||||||
Autoconf,
|
|
||||||
Automake,
|
Automake,
|
||||||
Libtool,
|
Libtool,
|
||||||
PkgConfig,
|
PkgConfig,
|
||||||
@@ -94,6 +88,10 @@ func init() {
|
|||||||
Description: "functions for handling Xauthority files and entries",
|
Description: "functions for handling Xauthority files and entries",
|
||||||
Website: "https://gitlab.freedesktop.org/xorg/lib/libxau",
|
Website: "https://gitlab.freedesktop.org/xorg/lib/libxau",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
Xproto,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 1765,
|
ID: 1765,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ func (t Toolchain) newXCB() (pkg.Artifact, string) {
|
|||||||
PkgConfig,
|
PkgConfig,
|
||||||
|
|
||||||
XCBProto,
|
XCBProto,
|
||||||
Xproto,
|
|
||||||
LibXau,
|
LibXau,
|
||||||
), version
|
), version
|
||||||
}
|
}
|
||||||
@@ -53,6 +52,11 @@ func init() {
|
|||||||
Description: "The X protocol C-language Binding",
|
Description: "The X protocol C-language Binding",
|
||||||
Website: "https://xcb.freedesktop.org/",
|
Website: "https://xcb.freedesktop.org/",
|
||||||
|
|
||||||
|
Dependencies: P{
|
||||||
|
XCBProto,
|
||||||
|
LibXau,
|
||||||
|
},
|
||||||
|
|
||||||
ID: 1767,
|
ID: 1767,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
buildGo126Module rec {
|
buildGo126Module rec {
|
||||||
pname = "hakurei";
|
pname = "hakurei";
|
||||||
version = "0.3.6";
|
version = "0.3.7";
|
||||||
|
|
||||||
srcFiltered = builtins.path {
|
srcFiltered = builtins.path {
|
||||||
name = "${pname}-src";
|
name = "${pname}-src";
|
||||||
|
|||||||
Reference in New Issue
Block a user