From 63220aadde79d26cce2cc606ac2bba4b4ed4c4fb Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Wed, 4 Jun 2025 20:49:05 +0100 Subject: [PATCH] nix: break out knot pkgs into separate files Change-Id: mlxxvvqpzvlwompquouoxnkqxsvvurqn Signed-off-by: oppiliappan --- flake.nix | 36 ++++++------------------------------ nix/pkgs/knot-unwrapped.nix | 22 ++++++++++++++++++++++ nix/pkgs/knot.nix | 20 ++++++++++++++++++++ 3 files changed, 48 insertions(+), 30 deletions(-) create mode 100644 nix/pkgs/knot-unwrapped.nix create mode 100644 nix/pkgs/knot.nix diff --git a/flake.nix b/flake.nix index d312c29..07f663e 100644 --- a/flake.nix +++ b/flake.nix @@ -55,47 +55,23 @@ in { overlays.default = final: prev: let goModHash = "sha256-ZckpIPqFk7/XBiEJUbmrAzdjAxV62hv896xqAXF2aZs="; - knotBuildAttrs = final: - with final; { - pname = "knot"; - version = "0.1.0"; - src = gitignoreSource ./.; - subPackages = ["cmd/knot"]; - vendorHash = goModHash; - env.CGO_ENABLED = 1; - }; appviewDeps = { inherit htmx-src lucide-src inter-fonts-src ibm-plex-mono-src goModHash gitignoreSource; }; + knotDeps = { + inherit goModHash gitignoreSource; + }; in { lexgen = final.callPackage ./nix/pkgs/lexgen.nix {inherit indigo;}; appview = final.pkgsStatic.callPackage ./nix/pkgs/appview.nix appviewDeps; appview-cross = final.pkgsCross.gnu64.pkgsStatic.callPackage ./nix/pkgs/appview.nix appviewDeps; + knot = final.pkgsStatic.callPackage ./nix/pkgs/knot.nix {}; + knot-unwrapped = final.pkgsStatic.callPackage ./nix/pkgs/knot-unwrapped.nix knotDeps; + knot-cross = final.pkgsCross.gnu64.pkgsStatic.callPackage ./nix/pkgs/knot.nix knotDeps; sqlite-lib = final.pkgsStatic.callPackage ./nix/pkgs/sqlite-lib.nix { inherit (final.pkgsStatic) gcc; inherit sqlite-lib-src; }; - - # knot packages - knot = with final; - final.pkgsStatic.buildGoModule ((knotBuildAttrs final) - // { - nativeBuildInputs = [final.makeWrapper]; - installPhase = '' - runHook preInstall - - mkdir -p $out/bin - cp $GOPATH/bin/knot $out/bin/knot - - wrapProgram $out/bin/knot \ - --prefix PATH : ${pkgs.git}/bin - - runHook postInstall - ''; - }); - knot-cross = final.pkgsCross.gnu64.pkgsStatic.buildGoModule (knotBuildAttrs final); # cross-compile on darwin to x86_64-linux - knot-unwrapped = final.pkgsStatic.buildGoModule (knotBuildAttrs final); - genjwks = final.callPackage ./nix/pkgs/genjwks.nix {inherit goModHash gitignoreSource;}; }; diff --git a/nix/pkgs/knot-unwrapped.nix b/nix/pkgs/knot-unwrapped.nix new file mode 100644 index 0000000..ec6f01b --- /dev/null +++ b/nix/pkgs/knot-unwrapped.nix @@ -0,0 +1,22 @@ +{ + buildGoModule, + stdenv, + sqlite-lib, + goModHash, + gitignoreSource, +}: +buildGoModule { + pname = "knot"; + version = "0.1.0"; + src = gitignoreSource ../..; + + doCheck = false; + + subPackages = ["cmd/knot"]; + vendorHash = goModHash; + tags = "libsqlite3"; + + env.CGO_CFLAGS = "-I ${sqlite-lib}/include "; + env.CGO_LDFLAGS = "-L ${sqlite-lib}/lib"; + env.CGO_ENABLED = 1; +} diff --git a/nix/pkgs/knot.nix b/nix/pkgs/knot.nix new file mode 100644 index 0000000..fa66cdf --- /dev/null +++ b/nix/pkgs/knot.nix @@ -0,0 +1,20 @@ +{ + knot-unwrapped, + makeWrapper, + git, +}: +knot-unwrapped.overrideAttrs (after: before: { + nativeBuildInputs = (before.nativeBuildInputs or []) ++ [makeWrapper]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp $GOPATH/bin/knot $out/bin/knot + + wrapProgram $out/bin/knot \ + --prefix PATH : ${git}/bin + + runHook postInstall + ''; +}) -- 2.43.0