package hakurei-source { description = "hakurei source tree"; exclude = true; version# = "0.4.6"; output = remoteTar { url = "https://git.gensokyo.uk/rosa/hakurei/archive/"+ "v"+version+".tar.gz"; checksum = "2HxvdykuSSymAu-c1WIwQAy3qT4dDm8B--93iL4uomBlBC8wfSWldbvPF1noNkUC"; compress = gzip; }; } package hakurei { description = "low-level userspace tooling for Rosa OS"; website = "https://hakurei.app"; anitya = 388834; source = hakurei-source; enterSource = true; writable = true; chmod = true; env = [ "CGO_ENABLED=1", "GOCACHE=/tmp/gocache", "CC=clang -O3 -Werror", ]; exec = generic { chdir = false; build = ` 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=$(cat cmd/dist/VERSION) -X hakurei.app/internal/info.hakureiPath=/system/bin/hakurei -X hakurei.app/internal/info.hsuPath=/system/bin/hsu " ./cmd/hakurei ./cmd/sharefs echo "Building hsu for $(go env GOOS)/$(go env GOARCH)." CGO_ENABLED=0 go build -trimpath -tags=rosa -o /work/system/libexec/hakurei -ldflags="-s -w -buildid= -X main.hakureiPath=/system/bin/hakurei " ./cmd/hsu echo`; check = ` echo '##### Testing hakurei.' go test -ldflags='-buildid= -linkmode external -extldflags=-static' ./... echo`; install = ` mkdir -p /work/system/bin/ (cd /work/system/libexec/hakurei && mv \ hakurei \ sharefs \ ../../bin/) `; }; inputs = [ go, pkgconf, net-tools, libseccomp, acl, fuse, xcb, wayland, wayland-protocols, kernel-headers, ]; } package hakurei-dist { description = "low-level userspace tooling for Rosa OS (distribution tarball)"; website = "https://hakurei.app"; source = hakurei-source; enterSource = true; writable = true; chmod = true; env = [ "CGO_ENABLED=1", "GOCACHE=/tmp/gocache", "CC=clang -O3 -Werror", ]; exec = generic { chdir = false; build = ` NAME=make`; check = ` NAME=all`; install = ` DESTDIR=/work "./${NAME}.sh" `; }; inputs = [ go, pkgconf, net-tools, libseccomp, acl, fuse, xcb, wayland, wayland-protocols, kernel-headers, ]; } package earlyinit { description = "Rosa OS initramfs init program"; exclude = true; source = hakurei-source; enterSource = true; writable = true; chmod = true; env = [ "CGO_ENABLED=1", "GOCACHE=/tmp/gocache", "CC=clang -O3 -Werror", ]; exec = generic { chdir = false; build = ` echo '# Building earlyinit.' go build -trimpath -v -o /work/ -ldflags="-s -w -buildid= -linkmode external -extldflags=-static -X hakurei.app/internal/info.buildVersion=$(cat cmd/dist/VERSION) " ./cmd/earlyinit echo`; }; inputs = [ go ]; }