3
0
Fork 0
forked from mirrors/nixpkgs
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
fetchbower
fetchbzr
fetchcvs
fetchdarcs
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
fetchgitiles fetchFromGitiles: init 2019-12-02 22:44:33 +00:00
fetchgitlab fetchFromGitLab: improve readability 2019-12-09 01:33:16 +00:00
fetchgitlocal
fetchgx
fetchhg
fetchipfs
fetchmavenartifact
fetchmtn
fetchnuget
fetchpatch fetchpatch: explain why we use 0.3.3 2019-05-12 15:16:45 +02:00
fetchrepoorcz
fetchrepoproject
fetchs3
fetchsavannah
fetchsvn
fetchsvnrevision
fetchsvnssh
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
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
references-by-popularity
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
substitute-files
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
writers WriteHaskell: Strip binaries 2019-12-14 09:32:34 +01:00
build-maven.nix
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
trivial-builders.nix pkgs/build-support/trivial-builders: remove runCommandCCLocal 2019-12-04 21:17:01 +01:00