Subject: [PATCH 00/19] Use (guix store database) instead of 'guix-register'
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Cc: Ludovic Courtès <[email-masked]>
Date: Fri, 8 Jun 2018 11:30:42 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Guix!

This not-so-interesting patch series refactors a whole bunch of things so
that, in the end, we can use the “new” (guix store database) instead of the
C++ ‘guix-register’.  It turned out to be more involved that I thought.  :-)

A practical consequence of this is that guile-sqlite3 becomes a requirement.
It would be nice if someone (maybe Danny?) could take care of tagging
guile-sqlite3 and making releases as needed.

I think the only new feature is that we can now populate the database in
a deterministic fashion by setting the registration data (see one of the
last patches.)  Regardless, I think it’s a step in the right direction.

Comments?

Ludo’.

Ludovic Courtès (19):
  database: 'with-database' can now initialize new databases.
  database: Fail registration when encountering unregistered references.
  store-copy: 'read-reference-graph' returns a list of records.
  build: Require Guile-SQLite3.
  database: Provide a way to specify the schema location.
  database: 'register-path' creates the database directory if needed.
  deduplicate: Fix a couple of thinkos.
  database: Remove extra SQL parameter in 'update-or-insert'.
  database: Add #:reset-timestamps? to 'register-path'.
  database: Replace existing entries in Refs.
  database: 'reset-timestamps' sets file permissions as well.
  vm: 'expression->derivation-in-linux-vm' code can now use dlopen.
  install: Use (guix store database) instead of 'guix-register'.
  database: 'sqlite-register' takes a database, not a file name.
  database: Add 'register-items'.
  install: Use 'reset-timestamps' from (guix store database).
  database: Allow for deterministic database construction.
  store: Remove 'register-path'.
  Remove 'guix-register' and its traces.

 .gitignore                              |   1 -
 Makefile.am                             |  24 +-
 README                                  |   3 +-
 build-aux/pre-inst-env.in               |   6 +-
 configure.ac                            |   5 +-
 doc/guix.texi                           |   3 +
 gnu/build/install.scm                   |  59 ++--
 gnu/build/vm.scm                        |   6 +-
 gnu/packages/package-management.scm     |  40 +--
 gnu/services/base.scm                   |   5 +-
 gnu/system/file-systems.scm             |  11 +-
 gnu/system/vm.scm                       | 414 +++++++++++++-----------
 guix/build/store-copy.scm               | 121 ++++++-
 guix/config.scm.in                      |  12 +-
 guix/nar.scm                            |   3 +-
 guix/scripts/pack.scm                   | 219 +++++++------
 guix/scripts/system.scm                 |   3 +-
 guix/self.scm                           |  25 +-
 guix/store.scm                          |  29 --
 guix/store/database.scm                 | 235 +++++++++-----
 guix/store/deduplication.scm            |  13 +-
 {nix/libstore => guix/store}/schema.sql |   0
 nix/guix-register/guix-register.cc      | 254 ---------------
 nix/local.mk                            |  18 +-
 tests/gexp.scm                          |  17 +-
 tests/guix-register.sh                  | 191 -----------
 tests/store-database.scm                |  45 ++-
 tests/store-deduplication.scm           |   9 +-
 tests/store.scm                         |  22 +-
 29 files changed, 739 insertions(+), 1054 deletions(-)
 rename {nix/libstore => guix/store}/schema.sql (100%)
 delete mode 100644 nix/guix-register/guix-register.cc
 delete mode 100644 tests/guix-register.sh

-- 
2.17.1