aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/package/hakurei.az
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-08-15 16:18:44 +0900
committerOphestra <cat@gensokyo.uk>2026-08-15 16:18:44 +0900
commite58b6eb17110e266be07db10d2af212b58cc8f0f (patch)
tree1546dde10e378786cd163b2b42680986b906309d /internal/rosa/package/hakurei.az
parent1625aaee80de62380cc40974ae9bd266b3df32e4 (diff)
internal/rosa/package: net-tools
These are nice to have, but will not be included in the base system. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/package/hakurei.az')
-rw-r--r--internal/rosa/package/hakurei.az150
1 files changed, 150 insertions, 0 deletions
diff --git a/internal/rosa/package/hakurei.az b/internal/rosa/package/hakurei.az
new file mode 100644
index 00000000..229af5fc
--- /dev/null
+++ b/internal/rosa/package/hakurei.az
@@ -0,0 +1,150 @@
+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 ];
+}