Fix R8: Use builtins.fetchGit for submodule workspaces

- Added chainfireSrc, flaredbSrc, iamSrc with submodules=true
- Updated chainfire-server, flaredb-server, iam-server to use fetched sources
- Resolves T026.S1 blocker (nix build failures on submodule paths)

Implements fix suggested by Foreman 000313 and PeerA 000314
This commit is contained in:
centra 2025-12-09 06:33:08 +09:00
parent 84032b8182
commit e4de4e8c66

View file

@ -31,6 +31,23 @@
inherit system overlays; inherit system overlays;
}; };
# Fetch submodule sources with their .git directories included
# This is necessary because chainfire, flaredb, and iam are git submodules
chainfireSrc = builtins.fetchGit {
url = ./chainfire;
submodules = true;
};
flaredbSrc = builtins.fetchGit {
url = ./flaredb;
submodules = true;
};
iamSrc = builtins.fetchGit {
url = ./iam;
submodules = true;
};
# Rust toolchain configuration # Rust toolchain configuration
# Using stable channel with rust-src (for rust-analyzer) and rust-analyzer # Using stable channel with rust-src (for rust-analyzer) and rust-analyzer
rustToolchain = pkgs.rust-bin.stable.latest.default.override { rustToolchain = pkgs.rust-bin.stable.latest.default.override {
@ -169,7 +186,7 @@
# -------------------------------------------------------------------- # --------------------------------------------------------------------
chainfire-server = buildRustWorkspace { chainfire-server = buildRustWorkspace {
name = "chainfire-server"; name = "chainfire-server";
workspaceDir = ./chainfire; workspaceDir = chainfireSrc;
mainCrate = "chainfire-server"; mainCrate = "chainfire-server";
description = "Distributed key-value store with Raft consensus and gossip protocol"; description = "Distributed key-value store with Raft consensus and gossip protocol";
}; };
@ -179,7 +196,7 @@
# -------------------------------------------------------------------- # --------------------------------------------------------------------
flaredb-server = buildRustWorkspace { flaredb-server = buildRustWorkspace {
name = "flaredb-server"; name = "flaredb-server";
workspaceDir = ./flaredb; workspaceDir = flaredbSrc;
mainCrate = "flaredb-server"; mainCrate = "flaredb-server";
description = "Distributed time-series database with Raft consensus for metrics and events"; description = "Distributed time-series database with Raft consensus for metrics and events";
}; };
@ -189,7 +206,7 @@
# -------------------------------------------------------------------- # --------------------------------------------------------------------
iam-server = buildRustWorkspace { iam-server = buildRustWorkspace {
name = "iam-server"; name = "iam-server";
workspaceDir = ./iam; workspaceDir = iamSrc;
mainCrate = "iam-server"; mainCrate = "iam-server";
description = "Identity and access management service with RBAC and multi-tenant support"; description = "Identity and access management service with RBAC and multi-tenant support";
}; };