For some reason https://github.com/NixOS/nixpkgs/commit/9e7acf8b255fb4aa36d4539f49ecd5d3cca17c7b added broken=true to many packages in the default haskellPackages package set. haskellPackages.threadscope is one example, although there are many others.
nix run nixpkgs.haskellPackages.threadscope
- system: `"x86_64-linux"`
- host os: `Linux 4.19.34, NixOS, 19.03.172138.5c52b25283a (Koi)`
- multi-user?: `yes`
- sandbox: `yes`
- version: `nix-env (Nix) 2.2`
- channels(root): `"nixos-19.03.172138.5c52b25283a, nixpkgs-19.03"`
- channels(ben): `"nixpkgs-19.03.172138.5c52b25283a, nixpkgs-unstable-19.09pre174594.0c0954781e2"`
- nixpkgs: `/home/ben/.nix-defexpr/channels/nixpkgs`
In the case of threadscope this may be due to unsolvable version constraints:
$ nix run '(with (import <nixpkgs> {}); haskellPackages.callHackage "threadscope" "0.2.11.1" {})'
error: build of '/nix/store/z33jk3ddk150fvlblnfggys56c92w146-threadscope-0.2.11.1.drv' on 'ssh://[email protected]' failed: builder for '/nix/store/z33jk3ddk150fvlblnfggys56c92w146-threadscope-0.2.11.1.drv' failed with exit code 1
builder for '/nix/store/z33jk3ddk150fvlblnfggys56c92w146-threadscope-0.2.11.1.drv' failed with exit code 1; last 10 log lines:
configureFinalizedPackage, called at libraries/Cabal/Cabal/Distribution/Simple/Configure.hs:460:12 in Cabal-2.4.0.1:Distribution.Simple.Configure
configure, called at libraries/Cabal/Cabal/Distribution/Simple.hs:596:20 in Cabal-2.4.0.1:Distribution.Simple
confHook, called at libraries/Cabal/Cabal/Distribution/Simple/UserHooks.hs:67:5 in Cabal-2.4.0.1:Distribution.Simple.UserHooks
configureAction, called at libraries/Cabal/Cabal/Distribution/Simple.hs:178:19 in Cabal-2.4.0.1:Distribution.Simple
defaultMainHelper, called at libraries/Cabal/Cabal/Distribution/Simple.hs:115:27 in Cabal-2.4.0.1:Distribution.Simple
defaultMain, called at Setup.hs:2:8 in main:Main
Setup: Encountered missing dependencies:
gtk >=0.12 && <0.15, template-haskell <2.14
However, I don't recall such cases being marked as broken in the past. In any event, doJailbreaking threadscope works fine so marking it as broken seems rather harsh.
@peti, do you know what is going on here?
It would be good to get these resolved on hackage first before we add doJailbreak arbitrarily. Hackage trustees can make these changes IIRC.
What do you mean those builds are marked broken "unnecessarily"? Those builds that are marked as broken fail.
I suppose a more correct way of phasing this would have been rather "newly marked as broken". The point being that this seems to be a change and one that makes it a fair bit harder to use Haskell packages on a one-off basis. Previously it was very easy to apply haskell.lib.doJailbreak and the result would usually work. As far as I know there is no analogous combinator to unmark a package as broken. Perhaps we should add one.
I suppose a more correct way of phasing this would have been rather "newly marked as broken". The point being that this seems to be a change and one that makes it a fair bit harder to use Haskell packages on a one-off basis.
The change prevents people from wasting half an hour of their lives trying to compile a package that we already know will not succeed.
Previously it was very easy to apply
haskell.lib.doJailbreakand the result would usually work. As far as I know there is no analogous combinator to unmark a package as broken. Perhaps we should add one.
There is always overrideCabal, which allows you to modify the any attribute you see fit. Having a special unmarkBroken helper certainly wouldn't hurt, though. Would you like to suggest a PR?
@peti How do patches get created? I think they may be causing some of the packages to get marked as broken when they are not.
For example, in unstable, beam-core-0.8.0.0 is marked as broken. However if you override it and set broken=true; patches=[]; it builds just fine.
@peti How do patches get created? I think they may be causing some of the packages to get marked as broken when they are not.
For example, in unstable,
beam-core-0.8.0.0is marked as broken. However if you override it and setbroken=true; patches=[];it builds just fine.
These patches were added by @endgame in https://github.com/NixOS/nixpkgs/pull/53680.
Thanks @peti! I really appreciate all the work you've done for the community.
@pjones, thank you very much. :-)
Most helpful comment
Thanks @peti! I really appreciate all the work you've done for the community.