!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

724 Members
For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://haskell4nix.readthedocs.io/ | More Nix: #community:nixos.org | More Haskell: #haskell-space:matrix.org145 Servers

Load older messages


SenderMessageTime
23 Apr 2025
@alexfmpe:matrix.orgalexfmpeMe neither11:46:15
@alexfmpe:matrix.orgalexfmpeGetting it mainlined and cached removes the main obstacle11:47:03
@alexfmpe:matrix.orgalexfmpeBy the time anyone is using it and wants to upstream some override we'd probably have it merged into haskell-updates 11:47:41
@sternenseemann:systemli.orgsterni (he/him)Just cherry pick I have a feeling we may doing that a fair bit for 24.11 stuff11:54:52
@maralorn:maralorn.demaralorn24.11?12:33:40
24 Apr 2025
@jktr:0x16.de@jktr:0x16.de left the room.01:16:55
@hy84coky:fau.deLeon Vatthauer set a profile picture.12:50:31
@dragospe:matrix.orgPeter Dragos joined the room.14:13:49
@dragospe:matrix.orgPeter Dragos

Hey folks, I'm working on getting haskellPackages.accelerate building. I've gotten it building locally against 24.11.

I'd like to make a PR for nixpkgs, so I've checked out nixpkgs/haskell-updates and am editing common-configuration.nix with

  accelerate = overrideSrc {
    src = pkgs.fetchFromGitHub {
      owner = "AccelerateHS";
      repo = "accelerate";
      rev = "3f681a5091eddf5a3b97f4cd0de32adc830e1117";
      sha256 = "sha256-tCcl7wAls+5cBSrqbxfEAJngbV43OJcLJdaC4qqkBxc=";
    };
  } super.accelerate;

But when I do this, I get

double-conversion >=2.0, formatting >=7.0, microlens >=0.4

if I go into the nix repl, :lf, and inspect nix-repl> legacyPackages.x86_64-linux.haskellPackages.microlens.version I get "0.4.13.1" which should be compatible; and this is the same for double-conversion and formatting as well. Do I need to do something different to get the dependencies picked up properly?

14:14:29
@TuXic:matrix.orgTuXic joined the room.14:21:59
@maralorn:maralorn.demaralorn Peter Dragos: Its likely that those dependencies were not present in the version of accelerate which is in that nixpkgs checkout. You are reusing the derivation for another version of the package there, just swapping the src. 14:37:35
@maralorn:maralorn.demaralornIs there no newer release of accelerate?14:38:10
@maralorn:maralorn.demaralornA possible solution is to manually add the missing dependencies with further overrides on the package.14:39:43
@dragospe:matrix.orgPeter Dragos I far as I can tell, the latest version of accelerate on hackage has the same base constraints 14:43:58
@dragospe:matrix.orgPeter DragosI'll give this a shot, thanks14:44:06
@maralorn:maralorn.demaralornWhy are you mentioning base constraints? They don’t appear in your error message.14:44:58
@maralorn:maralorn.demaralornHuh, I see your point. Last release 5 years ago. Unclear whether you can compile this against a current ghc.14:47:56
@dragospe:matrix.orgPeter Dragos

Sorry, I originally asked over in the Haskell matrix and then realized it was better off here.

The relevant info is that the version in release-24.11 gives

       > Error: Setup: Encountered missing or private dependencies:
       > base >=4.12 && <4.15
       >

14:48:28
@maralorn:maralorn.demaralorn Well then first you try doJailbreak. 14:49:12
@maralorn:maralorn.demaralornIf it works it’s the easiest solution. But it probably doesn’t …14:49:39
@dragospe:matrix.orgPeter Dragos But the repository itself (link] is active. Jailbreaking didn't work, so someone suggested pulling directly from the repo. I got that to build on 24.11 with one other dontCheck on a dependency, but haskell-updates has the issue mentioned above 14:50:07
@dragospe:matrix.orgPeter Dragos * But the repository itself (link) is active. Jailbreaking didn't work, so someone suggested pulling directly from the repo. I got that to build on 24.11 with one other dontCheck on a dependency, but haskell-updates has the issue mentioned above 14:50:19
@maralorn:maralorn.demaralornHuh, then I am confused.14:50:50
@maralorn:maralorn.demaralornBecause my explanation should also mean that it doesn’t work on 24.11. Since the derivation clearly hasn’t changed for years.14:51:20
@maralorn:maralorn.demaralornJust to be sure: The error message appears in the build of accelerate and not in one of its dependencies?14:52:02
@maralorn:maralorn.demaralornHuh, you used callCabal2nix or something similar on 24.11, right? Because the accelerate derivation in nixpkgs indeed does not mention mircolens, formatting or double-conversion.14:53:35
@dragospe:matrix.orgPeter Dragos

I did, yes.

My complete overlay was

      hs-overlay = final: prev: {
        haskell = prev.haskell // {
          packageOverrides = hfinal: hprev:
            prev.haskell.packageOverrides hfinal hprev // {
              parconc-examples = hfinal.callCabal2nix "parconc-examples" ./. { };
              accelerate = hfinal.callCabal2nix "accelerate"
                (final.fetchFromGitHub {
                  owner = "AccelerateHS";
                  repo = "accelerate";
                  rev = "3f681a5091eddf5a3b97f4cd0de32adc830e1117";
                  sha256 = "sha256-tCcl7wAls+5cBSrqbxfEAJngbV43OJcLJdaC4qqkBxc=";
                }
                )
                { };
              distributed-process-simplelocalnet =
                final.haskell.lib.dontCheck hprev.distributed-process-simplelocalnet;
            };

        };
        parconc-examples = final.haskell.lib.compose.justStaticExecutables final.haskellPackages.parconc-examples;
      };
14:54:53
@dragospe:matrix.orgPeter Dragos

and the command I'm using to try the build is √ nixpkgs % nix build .#haskellPackages.accelerate --impure, which gives

       > Using Parsec parser
       > Configuring accelerate-1.3.0.0...
       > CallStack (from HasCallStack):
       >   withMetadata, called at libraries/Cabal/Cabal/src/Distribution/Simple/Utils.hs:368:14 in Cabal-3.10.3.0-inplace:Distribution.Simple.Utils
       > Error: Setup: Encountered missing or private dependencies:
       > double-conversion >=2.0, formatting >=7.0, microlens >=0.4
14:56:16
@maralorn:maralorn.demaralornI guess at this point the cleanest solution would be a) get upstream to make a release or b) create a new accelerate-unstable derivation with cabal2nix in nixpkgs and use it to completely replace the existing derivation. cachix does it like that, iirc.14:56:47
@dragospe:matrix.orgPeter Dragoswhich aligns with what you're finding. So i guess I'd need to do a slightly more involved override for the derivation to add those dependencies (and possibly other fix-ups)?14:56:58

Show newer messages


Back to Room ListRoom Version: 6