From b1ba85535d852ffed5a2f87fc62cc5fb5cab554a Mon Sep 17 00:00:00 2001 From: pancho horrillo Date: Wed, 8 Jul 2026 15:01:48 +0200 Subject: [PATCH] go-mockery: fix env.CGO_ENABLED set to "" instead of 0. Note that the official docs specify that only 1 or 0 are valid: https://pkg.go.dev/cmd/cgo and look for CGO_ENABLED. If set to 'false', it gets rendered as an empty string: $ nix derivation show nixpkgs#go-mockery | jq '.derivations[].env | {CGO_ENABLED}' { "CGO_ENABLED": "" } $ nix derivation show nixpkgs#go-mockery_2 | jq '.derivations[].env | {CGO_ENABLED}' { "CGO_ENABLED": "" } which has the same effect as not defining `env.CGO_ENABLED` at all, i.e., it generates a dynamically linked executable: $ nix shell nixpkgs#go-mockery $ ldd $(which mockery) linux-vdso.so.1 (0x00007c440bdd3000) libresolv.so.2 => /nix/store/8kvxvr3pmsypxiypq4g8zy13glnfr7nx-glibc-2.42-67/lib/libresolv.so.2 (0x00007c440bdb8000) libpthread.so.0 => /nix/store/8kvxvr3pmsypxiypq4g8zy13glnfr7nx-glibc-2.42-67/lib/libpthread.so.0 (0x00007c440bdb3000) libc.so.6 => /nix/store/8kvxvr3pmsypxiypq4g8zy13glnfr7nx-glibc-2.42-67/lib/libc.so.6 (0x00007c440ba00000) /nix/store/8kvxvr3pmsypxiypq4g8zy13glnfr7nx-glibc-2.42-67/lib/ld-linux-x86-64.so.2 => /nix/store/8kvxvr3pmsypxiypq4g8zy13glnfr7nx-glibc-2.42-67/lib64/ld-linux-x86-64.so.2 (0x00007c440bdd5000) ditto for v2: $ nix shell nixpkgs#go-mockery_2 $ ldd $(which mockery) linux-vdso.so.1 (0x000077377575f000) libresolv.so.2 => /nix/store/8kvxvr3pmsypxiypq4g8zy13glnfr7nx-glibc-2.42-67/lib/libresolv.so.2 (0x0000773775744000) libpthread.so.0 => /nix/store/8kvxvr3pmsypxiypq4g8zy13glnfr7nx-glibc-2.42-67/lib/libpthread.so.0 (0x000077377573f000) libc.so.6 => /nix/store/8kvxvr3pmsypxiypq4g8zy13glnfr7nx-glibc-2.42-67/lib/libc.so.6 (0x0000773775400000) /nix/store/8kvxvr3pmsypxiypq4g8zy13glnfr7nx-glibc-2.42-67/lib/ld-linux-x86-64.so.2 => /nix/store/8kvxvr3pmsypxiypq4g8zy13glnfr7nx-glibc-2.42-67/lib64/ld-linux-x86-64.so.2 (0x0000773775761000) whereas after setting it to 0: $ nix derivation show .#go-mockery | jq '.derivations[].env | {CGO_ENABLED}' { "CGO_ENABLED": "0" } $ nix derivation show .#go-mockery_2 | jq '.derivations[].env | {CGO_ENABLED}' { "CGO_ENABLED": "0" } and now the executables are not dynamic, as intended: $ nix shell .#go-mockery $ ldd $(which mockery) not a dynamic executable $ nix shell .#go-mockery_2 $ ldd $(which mockery) not a dynamic executable --- pkgs/by-name/go/go-mockery/package.nix | 2 +- pkgs/by-name/go/go-mockery_2/package.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/go/go-mockery/package.nix b/pkgs/by-name/go/go-mockery/package.nix index e948a4dc8af8..7cad1976b419 100644 --- a/pkgs/by-name/go/go-mockery/package.nix +++ b/pkgs/by-name/go/go-mockery/package.nix @@ -28,7 +28,7 @@ buildGoModule (finalAttrs: { "-X github.com/vektra/mockery/v${lib.versions.major finalAttrs.version}/internal/logging.SemVer=v${finalAttrs.version}" ]; - env.CGO_ENABLED = false; + env.CGO_ENABLED = 0; subPackages = [ "." ]; diff --git a/pkgs/by-name/go/go-mockery_2/package.nix b/pkgs/by-name/go/go-mockery_2/package.nix index 5720982ae1fa..0cb8d3051ce1 100644 --- a/pkgs/by-name/go/go-mockery_2/package.nix +++ b/pkgs/by-name/go/go-mockery_2/package.nix @@ -30,7 +30,7 @@ buildGoModule (finalAttrs: { "-X github.com/vektra/mockery/v${lib.versions.major finalAttrs.version}/pkg/logging.SemVer=v${finalAttrs.version}" ]; - env.CGO_ENABLED = false; + env.CGO_ENABLED = 0; subPackages = [ "." ];