!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

720 Members
For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://haskell4nix.readthedocs.io/ | More Nix: #community:nixos.org | More Haskell: #haskell-space:matrix.org143 Servers

Load older messages


SenderMessageTime
13 Aug 2025
@emilazy:matrix.orgemily maybe that dependency is GCC that targets hostPlatform so it can dynamically compile some test code before running it or something. 18:20:18
@emilazy:matrix.orgemilylike I think the same rule of thumb of "tools used by the build system" applies.18:21:06
@qyliss:fairydust.spaceAlyssa RossI guess I'd consider test framework part of the build system18:21:58
@qyliss:fairydust.spaceAlyssa RossBut really it depends for what purpose it's invoking this tool18:22:22
@qyliss:fairydust.spaceAlyssa RossIs it to generate test data? If so, build platform18:22:29
@emilazy:matrix.orgemilyit's a Haskell library that provides an interface to an SMT solver18:22:35
@emilazy:matrix.orgemilyyou write Haskell code and it invokes Z3 at runtime to solve SMT things18:22:41
@emilazy:matrix.orgemily if Z3 was a library, it would be a buildInput 18:22:48
@emilazy:matrix.orgemilyinstead it's something you need to wrap on later18:22:55
@emilazy:matrix.orgemily so it's unambiguously a checkInputs case. it's just that checkInputs sucks to use for executables. 18:23:04
@qyliss:fairydust.spaceAlyssa RossI see!18:23:04
@qyliss:fairydust.spaceAlyssa Ross Okay, then this is indeed a check input, and testSystemDepends should be fine. 18:23:31
@emilazy:matrix.orgemilyarguably we should be patching in the path to Z3 in the library code18:23:38
@emilazy:matrix.orgemilyin which case there would be no check inputs needed at all18:23:47
@emilazy:matrix.orgemily(and no wrappers needed for downstream users)18:23:52
@emilazy:matrix.orgemilybut that might not be desirable. since you might want to use another backend at runtime18:24:02
@emilazy:matrix.orgemily so having it in the closure of smtlib-backends-process is likely suboptimal 18:24:17
@emilazy:matrix.orgemily(does GHC cross even work in Nixpkgs…)18:24:39
@artem.types:matrix.orgArtem if I unbreak certain Haskell package (e.g. by adding jailbreaks and alike in configuration-common.nix), do I remove broken=false; from hackage-packages.nix in the same commit that I want to submit as a PR? 18:28:55
@artem.types:matrix.orgArtem ah, I guess I update configuration-hackage2nix/broken.yaml, sorry 18:33:08
@artem.types:matrix.orgArtemoh, no, I do :-)18:37:24
@artem.types:matrix.orgArtemRedacted or Malformed Event19:03:51
@artem.types:matrix.orgArtemdoes Haskell builder understand build-tool-depends in cabal files? I'm seeing a test component that has BTD on an executable in the same package and it can't find it at run time19:09:09
@artem.types:matrix.orgArtem* Does Haskell builder understand build-tool-depends in cabal files? I'm seeing a test component that has BTD on an executable in the same package and it can't find it at run time19:21:04
@artem.types:matrix.orgArtem

That's the liquid-fixpoint package, its "test" test suite appears to call to the "fixpoint" executable from the same package but nix-build arrives at:

...
Running phase: checkPhase
Running 2 test suites...
Test suite test: RUNNING...
/bin/sh: fixpoint: not found
19:21:05
@sternenseemann:systemli.orgsterni (he/him) Artem: you need to add the build directory to PATH before execution since Cabal won't do it for you unfortunately 19:58:37
@sternenseemann:systemli.orgsterni (he/him)there should probably be a shorthand for it, but you can just grep configuration-nix.nix for PATH to see how to do it19:58:59
@sternenseemann:systemli.orgsterni (he/him) emily: Alyssa Ross: See https://nixos.org/manual/nixpkgs/unstable/#haskell-derivation-deps for input specificication in haskellPackages. Everything is eventually mapped to buildInputs, propagatedBuildInputs and nativeBuildInputs. Using checkInputs and friends is not necessary since that is basically a shorthand for adding lib.optionals doCheck [ … ] to buildInputs/nativeBuildInputs and we have to conditionalize loads on doCheck anyways. 20:02:03
@sternenseemann:systemli.orgsterni (he/him)in the nix build?20:04:55
@artem.types:matrix.orgArtem
In reply to @sternenseemann:systemli.org
in the nix build?
Yes
20:23:05

Show newer messages


Back to Room ListRoom Version: 6