!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

678 Members
For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://nixos.org/manual/nixpkgs/unstable/#haskell | Current PR: https://github.com/nixos/nixpkgs/pulls?q=is%3Apr+is%3Aopen+head%3Ahaskell-updates | Maintainer Docs: https://github.com/NixOS/nixpkgs/blob/haskell-updates/pkgs/development/haskell-modules/HACKING.md | More Nix: #community:nixos.org | More Haskell: #haskell-space:matrix.org | Merger Schedule: https://cloud.maralorn.de/apps/calendar/p/H6migHmKX7xHoTFa/dayGridMonth/now | Join #haskell.nix:libera.chat for question about the alternative haskell.nix infrastructure135 Servers

Load older messages


SenderMessageTime
16 Sep 2025
@bglgwyng:matrix.orgbglgwyng When expr is exposed, functionArgs expr might give us enough information 09:55:17
@bglgwyng:matrix.orgbglgwyng * When expr is exposed, functionArgs expr might give us enough information to correct the behavior 09:55:30
@sternenseemann:systemli.orgsterniI mean that's “just” another target, but true. Support for targets that relate to IOGs business are probably going to be more fleshed out (Android, iOS, Windows, …). I think Windows has been worked again in Nixpkgs recently, though. The big thing is probably that they have an qemu based iserv setup for TH in cross.10:01:08
@sternenseemann:systemli.orgsterniWe should probably eventually look into that again…10:01:24
@bglgwyng:matrix.orgbglgwyng I hoped callCabal2Nix is enough to do my stuffs, but it turns out not. I realized that I need more control over arguments passed to cabl2nix expression. 10:23:40
@bglgwyng:matrix.orgbglgwyng It seems that I need to define mkDerivation, which is to be passed to cabal2nix expression. 10:24:06
@bglgwyng:matrix.orgbglgwyngDo we have a nice example other than one ine nixpkgs?10:24:20
@cdepillabout:matrix.orgcdepillaboutstacklock2nix has this same problem. Here's how I'm solving it: https://github.com/cdepillabout/stacklock2nix/blob/108f6ab6d0208e3842443bea26dfd72b37d82f28/nix/build-support/stacklock2nix/cabal2nixArgsForPkg.nix10:26:46
@bglgwyng:matrix.orgbglgwyngThanks!10:27:12
@sternenseemann:systemli.orgsterni bglgwyng: https://github.com/NixOS/nixpkgs/pull/443442 13:56:12
@bglgwyng:matrix.orgbglgwyngGreat!15:09:28
17 Sep 2025
@bglgwyng:matrix.orgbglgwyng
> Using Parsec parser
       > Did not find a GI repository for GLib-2.0 in ["/nix/store/367sp8xqvk70a050fm6f8a93lig0gx41-ghc-9.10.1/share/gir-1.0","/nix/store/6zdgga8jx741p46wmx8xyibwz3x3fps6-ncurses-6.5/share/gir-1.0","/nix/store/hnzqas16kwcvaj2j5wb4izxdh692f9vn-elfutils-0.193/share/gir-1.0","/nix/store/05h9vfzhqf7l6w1xczixici2ldw9y788-pkg-config-wrapper-0.29.2/share/gir-1.0","/nix/store/c38cqq7a91inmdgciv3r22kmx49y6axj-attoparsec-0.14.4/share/gir-1.0","/nix/store/xwfxs15j96m3jbgxj2r0swvckj2x0xj7-vector-0.13.2.0/share/gir-1.0","/nix/store/gx2l0rnp3qcnysdddkg9dqnh2mz6w08k-patchelf-0.15.2/share/gir-1.0","/opt/homebrew/share/gir-1.0"].
       > CallStack (from HasCallStack):
       >   error, called at lib/Data/GI/GIR/Repository.hs:94:20 in haskell-gi-0.26.17-J7744VfCWJN7HmDfsyCDMT:Data.GI.GIR.Repository
       For full logs, run:
         nix log /nix/store/2gwlmv6cq5bw8ra7jriga1i0gyjmq5p4-gi-glib-2.0.30.drv

Does anyone know what it means? I tried to build cabal2nix result of gi-glib(+ some configurations) and found this error.

02:42:19
@alexfmpe:matrix.orgalexfmpeRedacted or Malformed Event06:29:24
@alexfmpe:matrix.orgalexfmpe
In reply to @sternenseemann:systemli.org
We should probably eventually look into that again…
I threw a day or two at this a couple months back trying to cargo cult what haskell.nix did, only with nixpkgs' general emulation utils rather than hardcode qemu/wine etc.
06:32:18
@alexfmpe:matrix.orgalexfmpeMy motivation was mobile so I tried doing it for android TH but got stuck on some linkage shenanigans I don't remember06:32:44
@alexfmpe:matrix.orgalexfmpeAnd think I couldn't try with windows due to executables not building properly06:33:13
@alexfmpe:matrix.orgalexfmpeBut now that I think about it, maybe I can try some other cross just to get the general shape of things out the door06:33:57
@alexfmpe:matrix.orgalexfmpeThe emulation stuff can also be used for cross testing, but a lot of suites use TH for test discovery so that needs to work first06:35:17
@alexfmpe:matrix.orgalexfmpe
In reply to @mangoiv.:matrix.org
I think haskell.nix can do Windows cross, I wasn't aware nixpkgs can do that
https://github.com/NixOS/nixpkgs/pull/357744#issue-2677729790
06:39:45
@bglgwyng:matrix.orgbglgwyngCan someone help me with this?12:28:23
@bglgwyng:matrix.orgbglgwyngI made a reproducer here https://github.com/bglgwyng/override-haskell-gi-base/blob/main/flake.nix#L1912:28:29
@bglgwyng:matrix.orgbglgwyng What I found weird is that the gi-glib definitions is virtually the same with the haskellPackages.gi-glib which is build successfully 12:29:13
@bglgwyng:matrix.orgbglgwyng I just copied haskell-gi-base code and override it. If I understand correctly, there should not be any difference in the behavior. 12:30:06
@bglgwyng:matrix.orgbglgwyng

I found

haskell-gi-base = addBuildDepend pkgs.gobject-introspection super.haskell-gi-base;

in configuration-nix.nix

14:42:44
@bglgwyng:matrix.orgbglgwyng *

I found

{ haskell-gi-base = addBuildDepend pkgs.gobject-introspection super.haskell-gi-base; }

in configuration-nix.nix

14:42:52
@bglgwyng:matrix.orgbglgwyngHmm... can we remove this quick fix modifying haskell-gi-base.cabal? I don't mean I'm going to do though.14:57:08
@sternenseemann:systemli.orgsternicabal doesn't allow declaring dependencies on non-Haskell build tools iirc16:08:03
@sternenseemann:systemli.orgsternithe idea behind configuration-nix was that you would apply this configuration to your package set even if you are building a downstream package set, but I'm not sure if this actually works out in practice. Most likely too many assumptions in there.16:09:22
@sternenseemann:systemli.orgsternisounds like a nice idea. I think amjoseph tried it before and ran into a lot of problems, but maybe he tried to get powerpc64le-linux to work and ran into some unrelated issues16:10:24
@sternenseemann:systemli.orgsternian alternative/complementary approach to this is "postprocessing" in cabal2nix which can almost arbitrarily modify the generated package expressions. We are trying to slowly remove that feature though as it is a bit of a nightmare to maintain16:12:31

There are no newer messages yet.


Back to Room ListRoom Version: 6