diff options
Diffstat (limited to 'pkgs/development/haskell-modules/configuration-nix.nix')
-rw-r--r-- | pkgs/development/haskell-modules/configuration-nix.nix | 110 |
1 files changed, 77 insertions, 33 deletions
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 6767fe1f34822..8c9af3380c08c 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -62,7 +62,7 @@ self: super: builtins.intersectAttrs super { # This prevents linking issues when running TH splices. postInstall = '' mv "$out/bin/haskell-language-server" "$out/bin/.haskell-language-server-${self.ghc.version}-unwrapped" - BOOT_PKGS=`ghc-pkg-${self.ghc.version} --global list --simple-output` + BOOT_PKGS="ghc-${self.ghc.version} template-haskell-$(ghc-pkg-${self.ghc.version} --global --simple-output field template-haskell version)" ${pkgs.buildPackages.gnused}/bin/sed \ -e "s!@@EXE_DIR@@!$out/bin!" \ -e "s/@@EXE_NAME@@/.haskell-language-server-${self.ghc.version}-unwrapped/" \ @@ -129,6 +129,9 @@ self: super: builtins.intersectAttrs super { # Link the proper version. zeromq4-haskell = super.zeromq4-haskell.override { zeromq = pkgs.zeromq4; }; + # cabal2nix incorrectly resolves this to pkgs.zip (could be improved over there). + streamly-zip = super.streamly-zip.override { zip = pkgs.libzip; }; + threadscope = enableSeparateBinOutput super.threadscope; # Use the default version of mysql to build this package (which is actually mariadb). @@ -156,16 +159,16 @@ self: super: builtins.intersectAttrs super { # hledger* overrides inherit ( let - installHledgerExtraFiles = overrideCabal (drv: { + installHledgerExtraFiles = manpagePathPrefix: overrideCabal (drv: { buildTools = drv.buildTools or [] ++ [ pkgs.buildPackages.installShellFiles ]; postInstall = '' for i in $(seq 1 9); do - installManPage *.$i + installManPage ./${manpagePathPrefix}/*.$i done - install -v -Dm644 *.info* -t "$out/share/info/" + install -v -Dm644 ./${manpagePathPrefix}/*.info* -t "$out/share/info/" if [ -e shell-completion/hledger-completion.bash ]; then installShellCompletion --name hledger shell-completion/hledger-completion.bash @@ -181,25 +184,31 @@ self: super: builtins.intersectAttrs super { }); in { - hledger = installHledgerExtraFiles super.hledger; - hledger-web = installHledgerExtraFiles (hledgerWebTestFix super.hledger-web); - hledger-ui = installHledgerExtraFiles super.hledger-ui; + hledger = installHledgerExtraFiles "" super.hledger; + hledger-web = installHledgerExtraFiles "" (hledgerWebTestFix super.hledger-web); + hledger-ui = installHledgerExtraFiles "" super.hledger-ui; - hledger_1_30_1 = installHledgerExtraFiles - (doDistribute (super.hledger_1_30_1.override { - hledger-lib = self.hledger-lib_1_30; + hledger_1_34 = installHledgerExtraFiles "embeddedfiles" + (doDistribute (super.hledger_1_34.override { + hledger-lib = self.hledger-lib_1_34; + })); + 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-web_1_30 = installHledgerExtraFiles (hledgerWebTestFix - (doDistribute (super.hledger-web_1_30.override { - hledger = self.hledger_1_30_1; - hledger-lib = self.hledger-lib_1_30; + 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 hledger-web hledger-ui - hledger_1_30_1 - hledger-web_1_30 + hledger_1_34 + hledger-ui_1_34 + hledger-web_1_34 ; cufft = overrideCabal (drv: { @@ -291,7 +300,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; @@ -308,7 +317,7 @@ self: super: builtins.intersectAttrs super { gi-dbusmenugtk3 = addPkgconfigDepend pkgs.gtk3 super.gi-dbusmenugtk3; # Doesn't declare boost dependency - nix-serve-ng = overrideSrc { + nix-serve-ng = (overrideSrc { version = "1.0.0-unstable-2023-12-18"; src = pkgs.fetchFromGitHub { repo = "nix-serve-ng"; @@ -316,7 +325,9 @@ self: super: builtins.intersectAttrs super { rev = "21e65cb4c62b5c9e3acc11c3c5e8197248fa46a4"; hash = "sha256-qseX+/8drgwxOb1I3LKqBYMkmyeI5d5gmHqbZccR660="; }; - } (addPkgconfigDepend pkgs.boost.dev super.nix-serve-ng); + } (addPkgconfigDepend pkgs.boost.dev super.nix-serve-ng)).override { + nix = pkgs.nixVersions.nix_2_18; + }; # These packages try to access the network. amqp = dontCheck super.amqp; @@ -369,6 +380,11 @@ self: super: builtins.intersectAttrs super { 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" + testToolDepends = drv.testToolDepends or [] ++ [ self.hspec-discover ]; + }) super.safe-exceptions; + # Test suite requires running a database server. Testing is done upstream. hasql = dontCheck super.hasql; hasql-dynamic-statements = dontCheck super.hasql-dynamic-statements; @@ -569,7 +585,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 ]; @@ -672,9 +688,6 @@ self: super: builtins.intersectAttrs super { liquid-fixpoint = disableSharedExecutables super.liquid-fixpoint; liquidhaskell = dontCheck (disableSharedExecutables super.liquidhaskell); - # Without this override, the builds lacks pkg-config. - opencv-extra = addPkgconfigDepend pkgs.opencv3 super.opencv-extra; - # Break cyclic reference that results in an infinite recursion. partial-semigroup = dontCheck super.partial-semigroup; colour = dontCheck super.colour; @@ -810,9 +823,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. @@ -838,6 +851,7 @@ self: super: builtins.intersectAttrs super { http-download_0_2_1_0 = doDistribute (dontCheck super.http-download_0_2_1_0); pantry = dontCheck super.pantry; pantry_0_9_3_1 = dontCheck super.pantry_0_9_3_1; + pantry_0_10_0 = dontCheck super.pantry_0_10_0; # gtk2hs-buildtools is listed in setupHaskellDepends, but we # need it during the build itself, too. @@ -1103,6 +1117,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; @@ -1212,12 +1242,10 @@ self: super: builtins.intersectAttrs super { ''; }); in - - { - fourmolu = fourmoluTestFix super.fourmolu; - fourmolu_0_16_2_0 = fourmoluTestFix super.fourmolu_0_16_2_0; - }) + builtins.mapAttrs (_: fourmoluTestFix) super + ) fourmolu + fourmolu_0_15_0_0 fourmolu_0_16_2_0 ; @@ -1342,6 +1370,9 @@ self: super: builtins.intersectAttrs super { halide-haskell = super.halide-haskell.override { Halide = pkgs.halide; }; + feedback = self.generateOptparseApplicativeCompletions [ "feedback" ] + (enableSeparateBinOutput super.feedback); + # Sydtest has a brittle test suite that will only work with the exact # versions that it ships with. sydtest = dontCheck super.sydtest; @@ -1352,19 +1383,23 @@ self: super: builtins.intersectAttrs super { }) super) gi-javascriptcore gi-webkit2webextension - gi-gtk_4_0_8 - gi-gdk_4_0_7 + gi-gtk_4_0_9 + gi-gdk_4_0_8 gi-gsk gi-adwaita + sdl2-ttf + sdl2 ; webkit2gtk3-javascriptcore = lib.pipe super.webkit2gtk3-javascriptcore [ (addBuildDepend pkgs.xorg.libXtst) + (addBuildDepend pkgs.lerc) (overrideCabal { __onlyPropagateKnownPkgConfigModules = true; }) ]; gi-webkit2 = lib.pipe super.gi-webkit2 [ (addBuildDepend pkgs.xorg.libXtst) + (addBuildDepend pkgs.lerc) (overrideCabal { __onlyPropagateKnownPkgConfigModules = true; }) ]; @@ -1403,4 +1438,13 @@ self: super: builtins.intersectAttrs super { kmonad = enableSeparateBinOutput super.kmonad; xmobar = enableSeparateBinOutput super.xmobar; + + # 2024-08-09: Disable some cabal-doctest tests pending further investigation. + doctest = overrideCabal (drv: { + testFlags = drv.testFlags or [] ++ [ + # These tests require cabal-install + "--skip=/Cabal.Options" + "--skip=/Cabal.Paths/paths" + ]; + }) super.doctest; } |