about summary refs log tree commit diff
path: root/src/libstore/download.cc
AgeCommit message (Collapse)AuthorFilesLines
2016-07-26 builtins.{fetchurl,fetchTarball}: Support a sha256 attributeEelco Dolstra1-8/+27
Also, allow builtins.{fetchurl,fetchTarball} in restricted mode if a hash is specified.
2016-07-21 Fix random failures caused by CurlDownloader modifying a shared stringEelco Dolstra1-1/+1
2016-04-29 Add fetchgit builtinEelco Dolstra1-1/+1
The function builtins.fetchgit fetches Git repositories at evaluation time, similar to builtins.fetchTarball. (Perhaps the name should be changed, being confusing with respect to Nixpkgs's fetchgit function, with works at build time.) Example: (import (builtins.fetchgit git://github.com/NixOS/nixpkgs) {}).hello or (import (builtins.fetchgit { url = git://github.com/NixOS/nixpkgs-channels; rev = "nixos-16.03"; }) {}).hello Note that the result does not contain a .git directory.
2016-04-20 Cache path info lookups in SQLiteEelco Dolstra1-1/+1
This re-implements the binary cache database in C++, allowing it to be used by other Store backends, in particular the S3 backend.
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.