about summary refs log tree commit diff
path: root/src/libstore/local-store.cc
AgeCommit message (Collapse)AuthorFilesLines
2007-02-21 * Check that the file containing the secret key is secret.Eelco Dolstra1-1/+14
2007-02-21 * importPath(): set the deriver.Eelco Dolstra1-3/+13
* exportPath(): lock the path, use a transaction.
2007-02-21 * `nix-store --import': import an archive created by `nix-storeEelco Dolstra1-4/+110
--export' into the Nix store, and optionally check the cryptographic signatures against /nix/etc/nix/signing-key.pub. (TODO: verify against a set of public keys.)
2007-02-21 * `nix-store --export --sign': sign the Nix archive using the RSA keyEelco Dolstra1-4/+58
in /nix/etc/nix/signing-key.sec
2007-02-20 * Start of `nix-store --export' operation for serialising a storeEelco Dolstra1-0/+18
path. This is like `nix-store --dump', only it also dumps the meta-information of the store path (references, deriver). Will add a `--sign' flag later to add a cryptographic signature, which we will use for exchanging store paths between build farm machines in a secure manner.
2007-02-06 * Fix 64-bit compiler warnings.Eelco Dolstra1-2/+2
2007-01-29 * computeStorePathForText: take the references into account whenEelco Dolstra1-1/+1
computing the store path (NIX-77). This is an important security property in multi-user Nix stores. Note that this changes the store paths of derivations (since the derivation aterms are added using addTextToStore), but not most outputs (unless they use builtins.toFile).
2007-01-14 * `nix-store --verify': revive checking the referrers table. This isEelco Dolstra1-42/+56
important to get garbage collection to work if there is any inconsistency in the database (because the referrer table is used to determine whether it is safe to delete a path). * `nix-store --verify': show some progress.
2007-01-14 * Make the garbage collector more resilient to certain consistencyEelco Dolstra1-1/+1
errors: in-use paths now cause a warning, not a fatal error.
2006-12-12 * New primop builtins.filterSource, which can be used to filter filesEelco Dolstra1-34/+8
from a source directory. All files for which a predicate function returns true are copied to the store. Typical example is to leave out the .svn directory: stdenv.mkDerivation { ... src = builtins.filterSource (path: baseNameOf (toString path) != ".svn") ./source-dir; # as opposed to # src = ./source-dir; } This is important because the .svn directory influences the hash in a rather unpredictable and variable way.
2006-12-09 * Use lchown() instead of chown() in canonicalisePathMetaData(). ThisEelco Dolstra1-8/+38
matters when running as root, since then we don't use the setuid helper (which already used lchown()). * Also check for an obscure security problem on platforms that don't have lchown. Then we can't change the ownership of symlinks, which doesn't matter *except* when the containing directory is writable by the owner (which is the case with the top-level Nix store directory).
2006-12-09 * Use deletePathWrapped() in more places.Eelco Dolstra1-14/+3
2006-12-07 * In the garbage collector, if deleting a path fails, try to fix itsEelco Dolstra1-1/+12
ownership, then try again.
2006-12-07 * When not running as root, call the setuid helper to change theEelco Dolstra1-6/+6
ownership of the build result after the build.
2006-12-05 * Allow unprivileged users to run the garbage collector and to doEelco Dolstra1-1/+0
`nix-store --delete'. But unprivileged users are not allowed to ignore liveness. * `nix-store --delete --ignore-liveness': ignore the runtime roots as well.
2006-12-03 * Removed `build-allow-root'.Eelco Dolstra1-3/+3
* Added `build-users-group', the group under which builds are to be performed. * Check that /nix/store has 1775 permission and is owner by the build-users-group.
2006-12-02 * Remove SwitchToOriginalUser, we're not going to need it anymore.Eelco Dolstra1-4/+1
2006-12-01 * Merge addToStore and addToStoreFixed.Eelco Dolstra1-19/+7
* addToStore now adds unconditionally, it doesn't use readOnlyMode. Read-only operation is up to the caller (who can call computeStorePathForPath).
2006-12-01 * More operations.Eelco Dolstra1-26/+5
* addToStore() and friends: don't do a round-trip to the worker if we're only interested in the path (i.e., in read-only mode).
2006-11-30 * More remote operations.Eelco Dolstra1-4/+4
* Added new operation hasSubstitutes(), which is more efficient than querySubstitutes().size() > 0.
2006-11-30 * Skeleton of the privileged worker program.Eelco Dolstra1-2/+2
* Some refactoring: put the NAR archive integer/string serialisation code in a separate file so it can be reused by the worker protocol implementation.
2006-11-30 * Skeleton of remote store implementation.Eelco Dolstra1-0/+1
2006-11-30 * Refactoring. There is now an abstract interface class StoreAPIEelco Dolstra1-0/+1037
containing functions that operate on the Nix store. One implementation is LocalStore, which operates on the Nix store directly. The next step, to enable secure multi-user Nix, is to create a different implementation RemoteStore that talks to a privileged daemon process that uses LocalStore to perform the actual operations.