static-haskell-nix icon indicating copy to clipboard operation
static-haskell-nix copied to clipboard

Fix callPackage still producing dynamic executables

Open FPtje opened this issue 1 year ago • 0 comments

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

FPtje avatar Jun 30 '24 13:06 FPtje