I have the following flake.nix
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.11";
outputs = { self, nixpkgs}:
let
pkgs = import nixpkgs {
system = "x86_64-linux";
};
in
{
devShell.x86_64-linux = with pkgs; mkShell {
packages = [
(let
http2-grpc-haskell-repo = fetchFromGitHub {
owner = "factisresearch";
repo = "http2-grpc-haskell";
rev = "baf8e7cf8c58d9ab6004dedda089bd6492f25393";
sha256 = "gjOPn1BcysmzfIOJSxr8U9vxULecvJkiEph4bcC8XLI=";
};
in pkgs.haskellPackages.developPackage {
returnShellEnv = true;
root = ./.;
withHoogle = false;
overrides = self: super: with haskell.lib; {
http2-client-grpc = doJailbreak (pkgs.haskellPackages.callCabal2nix "http2-grpc-haskell"
(http2-grpc-haskell-repo + "/http2-client-grpc") {});
http2-client = doJailbreak (markUnbroken super.http2-client);
};
})
];
};
};
}
If i run nix develop
I get
error: Package ‘http2-client-0.10.0.0’ in /nix/store/3g25cg20m43hvsy17d7nz0jxwk79a77w-source/pkgs/development/haskell-modules/hackage-packages.nix:145064 is marked as broken, refusing to evaluate.
a) To temporarily allow broken packages, you can use an environment variable
for a single invocation of the nix tools.
$ export NIXPKGS_ALLOW_BROKEN=1
Note: For `nix shell`, `nix build`, `nix develop` or any other Nix 2.4+
(Flake) command, `--impure` must be passed in order to read this
environment variable.
b) For `nixos-rebuild` you can set
{ nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.
c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
{ allowBroken = true; }
to ~/.config/nixpkgs/config.nix.
(use '--show-trace' to show detailed location information)
If i depent on http2-client-grpc
in the cabal file. If I only depend on http2-client
it isn’t marked as broken anymore. How can I get http2-client-grpc
to depent on my overriden `http2-client\