store: Remove 'register-path'.
* guix/store.scm (register-path): Remove. * guix/nar.scm: Use (guix store database). * guix/scripts/system.scm: Likewise. * tests/store-database.scm: Remove #:hide (register-path). * tests/store.scm ("register-path"): Remove.
This commit is contained in:
parent
eb9fe97495
commit
df2f6400b1
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -23,6 +23,7 @@
|
||||||
#:use-module ((guix build utils)
|
#:use-module ((guix build utils)
|
||||||
#:select (delete-file-recursively with-directory-excursion))
|
#:select (delete-file-recursively with-directory-excursion))
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
|
#:use-module (guix store database)
|
||||||
#:use-module (guix ui) ; for '_'
|
#:use-module (guix ui) ; for '_'
|
||||||
#:use-module (guix hash)
|
#:use-module (guix hash)
|
||||||
#:use-module (guix pki)
|
#:use-module (guix pki)
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#:use-module (guix config)
|
#:use-module (guix config)
|
||||||
#:use-module (guix ui)
|
#:use-module (guix ui)
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
|
#:autoload (guix store database) (register-path)
|
||||||
#:use-module (guix grafts)
|
#:use-module (guix grafts)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix derivations)
|
#:use-module (guix derivations)
|
||||||
|
|
|
@ -122,8 +122,6 @@
|
||||||
|
|
||||||
current-build-output-port
|
current-build-output-port
|
||||||
|
|
||||||
register-path
|
|
||||||
|
|
||||||
%store-monad
|
%store-monad
|
||||||
store-bind
|
store-bind
|
||||||
store-return
|
store-return
|
||||||
|
@ -1301,33 +1299,6 @@ The result is always the empty list unless the daemon was started with
|
||||||
This makes sense only when the daemon was started with '--cache-failures'."
|
This makes sense only when the daemon was started with '--cache-failures'."
|
||||||
boolean)
|
boolean)
|
||||||
|
|
||||||
(define* (register-path path
|
|
||||||
#:key (references '()) deriver prefix
|
|
||||||
state-directory)
|
|
||||||
"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
|
|
||||||
not #f, it must be the name of the directory containing the new store to
|
|
||||||
initialize; if STATE-DIRECTORY is not #f, it must be a string containing the
|
|
||||||
absolute file name to the state directory of the store being initialized.
|
|
||||||
Return #t on success.
|
|
||||||
|
|
||||||
Use with care as it directly modifies the store! This is primarily meant to
|
|
||||||
be used internally by the daemon's build hook."
|
|
||||||
;; Currently this is implemented by calling out to the fine C++ blob.
|
|
||||||
(let ((pipe (apply open-pipe* OPEN_WRITE %guix-register-program
|
|
||||||
`(,@(if prefix
|
|
||||||
`("--prefix" ,prefix)
|
|
||||||
'())
|
|
||||||
,@(if state-directory
|
|
||||||
`("--state-directory" ,state-directory)
|
|
||||||
'())))))
|
|
||||||
(and pipe
|
|
||||||
(begin
|
|
||||||
(format pipe "~a~%~a~%~a~%"
|
|
||||||
path (or deriver "") (length references))
|
|
||||||
(for-each (cut format pipe "~a~%" <>) references)
|
|
||||||
(zero? (close-pipe pipe))))))
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Store monad.
|
;;; Store monad.
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
(define-module (test-store-database)
|
(define-module (test-store-database)
|
||||||
#:use-module (guix tests)
|
#:use-module (guix tests)
|
||||||
#:use-module ((guix store) #:hide (register-path))
|
#:use-module (guix store)
|
||||||
#:use-module (guix store database)
|
#:use-module (guix store database)
|
||||||
#:use-module ((guix utils) #:select (call-with-temporary-output-file))
|
#:use-module ((guix utils) #:select (call-with-temporary-output-file))
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -777,26 +777,6 @@
|
||||||
(pk 'corrupt-imported imported)
|
(pk 'corrupt-imported imported)
|
||||||
#f)))))
|
#f)))))
|
||||||
|
|
||||||
(test-assert "register-path"
|
|
||||||
(let ((file (string-append (%store-prefix) "/" (make-string 32 #\f)
|
|
||||||
"-fake")))
|
|
||||||
(when (valid-path? %store file)
|
|
||||||
(delete-paths %store (list file)))
|
|
||||||
(false-if-exception (delete-file file))
|
|
||||||
|
|
||||||
(let ((ref (add-text-to-store %store "ref-of-fake" (random-text)))
|
|
||||||
(drv (string-append file ".drv")))
|
|
||||||
(call-with-output-file file
|
|
||||||
(cut display "This is a fake store item.\n" <>))
|
|
||||||
(register-path file
|
|
||||||
#:references (list ref)
|
|
||||||
#:deriver drv)
|
|
||||||
|
|
||||||
(and (valid-path? %store file)
|
|
||||||
(equal? (references %store file) (list ref))
|
|
||||||
(null? (valid-derivers %store file))
|
|
||||||
(null? (referrers %store file))))))
|
|
||||||
|
|
||||||
(test-assert "verify-store"
|
(test-assert "verify-store"
|
||||||
(let* ((text (random-text))
|
(let* ((text (random-text))
|
||||||
(file1 (add-text-to-store %store "foo" text))
|
(file1 (add-text-to-store %store "foo" text))
|
||||||
|
|
Loading…
Reference in New Issue