about summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/configuration-nix.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/haskell-modules/configuration-nix.nix')
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix105
1 files changed, 82 insertions, 23 deletions
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 8477d68dfaf5..cee1e089cf60 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -113,6 +113,35 @@ self: super: builtins.intersectAttrs super {
     '' + drv.preCheck or "";
   }) super.agda2lagda;
 
+  # - Disable scrypt support since the library used only works on x86 due to SSE2:
+  #   https://github.com/informatikr/scrypt/issues/8
+  # - Use crypton as the encryption backend. That override becomes obsolete with
+  #   3.1.* since cabal2nix picks crypton by default then.
+  password =
+    let
+      scryptSupported = pkgs.stdenv.hostPlatform.isx86;
+    in
+
+      lib.pipe
+        (super.password.override ({
+          cryptonite = self.crypton;
+        } // lib.optionalAttrs (!scryptSupported) {
+          scrypt = null;
+        }))
+        ([
+          (enableCabalFlag "crypton")
+          (disableCabalFlag "cryptonite")
+          # https://github.com/cdepillabout/password/pull/84
+          (appendPatch ./patches/password-3.0.4.0-scrypt-conditional.patch)
+          (overrideCabal (drv: {
+            # patch doesn't apply otherwise because of revisions
+            prePatch = drv.prePatch or "" + ''
+              ${pkgs.buildPackages.dos2unix}/bin/dos2unix *.cabal
+            '';
+          }))
+        ] ++ lib.optionals (!scryptSupported) [
+          (disableCabalFlag "scrypt")
+        ]);
 
   audacity = enableCabalFlag "buildExamples" (overrideCabal (drv: {
       executableHaskellDepends = [self.optparse-applicative self.soxlib];
@@ -156,6 +185,11 @@ self: super: builtins.intersectAttrs super {
     '';
   }) super.nvvm;
 
+  # Doesn't declare LLVM dependency, needs llvm-config
+  llvm-codegen = addBuildTools [
+    pkgs.llvmPackages_17.llvm.dev # for native llvm-config
+  ] super.llvm-codegen;
+
   # hledger* overrides
   inherit (
     let
@@ -188,27 +222,27 @@ self: super: builtins.intersectAttrs super {
       hledger-web = installHledgerExtraFiles "" (hledgerWebTestFix super.hledger-web);
       hledger-ui = installHledgerExtraFiles "" super.hledger-ui;
 
-      hledger_1_34 = installHledgerExtraFiles "embeddedfiles"
-        (doDistribute (super.hledger_1_34.override {
-          hledger-lib = self.hledger-lib_1_34;
+      hledger_1_40 = installHledgerExtraFiles "embeddedfiles"
+        (doDistribute (super.hledger_1_40.override {
+          hledger-lib = self.hledger-lib_1_40;
         }));
-      hledger-ui_1_34 = installHledgerExtraFiles ""
-        (doDistribute (super.hledger-ui_1_34.override {
-          hledger = self.hledger_1_34;
-          hledger-lib = self.hledger-lib_1_34;
+      hledger-ui_1_40 = installHledgerExtraFiles ""
+        (doDistribute (super.hledger-ui_1_40.override {
+          hledger = self.hledger_1_40;
+          hledger-lib = self.hledger-lib_1_40;
         }));
-      hledger-web_1_34 = installHledgerExtraFiles "" (hledgerWebTestFix
-        (doDistribute (super.hledger-web_1_34.override {
-          hledger = self.hledger_1_34;
-          hledger-lib = self.hledger-lib_1_34;
+      hledger-web_1_40 = installHledgerExtraFiles "" (hledgerWebTestFix
+        (doDistribute (super.hledger-web_1_40.override {
+          hledger = self.hledger_1_40;
+          hledger-lib = self.hledger-lib_1_40;
         })));
     }
   ) hledger
     hledger-web
     hledger-ui
-    hledger_1_34
-    hledger-ui_1_34
-    hledger-web_1_34
+    hledger_1_40
+    hledger-ui_1_40
+    hledger-web_1_40
     ;
 
   cufft = overrideCabal (drv: {
@@ -300,7 +334,7 @@ self: super: builtins.intersectAttrs super {
     [ (disableHardening ["fortify"])
       (addBuildTool self.buildHaskellPackages.gtk2hs-buildtools)
     ] ++
-    ( if pkgs.stdenv.isDarwin then [(appendConfigureFlag "-fhave-quartz-gtk")] else [] )
+    ( if pkgs.stdenv.hostPlatform.isDarwin then [(appendConfigureFlag "-fhave-quartz-gtk")] else [] )
   );
   gtksourceview2 = addPkgconfigDepend pkgs.gtk2 super.gtksourceview2;
   gtk-traymanager = addPkgconfigDepend pkgs.gtk3 super.gtk-traymanager;
@@ -376,9 +410,11 @@ self: super: builtins.intersectAttrs super {
   mustache = dontCheck super.mustache;
   arch-web = dontCheck super.arch-web;
 
+  # Tries accessing the GitHub API
+  github-app-token = dontCheck super.github-app-token;
+
   # The curl executable is required for withApplication tests.
   warp = addTestToolDepend pkgs.curl super.warp;
-  warp_3_3_30 = addTestToolDepend pkgs.curl super.warp_3_3_30;
 
   safe-exceptions = overrideCabal (drv: {
     # Fix strictDeps build error "could not execute: hspec-discover"
@@ -429,6 +465,7 @@ self: super: builtins.intersectAttrs super {
 
   shellify = enableSeparateBinOutput super.shellify;
   specup = enableSeparateBinOutput super.specup;
+  aws-spend-summary = enableSeparateBinOutput super.aws-spend-summary;
 
   # Test suite wants to connect to $DISPLAY.
   bindings-GLFW = dontCheck super.bindings-GLFW;
@@ -520,7 +557,7 @@ self: super: builtins.intersectAttrs super {
       "--extra-include-dirs=${pkgs.cwiid}/include"
       "--extra-include-dirs=${pkgs.bluez.dev}/include"
     ];
-    prePatch = '' sed -i -e "/Extra-Lib-Dirs/d" -e "/Include-Dirs/d" "hcwiid.cabal" '';
+    prePatch = ''sed -i -e "/Extra-Lib-Dirs/d" -e "/Include-Dirs/d" "hcwiid.cabal"'';
   }) super.hcwiid;
 
   # cabal2nix doesn't pick up some of the dependencies.
@@ -585,7 +622,7 @@ self: super: builtins.intersectAttrs super {
   #
   # Additional note: nixpkgs' freeglut and macOS's OpenGL implementation do not cooperate,
   # so disable this on Darwin only
-  ${if pkgs.stdenv.isDarwin then null else "GLUT"} = overrideCabal (drv: {
+  ${if pkgs.stdenv.hostPlatform.isDarwin then null else "GLUT"} = overrideCabal (drv: {
     pkg-configDepends = drv.pkg-configDepends or [] ++ [
       pkgs.freeglut
     ];
@@ -823,9 +860,9 @@ self: super: builtins.intersectAttrs super {
     # https://git-annex.branchable.com/git-annex-shell/
     passthru.shellPath = "/bin/git-annex-shell";
   }) (super.git-annex.override {
-    dbus = if pkgs.stdenv.isLinux then self.dbus else null;
-    fdo-notify = if pkgs.stdenv.isLinux then self.fdo-notify else null;
-    hinotify = if pkgs.stdenv.isLinux then self.hinotify else self.fsnotify;
+    dbus = if pkgs.stdenv.hostPlatform.isLinux then self.dbus else null;
+    fdo-notify = if pkgs.stdenv.hostPlatform.isLinux then self.fdo-notify else null;
+    hinotify = if pkgs.stdenv.hostPlatform.isLinux then self.hinotify else self.fsnotify;
   });
 
   # The test suite has undeclared dependencies on git.
@@ -1117,6 +1154,22 @@ self: super: builtins.intersectAttrs super {
     (dontCheckIf (!pkgs.postgresql.doCheck))
   ];
 
+  cloudy =
+    pkgs.lib.pipe
+      super.cloudy
+      [
+        # The code-path that generates the optparse-applicative completions uses
+        # the HOME directory, so that must be set in order to generate completions.
+        # https://github.com/cdepillabout/cloudy/issues/10
+        ( overrideCabal (oldAttrs: {
+            postInstall = ''
+                export HOME=$TMPDIR
+              '' + (oldAttrs.postInstall or "");
+          })
+        )
+        (self.generateOptparseApplicativeCompletions ["cloudy"])
+      ];
+
   # Wants running postgresql database accessible over ip, so postgresqlTestHook
   # won't work (or would need to patch test suite).
   domaindriven-core = dontCheck super.domaindriven-core;
@@ -1368,11 +1421,12 @@ self: super: builtins.intersectAttrs super {
       gi-javascriptcore
       gi-webkit2webextension
       gi-gtk_4_0_9
-      gi-gdk_4_0_8
+      gi-gdk_4_0_9
       gi-gsk
       gi-adwaita
       sdl2-ttf
       sdl2
+      dear-imgui
       ;
 
     webkit2gtk3-javascriptcore = lib.pipe super.webkit2gtk3-javascriptcore [
@@ -1394,7 +1448,7 @@ self: super: builtins.intersectAttrs super {
         mpiImpl = pkgs.mpi.pname;
         disableUnused = with builtins; map disableCabalFlag (filter (n: n != mpiImpl) validMpi);
      in lib.pipe
-          (super.mpi-hs_0_7_3_0.override { ompi = pkgs.mpi; })
+          (super.mpi-hs_0_7_3_1.override { ompi = pkgs.mpi; })
           ( [ (addTestToolDepends [ pkgs.openssh pkgs.mpiCheckPhaseHook ]) ]
             ++ disableUnused
             ++ lib.optional (builtins.elem mpiImpl validMpi) (enableCabalFlag mpiImpl)
@@ -1431,4 +1485,9 @@ self: super: builtins.intersectAttrs super {
       "--skip=/Cabal.Paths/paths"
     ];
   }) super.doctest;
+
+  # tracked upstream: https://github.com/snapframework/openssl-streams/pull/11
+  # certificate used only 1024 Bit RSA key and SHA-1, which is not allowed in OpenSSL 3.1+
+  # security level 2
+  openssl-streams = appendPatch ./patches/openssl-streams-cert.patch super.openssl-streams;
 }