summary refs log tree commit diff
path: root/gnu/build
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-10-27 23:47:59 +0200
committerLudovic Courtès <ludo@gnu.org>2018-11-06 23:21:23 +0100
commitec4c81fe32a90890a6190443248078ce7366503f (patch)
tree8bf8b57a4199d5f3c92c4a05ffd4a4652b525c84 /gnu/build
parentc6b05bacc08dc423db74ae24d442fd43f1ba8893 (diff)
downloadguix-ec4c81fe32a90890a6190443248078ce7366503f.tar.gz
pack: Move store database creation to a separate derivation.
* guix/scripts/pack.scm (store-database): New procedure.
(self-contained-tarball): Use it when LOCALSTATEDIR? is true.
Remove 'schema' and add 'database'.
[build]: Pass DATABASE to 'populate-single-profile-directory'.
(squashfs-image): Remove #:deduplicate? parameter.
[build]: Remove (gnu build install) and (guix config) from the imported
modules.  Remove 'with-extensions'.
* gnu/build/install.scm (populate-single-profile-directory): Remove
 #:deduplicate?, #:register?, and #:schema; add #:database.  Remove call
to 'register-closure' and simply copy DATABASE instead.
Diffstat (limited to 'gnu/build')
-rw-r--r--gnu/build/install.scm17
1 files changed, 7 insertions, 10 deletions
diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index 98c547f2e4..9f9a6aba0f 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -161,14 +161,13 @@ deduplicates files common to CLOSURE and the rest of PREFIX."
 (define* (populate-single-profile-directory directory
                                             #:key profile closure
                                             (profile-name "guix-profile")
-                                            deduplicate?
-                                            register? schema)
+                                            database)
   "Populate DIRECTORY with a store containing PROFILE, whose closure is given
 in the file called CLOSURE (as generated by #:references-graphs.)  DIRECTORY
 is initialized to contain a single profile under /root pointing to PROFILE.
-When REGISTER? is true, initialize DIRECTORY/var/guix/db to reflect the
-contents of the store; DEDUPLICATE? determines whether to deduplicate files in
-the store.
+
+When DATABASE is true, copy it to DIRECTORY/var/guix/db and create
+DIRECTORY/var/guix/gcroots and friends.
 
 PROFILE-NAME is the name of the profile being created under
 /var/guix/profiles, typically either \"guix-profile\" or \"current-guix\".
@@ -189,11 +188,9 @@ This is used to create the self-contained tarballs with 'guix pack'."
   ;; Populate the store.
   (populate-store (list closure) directory)
 
-  (when register?
-    (register-closure (canonicalize-path directory) closure
-                      #:deduplicate? deduplicate?
-                      #:schema schema)
-
+  (when database
+    (install-file database (scope "/var/guix/db/"))
+    (chmod (scope "/var/guix/db/db.sqlite") #o644)
     (mkdir-p* "/var/guix/profiles")
     (mkdir-p* "/var/guix/gcroots")
     (symlink* "/var/guix/profiles"