nh2 / static-haskell-nix

easily build most Haskell programs into fully static Linux executables
388 stars 36 forks source link

Fix callPackage still producing dynamic executables #128

Open FPtje opened 1 month ago

FPtje commented 1 month ago

This was due to staticHaskellBinariesOverlay overlay changing every existing package to build statically, but not every new package called with callPackage.

Here's an example building against my own glualint:

Before

cd survey
nix repl --file default.nix --print-build-logs
nix-repl> :b (haskellPackages.extend (normalPkgs.callPackage /home/falco/Programs/glualint/nix/haskell-overlay.nix {})).callPackage /home/falco/Programs/glualint/default.nix {
}
This derivation produced the following outputs:
  out -> /nix/store/5qfjn4xkw1wwybywjq5qxr1dhsd16kw0-glualint-0.1.0.0
file /nix/store/5qfjn4xkw1wwybywjq5qxr1dhsd16kw0-glualint-0.1.0.0/bin/glualint
/nix/store/5qfjn4xkw1wwybywjq5qxr1dhsd16kw0-glualint-0.1.0.0/bin/glualint: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /nix/store/134sxj760d4nx8g85scj0h41bf8p7b7j-musl-1.2.3/lib/ld-musl-x86_64.so.1, stripped

After

nix-repl> :b (haskellPackages.extend (normalPkgs.callPackage /home/falco/Programs/glualint/nix/haskell-overlay.nix {})).callPackage /home/falco/Programs/glualint/default.nix {}

This derivation produced the following outputs:
  out -> /nix/store/24dbxj94lisb3hmcwjs3vkk8w4xlhsar-glualint-0.1.0.0

file /nix/store/24dbxj94lisb3hmcwjs3vkk8w4xlhsar-glualint-0.1.0.0/bin/glualint
/nix/store/24dbxj94lisb3hmcwjs3vkk8w4xlhsar-glualint-0.1.0.0/bin/glualint: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped