From 588e39cb81771a665ca1b5349e9746d44cc5b20f Mon Sep 17 00:00:00 2001 From: stakeynet Date: Tue, 15 Sep 2026 13:30:35 -0700 Subject: [PATCH] dcrdex: fix build id --- docs/bisonw.md | 5 ++++- pkgs/bisonw.nix | 23 +++++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/docs/bisonw.md b/docs/bisonw.md index 1876d07..1f20afb 100644 --- a/docs/bisonw.md +++ b/docs/bisonw.md @@ -2,6 +2,10 @@ `services.bisonw` wraps the Bison Wallet daemon. You can provide either a rendered configuration through `services.bisonw.settings` or point at an existing file with `services.bisonw.configFile`. +## Package Note + +A valid Bison Wallet Build ID (also used for JS/CSS cache busting) requires Go VCS metadata: build from a Git checkout retaining `.git` with `-buildvcs=true`, or inject an equivalent revision during the build. + ## sops-nix Render `dexc.conf` with `sops-nix` and point the service at it. Example: @@ -72,4 +76,3 @@ services.bisonw.operator = { - `services.bisonw.dataDir` defaults to `/var/lib/bisonw`. The service owns and uses this path as `HOME` and `XDG_DATA_HOME`. - The unit runs as the `services.bisonw.user`/`group` (default `bisonw`). - diff --git a/pkgs/bisonw.nix b/pkgs/bisonw.nix index 2be00e4..d908d77 100644 --- a/pkgs/bisonw.nix +++ b/pkgs/bisonw.nix @@ -1,18 +1,21 @@ { lib, buildGoModule, - fetchFromGitHub, + fetchgit, + git, }: buildGoModule (finalAttrs: { pname = "bisonw"; version = "1.0.6"; - src = fetchFromGitHub { - owner = "decred"; - repo = "dcrdex"; + # Keep the checkout metadata: Bison Wallet reads vcs.revision from Go build + # info for its Build ID and frontend cache-busting version. + src = fetchgit { + url = "https://github.com/decred/dcrdex.git"; rev = "v${finalAttrs.version}"; - hash = "sha256-MPHi+mqmumxZ/pFxBYxz73M6imi0GONV0M3raPq0yoI="; + hash = "sha256-IlJzvL0ZaeQ+BaKGArS6J5Wk2wctOVba7Xg8qjVI8KY="; + leaveDotGit = true; }; subPackages = [ @@ -26,6 +29,15 @@ buildGoModule (finalAttrs: { vendorHash = "sha256-KCof0GFFaNWgMb2yR4l4lyeVZdiJSIyn4mgZ/InMZhk="; + nativeBuildInputs = [ git ]; + GOFLAGS = [ "-buildvcs=true" ]; + + # fetchgit does not retain the Git index. Restore it in the writable build + # tree so Go does not mark the otherwise pristine checkout as modified. + preBuild = '' + git reset --mixed HEAD + ''; + meta = with lib; { description = "Bison Wallet - Multi-coin wallet with built-in DEX trading"; homepage = "https://github.com/decred/dcrdex"; @@ -33,4 +45,3 @@ buildGoModule (finalAttrs: { mainProgram = "bisonw"; }; }) -