#pragma once #include "sqlite.hh" #include #include #include "pathlocks.hh" #include "store-api.hh" #include "util.hh" namespace nix { /* Nix store and database schema version. Version 1 (or 0) was Nix <= 0.7. Version 2 was Nix 0.8 and 0.9. Version 3 is Nix 0.10. Version 4 is Nix 0.11. Version 5 is Nix 0.12-0.16. Version 6 is Nix 1.0. Version 7 is Nix 1.3. Guix has always used version 7. */ const int nixSchemaVersion = 7; extern string drvsLogDir; struct Derivation; struct OptimiseStats { unsigned long filesLinked; unsigned long long bytesFreed; unsigned long long blocksFreed; OptimiseStats() { filesLinked = 0; bytesFreed = blocksFreed = 0; } }; class LocalStore : public StoreAPI { private: /* The currently running substituter or empty. */ std::shared_ptr runningSubstituter; /* Ensure the substituter is running and return it. */ std::shared_ptr substituter(); Path linksDir; public:
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfesoj000 <fesoj000@gmail.com>2022-03-27 00:34:21 +0100
committerLudovic Courtès <ludo@gnu.org>2022-04-11 13:48:30 +0200
commit6d9cfb91aaeb8a2f3bb4db223c440a6cc396ea32 (patch)
treeb7bfc70d561f60083315548af8cc46f1c83127c5 /tests/go.scm
parent0f31129e4e9864938fadf7ac1b33290c377e579b (diff)
downloadguix-6d9cfb91aaeb8a2f3bb4db223c440a6cc396ea32.tar.gz
guix-6d9cfb91aaeb8a2f3bb4db223c440a6cc396ea32.zip
gnu: Add libnetfilter-cthelper
* gnu/packages/linux.scm (libnetfilter-cthelper): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'tests/go.scm')
0 files changed, 0 insertions, 0 deletions
nDB(bool create); void makeStoreWritable(); uint64_t queryValidPathId(const Path & path); uint64_t addValidPath(const ValidPathInfo & info, bool checkOutputs = true); void addReference(uint64_t referrer, uint64_t reference); void appendReferrer(const Path & from, const Path & to, bool lock); void rewriteReferrers(const Path & path, bool purge, PathSet referrers); void invalidatePath(const Path & path); /* Delete a path from the Nix store. */ void invalidatePathChecked(const Path & path); void verifyPath(const Path & path, const PathSet & store, PathSet & done, PathSet & validPaths, bool repair, bool & errors); void updatePathInfo(const ValidPathInfo & info); struct GCState; void deleteGarbage(GCState & state, const Path & path); void tryToDelete(GCState & state, const Path & path); bool canReachRoot(GCState & state, PathSet & visited, const Path & path); void deletePathRecursive(GCState & state, const Path & path); bool isActiveTempFile(const GCState & state, const Path & path, const string & suffix); int openGCLock(LockType lockType); void removeUnusedLinks(const GCState & state); string getLineFromSubstituter(Agent & run); template T getIntLineFromSubstituter(Agent & run); Path createTempDirInStore(); Path importPath(bool requireSignature, Source & source); void checkDerivationOutputs(const Path & drvPath, const Derivation & drv); typedef std::unordered_set InodeHash; InodeHash loadInodeHash(); Strings readDirectoryIgnoringInodes(const Path & path, const InodeHash & inodeHash); void optimisePath_(OptimiseStats & stats, const Path & path, InodeHash & inodeHash); // Internal versions that are not wrapped in retry_sqlite. bool isValidPath_(const Path & path); void queryReferrers_(const Path & path, PathSet & referrers); }; typedef std::pair Inode; typedef set InodesSeen; /* "Fix", or canonicalise, the meta-data of the files in a store path after it has been built. In particular: - the last modification date on each file is set to 1 (i.e., 00:00:01 1/1/1970 UTC) - the permissions are set of 444 or 555 (i.e., read-only with or without execute permission; setuid bits etc. are cleared) - the owner and group are set to the Nix user and group, if we're running as root. */ void canonicalisePathMetaData(const Path & path, uid_t fromUid, InodesSeen & inodesSeen); void canonicalisePathMetaData(const Path & path, uid_t fromUid); void canonicaliseTimestampAndPermissions(const Path & path); MakeError(PathInUse, Error); }