16 Sep 2025 |
bglgwyng | When expr is exposed, functionArgs expr might give us enough information | 09:55:17 |
bglgwyng | * When expr is exposed, functionArgs expr might give us enough information to correct the behavior | 09:55:30 |
sterni | I 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 |
sterni | We should probably eventually look into that again… | 10:01:24 |
bglgwyng | 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 | It seems that I need to define mkDerivation , which is to be passed to cabal2nix expression. | 10:24:06 |
bglgwyng | Do we have a nice example other than one ine nixpkgs? | 10:24:20 |
cdepillabout | stacklock2nix has this same problem. Here's how I'm solving it: https://github.com/cdepillabout/stacklock2nix/blob/108f6ab6d0208e3842443bea26dfd72b37d82f28/nix/build-support/stacklock2nix/cabal2nixArgsForPkg.nix | 10:26:46 |
bglgwyng | Thanks! | 10:27:12 |
sterni | bglgwyng: https://github.com/NixOS/nixpkgs/pull/443442 | 13:56:12 |
bglgwyng | Great! | 15:09:28 |
17 Sep 2025 |
bglgwyng | > 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 | Redacted or Malformed Event | 06:29:24 |
alexfmpe | 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 | My motivation was mobile so I tried doing it for android TH but got stuck on some linkage shenanigans I don't remember | 06:32:44 |
alexfmpe | And think I couldn't try with windows due to executables not building properly | 06:33:13 |
alexfmpe | But now that I think about it, maybe I can try some other cross just to get the general shape of things out the door | 06:33:57 |
alexfmpe | The emulation stuff can also be used for cross testing, but a lot of suites use TH for test discovery so that needs to work first | 06:35:17 |
alexfmpe | 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 | Can someone help me with this? | 12:28:23 |
bglgwyng | I made a reproducer here
https://github.com/bglgwyng/override-haskell-gi-base/blob/main/flake.nix#L19 | 12:28:29 |
bglgwyng | 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 | 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 | I found
haskell-gi-base = addBuildDepend pkgs.gobject-introspection super.haskell-gi-base;
in configuration-nix.nix
| 14:42:44 |
bglgwyng | * I found
{ haskell-gi-base = addBuildDepend pkgs.gobject-introspection super.haskell-gi-base; }
in configuration-nix.nix
| 14:42:52 |
bglgwyng | Hmm... can we remove this quick fix modifying haskell-gi-base.cabal? I don't mean I'm going to do though. | 14:57:08 |
sterni | cabal doesn't allow declaring dependencies on non-Haskell build tools iirc | 16:08:03 |
sterni | the 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 |
sterni | sounds 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 issues | 16:10:24 |
sterni | an 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 maintain | 16:12:31 |