!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

694 Members
For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://haskell4nix.readthedocs.io/138 Servers

Load older messages


SenderMessageTime
16 Sep 2025
@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
18 Sep 2025
@mequbic:matrix.orgiqubic (she/her) So, I'm looking to use XMobar on my NixOS system. I'm already quite familiar with Haskell and the XMobar config style. The main issue I'm running into is that the ALSA module says "to activate this plugin you must pass the with_alsa flag during compilation." How do I do that? 19:16:21
@mequbic:matrix.orgiqubic (she/her)I'm enabling XMobar via Home Manager and it gives me an option for "programs.xmobar.package" which defaults to "pkgs.haskellPackages.xmobar"19:17:19
@mequbic:matrix.orgiqubic (she/her)So, my question is... how do I override a Haskell package like this?19:17:33
@mequbic:matrix.orgiqubic (she/her) Nevermind... I'm a moron. Looking at the code in Nixpkgs, with_alsa is a default flag for this package. 19:20:34

Show newer messages


Back to Room ListRoom Version: 6