aboutsummaryrefslogtreecommitdiff
path: root/gnu/system/linux-container.scm
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2023-07-30 16:43:05 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2023-07-30 19:42:15 +0200
commitd3b2d4143d7d487ae1db4cd93f533d68d3b846e1 (patch)
tree3f0bb43df86b739ec53b564b38d4d88bca54b9ae /gnu/system/linux-container.scm
parenta00b83b2f1c3d79a6f08b4bfce20f1d576b9c4e8 (diff)
downloadguix-d3b2d4143d7d487ae1db4cd93f533d68d3b846e1.tar.gz
guix-d3b2d4143d7d487ae1db4cd93f533d68d3b846e1.zip
gnu: Add texlive-qsharp.
* gnu/packages/tex.scm (texlive-qsharp): New variable.
Diffstat (limited to 'gnu/system/linux-container.scm')
0 files changed, 0 insertions, 0 deletions
egisterValidPath(const ValidPathInfo & info); void registerValidPaths(const ValidPathInfos & infos); /* Register that the build of a derivation with output `path' has failed. */ void registerFailedPath(const Path & path); /* Query whether `path' previously failed to build. */ bool hasPathFailed(const Path & path); PathSet queryFailedPaths(); void clearFailedPaths(const PathSet & paths); void vacuumDB(); /* Repair the contents of the given path by redownloading it using a substituter (if available). */ void repairPath(const Path & path); /* Check whether the given valid path exists and has the right contents. */ bool pathContentsGood(const Path & path); void markContentsGood(const Path & path); void createUser(const std::string & userName, uid_t userId); private: Path schemaPath; /* Lock file used for upgrading. */ AutoCloseFD globalLock; /* The SQLite database object. */ SQLite db; /* Some precompiled SQLite statements. */ SQLiteStmt stmtRegisterValidPath; SQLiteStmt stmtUpdatePathInfo; SQLiteStmt stmtAddReference; SQLiteStmt stmtQueryPathInfo; SQLiteStmt stmtQueryReferences; SQLiteStmt stmtQueryReferrers; SQLiteStmt stmtInvalidatePath; SQLiteStmt stmtRegisterFailedPath; SQLiteStmt stmtHasPathFailed; SQLiteStmt stmtQueryFailedPaths; SQLiteStmt stmtClearFailedPath; SQLiteStmt stmtAddDerivationOutput; SQLiteStmt stmtQueryValidDerivers; SQLiteStmt stmtQueryDerivationOutputs; SQLiteStmt stmtQueryPathFromHashPart; SQLiteStmt stmtQueryValidPaths; /* Cache for pathContentsGood(). */ std::map<Path, bool> pathContentsGoodCache; /* The file to which we write our temporary roots. */ Path fnTempRoots; AutoCloseFD fdTempRoots; int getSchema(); void openDB(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<class T> T getIntLineFromSubstituter(Agent & run); Path createTempDirInStore(); Path importPath(bool requireSignature, Source & source); void checkDerivationOutputs(const Path & drvPath, const Derivation & drv); typedef std::unordered_set<ino_t> 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<dev_t, ino_t> Inode; typedef set<Inode> 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); /* Size below which a file is not considered for deduplication. */ extern const size_t deduplicationMinSize; }