All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 4m18s
Test / Hakurei (push) Successful in 6m13s
Test / ShareFS (push) Successful in 6m11s
Test / Sandbox (race detector) (push) Successful in 6m55s
Test / Hakurei (race detector) (push) Successful in 8m5s
Test / Flake checks (push) Successful in 1m21s
These no longer serve any purpose. Signed-off-by: Ophestra <cat@gensokyo.uk>
120 lines
2.6 KiB
Go
120 lines
2.6 KiB
Go
package rosa
|
|
|
|
import "hakurei.app/internal/pkg"
|
|
|
|
func (t Toolchain) newHakurei(
|
|
suffix, build, check, install string,
|
|
withHostname bool,
|
|
) pkg.Artifact {
|
|
hostname := `
|
|
echo 'Building test helper (hostname).'
|
|
go build -o /bin/hostname /usr/src/hostname/main.go
|
|
`
|
|
if !withHostname {
|
|
hostname = ""
|
|
}
|
|
|
|
name := "hakurei" + suffix
|
|
return t.NewPackage(name, hakureiVersion, t.NewPatchedSource(
|
|
"hakurei", hakureiVersion, hakureiSource, false, hakureiPatches...,
|
|
), &PackageAttr{
|
|
Writable: true,
|
|
Env: []string{
|
|
"CGO_ENABLED=1",
|
|
"GOCACHE=/tmp/gocache",
|
|
"CC=clang -O3 -Werror",
|
|
},
|
|
|
|
Paths: []pkg.ExecPath{pkg.Path(AbsUsrSrc.Append("hostname", "main.go"), false, pkg.NewFile(
|
|
"hostname.go",
|
|
[]byte(`
|
|
package main
|
|
|
|
import "os"
|
|
|
|
func main() {
|
|
if name, err := os.Hostname(); err != nil {
|
|
panic(err)
|
|
} else {
|
|
os.Stdout.WriteString(name)
|
|
}
|
|
}
|
|
`),
|
|
))},
|
|
}, &GenericHelper{
|
|
Build: hostname + `
|
|
HAKUREI_VERSION='v` + hakureiVersion + `'
|
|
` + build,
|
|
Check: check,
|
|
Install: install,
|
|
},
|
|
_go,
|
|
H("pkg-config"),
|
|
|
|
H("libseccomp"),
|
|
H("acl"),
|
|
H("fuse"),
|
|
H("xcb"),
|
|
H("wayland"),
|
|
H("wayland-protocols"),
|
|
|
|
kernelHeaders,
|
|
)
|
|
}
|
|
func init() {
|
|
meta := Metadata{
|
|
Name: "hakurei",
|
|
Description: "low-level userspace tooling for Rosa OS",
|
|
Website: "https://hakurei.app",
|
|
Version: hakureiVersion,
|
|
|
|
ID: 388834,
|
|
}
|
|
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
|
|
return &meta, t.newHakurei("", `
|
|
mkdir -p /work/system/libexec/hakurei/
|
|
|
|
echo "Building hakurei for $(go env GOOS)/$(go env GOARCH)."
|
|
go generate ./...
|
|
go build -trimpath -tags=rosa -o /work/system/libexec/hakurei -ldflags="-s -w
|
|
-buildid=
|
|
-linkmode external
|
|
-extldflags=-static
|
|
-X hakurei.app/internal/info.buildVersion=${HAKUREI_VERSION}
|
|
-X hakurei.app/internal/info.hakureiPath=/system/bin/hakurei
|
|
-X hakurei.app/internal/info.hsuPath=/system/bin/hsu
|
|
-X main.hakureiPath=/system/bin/hakurei
|
|
" ./...
|
|
echo
|
|
`, `
|
|
echo '##### Testing hakurei.'
|
|
go test -ldflags='-buildid= -linkmode external -extldflags=-static' ./...
|
|
echo
|
|
`, `
|
|
mkdir -p /work/system/bin/
|
|
(cd /work/system/libexec/hakurei && mv \
|
|
hakurei \
|
|
sharefs \
|
|
../../bin/)
|
|
`, true)
|
|
})
|
|
}
|
|
func init() {
|
|
meta := Metadata{
|
|
Name: "hakurei-dist",
|
|
Description: "low-level userspace tooling for Rosa OS (distribution tarball)",
|
|
Website: "https://hakurei.app",
|
|
Version: hakureiVersion,
|
|
}
|
|
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
|
|
name := "all"
|
|
if t.opts&OptSkipCheck != 0 {
|
|
name = "make"
|
|
}
|
|
return &meta, t.newHakurei("-dist", `
|
|
export HAKUREI_VERSION
|
|
DESTDIR=/work ./`+name+`.sh
|
|
`, "", "", true)
|
|
})
|
|
}
|