about summary refs log tree commit diff
path: root/pkgs/build-support/fetchpatch
AgeCommit message (Collapse)AuthorFilesLines
2023-03-11fetchpatch: add decode testArtturin1-0/+7
2023-03-11fetchpatch: add "decode" argument for gerritAlyssa Ross1-1/+14
(and gitiles) This allows fetching a patch from servers that return them base64-encoded, like this: fetchpatch { name = "gcc.patch"; url = "https://chromium.googlesource.com/aosp/platform/external/libchrome/+/f37ae3b1a873d74182a2ac31d96742ead9c1f523^!?format=TEXT"; decode = "base64 -d"; sha256 = "11j1bqz2p8xrfzgfrylgdvmqs45489c4ckl7l0ra1dpfgbqy94a8"; }
2023-02-13treewide: use optionalStringFelix Buehler1-1/+1
2022-07-20fetchpatch2: initArtturin2-8/+9
allows us to use the new features of patchutils without having to reset all fetchpatch hashes in nixpkgs https://github.com/NixOS/nixpkgs/issues/32084
2022-05-05testers.invalidateFetcherByDrvHash: Move from top-levelRobert Hensing1-4/+4
2022-03-25fetchpatch: add `relative`Naïm Favier2-15/+46
Allows restricting patches to a specific subdirectory, à la `git diff --relative=subdir`. This cannot be done (cleanly) currently because the `includes` logic happens *after* `stripLen` is applied, so we can't match on `subdir/*`. This change adds a `relative` argument that makes this possible by filtering files before doing any processing, and setting `stripLen` and `extraPrefix` accordingly.
2022-03-15fetchpatch: Fix typosRobert Hensing1-2/+2
2022-02-02fetchpatch: Clean upDavHau1-2/+13
Co-Authored-By: Ivar Scholten <ivar.scholten@protonmail.com>
2022-02-02fetchpatch: allow empty hashDavHau1-5/+1
Previously, when sha256 either wasn't defined or set to an empty string fetchpatch would error out as follows: ''' warning: found empty hash, assuming 'sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=' ... /nix/store/agwlk2bcfvz2ggrsbvwd7696qj55frbi-stdenv-linux/setup: line 96: /build/: Is a directory sed: couldn't flush stdout: Broken pipe ''' This patch makes it show fetchurl's error message instead: ''' warning: found empty hash, assuming 'sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=' ... error: hash mismatch in fixed-output derivation: specified: sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= got: sha256-NWGWoyEgT/ztCwbhNgGPvG+nqX4bxtFnD+wds6fklbs= ''' This is very convenient for TOFU. Co-Authored-By: Ivar Scholten <ivar.scholten@protonmail.com>
2021-10-25patchutils: add 0.4.2 variant + remove meta.executable + enable tests + fix ↵Artturi1-0/+8
inter-dependencies by wrapping (#141567)
2020-03-02fetchpatch: Allow using base64-encoded hashJan Tojnar1-1/+5
Nix now returns base64-encoded SRI hashes on hash mismatch. Usually, people copy the returned hashes in TOFU fashion but since base64-encoded strings can contain slashes, they often broke our use of them for temporary file name. Escaping them should prevent the failures.
2019-05-12fetchpatch: explain why we use 0.3.3Vladimír Čunát1-0/+1
2019-04-13fetchpatch: explicitly use patchutils 0.3.3Bob van der Linden1-4/+7
2018-08-21fetchpatch: patchutils -> buildPackages.patchutilsvolth1-5/+5
2018-07-16fetchpatch: add option to revert a patchTimo Kaufmann1-4/+7
2018-07-15fetchpatch: fail on empty patchTimo Kaufmann1-0/+18
Since this is probably never the desired case and has led to actual issues, see the comments at: https://github.com/NixOS/nixpkgs/commit/af1313e91552e42a4419b396b3026319c60fc17f This might also happen when pulling a patch from GitHub or a similar web interface without explicitly selecting the "raw" format.
2018-07-15fetchpatch: escape excludes and includesTimo Kaufmann1-2/+2
Excludes and includes are implemented by passing the parameters to the respective flags of `filterdiff`. Those were passed unescaped until now. Since those flags expect patterns (similar to shell globs), something like `/some/path/*` might be used to exclude or include all files in some path. Without escaping the shell would expand the `*`, leading to unexpected behaviour.
2018-07-15fetchpatch: Add includes to compliment excludes, and require that both not ↵John Ericson1-2/+4
be non-empty. This commit was originally introduced as part of #41420 and then reverted with the rest of that PR. However there was no reason to revert his particular commit.
2018-07-04Revert "haskell generic-builder: Use strictDeps always"Peter Simons1-4/+2
2018-07-02fetchpatch: Add includes to compliment excludes, and require that both not ↵John Ericson1-2/+4
be non-empty.
2018-01-18fetchpatch: Add support for an arbitrary extra prefixJohn Ericson1-5/+5
We still ensure the old and new ones start, respectfully, with `a/` and `b/`. Use with `stripLen` to ensure tha the old `a/` and `/b` are gone if a new prefix is added.
2017-10-03fetchpatch: allow callers to specify postFetch sensiblyDan Peebles1-1/+1
Before this fix, it seemed to be trying to merge our postFetch with the patch normalization logic, but accidentally clobbering the whole thing with the passed-in value.
2017-07-26fetchpatch: add excludes parameterRobin Gloster1-3/+6
2016-07-29fetchpatch: add addPrefixes argumentFranz Pletz1-3/+7
Sometimes patches start without a leading prefix. We default to strip one prefix or path component from patches (-p1) in the patchPhase in stdenv. As all patches should therefore be in this format, fetchpatch should have an option to normalize patch paths. This commit introduces a new argument to fetchpatch called addPrefixes that adds one patch prefix to the old and new paths in a patch before putting it into the store.
2015-06-23fetchpatch: Allow to pass a postFetch attribute.aszlig1-0/+1
Comes in handy if we want to make additional modificiations to the output file. While I wasn't sure whether to invoke the passed postFetch directly before the patch or afterwards, I thought it would be better afterwards because "postFetch of fetchpatch" at least to my intuition would sound that after whatever "fetchpatch" does - it comes afterwards. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-02-22Patches for a lot of packages for GHC 7.10Joel Taylor1-1/+1
2014-05-17Merge #2630: add and use fetchpatchVladimír Čunát1-0/+22
fetchpatch is fetchurl that determinizes the patch. Some parts of generated patches change from time to time, e.g. see #1983 and http://comments.gmane.org/gmane.linux.distributions.nixos/12815 Using fetchpatch should prevent the hash from changing. Conflicts (auto-solved): pkgs/development/libraries/haskell/gitit/default.nix