| 6 Jan 2026 |
Pierre Thierry | It doesn't look like it, cabal --verbose build says
Running: /nix/store/a8h81f4wc2nc8qgrfsxvgfd8has0xh3r-ghc-9.6.3/bin/ghc --print-global-package-db
and the flake says ghc963 | 14:48:51 |
maralorn | Apparently cabal-doctest works. Couldn’t get doctest-discover to run. | 17:19:16 |
maralorn | But I still very much have no idea what I am doing … | 17:19:33 |
| 7 Jan 2026 |
| Sigmanificient joined the room. | 00:25:15 |
Sigmanificient | Hello there, while having a conversation with my coincidentally named counterpart (i remember that), I discovered that haskell packages set has a at least a few packages that we should really not ship, as they has been removed after a report on the [https://github.com/haskell-infra/hackage-trustees/issues/132](hackage-trustees ' Spam/fraudulent issue)
While both examples sigmaSquadron gave me are marked as broken, this is due to dependency mismatch, not that the source is gone, because we have it cached. | 00:30:52 |
SigmaSquadron | Yeah, it's probably not ideal that the channels just randomly have sources for known fraudulent software. | 00:35:11 |
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 |
Artem | apparently, core liquid packages in nixpkgs are built without liquid annotations for the same reason: Haddock was enabled by default. So, now I need to disable it there. haskell-modules/configuration-nix.nix seems like the right place? And it should look fairly similar (oveerideCabal) I guess. | 20:46:49 |