about summary refs log tree commit diff
path: root/src/libstore/download.cc
AgeCommit message (Collapse)AuthorFilesLines
2016-04-15 BinaryCacheStore::readFile(): Return a shared_ptr to a stringEelco Dolstra1-4/+5
This allows readFile() to indicate that a file doesn't exist, and might eliminate some large string copying.
2016-04-14 Support channel:<channel-name> URIsEelco Dolstra1-5/+14
For convenience, you can now say $ nix-env -f channel:nixos-16.03 -iA hello instead of $ nix-env -f https://nixos.org/channels/nixos-16.03/nixexprs.tar.xz -iA hello Similarly, $ nix-shell -I channel:nixpkgs-unstable -p hello $ nix-build channel:nixos-15.09 -A hello Abstracting over the NixOS/Nixpkgs channels location also allows us to use a more efficient transport (e.g. Git) in the future.
2016-04-06 Fix "tar: This does not look like a tar archive" with fetchTarball / -I http://Eelco Dolstra1-2/+1
The 304 Not Modified was not handled correctly, so the empty result from the conditional request would overwrite the previous tarball.
2016-03-30 CurlDownloader: Fix HTTP error processingEelco Dolstra1-1/+0
2016-02-29 Add an HTTP binary cache storeEelco Dolstra1-49/+75
Allowing stuff like NIX_REMOTE=https://cache.nixos.org nix-store -qR /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 or NIX_REMOTE=https://cache.nixos.org nix-store --export /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 | nix-store --import
2016-02-22 curl: Set CURLOPT_NOSIGNALEelco Dolstra1-0/+2
Otherwise using curl is not safe in multi-threaded applications because it installs a SIGALRM handler.
2016-02-04 StoreAPI -> StoreEelco Dolstra1-1/+1
Calling a class an API is a bit redundant...
2016-02-04 Eliminate the "store" global variableEelco Dolstra1-1/+1
Also, move a few free-standing functions into StoreAPI and Derivation. Also, introduce a non-nullable smart pointer, ref<T>, which is just a wrapper around std::shared_ptr ensuring that the pointer is never null. (For reference-counted values, this is better than passing a "T&", because the latter doesn't maintain the refcount. Usually, the caller will have a shared_ptr keeping the value alive, but that's not always the case, e.g., when passing a reference to a std::thread via std::bind.)
2015-10-29 int2String() -> std::to_string()Eelco Dolstra1-1/+1
2015-10-21 Show progress indicator for builtin fetchurlEelco Dolstra1-2/+2
2015-10-21 Disable TLS verification for builtin fetchurlEelco Dolstra1-9/+17
This makes it consistent with the Nixpkgs fetchurl and makes it work in chroots. We don't need verification because the hash of the result is checked anyway.
2015-10-08 Revert to CURLOPT_PROGRESSFUNCTIONEelco Dolstra1-5/+5
CURLOPT_XFERINFOFUNCTION isn't widely supported yet. http://hydra.nixos.org/build/26679495
2015-10-07 Show progress during downloadsEelco Dolstra1-7/+47
2015-07-20 Make <nix/fetchurl.nix> a builtin builderEelco Dolstra1-0/+236
This ensures that 1) the derivation doesn't change when Nix changes; 2) the derivation closure doesn't contain Nix and its dependencies; 3) we don't have to rely on ugly chroot hacks.