Will Dietz
5afee18726
run.sh: include lib64 in sandbox-paths to fix on ubuntu 16.XX
...
(cc #1769 )
2017-12-30 22:41:49 -06:00
Will Dietz
9dd2b8ac7b
use libbrotli directly when available
...
* Look for both 'brotli' and 'bro' as external command,
since upstream has renamed it in newer versions.
If neither are found, current runtime behavior
is preserved: try to find 'bro' on PATH.
* Limit amount handed to BrotliEncoderCompressStream
to ensure interrupts are processed in a timely manner.
Testing shows negligible performance impact.
(Other compression sinks don't seem to require this)
2017-12-30 20:26:33 -06:00
Will Dietz
2e6f06c37e
fetchGit: Fix handling of local repo when not using 'master' branch
...
Add tests checking this behavior.
2017-12-22 15:29:52 -06:00
Eelco Dolstra
6d80870832
release.nix: Use fetchTarball and fetchGit
...
In particular, using fetchGit means we don't need hackery to clean the
source tree when building from an unclean tree.
2017-12-22 11:35:32 +01:00
Eelco Dolstra
e3013543d3
Fix test
2017-12-07 01:07:07 +01:00
Eelco Dolstra
338f29dbd4
nix ls-{nar,store}: Return offset of files in the NAR if known
...
E.g.
$ nix ls-store --json --recursive --store https://cache.nixos.org /nix/store/b0w2hafndl09h64fhb86kw6bmhbmnpm1-blender-2.79 \
| jq .entries.bin.entries.blender.narOffset
400
2017-12-07 01:07:07 +01:00
Shea Levy
11a7f8ce14
Merge branch 'fetchGit-fast-revision-update'
2017-12-05 11:16:39 -05:00
aszlig
6567ab95a0
build-remote: Fix missing log output
...
The storeUri variable in the build-remote hook is declared very much to
the start of the main function and a bunch of lines later, the same
variable gets checked via hasPrefix() but it gets assigned *after* that
check when the most suitable machine for the build was choosen.
So I guess this was just a typo in d16fd24973
and what we really want is to either checkd the prefix *after* assigning
storeUri or use bestMachine->storeUri directly.
I choose the latter, because the former could introduce even more
regressions if the try block where the variable gets assigned terminates
early.
Nevertheless, the reason why the log output didn't work is because
hasPrefix() checked for "ssh://" in front of storeUri, but if the
storeUri isn't set correctly (or at all), we don't get the log file
descriptor set up properly, leading to no log output.
I've adjusted the remote-builds test to include a regression test for
this, so that we can make sure we get a build output when using remote
builds.
In addition to that I've tested this with two of my build farms and the
build logs are emitted correctly again.
Signed-off-by: aszlig <aszlig@nix.build>
2017-11-25 01:34:18 +01:00
Eelco Dolstra
90948a4e3a
nix-shell/nix-build: Support .drv files again
...
Fixes #1663 .
Also handle '!<output-name>' (#1694 ).
2017-11-24 18:08:35 +01:00
Shea Levy
eedbc4e06c
fetchGit: Ignore tarballTtl if rev is set and not in the repo.
...
Fixes #1697 .
2017-11-24 06:09:24 -05:00
Eelco Dolstra
0fc3e581e0
tests/run.sh: Fix /build conflict when building in a sandbox
...
https://hydra.nixos.org/build/64519355
2017-11-21 19:43:12 +01:00
Eelco Dolstra
d7da6c9ea9
fetchGit/fetchMercurial: Fix directory inclusion check
...
E.g. the existence of .gitignore would cause .git to be included.
2017-11-21 19:34:46 +01:00
Eelco Dolstra
4fcf44825f
Add tests for verifying/copying content-addressed paths
...
These don't require signatures.
2017-11-20 19:11:02 +01:00
Eelco Dolstra
0c9718aabc
Add tests for signature checking when copying between local stores
2017-11-20 19:02:57 +01:00
Eelco Dolstra
4cde04f476
Add tests for "nix run"
2017-11-20 18:36:36 +01:00
Eelco Dolstra
193330d321
Test: Replace --option with the corresponding flag
2017-11-20 17:50:49 +01:00
Eelco Dolstra
91a1987607
signed-binary-caches -> require-sigs
...
Unlike signed-binary-caches (which could only be '*' or ''),
require-sigs is a proper Boolean option. The default is true.
2017-11-20 17:44:07 +01:00
Eelco Dolstra
7a2b64e55c
binary-cache-public-keys -> trusted-public-keys
...
The name had become a misnomer since it's not only for substitution
from binary caches, but when adding/copying any
(non-content-addressed) path to a store.
2017-11-20 17:32:34 +01:00
Eelco Dolstra
27131866c9
Doh
2017-11-15 12:23:31 +01:00
Eelco Dolstra
ec5b04862b
nix sign-paths: Support binary caches
2017-11-14 18:44:05 +01:00
Eelco Dolstra
d6dbda7004
Add tests for "nix verify", "nix sign-paths" etc.
2017-11-14 18:24:20 +01:00
Eelco Dolstra
2c39e4eca0
Revert "Don't parse "x:x" as a URI"
...
This reverts commit f90f660b24
.
This broke Hydra's release.nix, which contained
preCheck = ''export LOGNAME=${LOGNAME:-foo}'';
2017-11-14 15:10:52 +01:00
Eelco Dolstra
5773d667ee
nix ls-{nar,store}: Don't abort on missing files
2017-11-14 14:49:06 +01:00
Eelco Dolstra
b8d446829e
Add some tests
2017-11-14 14:37:39 +01:00
Eelco Dolstra
c9c3fc710b
Rename tests/nar-index -> tests/nar-access
2017-11-14 13:27:40 +01:00
Eelco Dolstra
fd10f6f241
Show when tests are skipped
...
Also, don't depend on tput (ncurses). It's really not needed since
ANSI escape sequences have been standardized for 35 years or so.
2017-11-07 12:09:57 +01:00
Eelco Dolstra
ee6ac38848
fetchGit/fetchMercurial: Filter out directories with untracked files
2017-11-03 13:55:31 +01:00
Eelco Dolstra
4dee01da7c
fetchGit: Add a test
2017-11-03 13:55:30 +01:00
Eelco Dolstra
e026bc3b05
fetchMercurial: Don't fetch hashes we already have
2017-11-01 18:43:11 +01:00
Eelco Dolstra
1969f357b7
Add fetchMercurial primop
...
E.g.
$ nix eval '(fetchMercurial https://www.mercurial-scm.org/repo/hello )'
{ branch = "default"; outPath = "/nix/store/alvb9y1kfz42bjishqmyy3pphnrh1pfa-source"; rev = "82e55d328c8ca4ee16520036c0aaace03a5beb65"; revCount = 1; shortRev = "82e55d328c8c"; }
$ nix eval '(fetchMercurial { url = https://www.mercurial-scm.org/repo/hello ; rev = "0a04b987be5ae354b710cefeba0e2d9de7ad41a9"; })'
{ branch = "default"; outPath = "/nix/store/alvb9y1kfz42bjishqmyy3pphnrh1pfa-source"; rev = "0a04b987be5ae354b710cefeba0e2d9de7ad41a9"; revCount = 0; shortRev = "0a04b987be5a"; }
$ nix eval '(fetchMercurial /tmp/unclean-hg-tree)'
{ branch = "default"; outPath = "/nix/store/cm750cdw1x8wfpm3jq7mz09r30l9r024-source"; rev = "0000000000000000000000000000000000000000"; revCount = 0; shortRev = "000000000000"; }
2017-11-01 17:45:32 +01:00
Eelco Dolstra
f90f660b24
Don't parse "x:x" as a URI
...
URIs now have to contain "://" or start with "channel:".
2017-10-30 17:58:01 +01:00
Eelco Dolstra
812e027e1d
Add option allowed-uris
...
This allows network access in restricted eval mode.
2017-10-30 12:41:49 +01:00
Eelco Dolstra
82327e3cc4
exportReferencesGraph: Allow exporting a list of store paths
2017-10-25 15:18:49 +02:00
Eelco Dolstra
3395e3bbc4
Fix exportReferencesGraph in the structured attrs case
2017-10-25 14:08:29 +02:00
Eelco Dolstra
2d5b1b24bf
Pass lists/attrsets to bash as (associative) arrays
2017-10-25 13:01:50 +02:00
Eelco Dolstra
d16fd24973
Allow shorter syntax for chroot stores
...
You can now say '--store /tmp/nix' instead of '--store local?root=/tmp/nix'.
2017-10-24 15:32:38 +02:00
Eelco Dolstra
3460e4cf00
More progress indicator improvements
...
In particular, don't show superfluous "fetching path" and "building
path(s)" messages, and show the current round (with --repeat).
2017-10-24 15:32:38 +02:00
Eelco Dolstra
d4609bb3af
NIX_BUILD_HOOK variable is gone
2017-10-23 20:50:28 +02:00
Eelco Dolstra
37fbfffd8e
Pass all settings to build-remote
...
This ensures that command line flags such as --builders get passed
correctly.
2017-10-23 20:50:28 +02:00
Dan Peebles
3139cad9cd
Fix tests
...
`nix copy` no longer accepts a `--recursive` argument
2017-10-02 23:45:27 -04:00
Eelco Dolstra
c2154d4c84
Rename a few configuration options
...
In particular, drop the "build-" and "gc-" prefixes which are
pointless. So now you can say
nix build --no-sandbox
instead of
nix build --no-build-use-sandbox
2017-08-31 14:28:25 +02:00
Nicolas B. Pierron
b8867a0239
Add builtins.string function.
...
The function 'builtins.split' takes a POSIX extended regular expression
and an arbitrary string. It returns a list of non-matching substring
interleaved by lists of matched groups of the regular expression.
```nix
with builtins;
assert split "(a)b" "abc" == [ "" [ "a" ] "c" ];
assert split "([ac])" "abc" == [ "" [ "a" ] "b" [ "c" ] "" ];
assert split "(a)|(c)" "abc" == [ "" [ "a" null ] "b" [ null "c" ] "" ];
assert split "([[:upper:]]+)" " FOO "
== [ " " [ "FOO" ] " " ];
```
2017-08-15 20:04:11 +00:00
Jörg Thalheim
2fd8f8bb99
Replace Unicode quotes in user-facing strings by ASCII
...
Relevant RFC: NixOS/rfcs#4
$ ag -l | xargs sed -i -e "/\"/s/’/'/g;/\"/s/‘/'/g"
2017-07-30 12:32:45 +01:00
Graham Christensen
364f75e03a
Update mailing list.
2017-07-18 08:04:01 -04:00
Eelco Dolstra
bf6792c0df
Always use base-16 for hashed mirror lookups
...
In particular, don't use base-64, which we don't support. (We do have
base-32 redirects for hysterical reasons.)
Also, add a test for the hashed mirror feature.
2017-07-17 13:13:18 +02:00
Eelco Dolstra
49304bae81
Make the hashes mirrors used by builtins.fetchurl configurable
...
In particular, this allows it to be disabled in our tests.
2017-07-17 13:07:08 +02:00
Graham Christensen
e0d39c8dc4
Rename PINCH_ME_IM_SILLY to ALLOW_PREEXISTING_INSTALLATION
2017-07-14 12:11:33 -04:00
Graham Christensen
12f6bb33d2
If there is no TTY, also skip verbose sudo messages
2017-07-14 12:11:30 -04:00
Graham Christensen
ce2281e6d8
Ensure PINCH_ME_IM_SILLY allows a /nix/store to stick around between builds
...
Also output in the status report that the user is very silly
2017-07-14 12:11:26 -04:00
Graham Christensen
1c7ce2a018
Assume yes if we have no TTY
...
Starve the TTY of input to ensure this works, but provide yes to the
current installer to handle the current broken case.
2017-07-14 12:11:23 -04:00
Graham Christensen
73a57a2f22
Cleanup and more specificity around set -e
2017-07-14 12:11:20 -04:00
Graham Christensen
3839dda2ec
Only clean if the file exists
2017-07-14 12:11:17 -04:00
Graham Christensen
92ca93528f
Clean up nix hints from the old insstaller
2017-07-14 12:11:13 -04:00
Graham Christensen
61ea9e9867
Run nix-build inside a fresh bash login
2017-07-14 12:11:10 -04:00
Graham Christensen
bc647fd299
chmod
2017-07-14 12:11:07 -04:00
Graham Christensen
a0369b14f4
Test the installer
2017-07-14 12:11:04 -04:00
Robert Vollmert
01722b3d2c
Remove unused variable from test script
2017-07-06 22:37:53 +02:00
Eelco Dolstra
c0015e87af
Support base-64 hashes
...
Also simplify the Hash API.
Fixes #1437 .
2017-07-04 15:07:41 +02:00
Eelco Dolstra
1888f7889b
macOS: Ugly hack to make the tests succeed
...
Sandboxes cannot be nested, so if Nix's build runs inside a sandbox,
it cannot use a sandbox itself. I don't see a clean way to detect
whether we're in a sandbox, so use a test-specific hack.
https://github.com/NixOS/nix/issues/1413
2017-06-19 14:26:05 +02:00
Eelco Dolstra
1d9ab273ba
Add test for setuid seccomp filter
2017-05-29 16:14:10 +02:00
Eelco Dolstra
edbb105e98
Merge branch 'nar-accessor-tree' of https://github.com/bennofs/nix
2017-05-24 11:04:43 +02:00
Eelco Dolstra
f134fc4cbe
Document that builtins.match takes a POSIX extended RE
2017-05-17 12:18:18 +02:00
Benno Fünfstück
4412f7c083
nar-archive.cc: add tests for the nar index
2017-05-15 12:23:21 +02:00
Eelco Dolstra
00b286275c
Linux sandbox: Fix compatibility with older kernels
2017-05-08 15:42:59 +02:00
Eelco Dolstra
bb50c89319
Make the location of the build directory in the sandbox configurable
...
This is mostly for use in the sandbox tests, since if the Nix store is
under /build, then we can't use /build as the build directory.
2017-05-05 17:45:22 +02:00
Eelco Dolstra
16535552ad
build-remote: Add a basic test
...
This only runs on Linux because it requires a diverted store (which
uses mount/user namespaces).
2017-05-02 15:46:10 +02:00
Eelco Dolstra
7dedd3fa24
Add a test for diverted stores
2017-05-02 15:46:09 +02:00
Eelco Dolstra
70581b6363
Fix build hook test
2017-05-02 12:07:56 +02:00
Eelco Dolstra
d7653dfc6d
Remove $NIX_BUILD_HOOK and $NIX_CURRENT_LOAD
...
This is to simplify remote build configuration. These environment
variables predate nix.conf.
The build hook now has a sensible default (namely build-remote).
The current load is kept in the Nix state directory now.
2017-05-01 17:30:16 +02:00
Guillaume Maudoux
a474425425
Fix lexer to support $'
in multiline strings.
2017-05-01 01:15:40 +02:00
Eelco Dolstra
4c95ef3768
Fix nix-shell test
2017-04-25 18:59:18 +02:00
Eelco Dolstra
ba9ad29fdb
Convert Settings to the new config system
...
This makes all config options self-documenting.
Unknown or unparseable config settings and --option flags now cause a
warning.
2017-04-13 20:53:23 +02:00
Will Dietz
a0c56197fc
tests/timeout: create output so tests don't trivially pass
...
Timeout tests rely on failed build to determine success,
so make sure these derivations (silent in particular)
don't fail regardless of timeout behavior.
2017-04-08 12:59:42 -05:00
Will Dietz
30f89e0d65
Process nix.conf options in "new" nix commands, add test.
...
Without this (minor) change, the options set using "--option"
or read from nix.conf were parsed but not used.
2017-04-08 12:59:42 -05:00
Eelco Dolstra
c0745a2531
Merge branch 'remove-perl' of https://github.com/shlevy/nix
2017-03-31 14:13:32 +02:00
Eelco Dolstra
aa23bba27f
Fix tests to reflect the signed-binary-caches default change
2017-03-21 18:06:13 +01:00
Eelco Dolstra
89ffe1eff9
Fix nix-shell tests
...
The nix-shell fix in 668fef2e4f
revealed
that we had some --pure tests that incorrectly depended on PATH from
config.nix's mkDerivation being overwritten by the caller's PATH.
http://hydra.nixos.org/build/49242478
2017-02-24 17:29:02 +01:00
Eelco Dolstra
8d7c6644c5
useChroot -> useSandbox
2017-02-21 15:21:56 +01:00
Shea Levy
418a837897
Remove perl dependency.
...
Fixes #341
2017-02-07 15:56:32 -05:00
Eelco Dolstra
8af062f372
Merge pull request #981 from shlevy/build-remote-c++
...
build-remote: Implement in C++
2017-01-19 18:21:55 +01:00
Eelco Dolstra
21948deed9
Kill builds when we get EOF on the log FD
...
This closes a long-time bug that allowed builds to hang Nix
indefinitely (regardless of timeouts) simply by doing
exec > /dev/null 2>&1; while true; do true; done
Now, on EOF, we just send SIGKILL to the child to make sure it's
really gone.
2017-01-19 17:16:14 +01:00
Eelco Dolstra
90ee1e3fe3
Add a test for --max-silent-time
2017-01-19 17:06:03 +01:00
Eelco Dolstra
c287e797a8
nix-shell: In #! mode, pass the last argument
...
"i < argc - 1" should be "i < argc".
2017-01-03 11:40:51 +01:00
Tuomas Tynkkynen
b501bea25f
tests: Add simple tests for nix-shell
...
nix-shell -A, -p and -i are lightly tested.
2017-01-03 10:11:09 +02:00
Eelco Dolstra
3a4bd320c2
Revert "Merge branch 'seccomp' of https://github.com/aszlig/nix "
...
This reverts commit 9f3f2e21ed
, reversing
changes made to 47f587700d
.
2016-12-19 11:52:57 +01:00
Eelco Dolstra
9f3f2e21ed
Merge branch 'seccomp' of https://github.com/aszlig/nix
2016-12-15 12:04:45 +01:00
Guillaume Maudoux
e4b82af387
Improve error message on trailing path slashes
2016-11-27 17:48:46 +01:00
aszlig
ed64976cec
seccomp: Forge return codes for POSIX ACL syscalls
...
Commands such as "cp -p" also use fsetxattr() in addition to fchown(),
so we need to make sure these syscalls always return successful as well
in order to avoid nasty "Invalid value" errors.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-11-16 17:29:14 +01:00
aszlig
651a18dd24
release.nix: Add a test for sandboxing
...
Right now it only tests whether seccomp correctly forges the return
value of chown, but the long-term goal is to test the full sandboxing
functionality at some point in the future.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-11-16 16:48:34 +01:00
Guillaume Maudoux
a5e761dddb
Fix comments parsing
...
Fixed the parsing of multiline strings ending with an even number of
stars, like /** this **/.
Added test cases for comments.
2016-11-13 17:20:34 +01:00
Shea Levy
167d12b02c
build-remote: Implement in C++
2016-11-10 11:09:15 -05:00
Eelco Dolstra
af3db853fa
Handle $TMPDIR ending with a slash
...
This caused the gc test to fail on Darwin.
2016-10-19 15:19:38 +02:00
Eelco Dolstra
2c8c103ef8
Fix gc-runtime test
...
It was failing on some platforms.
http://hydra.nixos.org/build/39538866
2016-09-12 13:40:07 +02:00
Eelco Dolstra
46e36f9b73
Fix test failure
2016-09-08 18:22:28 +02:00
Eelco Dolstra
26d92017d3
Add builtin function "partition"
...
The implementation of "partition" in Nixpkgs is O(n^2) (because of the
use of ++), and for some reason was causing stack overflows in
multi-threaded evaluation (not sure why).
This reduces "nix-env -qa --drv-path" runtime by 0.197s and memory
usage by 298 MiB (in non-Boehm mode).
2016-08-29 19:36:54 +02:00
Eelco Dolstra
22d6e31fc6
Add a mechanism for derivation attributes to reference the derivation's outputs
...
For example, you can now say:
configureFlags = "--prefix=${placeholder "out"} --includedir=${placeholder "dev"}";
The strings returned by the ‘placeholder’ builtin are replaced at
build time by the actual store paths corresponding to the specified
outputs.
Previously, you had to work around the inability to self-reference by doing stuff like:
preConfigure = ''
configureFlags+=" --prefix $out --includedir=$dev"
'';
or rely on ad-hoc variable interpolation semantics in Autoconf or Make
(e.g. --prefix=\$(out)), which doesn't always work.
2016-08-17 17:19:32 +02:00
Eelco Dolstra
2fad86f361
Remove $NIX_DB_DIR
...
This variable has no reason to exist, given $NIX_STATE_DIR.
2016-08-10 18:05:35 +02:00
Shea Levy
6e51af8023
Nuke nix-push.
...
Rarely used, nix copy replaces it.
2016-08-10 11:13:11 -04:00
Shea Levy
15c035c13f
Remove nix-install-package.
...
Refs #831
2016-08-10 08:20:51 -04:00
Eelco Dolstra
0f55dd5b0e
Shut up warning
2016-07-21 14:25:06 +02:00