All checks were successful
Test / Create distribution (push) Successful in 29s
Test / ShareFS (push) Successful in 36s
Test / Sandbox (push) Successful in 44s
Test / Sandbox (race detector) (push) Successful in 44s
Test / Hakurei (push) Successful in 48s
Test / Hakurei (race detector) (push) Successful in 49s
Test / Hpkg (push) Successful in 46s
Test / Flake checks (push) Successful in 1m45s
This does not yet have fuse from staging. Everything else works perfectly, though. Signed-off-by: Ophestra <cat@gensokyo.uk>
84 lines
1.8 KiB
Go
84 lines
1.8 KiB
Go
package rosa
|
|
|
|
import (
|
|
"hakurei.app/internal/pkg"
|
|
)
|
|
|
|
func (t Toolchain) newHakurei() pkg.Artifact {
|
|
const (
|
|
version = "0.3.3"
|
|
checksum = "iMN9qzDB000noZ6dOHh_aSdrhRZPopjyWHd0KFVjxjQLQstAOvLYZEZ74btlL0pu"
|
|
)
|
|
return t.New("hakurei-"+version, false, []pkg.Artifact{
|
|
t.Load(Go),
|
|
t.Load(PkgConfig),
|
|
|
|
t.Load(KernelHeaders),
|
|
t.Load(Libseccomp),
|
|
t.Load(ACL),
|
|
t.Load(Attr),
|
|
|
|
t.Load(Xproto),
|
|
t.Load(LibXau),
|
|
t.Load(XCBProto),
|
|
t.Load(XCB),
|
|
|
|
t.Load(Libffi),
|
|
t.Load(Libexpat),
|
|
t.Load(Libxml2),
|
|
t.Load(Wayland),
|
|
t.Load(WaylandProtocols),
|
|
}, nil, []string{
|
|
"GOCACHE=/tmp/gocache",
|
|
"CC=clang -O3 -Werror",
|
|
}, `
|
|
echo '# Building test helper (hostname).'
|
|
go build -v -o /bin/hostname /usr/src/hostname/main.go
|
|
echo
|
|
|
|
chmod -R +w /usr/src/hakurei
|
|
cd /usr/src/hakurei
|
|
mkdir -p /work/system/{bin,libexec/hakurei}
|
|
|
|
echo '# Building hakurei.'
|
|
go generate -v ./...
|
|
go build -trimpath -v -o /work/system/libexec/hakurei -ldflags="-s -w
|
|
-buildid=
|
|
-extldflags=-static
|
|
-X hakurei.app/internal/info.buildVersion='v`+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= -extldflags=-static' ./...
|
|
echo
|
|
|
|
mv \
|
|
/work/system/libexec/hakurei/{hakurei,hpkg} \
|
|
/work/system/bin
|
|
`, pkg.Path(AbsUsrSrc.Append("hakurei"), true, pkg.NewHTTPGetTar(
|
|
nil, "https://git.gensokyo.uk/security/hakurei/archive/"+
|
|
"v"+version+".tar.gz",
|
|
mustDecode(checksum),
|
|
pkg.TarGzip,
|
|
)), 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)
|
|
}
|
|
}
|
|
`),
|
|
)))
|
|
}
|
|
func init() { artifactsF[Hakurei] = Toolchain.newHakurei }
|