| 7 Jan 2026 |
ners | Does anyone have experience with pkgsCross.ghcjs? I'm trying to build a package that indirectly depends on zlib, and getting the following error: no C compiler provided for this platform I can trace the error to here: https://github.com/NixOS/nixpkgs/blob/492f8a5b3855f5d5f3fa4d096acb073ec7c86e17/pkgs/stdenv/cross/default.nix#L118 I think I should be able to use emscripten as a C compiler, any idea how I could wire that up to get zlib to build? | 08:43:37 |
| Acid Bong joined the room. | 15:34:54 |
Acid Bong | evening. what's the current status of Cabal not seeing deps provided by shellFor? I see some suggest v1-* commands to workaround, but they both fail for me:
$ cabal v1-build
Warning: No remote package servers have been specified. Usually you would have
one specified in the config file.
Resolving dependencies...
Warning: solver failed to find a solution:
Could not resolve dependencies:
[__0] trying: AoC-0.1.0.0 (user goal)
[__1] unknown package: matrix (dependency of AoC)
[__1] fail (backjumping, conflict set: AoC, matrix)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: AoC, matrix
Trying configure anyway.
Configuring AoC-0.1.0.0...
Error: [Cabal-8010]
Encountered missing or private dependencies:
extra (missing), matrix (missing)
1 $ cabal v2-build
Warning: No remote package servers have been specified. Usually you would have
one specified in the config file.
Resolving dependencies...
Error: [Cabal-7107]
Could not resolve dependencies:
[__0] trying: AoC-0.1.0.0 (user goal)
[__1] unknown package: matrix (dependency of AoC)
[__1] fail (backjumping, conflict set: AoC, matrix)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: AoC, matrix
shell.nix seems to have the necessary tools
{
pkgs ? import <nixpkgs> { },
}:
pkgs.haskellPackages.shellFor {
name = "AoC";
packages = h: [
h.extra
h.matrix
];
nativeBuildInputs = [
# Python
# ...
# Rust
# ...
# Haskell
pkgs.cabal-install
pkgs.haskell-language-server
pkgs.haskellPackages.cabal-fmt
];
}
obviously generating a package recipe and building with Nix works, but i'm using the shell purely to cabal run or cabal repl the respective packages, which doesn't seem to work without fetching the deps from Hackage | 18:00:43 |
maralorn | Acid Bong: The problem is that the packages field in shellFor is not for listing dependencies but for listing the packages you want to be able to build within your shell. | 18:40:11 |
Acid Bong | ah, so a regular mkShell with ghc.withPackages in it is enough? | 20:28:08 |
maralorn | That would probably work, yes. | 20:29:20 |
Acid Bong | bloo-dy-hell, that was so easy 🤦♂️ looks like the shellFor docs are misleading | 20:33:57 |
maralorn | There are many ways to hold this. Surprisingly many of them work but still most don’t. 😄 | 20:37:03 |
| 8 Jan 2026 |
Acid Bong | i wanna file a ticket about ghc.withPackages ignoring installDocumentation = false, but(1) there already exists one, but(2) the author mistook it for a NixOS issue (it's 316768). should we reformat the issue or open a new one? | 20:12:50 |
| 9 Jan 2026 |
sterni | It got broken by a recent emscripten update again, just needs someone to look at config.log for ghc and see what goes wrong | 15:27:25 |
sterni | This will be addressed by https://github.com/NixOS/cabal2nix/pull/667. In theory we could also expand the manual exclude list in the meantime, but I think it's not really urgent at this point anymore. | 15:28:56 |
ners | I'd love to help, but don't know how. | 15:29:18 |
sterni | ners: it would already be helpful if you could open an issue for the problem and obtain the contents of config.log (written by autoconf). You can get that by building witih --keep-failed. | 15:31:18 |
sterni | also link this piece of information, please: https://github.com/NixOS/nixpkgs/pull/466258#issuecomment-3651073416 | 15:32:43 |
Artem | i'm trying to build simple liquidhaskell app (https://github.com/ulysses4ever/liquid-haskell-demo) with
# default.nix
(pkgs.haskellPackages.callCabal2nix "liquid-haskell-app" ./liquid-haskell-app {}).overrideAttrs (old: {
nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ pkgs.z3 ];
})
when I run nix-build I see that the builder runs haddock, which conflicts with liquid haskell (). I tried adding doHaddock = false; in the overrideAttrs but that didn't change a thing. What am I missing to turn off Haddock?
| 18:35:48 |
sterni | you need to use the override interface of the haskell builder, not overrideAttrs | 18:36:22 |
sterni | i.e. haskell.lib.compose.overrideCabal | 18:36:28 |
andromeda | In reply to @sternenseemann:systemli.org ners: it would already be helpful if you could open an issue for the problem and obtain the contents of config.log (written by autoconf). You can get that by building witih --keep-failed. most helpful thing I learned today: --keep-failed exists | 19:02:01 |
Artem | sterni: i tried
pkgs.haskell.lib.overrideCabal (pkgs.haskellPackages.callCabal2nix "liquid-haskell-app" ./liquid-haskell-app {}) (old: {
nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ pkgs.z3 ];
doHaddock = false;
})
but that fails with a type error:
error: function 'anonymous lambda' called with unexpected argument 'nativeBuildInputs'
| 19:06:06 |
sterni | That’s expected the dependency declarations are named different there to match cabal | 19:06:47 |
sterni | you can look it up in the nixpkgs manual under “specifying dependencies” in the haskell section | 19:07:13 |
Artem | great, "buildTools" worked. Thanks a lot! | 19:16:47 |
andromeda | liquid haskell looks really cool | 19:48:59 |