!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 infrastructure134 Servers

Load older messages


SenderMessageTime
10 Dec 2025
@toonn:matrix.orgtoonn (Highly recommend Haskell.nix for this use case.) 10:14:49
@maralorn:maralorn.demaralornI don’t think I agree. 😄10:22:45
@mequbic:matrix.orgiqubic (she/her) maralorn: No. None of the other packages I'm requiring in my Cabal file have sbv as a dependency. It's a top-level dependency, and not a transitive dependency. 10:44:45
@mequbic:matrix.orgiqubic (she/her) How would I use that in my dev environment? I'm using callCabal2Nix, so it might be a bit hard to override this. 10:45:27
@maralorn:maralorn.demaralornRedacted or Malformed Event10:59:07
@maralorn:maralorn.demaralorn
  1. Figure out which package there is. e.g. if your version of nixpkgs has sbv_13_0 or sbv_13_3.
11:00:09
@maralorn:maralorn.demaralorn
  1. adapt line 4 like this myPkg = pkgs.haskell.packages.ghc912.callCabal2nix "aoc25" src { sbv = pkgs.haskell.packages.ghc912.sbv_13_3; }
11:00:53
@maralorn:maralorn.demaralornIf you can’t find an sbv_x_y attribute to your liking you can instead use callHackage and if that doesn’t work callHackageDirect. Both are documented in the nixpkgs manual.11:01:49
@mequbic:matrix.orgiqubic (she/her)

Using pkgs.haskell.packages.ghc912.sbv_13_3 isn't working.

LATITUDE-NIXOS hs/aoc25 » nix-shell                                                                           1 ↵
fetching path input 'path:/nix/store/3w2nr2aq2gp76nb6lh1alx6h10mwvp5d-source'
error:
       … while evaluating an expression to select 'drvPath' on it
         at «internal»:1:552:
       … while evaluating strict
         at «internal»:1:552:
       (stack trace truncated; use '--show-trace' to show the full trace)

       error: attribute 'outPath' missing
       at /nix/store/3w2nr2aq2gp76nb6lh1alx6h10mwvp5d-source/lib/deprecated/misc.nix:253:19:
          252|         startSet = map (x: {
          253|           key = x.outPath;
             |                   ^
          254|           val = x;

       note: trace involved the following derivations:
       derivation 'aoc-shell
11:07:12
@maralorn:maralorn.demaralornThat error message confuses me.11:08:10
@mequbic:matrix.orgiqubic (she/her)Why?11:08:27
@maralorn:maralorn.demaralornBecause it is not "has no attribute sbv_13_3".11:09:07
@maralorn:maralorn.demaralorn You can find possible sbv attributes by launching nix repl binding pkgs = import <nixpkgs> {} and then doing tabcompletion. 11:10:53
@mequbic:matrix.orgiqubic (she/her)Oh... I see what the issue is..11:15:39
@mequbic:matrix.orgiqubic (she/her)
{ pkgs ? import <nixpkgs> {} }:
let
  src = pkgs.nix-gitignore.gitignoreSource [] ./.;
  newSbv = { sbv = pkgs.haskell.packages.ghc912.sbv_12_2; };
  myPkg = pkgs.haskell.packages.ghc912.callCabal2nix "aoc25" src { sbv = newSbv; };
in
pkgs.stdenv.mkDerivation {
  name = "aoc-shell";

  buildInputs = [
    myPkg.env.nativeBuildInputs

    pkgs.cabal-install
    pkgs.haskell.packages.ghc912.haskell-language-server

    # pkgs.z3
  ];
}
11:15:49
@felineterrorist:matrix.org@felineterrorist:matrix.org left the room.11:16:09
@mequbic:matrix.orgiqubic (she/her) Extra set of brackets in the declaration of newSbv 11:16:09
@mequbic:matrix.orgiqubic (she/her) Even after fixing that, sbv is still marked as broken... 11:17:29
@mequbic:matrix.orgiqubic (she/her) maralorn: I have no clue why this is marked as broken... 11:22:07
@mequbic:matrix.orgiqubic (she/her)I did the tab completion ting to get a valid thing...11:22:28
@maralorn:maralorn.demaralorn iqubic (she/her): Im the broadest terms: sbv is probably marked broken because it has no maintainer in nixkpgs. 11:25:05
@maralorn:maralorn.demaralornAnd I don’t know what the specific reason is.11:25:40
@maralorn:maralorn.demaralornIt is probably noted in a comment in a file called broken.yaml in nixpkgs.11:26:07
@maralorn:maralorn.demaralornBut anyway you can remove the broken flag and see what happens.11:26:36
@maralorn:maralorn.demaralorn ... sbv = pkgs.haskell.lib.compose.unmarkBroken pkgs.… 11:27:14
@maralorn:maralorn.demaralornIf you are really lucky it just builds.11:27:27
@maralorn:maralorn.demaralorn If you are medium lucky it builds after you apply pkgs.haskell.lib.compose.doJailbreak or pkgs.haskell.lib.compose.dontCheck to the package. 11:28:12
@maralorn:maralorn.demaralorn If you are not lucky none of that helps and then we get to the reason why toonn recommendation might not be that bad after all. 😄 11:29:03
@maralorn:maralorn.demaralornI mean every package is fixable but the effort can get larger.^^11:29:34
@toonn:matrix.orgtoonn My personal preference for Haskell.nix is because it sticks to Cabal's dependency model, which is constraint resolution. The Nixpkgs Haskell infra is for when you want to package something for Nixpkgs or when you really don't want to every build your dependencies in exchange for dealing with all the version incompatibilities that implies. IMO, reasonable people can have differing opinions. 11:44:46

There are no newer messages yet.


Back to Room ListRoom Version: 6