diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index a792c64b409c..13d708637aa8 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -3196,6 +3196,24 @@ with haskellLib; } + "/libssh2"; } super.libssh2; + + # 2025-8-13: Too strict bound on tasty <1.15; relaxed on Hackage as of today + smtlib-backends-tests = doJailbreak super.smtlib-backends-tests; + + # 2025-8-19: dontCheck because of: https://github.com/ucsd-progsys/liquid-fixpoint/issues/760 + # i.e. tests assume existence of .git and also fail for some versions of CVC5, + # including the current one in nixpkgs. + liquid-fixpoint = dontCheck super.liquid-fixpoint; + + # 2025-8-18: Too strict bound on Diff <0.6; relaxed on Hackage as of today + liquidhaskell-boot = doJailbreak super.liquidhaskell-boot; + + # 2025-8-19: jailbreak because of the restrictive bytestring ==0.12.1.0, + # but we have 0.12.2.0. This was relaxed on Hackage to allow 0.12.2.0 on 2025-08-17. + liquidhaskell = doJailbreak super.liquidhaskell; + + # 2025-8-13: Too strict bound on QuickCheck <2.15; relaxed on Hackage as of today + rest-rewrite = doJailbreak super.rest-rewrite; } // import ./configuration-tensorflow.nix { inherit pkgs haskellLib; } self super diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index acb09f39c2dd..b74c154cea5b 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -3638,7 +3638,6 @@ broken-packages: - lio-simple # failure in job https://hydra.nixos.org/build/233200711 at 2023-09-02 - lipsum-gen # failure in job https://hydra.nixos.org/build/233233734 at 2023-09-02 - liquid # failure in job https://hydra.nixos.org/build/233255883 at 2023-09-02 - - liquid-fixpoint # failure in job https://hydra.nixos.org/build/233213637 at 2023-09-02 - liquidhaskell-cabal # failure in job https://hydra.nixos.org/build/233249946 at 2023-09-02 - Liquorice # failure in job https://hydra.nixos.org/build/233193923 at 2023-09-02 - list-mux # failure in job https://hydra.nixos.org/build/233206407 at 2023-09-02 @@ -5632,8 +5631,6 @@ broken-packages: - smsaero # failure in job https://hydra.nixos.org/build/233215880 at 2023-09-02 - smt-lib # failure in job https://hydra.nixos.org/build/233208443 at 2023-09-02 - SmtLib # failure in job https://hydra.nixos.org/build/233213271 at 2023-09-02 - - smtlib-backends-process # failure in job https://hydra.nixos.org/build/233209223 at 2023-09-02 - - smtlib-backends-tests # failure in job https://hydra.nixos.org/build/295097081 at 2025-04-22 - smtlib2 # failure in job https://hydra.nixos.org/build/233251831 at 2023-09-02 - smtp-mail-ng # failure in job https://hydra.nixos.org/build/233220094 at 2023-09-02 - SMTPClient # failure in job https://hydra.nixos.org/build/233247599 at 2023-09-02 diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index b97e4aad1a88..ebd9aa8a45b3 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -31,6 +31,11 @@ default-package-overrides: - hiedb < 0.7 # 2025-08-03: need to match stackage version of hosc - hsc3 >= 0.21 && < 0.22 + # liquidhaskell-boot 0.9.10.1.2 requires this specific version of liquid-fixpoint + - liquid-fixpoint == 0.9.6.3.2 + # liquidhaskell(-boot) support one GHC at a time, so we choose the one matching the current GHC (9.10) + - liquidhaskell == 0.9.10.* + - liquidhaskell-boot == 0.9.10.* # keep-sorted end # keep-sorted start skip_lines=1 case=no numeric=yes @@ -189,6 +194,12 @@ package-maintainers: - BNFC-meta - alex-meta - happy-meta + - liquid-fixpoint + - liquidhaskell + - liquidhaskell-boot + - smtlib-backends + - smtlib-backends-process + - smtlib-backends-tests - vector-hashtables arturcygan: - hevm diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index 6a06ab85ab71..baab25c50b25 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -2042,8 +2042,6 @@ dont-distribute-packages: - liquid-platform - liquid-prelude - liquid-vector - - liquidhaskell - - liquidhaskell-boot - liquidhaskell-cabal-demo - list-t-attoparsec - list-t-html-parser diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 444d468ab5e5..83f1a4a3d039 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -791,11 +791,30 @@ builtins.intersectAttrs super { # loc and loc-test depend on each other for testing. Break that infinite cycle: loc-test = super.loc-test.override { loc = dontCheck self.loc; }; - # The test suites try to run the "fixpoint" and "liquid" executables built just - # before and fail because the library search paths aren't configured properly. - # Also needs https://github.com/ucsd-progsys/liquidhaskell/issues/1038 resolved. - liquid-fixpoint = disableSharedExecutables super.liquid-fixpoint; - liquidhaskell = dontCheck (disableSharedExecutables super.liquidhaskell); + smtlib-backends-process = overrideCabal (drv: { + testSystemDepends = (drv.testSystemDepends or [ ]) ++ [ pkgs.z3 ]; + }) super.smtlib-backends-process; + + # overrideCabal because the tests need to execute the built executable "fixpoint" + liquid-fixpoint = overrideCabal (drv: { + preCheck = '' + export PATH=$PWD/dist/build/fixpoint:$PATH + '' + + (drv.preCheck or ""); + testSystemDepends = (drv.testSystemDepends or [ ]) ++ [ + pkgs.cvc5 + pkgs.z3 + ]; + }) super.liquid-fixpoint; + + # overrideCabal because the tests need to execute the built executable "liquid" + liquidhaskell = overrideCabal (drv: { + preCheck = '' + export PATH=$PWD/dist/build/liquid:$PATH + '' + + (drv.preCheck or ""); + libraryToolDepends = (drv.libraryToolDepends or [ ]) ++ [ pkgs.z3 ]; + }) super.liquidhaskell; # Break cyclic reference that results in an infinite recursion. partial-semigroup = dontCheck super.partial-semigroup; diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 20250310517c..d8f0188dcc29 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -418546,6 +418546,125 @@ self: { ) { }; "liquid-fixpoint" = callPackage ( + { + mkDerivation, + aeson, + ansi-terminal, + array, + ascii-progress, + async, + attoparsec, + base, + binary, + boxes, + bytestring, + cereal, + cmdargs, + containers, + deepseq, + directory, + fgl, + filepath, + hashable, + intern, + lens-family, + megaparsec, + mtl, + optparse-applicative, + parallel, + parser-combinators, + pretty, + process, + rest-rewrite, + smtlib-backends, + smtlib-backends-process, + stm, + store, + syb, + tagged, + tasty, + tasty-ant-xml, + tasty-hunit, + tasty-quickcheck, + tasty-rerun, + text, + transformers, + unordered-containers, + vector, + }: + mkDerivation { + pname = "liquid-fixpoint"; + version = "0.9.6.3.2"; + sha256 = "1anf30y3xvlhwbph2wy0iysgr28044q99knz5fzqa7hfzi9vy62n"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson + ansi-terminal + array + ascii-progress + async + attoparsec + base + binary + boxes + bytestring + cereal + cmdargs + containers + deepseq + directory + fgl + filepath + hashable + intern + lens-family + megaparsec + mtl + parallel + parser-combinators + pretty + process + rest-rewrite + smtlib-backends + smtlib-backends-process + stm + store + syb + text + transformers + unordered-containers + vector + ]; + executableHaskellDepends = [ base ]; + testHaskellDepends = [ + base + containers + directory + filepath + hashable + mtl + optparse-applicative + process + stm + tagged + tasty + tasty-ant-xml + tasty-hunit + tasty-quickcheck + tasty-rerun + text + transformers + unordered-containers + ]; + description = "Predicate Abstraction-based Horn-Clause/Implication Constraint Solver"; + license = lib.licenses.bsd3; + mainProgram = "fixpoint"; + maintainers = [ lib.maintainers.artem ]; + } + ) { }; + + "liquid-fixpoint_0_9_6_3_3" = callPackage ( { mkDerivation, aeson, @@ -418661,7 +418780,7 @@ self: { license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; mainProgram = "fixpoint"; - broken = true; + maintainers = [ lib.maintainers.artem ]; } ) { }; @@ -418822,6 +418941,40 @@ self: { ) { }; "liquidhaskell" = callPackage ( + { + mkDerivation, + base, + bytestring, + Cabal, + containers, + ghc-prim, + liquidhaskell-boot, + z3, + }: + mkDerivation { + pname = "liquidhaskell"; + version = "0.9.10.1.2"; + sha256 = "16bv11zi54z5c6lh8ynpmlcdhp4v1qdpi90hlg15m4926p2cbna5"; + setupHaskellDepends = [ + base + Cabal + liquidhaskell-boot + ]; + libraryHaskellDepends = [ + base + bytestring + containers + ghc-prim + liquidhaskell-boot + ]; + testSystemDepends = [ z3 ]; + description = "Liquid Types for Haskell"; + license = lib.licenses.bsd3; + maintainers = [ lib.maintainers.artem ]; + } + ) { inherit (pkgs) z3; }; + + "liquidhaskell_0_9_12_2" = callPackage ( { mkDerivation, base, @@ -418852,10 +419005,128 @@ self: { description = "Liquid Types for Haskell"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = [ lib.maintainers.artem ]; } ) { inherit (pkgs) z3; }; "liquidhaskell-boot" = callPackage ( + { + mkDerivation, + aeson, + array, + base, + binary, + bytestring, + Cabal, + cereal, + cmdargs, + containers, + deepseq, + Diff, + directory, + exceptions, + extra, + filepath, + fingertree, + free, + ghc, + ghc-boot, + ghc-internal, + ghc-paths, + ghc-prim, + githash, + gitrev, + hashable, + hscolour, + liquid-fixpoint, + megaparsec, + mtl, + optparse-applicative, + pretty, + split, + syb, + tasty, + tasty-ant-xml, + tasty-hunit, + template-haskell, + temporary, + text, + th-compat, + time, + transformers, + unordered-containers, + vector, + }: + mkDerivation { + pname = "liquidhaskell-boot"; + version = "0.9.10.1.2"; + sha256 = "0kckh95w3y1gjfhy8k2fyg9mmqq3vq8gcbacyywwsmr2mx752k5z"; + libraryHaskellDepends = [ + aeson + array + base + binary + bytestring + Cabal + cereal + cmdargs + containers + deepseq + Diff + directory + exceptions + extra + filepath + fingertree + free + ghc + ghc-boot + ghc-prim + githash + gitrev + hashable + hscolour + liquid-fixpoint + megaparsec + mtl + optparse-applicative + pretty + split + syb + template-haskell + temporary + text + th-compat + time + transformers + unordered-containers + vector + ]; + testHaskellDepends = [ + base + directory + filepath + ghc + ghc-internal + ghc-paths + ghc-prim + liquid-fixpoint + megaparsec + syb + tasty + tasty-ant-xml + tasty-hunit + template-haskell + time + unordered-containers + ]; + description = "Liquid Types for Haskell"; + license = lib.licenses.bsd3; + maintainers = [ lib.maintainers.artem ]; + } + ) { }; + + "liquidhaskell-boot_0_9_12_2" = callPackage ( { mkDerivation, aeson, @@ -418969,6 +419240,7 @@ self: { description = "Liquid Types for Haskell"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = [ lib.maintainers.artem ]; } ) { }; @@ -613219,6 +613491,7 @@ self: { ]; description = "Low-level functions for SMT-LIB-based interaction with SMT solvers"; license = lib.licenses.mit; + maintainers = [ lib.maintainers.artem ]; } ) { }; @@ -613258,8 +613531,7 @@ self: { ]; description = "An SMT-LIB backend running solvers as external processes"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - broken = true; + maintainers = [ lib.maintainers.artem ]; } ) { }; @@ -613285,8 +613557,7 @@ self: { ]; description = "Testing SMT-LIB backends"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - broken = true; + maintainers = [ lib.maintainers.artem ]; } ) { };