aboutsummaryrefslogtreecommitdiff
path: root/src/nix-store
AgeCommit message (Collapse)Author
2012-02-09Use data() instead of c_str() where appropriateEelco Dolstra
2012-01-17* Added a command ‘nix-store --print-env $drvpath’ that prints out theEelco Dolstra
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.
2011-12-30* Support multiple outputs in nix-store (specifically the ‘--query’Eelco Dolstra
and ‘--realise’ actions).
2011-12-16* importPath() -> importPaths(). Because of buffering of the inputEelco Dolstra
stream it's now necessary for the daemon to process the entire sequence of exported paths, rather than letting the client do it.
2011-12-02* Move parseHash16or32 into libutil, and use in nix-hash.Eelco Dolstra
2011-11-23* Add an API function exportPaths() that provides the functionality ofEelco Dolstra
‘nix-store --export’. * Add a Perl module that provides the functionality of ‘nix-copy-closure --to’. This is used by build-remote.pl so it no longer needs to start a separate nix-copy-closure process. Also, it uses the Perl API to do the export, so it doesn't need to start a separate nix-store process either. As a result, nix-copy-closure and build-remote.pl should no longer fail on very large closures due to an "Argument list too long" error. (Note that having very many dependencies in a single derivation can still fail because the environment can become too large. Can't be helped though.)
2011-09-06* Added a command ‘nix-store --verify-paths PATHS’ to check whetherEelco Dolstra
the contents of any of the given store paths have been modified. E.g. $ nix-store --verify-path $(nix-store -qR /var/run/current-system) path `/nix/store/m2smyiwbxidlprfxfz4rjlvz2c3mg58y-etc' was modified! expected hash `fc87e271c5fdf179b47939b08ad13440493805584b35e3014109d04d8436e7b8', got `20f1a47281b3c0cbe299ce47ad5ca7340b20ab34246426915fce0ee9116483aa' All paths are checked; the exit code is 1 if any path has been modified, 0 otherwise.
2011-08-31* Eliminate all uses of the global variable ‘store’ from libstore.Eelco Dolstra
This should also fix: nix-instantiate: ./../boost/shared_ptr.hpp:254: T* boost::shared_ptr<T>::operator->() const [with T = nix::StoreAPI]: Assertion `px != 0' failed. which was caused by hashDerivationModulo() calling the ‘store’ object (during store upgrades) before openStore() assigned it.
2010-11-17* Add an operation `nix-store -q --size'.Eelco Dolstra
2010-11-16* Store the size of a store path in the database (to be precise, theEelco Dolstra
size of the NAR serialisation of the path, i.e., `nix-store --dump PATH'). This is useful for Hydra.
2010-11-16* Sync with the trunk.Eelco Dolstra
2010-10-04* Make sure that config.h is included before the system headers,Eelco Dolstra
because it defines _FILE_OFFSET_BITS. Without this, on OpenSolaris the system headers define it to be 32, and then the 32-bit stat() ends up being called with a 64-bit "struct stat", or vice versa. This also ensures that we get 64-bit file sizes everywhere. * Remove the redundant call to stat() in parseExprFromFile(). The file cannot be a symlink because that's the exit condition of the loop before.
2010-06-21* Sync with the trunk.Eelco Dolstra
2010-05-31Add XML output to `nix-store'.Ludovic Courtès
* src/nix-store/Makefile.am (nix_store_SOURCES): Add `xmlgraph.cc' and `xmlgraph.hh'. * src/nix-store/help.txt (Operations): Document `--xml'. * src/nix-store/nix-store.cc (opQuery): Handle `--xml'. * src/nix-store/xmlgraph.cc, src/nix-store/xmlgraph.hh: New files.
2010-05-31Comment out dead code in `nix-store'.Ludovic Courtès
* src/nix-store/dotgraph.cc (pathLabel): Move within #if 0 section.
2010-05-04* Allow unprivileged users to do `nix-store --clear-failed-paths' andEelco Dolstra
`nix-store --query-failed-paths'.
2010-04-26(no commit message)Eelco Dolstra
2010-04-26* Added a command `nix-store --clear-failed-paths <PATHS>' to clearEelco Dolstra
the "failed" status of the given store paths. The special value `*' clears all failed paths.
2010-04-26* Add an command `nix-store --query-failed-paths' to list the cachedEelco Dolstra
failed paths (when using the `build-cache-failure' option).
2010-04-19* Drop the dependency on the ATerm library.Eelco Dolstra
2010-03-02* When using the included sqlite/aterm libraries, build withEelco Dolstra
--enable-shared. * In libutil/libstore/libexpr etc., link against sqlite and aterm. * Some more header file hygiene.
2010-02-24* `helpText' is now zero-terminated.Eelco Dolstra
2010-02-24* ADDITIONAL_NETWORK_LIBS -> LIBS.Eelco Dolstra
2010-02-24* Add ${sqlite_lib} everywhere. Just adding it in `libstore' doesn'tEelco Dolstra
work on x86_64 when sqlite is compiled statically.
2010-01-25* Made `nix-store -qR --include-outputs' much faster if there areEelco Dolstra
multiple paths specified on the command line (from O(n * m) to O(n + m), where n is the number of arguments and m is the size of the closure).
2009-11-24* Templatise getIntArg / string2Int.Eelco Dolstra
2009-11-23* A command `nix-store --query --roots <paths>' to find the garbageEelco Dolstra
collector roots that point (directly or indirectly) to the given paths.
2009-11-23* `nix-store --gc --print-roots': also print the path of the actualEelco Dolstra
root symlink, not just its target. E.g.: /nix/var/nix/profiles/system-99-link -> /nix/store/76kwf88657nq7wgk1hx3l1z5q91zb9wd-system
2009-11-20* Remove the --use-atime / --max-atime garbage collector flags. ManyEelco Dolstra
(Linux) machines no longer maintain the atime because it's too expensive, and on the machines where --use-atime is useful (like the buildfarm), reading the atimes on the entire Nix store takes way too much time to make it practical.
2009-11-06* Remove support for old (before Nix 0.12pre12020) databases.Eelco Dolstra
2009-10-08Added optional parameter which adds -lnsl -lsocket to make the Nix package ↵Sander van der Burg
manager work on OpenSolaris
2009-03-26* Don't use ULLONG_MAX in maxFreed - use 0 to mean "no limit".Eelco Dolstra
18446744073709551615ULL breaks on GCC 3.3.6 (`integer constant is too large for "long" type').
2009-03-22* Better error message when nix-store --import is applied to garbageEelco Dolstra
(previously it would likely say "implementation cannot deal with > 32-bit integers").
2009-03-22* NAR archives: handle files larger than 2^32 bytes. Previously itEelco Dolstra
would just silently store only (fileSize % 2^32) bytes. * Use posix_fallocate if available when unpacking archives. * Provide a better error message when trying to unpack something that isn't a NAR archive.
2008-12-12* Simplify deleting .lock files in /nix/store: just don't delete themEelco Dolstra
if they belong a path that's currently being built. This gets rid of some Cygwin-specific code.
2008-12-03* Pass HashType values instead of strings.Eelco Dolstra
2008-12-03* Unify the treatment of sources copied to the store, and recursiveEelco Dolstra
SHA-256 outputs of fixed-output derivations. I.e. they now produce the same store path: $ nix-store --add x /nix/store/j2fq9qxvvxgqymvpszhs773ncci45xsj-x $ nix-store --add-fixed --recursive sha256 x /nix/store/j2fq9qxvvxgqymvpszhs773ncci45xsj-x the latter being the same as the path that a derivation derivation { name = "x"; outputHashAlgo = "sha256"; outputHashMode = "recursive"; outputHash = "..."; ... }; produces. This does change the output path for such fixed-output derivations. Fortunately they are quite rare. The most common use is fetchsvn calls with SHA-256 hashes. (There are a handful of those is Nixpkgs, mostly unstable development packages.) * Documented the computation of store paths (in store-api.cc).
2008-11-19* nix-store --dump-db: be more streamy.Eelco Dolstra
2008-11-11* Typo.Eelco Dolstra
2008-09-17* GC option `--max-atime' that specifies an upper limit to the lastEelco Dolstra
accessed time of paths that may be deleted. Anything more recently used won't be deleted. The time is specified in time_t, e.g. seconds since 1970-01-01 00:00:00 UTC; use `date +%s' to convert to time_t from the command line. Example: to delete everything that hasn't been used in the last two months: $ nix-store --gc -v --max-atime $(date +%s -d "2 months ago")
2008-09-17* nix-store --gc / --delete: show how many store paths were deleted.Eelco Dolstra
2008-09-17* Garbage collector: added an option `--use-atime' to delete paths inEelco Dolstra
order of ascending last access time. This is useful in conjunction with --max-freed or --max-links to prefer deleting non-recently used garbage, which is good (especially in the build farm) since garbage may become live again. The code could easily be modified to accept other criteria for ordering garbage by changing the comparison operator used by the priority queue in collectGarbage().
2008-08-04* `nix-store --realise': print what paths will be built/downloaded,Eelco Dolstra
just like nix-env. * `nix-store --realise': --dry-run option.
2008-06-18* Garbage collector: option `--max-freed' to stop after at least NEelco Dolstra
bytes have been freed, `--max-links' to stop when the Nix store directory has fewer than N hard links (the latter being important for very large Nix stores on filesystems with a 32000 subdirectories limit).
2008-06-18* Some refactoring: put the GC options / results in separate structs.Eelco Dolstra
* The garbage collector now also prints the number of blocks freed.
2008-06-09* Merged the no-bdb branch (-r10900:HEADEelco Dolstra
https://svn.nixos.org/repos/nix/nix/branches/no-bdb).
2008-01-29* nix-store --dump-db / --load-db to dump/load the Nix DB.Eelco Dolstra
* nix-store --register-validity: option to supply the content hash of each path. * Removed compatibility with Nix <= 0.7 stores.
2007-12-10corrected --help message for nix-store a bitMichael Raskin
2007-11-29* nix-env -e: support uninstalling by path, so that one can sayEelco Dolstra
$ nix-env -e $(which firefox) or $ nix-env -e /nix/store/nywzlygrkfcgz7dfmhm5xixlx1l0m60v-pan-0.132 * nix-env -i: if an argument contains a slash anywhere, treat it as a path and follow it through symlinks into the Nix store. This allows things like $ nix-build -A firefox $ nix-env -i ./result * nix-env -q/-i/-e: don't complain when the `*' selector doesn't match anything. In particular, `nix-env -q \*' doesn't fail anymore on an empty profile.
2007-11-16* nix-store --import: add a flag --require-signature.Eelco Dolstra