summaryrefslogtreecommitdiff
path: root/guix/store
AgeCommit message (Collapse)Author
2018-06-14database: 'sqlite-register' takes a database, not a file name.Ludovic Courtès
* guix/store/database.scm (sqlite-register): Remove #:db-file and add 'db' parameter. Remove #:schema and 'parameterize'. (register-path): Wrap 'sqlite-register' call in 'with-database' and in 'parameterize'. * tests/store-database.scm ("new database") ("register-path with unregistered references"): Adjust accordingly.
2018-06-14database: 'reset-timestamps' sets file permissions as well.Ludovic Courtès
* guix/store/database.scm (reset-timestamps): Add 'chmod' calls.
2018-06-14database: Replace existing entries in Refs.Ludovic Courtès
* guix/store/database.scm (add-reference-sql): Add "OR REPLACE".
2018-06-14database: Add #:reset-timestamps? to 'register-path'.Ludovic Courtès
* guix/store/database.scm (register-path): Add #:reset-timestamps? and honor it.
2018-06-14database: Remove extra SQL parameter in 'update-or-insert'.Ludovic Courtès
* guix/store/database.scm (update-or-insert): Remove extra #:path parameter.
2018-06-14deduplicate: Fix a couple of thinkos.Ludovic Courtès
* guix/store/deduplication.scm (get-temp-link): Turn 'args' in the 'catch' handler into a rest argument. (deduplicate): Use 'lstat' instead of 'file-is-directory?' to properly handle symlinks. When iterating over the result of 'scandir', exclude the ".links" sub-directory. * tests/store-deduplication.scm ("deduplicate"): Create sub-directories and call 'deduplicate' directly on STORE.
2018-06-14database: 'register-path' creates the database directory if needed.Ludovic Courtès
* guix/store/database.scm (register-path): Call 'mkdir-p'.
2018-06-14database: Provide a way to specify the schema location.Ludovic Courtès
* guix/store/database.scm (sqlite-register): Add #:schema. Parameterize 'sql-schema' based on this. (register-path): Add #:schema and pass it to 'sqlite-register'.
2018-06-14database: Fail registration when encountering unregistered references.Ludovic Courtès
* guix/store/database.scm (add-reference-sql): Remove nested SELECT. (add-references): Expect REFERENCES to be a list of ids. (sqlite-register): Call 'path-id' for each of REFERENCES and pass it to 'add-references'. * tests/store-database.scm ("register-path with unregistered references"): New test.
2018-06-14database: 'with-database' can now initialize new databases.Ludovic Courtès
* nix/libstore/schema.sql: Rename to... * guix/store/schema.sql: ... this. * Makefile.am (nobase_dist_guilemodule_DATA): Add it. * nix/local.mk (%D%/libstore/schema.sql.hh): Adjust accordingly. * guix/store/database.scm (sql-schema): New variable. (sqlite-exec, initialize-database, call-with-database): New procedures. (with-database): Rewrite in terms of 'call-with-database'. * tests/store-database.scm ("new database"): New test. * guix/self.scm (compiled-guix)[*core-modules*]: Add 'schema.sql' to #:extra-files.
2018-06-01Add (guix store deduplication).Caleb Ristvedt
* guix/store/database.scm (register-path): Add #:deduplicate? and call 'deduplicate' when it's true. (counting-wrapper-port, nar-sha256): Move to... * guix/store/deduplication.scm: ... here. New file. * tests/store-deduplication.scm: New file. * Makefile.am (STORE_MODULES): Add deduplication.scm. (SCM_TESTS) [HAVE_GUILE_SQLITE3]: Add store-deduplication.scm. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2018-06-01database: 'register-path' resets timestamps.Ludovic Courtès
* guix/store/database.scm (reset-timestamps): New procedure. (register-path): Use it.
2018-06-01Add (gnu store database).Caleb Ristvedt
* guix/config.scm.in (%store-database-directory): New variable. * guix/store/database.scm: New file. * tests/store-database.scm: New file. * Makefile.am (STORE_MODULES): New variable. (MODULES, MODULES_NOT_COMPILED): Adjust accordingly. (SCM_TESTS) [HAVE_GUILE_SQLITE3]: Add tests/store-database.scm. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2017-04-21store: Support 'ssh://' URIs in 'GUIX_DAEMON_SOCKET'.Ludovic Courtès
This allows 'guix' commands to talk to a remote store over SSH. * guix/store.scm (connect-to-daemon)[connect]: Call 'resolve-interface' for unknown URI schemes. * guix/store/ssh.scm: New file. * Makefile.am (MODULES): Add it. * doc/guix.texi (The Store): Document it. Mark remote access as experimental.