Index: Makefile =================================================================== RCS file: /cvs/ports/productivity/radicale/Makefile,v diff -u -p -r1.51 Makefile --- Makefile 27 Aug 2025 18:36:05 -0000 1.51 +++ Makefile 18 Jul 2026 14:49:25 -0000 @@ -1,9 +1,7 @@ COMMENT = simple CalDAV calendar server -MODPY_DISTV = 1.1.6 -REVISION = 14 -DISTNAME = Radicale-${MODPY_DISTV} -PKGNAME = ${DISTNAME:L} +MODPY_DISTV = 3.7.5 +DISTNAME = radicale-${MODPY_DISTV} CATEGORIES = productivity net HOMEPAGE = https://radicale.org/ @@ -17,7 +15,11 @@ MODULES = lang/python MODPY_PI = Yes MODPY_PYBUILD = setuptools -RUN_DEPENDS = security/py-passlib +RUN_DEPENDS = security/py-passlib \ + textproc/py-vobject \ + textproc/py-defusedxml \ + www/py-requests \ + devel/py-pika NO_TEST = Yes @@ -27,12 +29,12 @@ pre-configure: post-install: ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/radicale ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/radicale - cd ${WRKSRC}; ${INSTALL_DATA} COPYING NEWS.rst README \ - ${PREFIX}/share/doc/radicale/ + cd ${WRKSRC}; \ + ${INSTALL_DATA} COPYING.md CHANGELOG.md README.md DOCUMENTATION.md \ + ${PREFIX}/share/doc/radicale/ ${SUBST_DATA} ${WRKSRC}/config \ - ${PREFIX}/share/examples/radicale/config - ${INSTALL_DATA} ${WRKSRC}/{logging,rights} \ - ${PREFIX}/share/examples/radicale/ - touch ${PREFIX}/share/examples/radicale/log + ${PREFIX}/share/examples/radicale/config + ${INSTALL_DATA} ${WRKSRC}/rights \ + ${PREFIX}/share/examples/radicale/ .include Index: distinfo =================================================================== RCS file: /cvs/ports/productivity/radicale/distinfo,v diff -u -p -r1.16 distinfo --- distinfo 6 Sep 2018 22:48:30 -0000 1.16 +++ distinfo 18 Jul 2026 14:49:25 -0000 @@ -1,2 +1,2 @@ -SHA256 (Radicale-1.1.6.tar.gz) = wAcZjqRe95c0RnLGgdTBP4tKqFwVxBoRViJXZ6QFySs= -SIZE (Radicale-1.1.6.tar.gz) = 48280 +SHA256 (radicale-3.7.5.tar.gz) = prRRKKxthOOX546TQKvCkGyQN81bZWQfAleO2iOPoLc= +SIZE (radicale-3.7.5.tar.gz) = 254813 Index: patches/patch-config =================================================================== RCS file: /cvs/ports/productivity/radicale/patches/patch-config,v diff -u -p -r1.14 patch-config --- patches/patch-config 17 Dec 2023 16:21:12 -0000 1.14 +++ patches/patch-config 18 Jul 2026 14:49:25 -0000 @@ -1,57 +1,61 @@ Index: config --- config.orig +++ config -@@ -28,10 +28,10 @@ +@@ -3,7 +3,7 @@ + + # Config file for Radicale - A simple calendar server + # +-# Place it into /etc/radicale/config (global) ++# Place it into ${SYSCONFDIR}/radicale/config (global) + # or ~/.config/radicale/config (user) + # + # The current values are the default ones +@@ -40,10 +40,10 @@ #ssl = False # SSL certificate path --#certificate = /etc/apache2/ssl/server.crt -+certificate = ${SYSCONFDIR}/radicale/server.crt +-#certificate = /etc/ssl/radicale.cert.pem ++#certificate = ${SYSCONFDIR}/ssl/radicale.cert.pem # SSL private key --#key = /etc/apache2/ssl/server.key -+key = ${SYSCONFDIR}/radicale/private/server.key +-#key = /etc/ssl/radicale.key.pem ++#key = ${SYSCONFDIR}/radicale/private/key.pem - # SSL Protocol used. See python's ssl module for available values - #protocol = PROTOCOL_SSLv23 -@@ -84,11 +84,11 @@ - #custom_handler = + # CA certificate for validating clients. This can be used to secure + # TCP traffic between Radicale and a reverse proxy +@@ -79,7 +79,7 @@ + [auth] + + # Authentication method +-# Value: none | htpasswd | remote_user | http_remote_user | http_x_remote_user | dovecot | ldap | oauth2 | pam | denyall ++# Value: none | htpasswd | remote_user | http_remote_user | http_x_remote_user | dovecot | ldap | imap | oauth2 | pam | denyall + #type = denyall + + # Cache logins for until expiration time +@@ -177,7 +177,7 @@ + #pam_group_membership = # Htpasswd filename -#htpasswd_filename = /etc/radicale/users -+htpasswd_filename = ${SYSCONFDIR}/radicale/users ++#htpasswd_filename = ${SYSCONFDIR}/radicale/users # Htpasswd encryption method - # Value: plain | sha1 | ssha | crypt | bcrypt | md5 --#htpasswd_encryption = crypt -+htpasswd_encryption = bcrypt - - # LDAP server URL, with protocol and port - #ldap_url = ldap://localhost:389/ -@@ -150,7 +150,7 @@ - #custom_handler = + # Value: plain | bcrypt | md5 | sha256 | sha512 | argon2 | autodetect +@@ -211,7 +211,7 @@ + #type = owner_only # File for rights management from_file --#file = ~/.config/radicale/rights -+file = ${SYSCONFDIR}/radicale/rights - +-#file = /etc/radicale/rights ++#file = ${SYSCONFDIR}/radicale/rights - [storage] -@@ -167,7 +167,7 @@ - #custom_handler = + # Permit delete of a collection (global) + #permit_delete_collection = True +@@ -227,7 +227,7 @@ + #type = multifilesystem # Folder for storing local collections, created if not present --#filesystem_folder = ~/.config/radicale/collections -+filesystem_folder = ${LOCALSTATEDIR}/db/radicale/calendars +-#filesystem_folder = /var/lib/radicale/collections ++#filesystem_folder = /var/db/radicale/collections - # Database URL for SQLAlchemy - # dialect+driver://user:password@host/dbname[?key=value..] -@@ -182,7 +182,7 @@ - # If no config is given, simple information is printed on the standard output - # For more information about the syntax of the configuration file, see: - # http://docs.python.org/library/logging.config.html --#config = /etc/radicale/logging -+config = ${SYSCONFDIR}/radicale/logging - # Set the default logging level to debug - #debug = False - # Store all environment variables (including those set in the shell) + # Folder for storing cache of local collections, created if not present + # Note: only used in case of use_cache_subfolder_* options are active Index: patches/patch-logging =================================================================== RCS file: patches/patch-logging diff -N patches/patch-logging --- patches/patch-logging 11 Mar 2022 19:51:45 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -Set default logging to INFO - -Index: logging ---- logging.orig -+++ logging -@@ -29,7 +29,7 @@ keys = simple,full - - [logger_root] - # Root logger --level = DEBUG -+level = INFO - handlers = console,file - - Index: patches/patch-radicale_config_py =================================================================== RCS file: /cvs/ports/productivity/radicale/patches/patch-radicale_config_py,v diff -u -p -r1.10 patch-radicale_config_py --- patches/patch-radicale_config_py 11 Mar 2022 19:51:45 -0000 1.10 +++ patches/patch-radicale_config_py 18 Jul 2026 14:49:25 -0000 @@ -1,45 +1,54 @@ ---- radicale/config.py.orig Wed Aug 19 15:06:33 2015 -+++ radicale/config.py Fri Nov 27 22:06:38 2015 -@@ -43,8 +43,8 @@ INITIAL_CONFIG = { - "daemon": "False", - "pid": "", - "ssl": "False", -- "certificate": "/etc/apache2/ssl/server.crt", -- "key": "/etc/apache2/ssl/server.key", -+ "certificate": "${SYSCONFDIR}/radicale/server.crt", -+ "key": "${SYSCONFDIR}/radicale/private/server.key", - "protocol": "PROTOCOL_SSLv23", - "ciphers": "", - "dns_lookup": "True", -@@ -60,7 +60,7 @@ INITIAL_CONFIG = { - "auth": { - "type": "None", - "custom_handler": "", -- "htpasswd_filename": "/etc/radicale/users", -+ "htpasswd_filename": "${SYSCONFDIR}/radicale/users", - "htpasswd_encryption": "crypt", - "imap_hostname": "localhost", - "imap_port": "143", -@@ -86,11 +86,10 @@ INITIAL_CONFIG = { - "storage": { - "type": "filesystem", - "custom_handler": "", -- "filesystem_folder": os.path.expanduser( -- "~/.config/radicale/collections"), -+ "filesystem_folder": "/var/db/radicale/calendars", - "database_url": ""}, - "logging": { -- "config": "/etc/radicale/logging", -+ "config": "${SYSCONFDIR}/radicale/logging", - "debug": "False", - "full_environment": "False"}} +Index: radicale/config.py +--- radicale/config.py.orig ++++ radicale/config.py +@@ -45,7 +45,7 @@ from radicale.hook import email + from radicale.item import check_and_sanitize_props -@@ -102,7 +101,7 @@ for section, values in INITIAL_CONFIG.items(): - for key, value in values.items(): - _CONFIG_PARSER.set(section, key, value) + DEFAULT_CONFIG_PATH: str = os.pathsep.join([ +- "?/etc/radicale/config", ++ "?${SYSCONFDIR}/radicale/config", + "?~/.config/radicale/config"]) --_CONFIG_PARSER.read("/etc/radicale/config") -+_CONFIG_PARSER.read("${SYSCONFDIR}/radicale/config") - _CONFIG_PARSER.read(os.path.expanduser("~/.config/radicale/config")) - if "RADICALE_CONFIG" in os.environ: - _CONFIG_PARSER.read(os.environ["RADICALE_CONFIG"]) + PROFILING: Sequence[str] = ("per_request", "per_request_method", "none") +@@ -273,12 +273,12 @@ DEFAULT_CONFIG_SCHEMA: types.CONFIG_SCHEMA = OrderedDi + "help": "SSL/TLS Cipher Suite (OpenSSL cipher list format)", + "type": str}), + ("certificate", { +- "value": "/etc/ssl/radicale.cert.pem", ++ "value": "${SYSCONFDIR}/ssl/radicale.cert.pem", + "help": "set certificate file", + "aliases": ("-c", "--certificate",), + "type": filepath}), + ("key", { +- "value": "/etc/ssl/radicale.key.pem", ++ "value": "${SYSCONFDIR}/radicale/private/key.pem", + "help": "set private key file", + "aliases": ("-k", "--key",), + "type": filepath}), +@@ -331,7 +331,7 @@ DEFAULT_CONFIG_SCHEMA: types.CONFIG_SCHEMA = OrderedDi + "help": "expiration time for caching failed logins in seconds", + "type": int}), + ("htpasswd_filename", { +- "value": "/etc/radicale/users", ++ "value": "${SYSCONFDIR}/radicale/users", + "help": "htpasswd filename", + "type": filepath}), + ("htpasswd_encryption", { +@@ -491,7 +491,7 @@ DEFAULT_CONFIG_SCHEMA: types.CONFIG_SCHEMA = OrderedDi + "help": "permit overwrite of a collection", + "type": bool}), + ("file", { +- "value": "/etc/radicale/rights", ++ "value": "${SYSCONFDIR}/radicale/rights", + "help": "file for rights management from_file", + "type": filepath})])), + ("storage", OrderedDict([ +@@ -501,7 +501,7 @@ DEFAULT_CONFIG_SCHEMA: types.CONFIG_SCHEMA = OrderedDi + "type": str_or_callable, + "internal": storage.INTERNAL_TYPES}), + ("filesystem_folder", { +- "value": "/var/lib/radicale/collections", ++ "value": "/var/db/radicale/collections", + "help": "path where collections are stored", + "type": filepath}), + ("filesystem_cache_folder", { Index: patches/patch-rights =================================================================== RCS file: patches/patch-rights diff -N patches/patch-rights --- patches/patch-rights 11 Mar 2022 19:51:45 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,44 +0,0 @@ -File missing from distribution tar.gz, though still present in repo. - -Index: rights ---- rights.orig -+++ rights -@@ -0,0 +1,38 @@ -+# -*- mode: conf -*- -+# vim:ft=cfg -+ -+# Rights management file for Radicale - A simple calendar server -+# -+# Default path for this kind of files is ~/.config/radicale/rights -+ -+# This means all users starting with "admin" may read any collection -+[admin] -+user: ^admin.*$ -+collection: .* -+permission: r -+ -+# This means all users may read and write any collection starting with public. -+# We do so by just not testing against the user string. -+[public] -+user: .* -+collection: ^public(/.+)?$ -+permission: rw -+ -+# A little more complex: give read access to users from a domain for all -+# collections of all the users (ie. user@domain.tld can read domain/*). -+[domain-wide-access] -+user: ^.+@(.+)\..+$ -+collection: ^{0}/.+$ -+permission: r -+ -+# Allow authenticated user to read all collections -+[allow-everyone-read] -+user: .+ -+collection: .* -+permission: r -+ -+# Give write access to owners -+[owner-write] -+user: .+ -+collection: ^%(login)s/.*$ -+permission: w Index: pkg/MESSAGE =================================================================== RCS file: pkg/MESSAGE diff -N pkg/MESSAGE --- pkg/MESSAGE 2 May 2025 09:47:49 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,2 +0,0 @@ -The Radicale 1.x package is only provided so that users can export storage -in preparation for updating to a newer version. See the pkg-readme for more. Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/productivity/radicale/pkg/PLIST,v diff -u -p -r1.23 PLIST --- pkg/PLIST 23 Oct 2025 13:20:09 -0000 1.23 +++ pkg/PLIST 18 Jul 2026 14:49:25 -0000 @@ -8,8 +8,9 @@ lib/python${MODPY_VERSION}/site-packages lib/python${MODPY_VERSION}/site-packages/radicale-${MODPY_DISTV}.dist-info/METADATA lib/python${MODPY_VERSION}/site-packages/radicale-${MODPY_DISTV}.dist-info/RECORD lib/python${MODPY_VERSION}/site-packages/radicale-${MODPY_DISTV}.dist-info/WHEEL +lib/python${MODPY_VERSION}/site-packages/radicale-${MODPY_DISTV}.dist-info/entry_points.txt lib/python${MODPY_VERSION}/site-packages/radicale-${MODPY_DISTV}.dist-info/licenses/ -lib/python${MODPY_VERSION}/site-packages/radicale-${MODPY_DISTV}.dist-info/licenses/COPYING +lib/python${MODPY_VERSION}/site-packages/radicale-${MODPY_DISTV}.dist-info/licenses/COPYING.md lib/python${MODPY_VERSION}/site-packages/radicale-${MODPY_DISTV}.dist-info/top_level.txt lib/python${MODPY_VERSION}/site-packages/radicale/__init__.py lib/python${MODPY_VERSION}/site-packages/radicale/__main__.py @@ -20,88 +21,293 @@ lib/python${MODPY_VERSION}/site-packages lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}__main__.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}ical.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} -lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}ical.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}httputils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}httputils.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}log.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}log.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}pathutils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}pathutils.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}xmlutils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} lib/python${MODPY_VERSION}/site-packages/radicale/${MODPY_PYCACHE}xmlutils.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/ +lib/python${MODPY_VERSION}/site-packages/radicale/app/__init__.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}delete.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}delete.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}get.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}get.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}head.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}head.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}mkcalendar.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}mkcalendar.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}mkcol.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}mkcol.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}move.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}move.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}options.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}options.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}post.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}propfind.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}propfind.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}proppatch.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}proppatch.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}put.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}put.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}report.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/app/${MODPY_PYCACHE}report.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/app/base.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/delete.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/get.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/head.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/mkcalendar.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/mkcol.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/move.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/options.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/post.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/propfind.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/proppatch.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/put.py +lib/python${MODPY_VERSION}/site-packages/radicale/app/report.py lib/python${MODPY_VERSION}/site-packages/radicale/auth/ -lib/python${MODPY_VERSION}/site-packages/radicale/auth/IMAP.py -lib/python${MODPY_VERSION}/site-packages/radicale/auth/LDAP.py -lib/python${MODPY_VERSION}/site-packages/radicale/auth/PAM.py lib/python${MODPY_VERSION}/site-packages/radicale/auth/__init__.py lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}/ -lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}IMAP.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} -lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}IMAP.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}LDAP.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} -lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}LDAP.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}PAM.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} -lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}PAM.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}courier.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} -lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}courier.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}denyall.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}denyall.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}dovecot.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}dovecot.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}htpasswd.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}htpasswd.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}http.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} -lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}http.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}http_remote_user.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}http_remote_user.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}http_x_remote_user.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}http_x_remote_user.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}imap.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}imap.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}ldap.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}ldap.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}none.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}none.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}oauth2.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}oauth2.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}pam.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}pam.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}remote_user.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} lib/python${MODPY_VERSION}/site-packages/radicale/auth/${MODPY_PYCACHE}remote_user.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/auth/courier.py +lib/python${MODPY_VERSION}/site-packages/radicale/auth/denyall.py +lib/python${MODPY_VERSION}/site-packages/radicale/auth/dovecot.py lib/python${MODPY_VERSION}/site-packages/radicale/auth/htpasswd.py -lib/python${MODPY_VERSION}/site-packages/radicale/auth/http.py +lib/python${MODPY_VERSION}/site-packages/radicale/auth/http_remote_user.py +lib/python${MODPY_VERSION}/site-packages/radicale/auth/http_x_remote_user.py +lib/python${MODPY_VERSION}/site-packages/radicale/auth/imap.py +lib/python${MODPY_VERSION}/site-packages/radicale/auth/ldap.py +lib/python${MODPY_VERSION}/site-packages/radicale/auth/none.py +lib/python${MODPY_VERSION}/site-packages/radicale/auth/oauth2.py +lib/python${MODPY_VERSION}/site-packages/radicale/auth/pam.py lib/python${MODPY_VERSION}/site-packages/radicale/auth/remote_user.py lib/python${MODPY_VERSION}/site-packages/radicale/config.py -lib/python${MODPY_VERSION}/site-packages/radicale/ical.py +lib/python${MODPY_VERSION}/site-packages/radicale/hook/ +lib/python${MODPY_VERSION}/site-packages/radicale/hook/__init__.py +lib/python${MODPY_VERSION}/site-packages/radicale/hook/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/radicale/hook/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/hook/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/hook/${MODPY_PYCACHE}none.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/hook/${MODPY_PYCACHE}none.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/hook/email/ +lib/python${MODPY_VERSION}/site-packages/radicale/hook/email/__init__.py +lib/python${MODPY_VERSION}/site-packages/radicale/hook/email/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/radicale/hook/email/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/hook/email/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/hook/none.py +lib/python${MODPY_VERSION}/site-packages/radicale/hook/rabbitmq/ +lib/python${MODPY_VERSION}/site-packages/radicale/hook/rabbitmq/__init__.py +lib/python${MODPY_VERSION}/site-packages/radicale/hook/rabbitmq/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/radicale/hook/rabbitmq/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/hook/rabbitmq/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/httputils.py +lib/python${MODPY_VERSION}/site-packages/radicale/item/ +lib/python${MODPY_VERSION}/site-packages/radicale/item/__init__.py +lib/python${MODPY_VERSION}/site-packages/radicale/item/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/radicale/item/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/item/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/item/${MODPY_PYCACHE}filter.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/item/${MODPY_PYCACHE}filter.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/item/filter.py lib/python${MODPY_VERSION}/site-packages/radicale/log.py lib/python${MODPY_VERSION}/site-packages/radicale/pathutils.py +lib/python${MODPY_VERSION}/site-packages/radicale/py.typed lib/python${MODPY_VERSION}/site-packages/radicale/rights/ lib/python${MODPY_VERSION}/site-packages/radicale/rights/__init__.py lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}/ lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}regex.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} -lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}regex.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/rights/regex.py +lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}authenticated.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}authenticated.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}from_file.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}from_file.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}owner_only.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}owner_only.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}owner_write.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/rights/${MODPY_PYCACHE}owner_write.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/rights/authenticated.py +lib/python${MODPY_VERSION}/site-packages/radicale/rights/from_file.py +lib/python${MODPY_VERSION}/site-packages/radicale/rights/owner_only.py +lib/python${MODPY_VERSION}/site-packages/radicale/rights/owner_write.py +lib/python${MODPY_VERSION}/site-packages/radicale/server.py +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/ +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/__init__.py +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/${MODPY_PYCACHE}csv.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/${MODPY_PYCACHE}csv.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/${MODPY_PYCACHE}files.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/${MODPY_PYCACHE}files.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/${MODPY_PYCACHE}none.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/${MODPY_PYCACHE}none.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/csv.py +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/files.py +lib/python${MODPY_VERSION}/site-packages/radicale/sharing/none.py lib/python${MODPY_VERSION}/site-packages/radicale/storage/ lib/python${MODPY_VERSION}/site-packages/radicale/storage/__init__.py lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}/ lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}database.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} -lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}database.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}filesystem.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} -lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}filesystem.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}multifilesystem.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} -lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}multifilesystem.${MODPY_PYC_MAGIC_TAG}pyc -lib/python${MODPY_VERSION}/site-packages/radicale/storage/database.py -lib/python${MODPY_VERSION}/site-packages/radicale/storage/filesystem.py -lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}multifilesystem_nolock.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/${MODPY_PYCACHE}multifilesystem_nolock.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/ +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/__init__.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}cache.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}cache.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}create_collection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}create_collection.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}delete.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}delete.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}discover.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}discover.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}get.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}get.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}history.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}history.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}lock.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}lock.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}meta.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}meta.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}move.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}move.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}sync.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}sync.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}upload.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}upload.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}verify.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/${MODPY_PYCACHE}verify.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/base.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/cache.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/create_collection.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/delete.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/discover.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/get.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/history.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/lock.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/meta.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/move.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/sync.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/upload.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem/verify.py +lib/python${MODPY_VERSION}/site-packages/radicale/storage/multifilesystem_nolock.py +lib/python${MODPY_VERSION}/site-packages/radicale/types.py +lib/python${MODPY_VERSION}/site-packages/radicale/utils.py +lib/python${MODPY_VERSION}/site-packages/radicale/web/ +lib/python${MODPY_VERSION}/site-packages/radicale/web/__init__.py +lib/python${MODPY_VERSION}/site-packages/radicale/web/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/radicale/web/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/web/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/web/${MODPY_PYCACHE}internal.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/web/${MODPY_PYCACHE}internal.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/web/${MODPY_PYCACHE}none.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} +lib/python${MODPY_VERSION}/site-packages/radicale/web/${MODPY_PYCACHE}none.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal.py +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/ +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/ +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icon.png +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icons/ +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icons/delete.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icons/download.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icons/edit.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icons/eye.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icons/key.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icons/new.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icons/repeat.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icons/share.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/icons/upload.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/loading.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/logo.svg +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/css/main.css +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/index.html +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/ +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/api/ +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/api/api.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/api/common.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/api/sharing.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/config.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/constants.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/main.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/models/ +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/models/collection.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/ +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/CollectionsScene.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/CreateEditCollectionScene.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/CreateEditShareScene.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/DeleteConfirmationScene.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/IncomingSharingScene.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/LoadingScene.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/LoginScene.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/ShareCollectionScene.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/UploadCollectionScene.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/scenes/scene_manager.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/utils/ +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/utils/collection_utils.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/utils/collections_cache.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/utils/error.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/utils/form_validator.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/utils/misc.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/utils/permissions.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/internal_data/js/utils/url_text.js +lib/python${MODPY_VERSION}/site-packages/radicale/web/none.py lib/python${MODPY_VERSION}/site-packages/radicale/xmlutils.py -share/doc/pkg-readmes/${PKGSTEM} share/doc/radicale/ -share/doc/radicale/COPYING -share/doc/radicale/NEWS.rst -share/doc/radicale/README +share/doc/radicale/CHANGELOG.md +share/doc/radicale/COPYING.md +share/doc/radicale/DOCUMENTATION.md +share/doc/radicale/README.md share/examples/radicale/ share/examples/radicale/config @sample ${SYSCONFDIR}/radicale/ @sample ${SYSCONFDIR}/radicale/config -share/examples/radicale/log -@mode 640 +@mode 700 @owner _radicale @group _radicale -@sample ${LOCALSTATEDIR}/log/radicale -@mode 700 @sample ${LOCALSTATEDIR}/db/radicale/ @sample ${SYSCONFDIR}/radicale/private/ @mode @owner @group -share/examples/radicale/logging -@sample ${SYSCONFDIR}/radicale/logging share/examples/radicale/rights @sample ${SYSCONFDIR}/radicale/rights Index: pkg/README =================================================================== RCS file: pkg/README diff -N pkg/README --- pkg/README 2 May 2025 09:47:49 -0000 1.10 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,19 +0,0 @@ -+----------------------------------------------------------------------- -| Running ${PKGSTEM} on OpenBSD -+----------------------------------------------------------------------- - -This package of Radicale 1.x is only provided so that storage can be -exported before updating to a newer version. - -Before upgrading to Radicale 2+, run -'${PREFIX}/bin/radicale --export-storage /path/to/storage'. - -You can then 'pkg_delete radicale' to remove the existing version, and -install a newer version with 'pkg_add radicale', selecting the newer -version from the list. - -This exported storage can be used directly by Radicale 2 after the -upgrade. - -For more information please refer to -https://radicale.org/v2.html#migration-from-1xx-to-2xx Index: pkg/radicale.rc =================================================================== RCS file: /cvs/ports/productivity/radicale/pkg/radicale.rc,v diff -u -p -r1.4 radicale.rc --- pkg/radicale.rc 11 Mar 2022 19:51:45 -0000 1.4 +++ pkg/radicale.rc 18 Jul 2026 14:49:25 -0000 @@ -1,11 +1,13 @@ #!/bin/ksh -daemon="${TRUEPREFIX}/bin/radicale -d" +daemon="${TRUEPREFIX}/bin/radicale" daemon_user="_radicale" +daemon_logger=daemon.info . /etc/rc.d/rc.subr pexp="${MODPY_BIN} ${daemon}${daemon_flags:+ ${daemon_flags}}" rc_reload=NO +rc_bg=YES rc_cmd $1