Patches are applied twice if `buildFromSDist` is enabled
Nobody has claimed this yet.
- Dominant language
- Nix
- Stars
- 240
- Forks
- 27
- PR merge metrics
- No merged PRs in 30d
Description
The haskell-flake is trying to apply patches twice. The issue seems to be in the new buildFromSDist implementation. Setting buildFromSDist to false resolves the problem. For a reproduction, visit https://github.com/johnhampton/haskell-flakes-double-patch.
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
haskell-flake.url = "github:srid/haskell-flake";
};
outputs = inputs@{ self, nixpkgs, flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = nixpkgs.lib.systems.flakeExposed;
imports = [ inputs.haskell-flake.flakeModule ];
perSystem = { self', pkgs, config, ... }:
{
haskellProjects.default = {
settings = {
logict = {
# buildFromSdist = false;
patches = [ ./nix/patches/logict.patch ];
};
};
};
};
};
}
error: builder for '/nix/store/2mbwfyxq1jvqiz3cq52dn8r9za3fia06-logict-0.8.1.0.drv' failed with exit code 1;
last 10 log lines:
> source root is logict-0.8.1.0
> setting SOURCE_DATE_EPOCH to timestamp 1711982133 of file logict-0.8.1.0/test/Test.hs
> warning: file logict-0.8.1.0/test/Test.hs may be generated; SOURCE_DATE_EPOCH may be non-deterministic
> Running phase: patchPhase
> applying patch /nix/store/r335m619yhwcqr0flp4ad9s6kihqqz3w-logict.patch
> patching file logict.cabal
> Reversed (or previously applied) patch detected! Assume -R? [n]
> Apply anyway? [n]
> Skipping patch.
> 1 out of 1 hunk ignored -- saving rejects to file logict.cabal.rej
For full logs, run 'nix log /nix/store/2mbwfyxq1jvqiz3cq52dn8r9za3fia06-logict-0.8.1.0.drv'.
error: 1 dependencies of derivation '/nix/store/bp67yaxnr421c3whglrdgvy4a7dy03hx-haskell-flakes-double-patch-0.1.0.0.drv' failed to build
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked haskell-flakes-double-patch reproduction and compare the build with buildFromSDist enabled and disabled. Trace the new buildFromSDist implementation to determine where the configured patch is applied more than once; done means the reproduction applies the patch once and builds successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- build-system, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100