Subject: [PATCH 0/8] Sharing service code between Home and System
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Cc: Ludovic Courtès <[email-masked]>
Date: Sun, 6 Aug 2023 23:04:54 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Guix!

Some services make as much sense as a System and as a Home service.
Two examples that came up recently are Syncthing and dicod:

  https://issues.guix.gnu.org/63758
  https://issues.guix.gnu.org/62401

In these cases, we’d rather avoid code duplication and have a common
code base for both the System and the Home service.

This patch lets us map System services to Home and uses the new
mechanism for three services: mcron, dicod, and syncthing.

Feedback welcome!

Ludo’.

Ludovic Courtès (8):
  services: dicod: Remove Shepherd < 0.9.0 compatibility layer.
  services: dicod: Pre-build the GCIDE index.
  services: syncthing: Use 'match-record'.
  services: Define 'for-home'.
  home: services: Support mapping of System services to Home services.
  home: services: mcron: Define as a mapping of the system service.
  home: services: Add dicod.
  home: services: Add Syncthing.

 doc/guix.texi                   | 96 ++++++++++++++++++++++++++++++++-
 gnu/home/services.scm           | 69 +++++++++++++++++++++++-
 gnu/home/services/dict.scm      | 32 +++++++++++
 gnu/home/services/mcron.scm     | 96 ++++-----------------------------
 gnu/home/services/shepherd.scm  |  4 +-
 gnu/home/services/syncthing.scm | 30 +++++++++++
 gnu/local.mk                    |  2 +
 gnu/services.scm                | 25 ++++++++-
 gnu/services/dict.scm           | 84 ++++++++++++++---------------
 gnu/services/mcron.scm          | 80 ++++++++++++---------------
 gnu/services/syncthing.scm      | 56 ++++++++++---------
 11 files changed, 372 insertions(+), 202 deletions(-)
 create mode 100644 gnu/home/services/dict.scm
 create mode 100644 gnu/home/services/syncthing.scm

base-commit: 0ab46ef3f9719f03d9b191a16e5aa91619e95451
-- 
2.41.0