Archived
1
0
Fork 0

database: Remove #:deduplicate? and #:reset-timestamps? from 'register-path'.

* guix/store/database.scm (register-path): Remove #:deduplicate?
and #:reset-timestamps?.
* guix/scripts/system.scm (copy-item): Adjust accordingly.
* tests/store-database.scm ("register-path")
("register-path, directory"): Call 'reset-timestamps'.
This commit is contained in:
Ludovic Courtès 2020-12-11 12:03:25 +01:00
parent cd6c5ddfc8
commit 0682cc5936
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 6 additions and 22 deletions

View file

@ -158,11 +158,7 @@ REFERENCES as its set of references."
(unless (register-path item (unless (register-path item
#:prefix target #:prefix target
#:state-directory state #:state-directory state
#:references references #:references references)
;; Those are taken care of by 'copy-store-item'.
#:reset-timestamps? #f
#:deduplicate? #f)
(leave (G_ "failed to register '~a' under '~a'~%") (leave (G_ "failed to register '~a' under '~a'~%")
item target)))) item target))))

View file

@ -384,16 +384,14 @@ is true."
(define* (register-path path (define* (register-path path
#:key (references '()) deriver prefix #:key (references '()) deriver prefix
state-directory (deduplicate? #t) state-directory
(reset-timestamps? #t)
(schema (sql-schema))) (schema (sql-schema)))
"Register PATH as a valid store file, with REFERENCES as its list of "Register PATH as a valid store file, with REFERENCES as its list of
references, and DERIVER as its deriver (.drv that led to it.) If PREFIX is references, and DERIVER as its deriver (.drv that led to it.) If PREFIX is
given, it must be the name of the directory containing the new store to given, it must be the name of the directory containing the new store to
initialize; if STATE-DIRECTORY is given, it must be a string containing the initialize; if STATE-DIRECTORY is given, it must be a string containing the
absolute file name to the state directory of the store being initialized. absolute file name to the state directory of the store being initialized.
Return #t on success. As a side effect, reset timestamps on PATH, unless Return #t on success.
RESET-TIMESTAMPS? is false.
Use with care as it directly modifies the store! This is primarily meant to Use with care as it directly modifies the store! This is primarily meant to
be used internally by the daemon's build hook. be used internally by the daemon's build hook.
@ -404,17 +402,6 @@ by adding it as a temp-root."
(store-database-file #:prefix prefix (store-database-file #:prefix prefix
#:state-directory state-directory)) #:state-directory state-directory))
(define real-file-name
(string-append (or prefix "") path))
(when deduplicate?
(deduplicate real-file-name (nar-sha256 real-file-name)
#:store (string-append (or prefix "")
%store-directory)))
(when reset-timestamps?
(reset-timestamps real-file-name))
(parameterize ((sql-schema schema)) (parameterize ((sql-schema schema))
(with-database db-file db (with-database db-file db
(register-items db (list (store-info path deriver references)) (register-items db (list (store-info path deriver references))

View file

@ -34,8 +34,7 @@
(test-begin "store-database") (test-begin "store-database")
(test-equal "register-path" (test-assert "register-path"
'(1 1)
(let ((file (string-append (%store-prefix) "/" (make-string 32 #\f) (let ((file (string-append (%store-prefix) "/" (make-string 32 #\f)
"-fake"))) "-fake")))
(when (valid-path? %store file) (when (valid-path? %store file)
@ -46,6 +45,7 @@
(drv (string-append file ".drv"))) (drv (string-append file ".drv")))
(call-with-output-file file (call-with-output-file file
(cut display "This is a fake store item.\n" <>)) (cut display "This is a fake store item.\n" <>))
(reset-timestamps file)
(register-path file (register-path file
#:references (list ref) #:references (list ref)
#:deriver drv) #:deriver drv)
@ -69,6 +69,7 @@
(mkdir-p (string-append file "/a")) (mkdir-p (string-append file "/a"))
(call-with-output-file (string-append file "/a/b") (call-with-output-file (string-append file "/a/b")
(const #t)) (const #t))
(reset-timestamps file)
(register-path file #:deriver drv) (register-path file #:deriver drv)
(and (valid-path? %store file) (and (valid-path? %store file)