Shea Levy
f867f090ed
Merge branch 'base32-overflow' of git://github.com/vcunat/nix
2016-12-13 09:41:02 -05:00
Eelco Dolstra
e6a61b8da7
Fix S3BinaryCacheStore
...
It failed with
AWS error uploading ‘6gaxphsyhg66mz0a00qghf9nqf7majs2.ls.xz’: Unable to parse ExceptionName: MissingContentLength Message: You must provide the Content-Length HTTP header.
possibly because the istringstream_nocopy introduced in
0d2ebb4373
doesn't supply the seek
method that the AWS library expects. So bring back the old version,
but only for S3BinaryCacheStore.
2016-12-08 15:31:27 +01:00
Eelco Dolstra
ceeedb58d2
Use a steady clock for timeouts
...
Fixes #1146 .
2016-12-06 21:58:04 +01:00
Eelco Dolstra
215b70f51e
Revert "Get rid of unicode quotes ( #1140 )"
...
This reverts commit f78126bfd6
. There
really is no need for such a massive change...
2016-11-26 00:38:01 +01:00
Guillaume Maudoux
f78126bfd6
Get rid of unicode quotes ( #1140 )
2016-11-25 15:48:27 +01:00
Eelco Dolstra
349e988903
Typo
2016-11-17 17:55:41 +01:00
Shea Levy
00b8bce4d0
Fix binary-cache-store build
2016-11-17 11:48:10 -05:00
Shea Levy
0d2ebb4373
istringstream_nocopy: Implement in a standards-compliant way
...
Fixes #1135 .
2016-11-17 10:10:32 -05:00
Eelco Dolstra
4be4f6de56
S3BinaryCacheStore:: Eliminate a string copy while uploading
...
This cuts hydra-queue-runner's peak memory usage by about a third.
2016-11-16 16:21:30 +01:00
Eelco Dolstra
b3ba762dbf
Add missing #include
2016-11-07 14:35:47 +01:00
Vladimír Čunát
818aad3ec4
Detect and disallow base32 hash overflow
...
Example (before this commit):
$ nix-hash --type sha256 --to-base16 4n0igfxbd3kqvvj2k2xgysrp63l4v2gd110fwkk4apfpm0hvzwh0 \
| xargs nix-hash --type sha256 --to-base32
0n0igfxbd3kqvvj2k2xgysrp63l4v2gd110fwkk4apfpm0hvzwh0
It's a real-life example:
https://github.com/NixOS/nixpkgs/pull/20208/files#r86695567
2016-11-06 22:17:37 +01:00
Eelco Dolstra
795d9b8668
Merge branch 'regex' of https://github.com/groxxda/nix
2016-10-19 16:32:24 +02:00
Eelco Dolstra
19c278de89
Fix Darwin build
...
Done slightly differently from https://github.com/NixOS/nix/pull/1093 .
2016-10-19 15:21:18 +02:00
Alexander Ried
b05b98df75
replace own regex class with std::regex
2016-10-18 20:22:25 +02:00
Eelco Dolstra
82e2a070e0
Add some functions needed by hydra
2016-10-12 15:49:37 +02:00
Eelco Dolstra
b0f7f9c98f
toJSON(): Support some more types
2016-10-06 17:00:52 +02:00
Eelco Dolstra
cd128f4bad
Merge pull request #998 from veprbl/rx_chmod_fix
...
override rx directory permissions in deletePath()
2016-10-06 11:08:21 +02:00
Eelco Dolstra
4546be1b3e
nix-build, nix-shell: Don't print error message if nix-store/nix-instantiate fails
2016-09-21 16:54:53 +02:00
Eelco Dolstra
c55bf085eb
printMsg(lvlError, ...) -> printError(...) etc.
2016-09-21 16:54:53 +02:00
Eelco Dolstra
4036185cb4
Some notational convenience for formatting strings
...
We can now write
throw Error("file '%s' not found", path);
instead of
throw Error(format("file '%s' not found") % path);
and similarly
printError("file '%s' not found", path);
instead of
printMsg(lvlError, format("file '%s' not found") % path);
2016-09-21 16:54:53 +02:00
Eelco Dolstra
beaefdf706
Tweak
2016-09-20 17:49:31 +02:00
Eelco Dolstra
4de0639105
nix-shell: Fix $PATH handling in the impure case
...
We were passing "p=$PATH" rather than "p=$PATH;", resulting in some
invalid shell code.
Also, construct a separate environment for the child rather than
overwriting the parent's.
2016-09-20 15:41:41 +02:00
Eelco Dolstra
75989bdca7
Make computeFSClosure() single-threaded again
...
The fact that queryPathInfo() is synchronous meant that we needed a
thread for every concurrent binary cache lookup, even though they end
up being handled by the same download thread. Requiring hundreds of
threads is not a good idea. So now there is an asynchronous version of
queryPathInfo() that takes a callback function to process the
result. Similarly, enqueueDownload() now takes a callback rather than
returning a future.
Thus, a command like
nix path-info --store https://cache.nixos.org/ -r /nix/store/slljrzwmpygy1daay14kjszsr9xix063-nixos-16.09beta231.dccf8c5
that returns 4941 paths now takes 1.87s using only 2 threads (the main
thread and the downloader thread). (This is with a prewarmed
CloudFront.)
2016-09-16 18:54:14 +02:00
Eelco Dolstra
054be50257
printMsg(): Don't check for interrupts
...
Having the logger function potentially throw exceptions is
Heisenbuggy.
2016-09-16 18:52:42 +02:00
Eelco Dolstra
a75d11a7e6
Add a toLower utility function
2016-09-14 14:58:49 +02:00
Eelco Dolstra
e07c0dcf5c
Move some .drv parsing functions out of util
2016-09-14 10:54:57 +02:00
Eelco Dolstra
d74c8a3f4e
Fix 32-bit build
2016-08-30 17:38:09 +02:00
Eelco Dolstra
c0a7b84748
nix path-info: Add --json flag
...
Also, factor out JSON generation from value-to-json.{cc,hh}, and
support producing indented JSON.
2016-08-29 17:29:24 +02:00
Dmitry Kalinkin
f91748ba73
override rx directory permissions in deletePath()
...
This fixes instantiation of pythonPackages.pytest that produces a
directory with less permissions during one of it's tests that leads to
a nix error like:
error: opening directory ‘/tmp/nix-build-python2.7-pytest-2.9.2.drv-0/pytest-of-user/pytest-0/testdir/test_cache_failure_warns0/.cache’: Permission denied
2016-07-25 18:11:46 -04:00
Eelco Dolstra
d3cd0f5856
Fix assertion failure
2016-07-21 18:39:32 +02:00
Eelco Dolstra
ea8e8df6c7
NarInfo::NarInfo(): Ensure that we get a NAR size/hash
2016-07-21 18:35:12 +02:00
Eelco Dolstra
e682a8e138
Fix assertion failure in ThreadPool::enqueue()
2016-07-21 18:14:16 +02:00
Shea Levy
06068b353d
FdSink: Restore move constructor/assignment
2016-07-13 06:27:41 -04:00
Shea Levy
b33e85229d
Make Buffered{Source,Sink} move-safe
2016-07-13 06:03:37 -04:00
Shea Levy
cb5e7254b6
Modernize AutoCloseFD
2016-07-11 15:44:44 -04:00
Eelco Dolstra
202683a4fc
Use O_CLOEXEC in most places
2016-06-09 16:37:08 +02:00
Eelco Dolstra
a424ab0444
createTempDir(): Don't do a chown on Linux
...
It's not needed and can cause problems in a user namespace.
2016-06-02 18:17:30 +02:00
Eelco Dolstra
812c0dfbe2
Allow setting the state directory as a store parameter
...
E.g. "local?store=/tmp/store&state=/tmp/var".
2016-06-02 16:02:48 +02:00
Dmitry Kalinkin
78b00bbd8a
use $(LIBLZMA_LIBS) instead of -llzma
...
This is needed in case of non-standard lzma installation path that will
be specified in pkgconfig manifest as extra -L option for LDFLAGS.
2016-05-31 03:20:11 -04:00
Eelco Dolstra
6c75cf69c3
Cleanup: Remove singleton()
2016-05-04 16:16:53 +02:00
Eelco Dolstra
0d4a10e910
Do compression in a sink
2016-05-04 16:16:53 +02:00
Eelco Dolstra
538a64e8c3
Add a Store::addToStore() variant that accepts a NAR
...
As a side effect, this ensures that signatures are propagated when
copying paths between stores.
Also refactored import/export to make use of this.
2016-05-04 16:15:54 +02:00
Eelco Dolstra
33de2bc080
Fix segfault in xz compression/decompression
2016-05-04 11:50:12 +02:00
Eelco Dolstra
dfebfc835f
Add a copyStorePath() utility function
2016-05-04 11:01:48 +02:00
Eelco Dolstra
d8bf0d4859
Support Git repos in the Nix path
...
E.g.
$ nix-build -I nixpkgs=git://github.com/NixOS/nixpkgs '<nixpkgs>' -A hello
This is not extremely useful yet because you can't specify a
branch/revision.
2016-04-29 21:07:47 +02:00
Eelco Dolstra
4dde0b0562
BinaryCacheStore: Support bzip2 compression
2016-04-29 17:43:37 +02:00
Eelco Dolstra
5acb691402
BinaryCacheStore: Support "none" compression method
2016-04-29 17:02:57 +02:00
Eelco Dolstra
aa3bc3d5dc
Eliminate the substituter mechanism
...
Substitution is now simply a Store -> Store copy operation, most
typically from BinaryCacheStore to LocalStore.
2016-04-29 13:57:08 +02:00
Eelco Dolstra
41633f9f73
Improved logging abstraction
...
This also gets rid of --log-type, since the nested log type isn't
useful in a multi-threaded situation, and nobody cares about the
"pretty" log type.
2016-04-25 19:18:45 +02:00
Eelco Dolstra
c879a20850
Factor out parallel processing of work items that have dependencies
2016-04-22 20:50:06 +02:00