-
-
Notifications
You must be signed in to change notification settings - Fork 369
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
Update nixpkgs to ghc 8.10.4 #1538
Conversation
nix/default.nix
Outdated
super.${args.pname}.meta.broken | ||
else | ||
false; | ||
in super.mkDerivation (args // { jailbreak = imBroken; }); |
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.
That override is so beautiful. Maybe throw a { doCheck = !imBroken }
in there, too?
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.
Then you could get rid of the manual hiedb override again. Oh, man that solution is sooo good, I’m hyped.
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.
Maybe throw a { doCheck = !imBroken } in there, too?
Hmm, I was going to do that, but it finally turned out:
error: --- EvalError -------------------------------------------------------------------------------------------------------------------------- nix-shell
at: (12:21) in file: /home/berberman/Desktop/haskell/haskell-language-server/nix/default.nix
11| if hasAttr args.pname super then
12| super.${args.pname}.meta.broken
| ^
13| else
infinite recursion encountered
(use '--show-trace' to show detailed location information)
I have no idea :(
That override is so beautiful.
Agree! It works as expected on linux: https://github.com/haskell/haskell-language-server/runs/2083888202, but on macOS, there are still too many things to rebuild: https://github.com/haskell/haskell-language-server/runs/2083888222. Perhaps I missed something?
And similar to f8c741a (https://github.com/haskell/haskell-language-server/runs/2067577443), the build on macOS run into:
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [../../../common/unix.mk:61: Tracy-release] Error 1
make[1]: Leaving directory '/private/tmp/nix-build-tracy-0.7.6.drv-0/source/profiler/build/unix'
make: *** [Makefile:7: release] Error 2
make: Leaving directory '/private/tmp/nix-build-tracy-0.7.6.drv-0/source/profiler/build/unix'
builder for '/nix/store/gczrzdw35pw0idnpxl20qpsmmaxcbml0-tracy-0.7.6.drv' failed with exit code 2
error: build of '/nix/store/fi1rkc67njzpcivf69r9avp6da053wp6-ghc-8.10.4-with-packages.drv', '/nix/store/gczrzdw35pw0idnpxl20qpsmmaxcbml0-tracy-0.7.6.drv' failed
It's a non-haskell package https://github.com/NixOS/nixpkgs/blob/nixpkgs-unstable/pkgs/development/tools/tracy/default.nix we add in shell
haskell-language-server/shell.nix
Line 54 in 05f25c9
tracy |
Maybe this package from nixpkgs-unstable is broken on macOS?
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 about
- imBroken = with builtins;
- if hasAttr args.pname super then
- super.${args.pname}.meta.broken
- else
- false;
- in super.mkDerivation (args // { jailbreak = imBroken; });
- hiedb = pkgs.haskell.lib.dontCheck super.hiedb;
+ broken = args.broken or false;
+ in super.mkDerivation (args // { jailbreak = broken; doCheck = !broken; });
that could fix the first problem. Not sure about the macOs thing, but probably we just need a nixpkgs commit where it’s not broken.
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.
Thanks, this solution is more concise and powerful. How to confirm that tracy
is really broken? Is it possible to reproduce the build elsewhere?
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.
Yep, it’s broken.
https://hydra.nixos.org/job/nixpkgs/trunk/tracy.x86_64-darwin
That's awesome! We didn't rebuild any redundants without maintaining a list of jailbroken packages. And once these packages get fixed in nixpkgs, no build will be required at all. Linux:
MacOS:
|
Any changes needed to the maintainer notes at the top of |
We no longer need modify shell.nix and default.nix simultaneously when adding new packages -- declaring them in |
We made it! No dependencies required to be built:
|
As it stands no, I don’t think so. That being said shell.nix seems to duplicate the list of packages in the default.nix, we could consider to deduplicate that, but it wouldn‘t have to be part of this commit. |
@pepeiborra I override tracy to use its previous version. Let's merge this as soon as possible |
What was the problem with it? |
The build of tracy-0.7.6 was failing on macOS: https://hydra.nixos.org/build/138394082/nixlog/1 |
Nice! |
Follows #1531