Subject: [bug#31755] [PATCH 18/19] store: Remove 'register-path'.

From: Ludovic Courtès <[email-masked]>
Date: Fri, 8 Jun 2018 11:34:50 +0200

* 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.
---
 guix/nar.scm             |  3 ++-
 guix/scripts/system.scm  |  1 +
 guix/store.scm           | 29 -----------------------------
 tests/store-database.scm |  2 +-
 tests/store.scm          | 22 +---------------------
 5 files changed, 5 insertions(+), 52 deletions(-)

diff --git a/guix/nar.scm b/guix/nar.scm
index 9b4c60823..3556de137 100644
--- a/guix/nar.scm
+++ b/guix/nar.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <[email-masked]>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2014 Mark H Weaver <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -23,6 +23,7 @@
   #:use-module ((guix build utils)
                 #:select (delete-file-recursively with-directory-excursion))
   #:use-module (guix store)
+  #:use-module (guix store database)
   #:use-module (guix ui)                          ; for '_'
   #:use-module (guix hash)
   #:use-module (guix pki)
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 766cab1aa..23c45cc5a 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -23,6 +23,7 @@
   #:use-module (guix config)
   #:use-module (guix ui)
   #:use-module (guix store)
+  #:autoload   (guix store database) (register-path)
   #:use-module (guix grafts)
   #:use-module (guix gexp)
   #:use-module (guix derivations)
diff --git a/guix/store.scm b/guix/store.scm
index 6742611c6..773d53e82 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -122,8 +122,6 @@
 
             current-build-output-port
 
-            register-path
-
             %store-monad
             store-bind
             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'."
   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.
diff --git a/tests/store-database.scm b/tests/store-database.scm
index 22c356679..fcae66e2d 100644
--- a/tests/store-database.scm
+++ b/tests/store-database.scm
@@ -18,7 +18,7 @@
 
 (define-module (test-store-database)
   #:use-module (guix tests)
-  #:use-module ((guix store) #:hide (register-path))
+  #:use-module (guix store)
   #:use-module (guix store database)
   #:use-module ((guix utils) #:select (call-with-temporary-output-file))
   #:use-module (srfi srfi-26)
diff --git a/tests/store.scm b/tests/store.scm
index fdf3be33f..afecec940 100644
--- a/tests/store.scm
+++ b/tests/store.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <[email-masked]>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -777,26 +777,6 @@
              (pk 'corrupt-imported imported)
              #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"
   (let* ((text  (random-text))
          (file1 (add-text-to-store %store "foo" text))
-- 
2.17.1