Age | Commit message (Collapse) | Author |
|
|
|
In the build hook, don't wait forever to get the upload lock. This
ensures progress if another process gets stuck while holding the
upload lock.
|
|
Not all SQLite builds have the function sqlite3_table_column_metadata.
We were only using it in a schema upgrade check for compatibility with
databases that were probably never seen in the wild. So remove it.
|
|
The variable ‘useChroot’ was not initialised properly. This caused
random failures if using the build hook. Seen on Mac OS X 10.7 with Clang.
Thanks to KolibriFX for finding this :-)
|
|
Chroots are initialised by hard-linking inputs from the Nix store to
the chroot. This doesn't work if the input has its immutable bit set,
because it's forbidden to create hard links to immutable files. So
temporarily clear the immutable bit when creating and destroying the
chroot.
Note that making regular files in the Nix store immutable isn't very
reliable, since the bit can easily become cleared: for instance, if we
run the garbage collector after running ‘nix-store --optimise’. So
maybe we should only make directories immutable.
|
|
I was bitten one time too many by Python modifying the Nix store by
creating *.pyc files when run as root. On Linux, we can prevent this
by setting the immutable bit on files and directories (as in ‘chattr
+i’). This isn't supported by all filesystems, so it's not an error
if setting the bit fails. The immutable bit is cleared by the garbage
collector before deleting a path. The only tricky aspect is in
optimiseStore(), since it's forbidden to create hard links to an
immutable file. Thus optimiseStore() temporarily clears the immutable
bit before creating the link.
|
|
Because of an outdated check for a timestamp of 0, we were calling
utime() even when it wasn't necessary.
|
|
|
|
This fixes the error message
error: file `' was not found in the Nix search path (add it using $NIX_PATH or -I)
|
|
|
|
|
|
|
|
|
|
old ones).
|
|
EvalState::eval(). This gives a 12% speedup on ‘nix-instantiate
/etc/nixos/nixos/ -A system --readonly-mode’ (from 1.01s to 0.89s).
|
|
|
|
directory. Previously in this situation we did add the Nix
expressions from the channel to allow installation from source, but
this doesn't work for binary-only channels and leads to confusing
error messages.
|
|
|
|
|
|
attributes.
|
|
This makes it easier to pinpoint the source of a crash.
|
|
|
|
|
|
Without these, Nix fails on 32-bit Linux with Perl 5.14, with a
rather unhelpful error message:
Not a CODE reference at /nix/store/n6kpbacn6nn7i3i735v8j3di8aqyl07v-perl-5.14.2/lib/perl5/5.14.2/i686-linux-thread-multi/DynaLoader.pm
This is likely because the lack of -D_FILE_OFFSET_BITS=64 causes
various Perl structures to not match what the Perl interpreter
expects.
|
|
environment of the given derivation in a format that can be sourced
by the shell, e.g.
$ eval "$(nix-store --print-env $(nix-instantiate /etc/nixos/nixpkgs -A pkg))"
$ NIX_BUILD_TOP=/tmp
$ source $stdenv/setup
This is especially useful to reproduce the environment used to build
a package outside of its builder for development purposes.
TODO: add a nix-build option to do the above and fetch the
dependencies of the derivation as well.
|
|
directory rather than the current directory.
* nix-build: --drv-link now implies --add-drv-link.
|
|
Mac OS X instead of .dylib, so don't do that.
|
|
|
|
|
|
|
|
and allocate them only once.
* Move Value and related functions into value.hh.
|
|
|
|
scripts.
* Include the version and architecture in the -I flag so that there is
at least a chance that a Nix binary built for one Perl version will
run on another version.
|
|
|
|
/etc/nixos/nixos -A system" spent about 10% of its time in
dynamic_cast.
|
|
^/nix/branches/multiple-outputs-sandbox). Multiple output support
still isn't complete, but it wasn't complete in the trunk either, so
it doesn't hurt.
|
|
|
|
|
|
aspect.
|
|
‘drvAttrs’. This will simplify the implementation of functions such
as ‘overrideDerivation’ in Nixpkgs, which need to filter out any
added attributes such as outPath.
|
|
common attribution so that they're evaluated only once, etc. Note
that the default output is now the first element of the "outputs"
attribute, rather than the first element of the sorted list of
outputs. This seems more user-friendly.
|
|
|
|
file.
|
|
|
|
|
|
|
|
|
|
* Refactor the nix-channel unpacker a bit.
|
|
|
|
other simplifications.
* Use <nix/...> to locate the corepkgs. This allows them to be
overriden through $NIX_PATH.
* Use bash's pipefail option in the NAR builder so that we don't need
to create a temporary file.
|