GNU logs - #73967, boring messages


Message sent to ludo@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#73967] [PATCH] gnu: services: Add xandikos-service-type.
Resent-From: Wilko Meyer <w@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: ludo@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN
Resent-Date: Wed, 23 Oct 2024 15:11:02 +0000
Resent-Message-ID: <handler.73967.B.17296962061294 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 73967
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 73967 <at> debbugs.gnu.org
Cc: Wilko Meyer <w@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
X-Debbugs-Original-To: guix-patches@HIDDEN
X-Debbugs-Original-Xcc: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.17296962061294
          (code B ref -1); Wed, 23 Oct 2024 15:11:02 +0000
Received: (at submit) by debbugs.gnu.org; 23 Oct 2024 15:10:06 +0000
Received: from localhost ([127.0.0.1]:60405 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1t3czt-0000Kg-9L
	for submit <at> debbugs.gnu.org; Wed, 23 Oct 2024 11:10:06 -0400
Received: from lists.gnu.org ([209.51.188.17]:43816)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <w@HIDDEN>) id 1t3czo-0000K9-Os
 for submit <at> debbugs.gnu.org; Wed, 23 Oct 2024 11:10:03 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <w@HIDDEN>) id 1t3czD-0006tE-Md
 for guix-patches@HIDDEN; Wed, 23 Oct 2024 11:09:25 -0400
Received: from mail.wmeyer.eu ([95.216.196.112])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <w@HIDDEN>) id 1t3cz8-0002cK-UE
 for guix-patches@HIDDEN; Wed, 23 Oct 2024 11:09:21 -0400
From: Wilko Meyer <w@HIDDEN>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wmeyer.eu; s=mail;
 t=1729696150; bh=4Eoj3vka6nzPtp+4nWhS7hEq4jiOucGyMIwSQHQYwho=;
 h=From:To:Cc:Subject:Date;
 b=mNQczn6z1P7ZdTdj0GNddVmEyPow64vatxHaeGcq3KwMbMVBDuj0c+KUVVGqJMnyl
 pg9rLzI/RpuESC6e3F0bIy0/whKK8RC/zoRte6NazWkbLBD7eUYTEv3GJaQsGb1L6I
 minLPHw36BCPtV+Yw+zDYdkuKyY1pqueJ9ET7xl4=
Date: Wed, 23 Oct 2024 17:02:57 +0200
Message-ID: <7838fd665abc5fd0812ac1cb5f632cec24073d41.1729695775.git.w@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=95.216.196.112; envelope-from=w@HIDDEN;
 helo=mail.wmeyer.eu
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

* gnu/services/dav.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add file.
* doc/guix.texi (DAV Services): Document the service.

Change-Id: I5345efd579f9e527eb8798397b52bf1b9b4cab56
---
Hi Guix,

I noticed that we already had a xandikos[0] package in Guix, but not a
corresponding service, so I decided to create one.

I took the liberty to add gnu/services/dav.scm as well as a DAV
Services section in our documentation. We do have another
CardDAV/CalDAV server available in guix, radicale, which currently
resides in (gnu services mail) and should probably be moved into (gnu
services dav) as well in the near future?

Kind regards,

Wilko

[0]: https://www.xandikos.org/

 doc/guix.texi        |  56 ++++++++++++++++++++++++
 gnu/local.mk         |   2 +
 gnu/services/dav.scm | 101 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 159 insertions(+)
 create mode 100644 gnu/services/dav.scm

diff --git a/doc/guix.texi b/doc/guix.texi
index ac3a7adef0..c423329dbf 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -132,6 +132,7 @@
 Copyright @copyright{} 2024 Fabio Natali@*
 Copyright @copyright{} 2024 Arnaud Daby-Seesaram@*
 Copyright @copyright{} 2024 Nigko Yerden@*
+Copyright @copyright{} 2024 Wilko Meyer@*
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -413,6 +414,7 @@ Top
 * DNS Services::                DNS daemons.
 * VNC Services::                VNC daemons.
 * VPN Services::                VPN daemons.
+* DAV Services::                DAV daemons.
 * Network File System::         NFS related services.
 * Samba Services::              Samba services.
 * Continuous Integration::      Cuirass and Laminar services.
@@ -19045,6 +19047,7 @@ Services
 * DNS Services::                DNS daemons.
 * VNC Services::                VNC daemons.
 * VPN Services::                VPN daemons.
+* DAV Services::                DAV daemons.
 * Network File System::         NFS related services.
 * Samba Services::              Samba services.
 * Continuous Integration::      Cuirass and Laminar services.
@@ -34511,6 +34514,59 @@ VPN Services
 @end table
 @end deftp
 
