commit 4f7b295518b3f5b7c03d2847ba347948ad66fc57 Author: Reinout Meliesie Date: Mon Jun 1 17:13:09 2026 +0200 Initial package expression Builds succesfully against NixOS 25.11. diff --git a/package.nix b/package.nix new file mode 100644 index 0000000..334b997 --- /dev/null +++ b/package.nix @@ -0,0 +1,74 @@ +{ + # Build tools. + + buildGoModule, + buildNpmPackage, + fetchFromGitLab, + fetchPnpmDeps, + nodejs, + pnpm_10, + pnpmConfigHook, + stdenv, + + # Options. + + version ? "0.15.0", +}: + +let + pname = "fmd-server"; + + src = fetchFromGitLab { + owner = "fmd-foss"; + repo = "fmd-server"; + tag = "v${version}"; + hash = "sha256-EzhXrB15lRtDnFicdH7fjpcm1BYoAb1SBeylGSub69s="; + }; + + frontend = let + pname = "fmd-server-frontend"; + in stdenv.mkDerivation { + inherit pname version src; + + pnpmRoot = "web"; + + pnpmDeps = fetchPnpmDeps { + inherit pname version src; + + pnpm = pnpm_10; + fetcherVersion = 3; + sourceRoot = "${src.name}/web"; + hash = "sha256-vKSKPwOkb7TwDUlkl8lUvO6tLKp2NyBQ0BGxThUN2P8="; + }; + + nativeBuildInputs = [ nodejs pnpm_10 pnpmConfigHook ]; + + buildPhase = '' + runHook preBuild + + cd web + pnpm build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir $out + cp -R dist $out/ + + runHook postInstall + ''; + }; +in + +buildGoModule { + inherit pname version src; + + vendorHash = "sha256-cFIg9mOSQbrYHW4kg4aTeTaF+gy1jNpAlg8qepb81Jc="; + + preBuild = '' + cp -R ${frontend}/dist web/ + ''; +}