gnu: Remove unneeded uses of 'libiconv'.
[jackhill/guix/guix.git] / gnu / packages / dav.scm
CommitLineData
f75bbb02 1;;; GNU Guix --- Functional package management for GNU
945b6721 2;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
0c34b949 3;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
85eec227 4;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
f6ac084d 5;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
b2022a09 6;;; Copyright © 2021 Tanguy Le Carrour <tanguy@bioneland.org>
f75bbb02
LF
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages dav)
24 #:use-module (guix build-system python)
25 #:use-module (guix download)
26 #:use-module (guix licenses)
27 #:use-module (guix packages)
828658f8 28 #:use-module (guix git-download)
945b6721 29 #:use-module (gnu packages)
ac257f12 30 #:use-module (gnu packages check)
1b2f753d 31 #:use-module (gnu packages python)
828658f8
VM
32 #:use-module (gnu packages python-check)
33 #:use-module (gnu packages python-crypto)
44d10b1f 34 #:use-module (gnu packages python-web)
9d0c291e 35 #:use-module (gnu packages python-xyz)
f6ac084d 36 #:use-module (gnu packages sphinx)
828658f8 37 #:use-module (gnu packages time)
f6ac084d 38 #:use-module (gnu packages xml))
f75bbb02
LF
39
40(define-public radicale
41 (package
42 (name "radicale")
25aac383 43 (version "3.0.6")
828658f8
VM
44 (source
45 (origin
46 ;; There are no tests in the PyPI tarball.
47 (method git-fetch)
48 (uri (git-reference
49 (url "https://github.com/Kozea/Radicale")
50 (commit version)))
51 (file-name (git-file-name name version))
52 (sha256
25aac383 53 (base32 "1xlsvrmx6jhi71j6j8z9sli5vwxasivzjyqf8zq8r0l5p7350clf"))))
f75bbb02 54 (build-system python-build-system)
828658f8 55 (native-inputs
8394619b
LC
56 (list python-pytest
57 python-pytest-cov
58 python-pytest-flake8
59 python-pytest-isort
60 python-pytest-runner
61 python-waitress))
f75bbb02 62 (propagated-inputs
8394619b
LC
63 (list python-dateutil python-defusedxml python-passlib
64 python-vobject))
f75bbb02
LF
65 (synopsis "Basic CalDAV and CardDAV server")
66 (description "Radicale is a CalDAV and CardDAV server for UNIX-like
67platforms. Calendars and address books are available for both local and remote
68access, possibly limited through authentication policies. They can be viewed
69and edited by calendar and contact clients on mobile phones or computers.
70
71Radicale intentionally does not fully comply with the CalDAV and CardDAV RFCs.
72Instead, it supports the CalDAV and CardDAV implementations of popular
73clients.")
faa8dfd1 74 (home-page "https://radicale.org/")
f75bbb02 75 (license gpl3+)))
a2f6a3d5 76
f6ac084d
VM
77(define-public xandikos
78 (package
79 (name "xandikos")
80 (version "0.2.3")
81 (source
82 (origin
83 (method url-fetch)
84 (uri (pypi-uri "xandikos" version))
85 (sha256
86 (base32 "13ikmcja9p42azb5ccqj2bw98zybna6zlflj10hqy0kvbib70l94"))))
87 (build-system python-build-system)
88 (propagated-inputs
8394619b
LC
89 (list python-aiohttp
90 python-defusedxml
91 python-dulwich
92 python-icalendar
93 python-jinja2
94 python-multidict))
f6ac084d
VM
95 (home-page "https://www.xandikos.org/")
96 (synopsis "Lightweight CalDAV/CardDAV server")
97 (description
98 "Xandikos is a lightweight yet complete CardDAV/CalDAV server that backs
99onto a Git repository.
100
101Features:
102
103@itemize
104@item Easy to set up
105@item Share calendars (events, todo items, journal entries) via CalDAV and
106contacts (vCard) via CardDAV
107@item Automatically keep history and back up changes in Git
108@item Supports synchronization extensions for CalDAV/CardDAV for quick and
109efficient syncing
110@item Automatically keep history and back up
111@item Works with all tested CalDAV and CardDAV clients
112@end itemize")
113 (license gpl3+)))
114
a2f6a3d5
LF
115(define-public vdirsyncer
116 (package
117 (name "vdirsyncer")
85eec227 118 ;; When updating, check whether python-click-5 can be removed entirely.
b2022a09 119 (version "0.18.0")
a2f6a3d5
LF
120 (source (origin
121 (method url-fetch)
5f518cad 122 (uri (pypi-uri name version))
a2f6a3d5
LF
123 (sha256
124 (base32
b2022a09 125 "00f2bw1a2jbbd1sbci0swnd67kylr341aa9rpbxkajbp3zakxg17"))))
a2f6a3d5
LF
126 (build-system python-build-system)
127 (arguments
0c34b949
EF
128 `(#:tests? #f ; The test suite is very flakey.
129 #:phases (modify-phases %standard-phases
9af7469c 130 (replace 'check
0c34b949 131 (lambda* (#:key inputs outputs tests? #:allow-other-keys)
9af7469c
EF
132 (add-installed-pythonpath inputs outputs)
133 (setenv "DETERMINISTIC_TESTS" "true")
134 (setenv "DAV_SERVER" "radicale")
135 (setenv "REMOTESTORAGE_SERVER" "skip")
0c34b949
EF
136 (if tests?
137 (invoke "make" "test")
138 #t)))
dc118275
EF
139 (add-after 'unpack 'patch-version-call
140 (lambda _
141 (substitute* "docs/conf.py"
142 (("^release.*") (string-append "release = '" ,version "'\n")))
143 #t))
9af7469c
EF
144 (add-after 'install 'manpage
145 (lambda* (#:key inputs outputs #:allow-other-keys)
146 (invoke "make" "--directory=docs/" "man")
147 (install-file
148 "docs/_build/man/vdirsyncer.1"
149 (string-append
150 (assoc-ref outputs "out")
151 "/share/man/man1"))
152 #t)))))
a2f6a3d5 153 (native-inputs
8394619b
LC
154 (list python-setuptools-scm
155 python-sphinx
156 ;; Required for testing
157 python-hypothesis
158 python-pytest
159 python-pytest-localserver
160 python-pytest-subtesthack
161 python-urllib3
162 python-wsgi-intercept
163 radicale))
8ed5d950 164 (inputs
8394619b
LC
165 (list ;; XXX https://github.com/mitsuhiko/click/issues/200
166 python-click-5))
a2f6a3d5 167 (propagated-inputs
8394619b
LC
168 (list python-atomicwrites python-click-log python-click-threading
169 python-requests-toolbelt))
a2f6a3d5
LF
170 (synopsis "Synchronize calendars and contacts")
171 (description "Vdirsyncer synchronizes your calendars and addressbooks
172between two storage locations. The most popular purpose is to
173synchronize a CalDAV or CardDAV server with a local folder or file. The
174local data can then be accessed via a variety of programs, none of which
175have to know or worry about syncing to a server.")
c5b63846 176 (home-page "https://github.com/pimutils/vdirsyncer")
477aa334 177 (license bsd-3)))