package hakurei-source { description = "hakurei source tree"; exclude = true; version# = "0.4.10"; output = remoteGit { url = "https://src.rosa.moe/hakurei"; tag = "v"+version; checksum = "SZdto_lQCgwebCqUHJREQcHwwO1pHn3euOwFvXYEri0G-46zUhx0hX4buFt2XvkS"; }; } 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; cross = ` export CC='clang --target=`+triple+` --sysroot=/system/`+arch+`' export CXX='clang++ --target=`+triple+` --sysroot=/system/`+arch+`' export PKG_CONFIG_SYSROOT_DIR='/system/`+arch+`' export PKG_CONFIG_LIBDIR='/system/`+arch+`/system/lib/pkgconfig:/system/`+arch+`/system/share/pkgconfig' `; build = ` mkdir -p /work/system/libexec/hakurei/ echo "Building hakurei for $(go env GOOS)/`+arch+`." go generate ./... GOARCH='`+arch+`' 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)." GOARCH='`+arch+`' 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`; check = ` echo 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/) `; }; tools = [ go, pkgconf, net-tools, acl, wayland, wayland-protocols, ]; inputs = [ libseccomp, acl, fuse, xcb, wayland, wayland-protocols, util-linux, kernel-headers, ]; runtime = nil; } 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; cross = ` export HAKUREI_ARCH='`+arch+`' export HAKUREI_SYSROOT='/system/`+arch+`' export PKG_CONFIG_SYSROOT_DIR='/system/`+arch+`' export PKG_CONFIG_LIBDIR='/system/`+arch+`/system/lib/pkgconfig:/system/`+arch+`/system/share/pkgconfig' `; build = ` NAME=make`; check = ` NAME=all`; install = ` DESTDIR=/work "./${NAME}.sh" `; }; tools = [ go, pkgconf, net-tools, acl, wayland, wayland-protocols, ]; inputs = [ libseccomp, acl, fuse, xcb, wayland, wayland-protocols, util-linux, kernel-headers, ]; runtime = nil; } package hakurei-dist-race { description = "low-level userspace tooling for Rosa OS (distribution tarball with race instrument)"; website = "https://hakurei.app"; source = hakurei-source; enterSource = true; writable = true; chmod = true; env = [ "CGO_ENABLED=1", "GOCACHE=/tmp/gocache", "CC=clang -O3 -Werror", "HAKUREI_RACE=1", ]; exec = generic { chdir = false; build = ` NAME=make`; check = ` NAME=all`; install = ` DESTDIR=/work "./${NAME}.sh" `; }; tools = [ go, pkgconf, net-tools, acl, ]; inputs = [ libseccomp, acl, fuse, xcb, wayland, wayland-protocols, util-linux, kernel-headers, ]; runtime = nil; } 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; cross = ` export GOARCH='`+arch+`' export CC='clang --target=`+triple+` --sysroot=/system/`+arch+`' export CXX='clang++ --target=`+triple+` --sysroot=/system/`+arch+`' export PKG_CONFIG_SYSROOT_DIR='/system/`+arch+`' export PKG_CONFIG_LIBDIR='/system/`+arch+`/system/lib/pkgconfig:/system/`+arch+`/system/share/pkgconfig' `; 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`; }; tools = [ go ]; }