Subject: bug#41806: rsync service broken (uid, "files" module)

From: Pierre Neidhardt <[email-masked]>
Date: Thu, 11 Jun 2020 16:57:53 +0200

A few things are not working with the Guix rsync service:

1. A "files" module is created by default:

--8<---------------cut here---------------start------------->8---
# Generated by 'rsync-service'.

pid file = /var/run/rsyncd/rsyncd.pid
lock file = /var/run/rsyncd/rsyncd.lock
log file = /var/log/rsyncd.log
port = 873
use chroot = true
uid = rsyncd
gid = rsyncd

[files]
path = /srv/rsyncd
comment = Rsync share
read only = false
timeout = 300
--8<---------------cut here---------------end--------------->8---

But rsync-configuration does not allow the user to specify another
module name, nor to add a module.  This is limiting.

Furthermore, the default module name is not documented, so one has to
guess that the client must invoke

--8<---------------cut here---------------start------------->8---
rsync ... $HOST/files ... # The "files" here matters!
--8<---------------cut here---------------end--------------->8---

2. The `uid' option does not work.  With the following configuration

--8<---------------cut here---------------start------------->8---
(service rsync-service-type
            (rsync-configuration
             (uid "ambrevar")
             (gid "users")
             (share-path "/whatever")
             (read-only? #t)))
--8<---------------cut here---------------end--------------->8---

I get this on guix reconfigure:

--8<---------------cut here---------------start------------->8---
building /gnu/store/lvkplmcxr785x56022hm8d88x0fbpd0m-switch-to-system.scm.drv...
making '/gnu/store/v01y64gg1wbvg5jk3xgsci04rgvfy6sv-system' the current system...
setting up setuid programs in '/run/setuid-programs'...
populating /etc from /gnu/store/5pwh48vkd4yhjc29iq6mxnh7jgd4nnmh-etc...
Backtrace:
           1 (primitive-load "/home/ambrevar/.config/guix/current/bin/guix")
In guix/ui.scm:
  1945:12  0 (run-guix-command _ . _)

guix/ui.scm:1945:12: In procedure run-guix-command:
In procedure getpw: entry not found
--8<---------------cut here---------------end--------------->8---

Cheers!

-- 
Pierre Neidhardt
https://ambrevar.xyz/