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 }