+@node DAV Services
+@subsection DAV Services
+
+@defvar xandikos-service-type
+This service starts @code{xandikos}, a a lightweight CardDAV/CalDAV
+server that backs onto a Git repository.
+
+The service's value is a @code{xandikos-configuration} record.
+@end defvar
+
+@deftp {Data Type} xandikos-configuration
+This is the data type representing the configuration for the
+xandikos-shepherd-service.
+
+It has the following parameters:
+
+@table @asis
+@item @code{package} (default: @code{xandikos})
+The @code{xandikos} package to use.
+
+@item @code{directory} (default: @code{"/var/xandikos/dav"})
+Directory to serve from.
+
+@item @code{listen-address} (default: @code{127.0.0.1})
+The address @code{xandikos} listens on.
+
+@item @code{port} (default: @code{8080})
+The port to run @code{xandikos} on.
+
+@item @code{current-user-principal} (default: @code{"/user/"})
+Path to current user principal.
+
+@item @code{route-prefix} (default: @code{"/"})
+Path to @code{xandikos} (useful when Xandikos is behind a reverse proxy).
+
+@item @code{defaults?} (default: @code{#t})
+Create initial calendar and address book. Implies --autocreate.
+
+@item @code{dump?} (default: @code{#f})
+Print DAV XML request/responses.
+
+@item @code{avahi?} (default: @code{#f})
+Announce services with avahi.
+
+@item @code{autocreate?} (default: @code{#f})
+Automatically create necessary directories.
+
+@item @code{no-strict?} (default: @code{#f})
+Enable workarounds for buggy CalDAV/CardDAV client implementations.
+@end table
+@end deftp
+
+
 @node Network File System
 @subsection Network File System
 @cindex NFS
diff --git a/gnu/local.mk b/gnu/local.mk
index 89a795bfbd..806e4a9a41 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -67,6 +67,7 @@
 # Copyright © 2024 David Elsing <david.elsing@HIDDEN>
 # Copyright © 2024 Ashish SHUKLA <ashish.is@HIDDEN>
 # Copyright © 2024 Fabio Natali <me@HIDDEN>
+# Copyright © 2024 Wilko Meyer <w@HIDDEN>
 #
 # This file is part of GNU Guix.
 #
@@ -716,6 +717,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/services/cuirass.scm			\
   %D%/services/cups.scm				\
   %D%/services/databases.scm			\
+  %D%/services/dav.scm				\
   %D%/services/dbus.scm				\
   %D%/services/desktop.scm			\
   %D%/services/dict.scm				\
diff --git a/gnu/services/dav.scm b/gnu/services/dav.scm
new file mode 100644
index 0000000000..ae6c2ce969
--- /dev/null
+++ b/gnu/services/dav.scm
@@ -0,0 +1,101 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Wilko Meyer <w@HIDDEN>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu services dav)
+  #:use-module (gnu services)
+  #:use-module (gnu services shepherd)
+  #:use-module (gnu services configuration)
+  #:use-module (gnu packages dav)
+  #:use-module (guix deprecation)
+  #:use-module (guix gexp)
+  #:use-module (guix records)
+  #:use-module (ice-9 match)
+  #:export (xandikos-configuration
+            xandikos-configuration?
+            xandikos-service-type))
+
+;;;
+;;; Xandikos
+;;;
+
+(define-configuration/no-serialization xandikos-configuration
+  (package
+    (file-like xandikos)
+    "Xandikos package to use.")
+  (directory
+   (string "/var/xandikos/dav")
+   "Directory to serve from.")
+  (listen-address
+   (string "127.0.0.1")
+   "The address Xandikos listens on.")
+  (port
+   (integer 8080)
+   "The port to run Xandikos on.")
+  (current-user-principal
+   (string "/user/")
+   "Path to current user principal.")
+  (route-prefix
+   (string "/")
+   "Path to Xandikos. (useful when Xandikos is behind a reverse proxy)")
+  (defaults?
+    (boolean #t)
+    "Create initial calendar and address book.")
+  (dump?
+   (boolean #f)
+   "Print DAV XML request/responses.")
+  (avahi?
+   (boolean #f)
+   "Announce services with avahi.")
+  (autocreate?
+   (boolean #f)
+   "Automatically create necessary directories.")
+  (no-strict?
+   (boolean #f)
+   "Enable workarounds for buggy CalDAV/CardDAV client implementations."))
+
+(define (xandikos-shepherd-service config)
+  (match-record config <xandikos-configuration>
+                (package directory listen-address port current-user-principal route-prefix defaults? dump? avahi? autocreate? no-strict?)
+    (list
+     (shepherd-service
+      (provision '(xandikos))
+      (documentation "Caldav/CardDAV server")
+      (requirement '(networking))
+      (start #~(make-forkexec-constructor
+                (list #$(file-append xandikos "/bin/xandikos")
+                      "--listen-address" #$listen-address
+                      "--port" #$(number->string port)
+                      "-d" #$directory
+                      "--route-prefix" #$route-prefix
+                      "--current-user-principal" #$current-user-principal
+                      #$@(if dump? '("--dump-dav-xml") '())
+                      #$@(if avahi? '("--avahi") '())
+                      #$@(if autocreate? '("--autocreate") '())
+                      #$@(if defaults? '("--defaults") '())
+                      #$@(if no-strict? '("--no-strict") '()))))
+      (stop #~(make-kill-destructor))
+      (respawn? #t)))))
+
+(define xandikos-service-type
+  (service-type
+   (name 'xandikos)
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             xandikos-shepherd-service)))
+   (default-value (xandikos-configuration))
+   (description "Service to run the @code{Xandikos} CalDAV/CardDAV server.")))

base-commit: 2b2b6a7675d43ff82487718c729cfaf5edf98c8d
-- 
2.46.0





Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Wilko Meyer <w@HIDDEN>
Subject: bug#73967: Acknowledgement ([PATCH] gnu: services: Add
 xandikos-service-type.)
Message-ID: <handler.73967.B.17296962061294.ack <at> debbugs.gnu.org>
References: <7838fd665abc5fd0812ac1cb5f632cec24073d41.1729695775.git.w@HIDDEN>
X-Gnu-PR-Message: ack 73967
X-Gnu-PR-Package: guix-patches
X-Gnu-PR-Keywords: patch
Reply-To: 73967 <at> debbugs.gnu.org
Date: Wed, 23 Oct 2024 15:11:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

As you requested using X-Debbugs-CC, your message was also forwarded to
  Ludovic Court=C3=A8s <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@gma=
il.com>
(after having been given a bug report number, if it did not have one).

Your message has been sent to the package maintainer(s):
 guix-patches@HIDDEN

If you wish to submit further information on this problem, please
send it to 73967 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
73967: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D73967
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems



Last modified: Sun, 12 Jan 2025 05:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.