-
Notifications
You must be signed in to change notification settings - Fork 164
Backport flake.nix changes to 1.8 #3060
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 3 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| { pkgs }: | ||
| final: prev: | ||
| let | ||
| inherit (pkgs.haskell.lib) dontCheck doJailbreak markUnbroken; | ||
| in | ||
| { | ||
| # Use an older version than the default in nixpkgs. Since rewrite-inspector | ||
| # is basically abandonware it catches fire with brick 1.0+. | ||
| brick = doJailbreak prev.brick_0_70_1; | ||
|
|
||
| # brick 0.70.1 requires vty < 6.0. | ||
| vty = doJailbreak (prev.callHackage "vty" "5.39" { }); | ||
|
|
||
| # Relies on older versions of some libraries. | ||
| hint = doJailbreak prev.hint; | ||
|
|
||
| # Marked as broken in nixpkgs, since it specifies much older dependencies | ||
| # than the defaults in nixpkgs. | ||
| rewrite-inspector = doJailbreak (markUnbroken prev.rewrite-inspector); | ||
|
|
||
| # Requires some old versions of libraries, but still works. | ||
| derive-storable-plugin = doJailbreak prev.derive-storable-plugin; | ||
|
|
||
| # Marken as broken, but compiles anyway. | ||
| hedgehog-fakedata = doJailbreak (markUnbroken prev.hedgehog-fakedata); | ||
|
|
||
| # Fails on GHC 9.10 with: | ||
| # library/Text/Regex/PCRE/Heavy.hs:123: failure in expression `head $ scan [re|\s*entry (\d+) (\w+)\s*&?|] (" entry 1 hello &entry 2 hi" :: String)' | ||
| # expected: (" entry 1 hello &",["1","hello"]) | ||
| # but got: <interactive>:55:1: warning: [GHC-63394] [-Wx-partial] | ||
| # ^ | ||
| # In the use of ‘head’ | ||
| # (imported from Prelude.Compat, but defined in GHC.Internal.List): | ||
| # "This is a partial function, it throws an error on empty lists. Use pattern matching, 'Data.List.uncons' or 'Data.Maybe.listToMaybe' instead. Consider refactoring to use "Data.List.NonEmpty"." | ||
| # (" entry 1 hello &",["1","hello"]) | ||
|
|
||
| pcre-heavy = dontCheck prev.pcre-heavy; | ||
|
|
||
| # Relies on older versions of text. | ||
| string-random = doJailbreak prev.string-random; | ||
|
|
||
| # We need the newest version from nixpkgs for these packages. | ||
| singletons-base = prev.singletons-base_3_4; | ||
|
|
||
| microstache = prev.microstache_1_0_3; | ||
|
|
||
| th-desugar = prev.th-desugar_1_17; | ||
|
|
||
| # We need a new tasty-flaky. The one from Hackage doesn't build for some weird | ||
| # reason.. | ||
| tasty-flaky = prev.callCabal2nix "tasty-flaky" (pkgs.fetchFromGitHub { | ||
| owner = "LaurentRDC"; | ||
| repo = "tasty-flaky"; | ||
| rev = "fc31a9d622c1eb60030a50152258a9bef785e365"; | ||
| sha256 = "sha256-irLM3aVMxpBgsM72ArulMXcoLY2glalVkG//Lrj2JBI="; | ||
| }) {}; | ||
|
|
||
| tasty = prev.tasty_1_5; | ||
|
|
||
| singletons-th = prev.singletons-th_3_4; | ||
|
|
||
| # nixplgs doesn't include revision 1, changing dependency on template-haskell. | ||
| string-interpolate = pkgs.haskell.lib.compose.overrideCabal (drv: { | ||
| revision = "1"; | ||
| editedCabalFile = "sha256-oh0tR+LDFcVzQnm4kSrmhAU+P7wdai536d72Cvhzipg="; | ||
| }) (prev.callHackageDirect { | ||
| pkg = "string-interpolate"; | ||
| ver = "0.3.4.0"; | ||
| sha256 = "sha256-KA8P6cc6N7pZ9/ay3edcEGx4vpKtp+EY7tn8U1NrbG8="; | ||
| } { }); | ||
| } | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,13 +1,18 @@ | ||||||
| { pkgs }: | ||||||
| final: prev: | ||||||
| let | ||||||
| inherit (pkgs.haskell.lib) doJailbreak dontCheck markUnbroken; | ||||||
| inherit (pkgs.haskell.lib) doJailbreak markUnbroken dontCheck; | ||||||
| in | ||||||
| { | ||||||
| # Use an older version than the default in nixpkgs. Since rewrite-inspector | ||||||
| # is basically abandonware it catches fire with brick 1.0+. | ||||||
| brick = doJailbreak prev.brick_0_70_1; | ||||||
|
|
||||||
jaschutte marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
| vty = prev.callHackage "vty" "5.39" { }; | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is this vty = prev.callHackage "vty" "5.39" { };in vty = doJailbreak (prev.callHackage "vty" "5.39" { });in
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ghc98 has a different set of packages (since the compiler is newer) and in this set of packages for ghc98 certain packages (deepseq) has the wrong version, however it still compiles fine. That is why the jailbreak is required in ghc98 and not in ghc62 (where deepseq has the right version).
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Okay! |
||||||
|
|
||||||
| # Marked as broken in nixpkgs, since it needs on a newer hashable than the | ||||||
|
||||||
| # Marked as broken in nixpkgs, since it needs on a newer hashable than the | |
| # Marked as broken in nixpkgs, since it needs a newer hashable than the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does it mean when you say
Needs a newer x than the .cabal file currently uploaded to hackage.
That the package needs a newer version of x than is currently uploaded to Hackage? So it needs an unreleased version? (Usually, we view the latest that is on Hackage as the latest release of a Haskell package.)
While the .cabal file specifies the version number for a specific version of a package, it's the uploaded package itself that is at that version. So you can just shorten it to
Needs a newer x than the latest version on Hackage.
But it feels like you mean something else entirely, as it's rather surprising that a released version of a package strictly requires an unreleased version of another package, so I'm probably misinterpreting.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't write these comments haha, I cherry picked them from the main branch. However I think the comments refer to the version of Hackage pinned by the flake. It could be that actual Hackage has a newer version however the pinned set of packages is older, so we jailbreak it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, sorry, I should have checked where it came from before raising it here.
Well, you know what, if they just come from master let's use them as they are.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| { pkgs }: | ||
| final: prev: | ||
| let | ||
| inherit (pkgs.haskell.lib) doJailbreak markUnbroken dontCheck; | ||
| in | ||
| { | ||
| # Use an older version than the default in nixpkgs. Since rewrite-inspector | ||
| # is basically abandonware it catches fire with brick 1.0+. | ||
| brick = doJailbreak prev.brick_0_70_1; | ||
|
|
||
| # brick 0.70.1 requires vty < 6.0. | ||
| vty = doJailbreak (prev.callHackage "vty" "5.39" { }); | ||
|
|
||
| # Marked as broken in nixpkgs, since it specifies much older dependencies | ||
| # than the defaults in nixpkgs. | ||
| rewrite-inspector = doJailbreak (markUnbroken prev.rewrite-inspector); | ||
|
|
||
| # Requires some old versions of libraries, but still works. | ||
| derive-storable-plugin = doJailbreak prev.derive-storable-plugin; | ||
|
|
||
| # Marken as broken, but compiles anyway. | ||
| hedgehog-fakedata = doJailbreak (markUnbroken prev.hedgehog-fakedata); | ||
|
|
||
| # We need a new tasty-flaky. The one from Hackage doesn't build for some weird | ||
| # reason.. | ||
| tasty-flaky = prev.callCabal2nix "tasty-flaky" (pkgs.fetchFromGitHub { | ||
| owner = "LaurentRDC"; | ||
| repo = "tasty-flaky"; | ||
| rev = "fc31a9d622c1eb60030a50152258a9bef785e365"; | ||
| sha256 = "sha256-irLM3aVMxpBgsM72ArulMXcoLY2glalVkG//Lrj2JBI="; | ||
| }) {}; | ||
|
|
||
| # This version of tasty isn't available in the nix ghc96 package set | ||
jaschutte marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| tasty = prev.callHackageDirect { | ||
| pkg = "tasty"; | ||
| ver = "1.5.3"; | ||
| sha256 = "sha256-Ogd8J4aHNeL+xmcRWuJeGBNaePyLs5yo1IoMzvWrVPY="; | ||
| } {}; | ||
|
|
||
| # The tests (not the package itself!) require a tasty <1.5, which won't work as we pull in | ||
| # tasty 1.5.3. Solution: don't test! | ||
| time-compat = dontCheck prev.time-compat; | ||
| } | ||
Uh oh!
There was an error while loading. Please reload this page.