From 6ee5ae4d6888c1e2e57201d304aaba0cbfaee6ec Mon Sep 17 00:00:00 2001 From: "m.huber" Date: Wed, 23 Jul 2025 15:39:10 +0200 Subject: [PATCH] nix flake build static with sqlite support --- Makefile | 2 +- flake.nix | 56 +++++++++++++++++++++++++++++++------------------------ 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index 08ff938972d..de55a471d9f 100644 --- a/Makefile +++ b/Makefile @@ -746,7 +746,7 @@ security-check: go run $(GOVULNCHECK_PACKAGE) -show color ./... $(EXECUTABLE): $(GO_SOURCES) $(TAGS_PREREQ) - CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) build $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@ + CGO_ENABLED=1 CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) build $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w -extldflags "-static" $(LDFLAGS)' -o $@ .PHONY: release release: frontend generate release-windows release-linux release-darwin release-freebsd release-copy release-compress vendor release-sources release-check diff --git a/flake.nix b/flake.nix index e3375b82b35..0629ac7fd9b 100644 --- a/flake.nix +++ b/flake.nix @@ -11,33 +11,41 @@ pkgs = nixpkgs.legacyPackages.${system}; in { - devShells.default = pkgs.mkShell { - buildInputs = with pkgs; [ - # generic - git - git-lfs - gnumake - gnused - gnutar - gzip + devShells.default = + with pkgs; + let + go = go_1_24; + in + pkgs.mkShell { + buildInputs = [ + # generic + git + git-lfs + gnumake + gnused + gnutar + gzip - # frontend - nodejs_22 + # frontend + nodejs_22 - # linting - python312 - uv + # linting + python312 + uv - # backend - go_1_24 - gofumpt - sqlite - ]; - shellHook = '' - export GO="${pkgs.go_1_24}/bin/go" - export GOROOT="${pkgs.go_1_24}/share/go" - ''; - }; + # backend + go + glibc.static + gofumpt + sqlite + ]; + CFLAGS = "-I${glibc.static.dev}/include"; + LDFLAGS = "-L ${glibc.static}/lib"; + GO = "${go}/bin/go"; + GOROOT = "${go}/share/go"; + + TAGS = "sqlite sqlite_unlock_notify"; + }; } ); }