nixpkgs/pkgs/build-support
Benjamin Hipple 2115a2037c fetchcargo: use flat tar.gz file for vendored src instead of recursive hash dir
This has several advantages:

1. It takes up less space on disk in-between builds in the nix store.
2. It uses less space in the binary cache for vendor derivation packages.
3. It uses less network traffic downloading from the binary cache.
4. It plays nicely with hashed mirrors like tarballs.nixos.org, which only
   substitute --flat hashes on single files (not recursive directory hashes).
5. It's consistent with how simple `fetchurl` src derivations work.
6. It provides a stronger abstraction between input src-package and output
   package, e.g., it's harder to accidentally depend on the src derivation at
   runtime by referencing something like `${src}/etc/index.html`. Likewise, in
   the store it's harder to get confused with something that is just there as a
   build-time dependency vs. a runtime dependency, since the build-time
   src dependencies are tarred up.

Disadvantages are:
1. It takes slightly longer to untar at the start of a build.

As currently implemented, this attaches the compacted vendor.tar.gz feature as a
rider on `verifyCargoDeps`, since both of them are relatively newly implemented
behavior that change the `cargoSha256`.

If this PR is accepted, I will push forward the remaining rust packages with a
series of treewide PRs to update the `cargoSha256`s.
2020-02-10 10:17:29 -05:00
..
add-opengl-runpath addOpenGLRunpath: only apply to ELF files 2019-05-23 16:52:45 -04:00
agda treewide: fix *Flags 2019-12-30 04:50:37 +01:00
appimage appimage: do not use alias 2019-11-23 21:28:01 +01:00
bintools-wrapper Merge pull request #74090 from obsidiansystems/ghcjs-cross-without-cc 2019-12-30 16:40:43 -08:00
build-bazel-package bazel-deps: remove 2020-02-04 12:35:47 +11:00
build-dotnet-package treewide: Make still dont* Variables are optional in most cases 2019-11-01 14:44:44 -04:00
build-fhs-userenv treewide: Fix unsafe concatenation of $LD_LIBRARY_PATH 2020-01-15 09:47:03 +01:00
build-setupcfg
buildenv buildEnv: check pathsToLink before checking collisions 2019-09-18 15:13:50 +02:00
cc-wrapper Merge pull request #74090 from obsidiansystems/ghcjs-cross-without-cc 2019-12-30 16:40:43 -08:00
docker dockerTools.*: Assertion against building for Darwin (#77952) 2020-01-31 21:17:40 +01:00
docker-slim docker-slim: init at 1.26.1 2020-01-03 11:18:00 +01:00
dotnetbuildhelpers
dotnetenv
emacs emacs package setup hook: Fix Fix 2019-11-23 19:49:56 +01:00
expand-response-params
fetchbitbucket all-packages: move fetch* to pkgs/build-support/ 2019-01-26 22:47:54 -05:00
fetchbower
fetchbzr
fetchcvs
fetchdarcs pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
fetchdocker treewide: remove redundant quotes 2019-08-26 21:40:19 +00:00
fetchfossil
fetchgit nix-prefetch-git: list --branch-name in help 2019-11-26 20:43:23 +01:00
fetchgithub all-packages: move fetch* to pkgs/build-support/ 2019-01-26 22:47:54 -05:00
fetchgitiles fetchFromGitiles: init 2019-12-02 22:44:33 +00:00
fetchgitlab fetchFromGitLab: improve readability 2019-12-09 01:33:16 +00:00
fetchgitlocal pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
fetchgx
fetchhg prefer-fetch-remote: an overlay to fetch on remote builders 2019-01-18 14:41:10 +00:00
fetchipfs prefer-fetch-remote: an overlay to fetch on remote builders 2019-01-18 14:41:10 +00:00
fetchmavenartifact
fetchmtn
fetchnuget pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
fetchpatch fetchpatch: explain why we use 0.3.3 2019-05-12 15:16:45 +02:00
fetchrepoorcz all-packages: move fetch* to pkgs/build-support/ 2019-01-26 22:47:54 -05:00
fetchrepoproject
fetchs3 pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
fetchsavannah all-packages: move fetch* to pkgs/build-support/ 2019-01-26 22:47:54 -05:00
fetchsvn fetchsvn: move defaults to package file 2019-02-03 15:33:14 +00:00
fetchsvnrevision
fetchsvnssh fetchsvnssh: move defaults to package file 2019-02-03 15:30:27 +00:00
fetchurl mirrors.nix: Use HTTPS in maven mirrors 2020-01-20 09:54:14 +01:00
fetchzip treewide: remove unused variables (#63177) 2019-06-16 19:59:05 +00:00
icon-conv-tools
install-shell-files installShellFiles: init (#65211) 2019-09-04 23:19:17 +02:00
kernel modules-shrunk: preserve module priorities from build 2019-12-07 23:04:17 +01:00
libredirect libredirect: fix build on darwin 2020-01-23 20:20:20 -05:00
make-desktopitem makeDesktopItem: use runCommandLocal 2019-12-08 20:47:27 +01:00
make-startupitem
make-symlinks
mkshell mkshell: improve mergeInputs 2019-06-23 22:20:10 +02:00
mono-dll-fixer
nix-gitignore nix-gitignore: init at v3.0.0 (#46112) 2019-02-18 09:57:30 +00:00
nuke-references nukeReferences: Use stdenvNoCC 2019-10-11 17:12:09 +02:00
ocaml treewide: CAML_LD_LIBRARY_PATH may be undefined 2019-11-14 13:44:07 -05:00
oci-tools ociTools: init 2019-09-04 22:46:42 +00:00
prefer-remote-fetch prefer-fetch-remote: an overlay to fetch on remote builders 2019-01-18 14:41:10 +00:00
references-by-popularity references-by-popularity: cache computation to avoid memory bloat 2019-03-05 16:37:52 -05:00
release treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
remove-references-to
rust fetchcargo: use flat tar.gz file for vendored src instead of recursive hash dir 2020-02-10 10:17:29 -05:00
setup-hooks stdenv: make symlinks that refer to the same output relative 2020-01-15 09:26:40 +01:00
singularity-tools singularity-tools: fix buildImage 2020-02-02 09:18:39 +11:00
skaware buildSkawarePackage: pass through extra args 2019-12-16 13:27:10 +00:00
snap doc: fix after snaptools merge 2019-07-10 08:02:14 -07:00
src-only
substitute substituteAll: allowSubstitutes = false; 2019-02-07 22:20:42 +00:00
substitute-files substituteAllFiles: allowSubstitutes = false 2019-02-08 00:22:51 +00:00
templaterpm treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
upstream-updater treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
vm vmTools.fillDiskWithRPMs: fix cpio use 2019-12-08 21:03:39 +01:00
wrapper-common utils.bash: allow response files in bootstrapping 2019-04-20 23:17:04 -04:00
writers WriteHaskell: Strip binaries 2019-12-14 09:32:34 +01:00
build-maven.nix buildMaven: Support metadata-only dependencies 2018-11-29 17:29:59 +00:00
build-pecl.nix phpPackages: build phpPackages with re2c 2019-06-11 22:21:35 +03:00
closure-info.nix treewide: remove unused variables (#63177) 2019-06-16 19:59:05 +00:00
dhall-to-nix.nix treewide: remove redundant quotes 2019-09-08 23:38:31 +00:00
plugins.nix
replace-dependency.nix
setup-systemd-units.nix
source-from-head-fun.nix treewide: Change URLs to HTTPS 2019-04-22 10:19:54 +02:00
trivial-builders.nix pkgs/build-support/trivial-builders: remove runCommandCCLocal 2019-12-04 21:17:01 +01:00