!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

684 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 infrastructure133 Servers

Load older messages


SenderMessageTime
7 Dec 2025
@re1lucky365:matrix.orgRobert Evans set a profile picture.19:02:47
@iopq:matrix.orgiopq<<loop>>19:40:04
@sternenseemann:systemli.orgsternithen that issue is completely unrelated to Nixpkgs, given that that's a Haskell RTS error?!21:55:41
@sternenseemann:systemli.orgsternihttps://www.stackage.org/diff/lts-24.23/nightly-2025-12-0721:57:46
9 Dec 2025
@andromeda:tchncs.deandromeda joined the room.04:42:52
@andromeda:tchncs.deandromedahallo04:45:22
@andromeda:tchncs.deandromedadoes anyone have a Nix flake that builds a package for Hackage without using Cabal? Like without having the 'redundancy' of a Nix build specification in the flake and a Cabal specification in the .cabal file?04:46:23
@alex:tunstall.xyzAlex
In reply to @andromeda:tchncs.de
does anyone have a Nix flake that builds a package for Hackage without using Cabal? Like without having the 'redundancy' of a Nix build specification in the flake and a Cabal specification in the .cabal file?

builds a package for Hackage without using Cabal

AFAIK Hackage always requires a Cabal description by design.

04:47:50
@andromeda:tchncs.deandromedahmm I could use the metadata defined in the flake to create a .cabal at build time for reproducibility05:02:12
@andromeda:tchncs.deandromedaoder?05:02:28
@andromeda:tchncs.deandromeda20251209_06h35m40s_grim.png
Download 20251209_06h35m40s_grim.png
05:35:58
@andromeda:tchncs.deandromedagoodness what is Cabal's problem /j05:36:10
@felineterrorist:matrix.orgterrorist :: Feline joined the room.06:47:19
@mangoiv.:matrix.orgMangoIV

No and it’s both a bad idea and it’s misguided.

  1. nixpkgs haskell support (and Haskell.nix) uses cabal anyway so you don’t get around it
  2. nobody except nix users will be able to build your package
  3. nix flakes are even worse on that sense
  4. please don’t upload things to hackage that people cannot build for that reason.

My tip is to use cabal as the source of truth.

08:42:50
@andromeda:tchncs.deandromedaso I'm thinking that I a) use ghcWithPackages to get libraries through Nix b) use cabal-install nix package for building and c) make build scripts .sh files or something so someone without nix will have no trouble building it. Does that sound workable?08:58:10
@maralorn:maralorn.demaralorn @andromeda:tchncs.de I don't understand what you are trying to achieve. Writing a Haskell package builder for nix is a major undertaking why not use one of the existing ones? 09:06:16
@maralorn:maralorn.demaralornAh, I was misunderstanding.09:07:31
@maralorn:maralorn.demaralornBut I am still unsure what you are trying to achieve.09:09:04
@andromeda:tchncs.deandromeda I want to be able to nix run .#debug to run my debug build, .#release for the release build, and .#docs to build Haddock into $out/docs. I currently have this implemented, but, as previously mentioned, people without Nix can't build it. By using Cabal as the actual build system and calling it from build scripts, I can use Nix as just a package manager which calls those same build scripts. Rather than using Nix as the package manager and build system like prior 09:12:56
@andromeda:tchncs.deandromedacan I see an example of like a well-done flake for a haskell package?09:13:43
@andromeda:tchncs.deandromedaso like MangoIV said I would be using Cabal as the 'source of truth' and Nix just as a convenience dev environment for those who have it.09:16:05
@maralorn:maralorn.demaralornAh, I see09:16:24
@andromeda:tchncs.deandromedaNix's flexibility is a blessing and a curse xD09:16:49
@maralorn:maralorn.demaralornMy best flake is probably this one others might have cleaner ones: https://github.com/maralorn/nix-output-monitor/blob/main/flake.nix09:19:33
@maralorn:maralorn.demaralornBut I am not saying that everything in there is recommended for every project09:20:20
@andromeda:tchncs.deandromedayo you write nom!? Awesome! I use it every day09:20:38
@maralorn:maralorn.demaralornAnyway the spirit of nixpkgs is generally to reuse language specific build instructions instead of dodging them.09:22:33
@maralorn:maralorn.demaralornThis is imo not a failure to separate concerns09:22:51
@maralorn:maralorn.demaralornnix does not know anything about Haskell or cabal09:23:14
@maralorn:maralorn.demaralornBut nixpkgs is a suite of libraries to build projects from all kinds of ecosystems. Using such a library to build a Haskell package seems smart to me instead of redundant.09:24:32

There are no newer messages yet.


Back to Room ListRoom Version: 6