Hello ports@,
the following diff updates the radicale caldav/carddav server port to
the latest version 0.10.
New features are e.g. support for well-known URLs, reloading of config
on SIGHUP and various bugfixes. I have been running this on amd64 for
a few weeks.
Sending this to the list for further testing as discussed with
maintainer Sergey Bronnikov.
Daniel
Index: Makefile
===================================================================
RCS file: /cvs/ports/productivity/radicale/Makefile,v
retrieving revision 1.24
diff -u -b -B -w -p -r1.24 Makefile
--- Makefile 2 Apr 2015 14:21:16 -0000 1.24
+++ Makefile 11 Apr 2015 16:59:29 -0000
@@ -2,7 +2,7 @@
COMMENT = simple CalDAV calendar server
-MODPY_EGG_VERSION = 0.9
+MODPY_EGG_VERSION = 0.10
DISTNAME = Radicale-${MODPY_EGG_VERSION}
PKGNAME = ${DISTNAME:L}
CATEGORIES = productivity net
Index: distinfo
===================================================================
RCS file: /cvs/ports/productivity/radicale/distinfo,v
retrieving revision 1.10
diff -u -b -B -w -p -r1.10 distinfo
--- distinfo 15 Dec 2014 13:27:13 -0000 1.10
+++ distinfo 11 Apr 2015 16:59:29 -0000
@@ -1,2 +1,2 @@
-SHA256 (Radicale-0.9.tar.gz) = d7+BP9JvDTWcGnt7zOm4QrRQPFUWmJpKCk9kjimeQfc=
-SIZE (Radicale-0.9.tar.gz) = 42100
+SHA256 (Radicale-0.10.tar.gz) = DGUi9XUWhfwVlSTtes7oEcy5pYLbKttru02pnOAQPWQ=
+SIZE (Radicale-0.10.tar.gz) = 43051
Index: patches/patch-config
===================================================================
RCS file: /cvs/ports/productivity/radicale/patches/patch-config,v
retrieving revision 1.8
diff -u -b -B -w -p -r1.8 patch-config
--- patches/patch-config 15 Dec 2014 13:27:13 -0000 1.8
+++ patches/patch-config 11 Apr 2015 16:59:29 -0000
@@ -1,56 +1,58 @@
$OpenBSD: patch-config,v 1.8 2014/12/15 13:27:13 ian Exp $
---- config.orig Wed Aug 6 13:29:21 2014
-+++ config Sun Nov 16 18:55:14 2014
-@@ -23,9 +23,9 @@ pid =
- # SSL flag, enable HTTPS protocol
- ssl = False
+--- config.orig Mon Nov 10 10:38:46 2014
++++ config Sat Apr 11 20:56:24 2015
+@@ -28,10 +28,10 @@
+ #ssl = False
+
# SSL certificate path
--certificate = /etc/apache2/ssl/server.crt
-+certificate = ${SYSCONFDIR}/radicale/server.crt
+-#certificate = /etc/apache2/ssl/server.crt
++#certificate = ${SYSCONFDIR}/radicale/server.crt
+
# SSL private key
--key = /etc/apache2/ssl/server.key
-+key = ${SYSCONFDIR}/radicale/private/server.key
+-#key = /etc/apache2/ssl/server.key
++#key = ${SYSCONFDIR}/radicale/private/server.key
+
# SSL Protocol used. See python's ssl module for available values
- protocol = PROTOCOL_SSLv23
- # Ciphers available. See python's ssl module for available ciphers
-@@ -56,10 +56,10 @@ type = None
- custom_handler =
+ #protocol = PROTOCOL_SSLv23
+@@ -80,11 +80,11 @@
+ #custom_handler =
# Htpasswd filename
--htpasswd_filename = /etc/radicale/users
-+htpasswd_filename = ${SYSCONFDIR}/radicale/users
+-#htpasswd_filename = /etc/radicale/users
++#htpasswd_filename = ${SYSCONFDIR}/radicale/users
+
# Htpasswd encryption method
--# Value: plain | sha1 | crypt
--htpasswd_encryption = crypt
-+# Value: plain | sha1 | crypt | bcrypt
-+htpasswd_encryption = bcrypt
+-# Value: plain | sha1 | ssha | crypt
+-#htpasswd_encryption = crypt
++# Value: plain | sha1 | ssha | crypt | bcrypt
++#htpasswd_encryption = bcrypt
# LDAP server URL, with protocol and port
- ldap_url = ldap://localhost:389/
-@@ -113,7 +113,7 @@ type = None
- custom_handler =
+ #ldap_url = ldap://localhost:389/
+@@ -146,7 +146,7 @@
+ #custom_handler =
# File for rights management from_file
--file = ~/.config/radicale/rights
-+file = ${SYSCONFDIR}/config/radicale/rights
+-#file = ~/.config/radicale/rights
++#file = ${SYSCONFDIR}/config/radicale/rights
[storage]
-@@ -125,7 +125,7 @@ type = filesystem
- custom_handler =
+@@ -163,7 +163,7 @@
+ #custom_handler =
# Folder for storing local collections, created if not present
--filesystem_folder = ~/.config/radicale/collections
-+filesystem_folder = /var/db/radicale/calendars
+-#filesystem_folder = ~/.config/radicale/collections
++#filesystem_folder = /var/db/radicale/calendars
# Database URL for SQLAlchemy
# dialect+driver://user:password@host/dbname[?key=value..]
-@@ -139,7 +139,7 @@ database_url =
+@@ -178,7 +178,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
+-#config = /etc/radicale/logging
++#config = ${SYSCONFDIR}/radicale/logging
# Set the default logging level to debug
- debug = False
+ #debug = False
# Store all environment variables (including those set in the shell)
Index: patches/patch-radicale_auth_htpasswd_py
===================================================================
RCS file:
/cvs/ports/productivity/radicale/patches/patch-radicale_auth_htpasswd_py,v
retrieving revision 1.2
diff -u -b -B -w -p -r1.2 patch-radicale_auth_htpasswd_py
--- patches/patch-radicale_auth_htpasswd_py 15 Dec 2014 13:27:13 -0000
1.2
+++ patches/patch-radicale_auth_htpasswd_py 11 Apr 2015 16:59:29 -0000
@@ -3,8 +3,8 @@ $OpenBSD: patch-radicale_auth_htpasswd_p
bcrypt support, based on
http://evilshit.wordpress.com/2013/11/19/how-to-install-a-caldav-and-carddav-server-using-radicale/#bcrypt
---- radicale/auth/htpasswd.py.orig Sun Aug 3 17:51:47 2014
-+++ radicale/auth/htpasswd.py Sun Nov 16 19:01:49 2014
+--- radicale/auth/htpasswd.py.orig Mon Nov 10 10:38:46 2014
++++ radicale/auth/htpasswd.py Sat Jan 24 15:26:13 2015
@@ -30,6 +30,7 @@ supported, but md5 is not (see ``htpasswd`` man page t
import base64
import hashlib
@@ -13,10 +13,11 @@ http://evilshit.wordpress.com/2013/11/19
from .. import config
-@@ -59,11 +60,21 @@ def _sha1(hash_value, password):
+@@ -58,6 +59,14 @@ def _sha1(hash_value, password):
+ sha1.update(password)
return sha1.digest() == base64.b64decode(hash_value)
-
++
+def _bcrypt(hash_value, password):
+ """Check if ``hash_value`` and ``password`` match using bcrypt method."""
+ hash_value = hash_value.encode("ascii")
@@ -24,9 +25,10 @@ http://evilshit.wordpress.com/2013/11/19
+ return bcrypt.checkpw(password, hash_value)
+
+
- def is_authenticated(user, password):
- """Check if ``user``/``password`` couple is valid."""
- for line in open(FILENAME).readlines():
+ def _ssha(hash_salt_value, password):
+ """Check if ``hash_salt_value`` and ``password`` match using salted sha1
method."""
+ hash_salt_value = hash_salt_value.replace("{SSHA}",
"").encode("ascii").decode('base64')
+@@ -75,5 +84,8 @@ def is_authenticated(user, password):
if line.strip():
login, hash_value = line.strip().split(":")
if login == user:
Index: patches/patch-radicale_config_py
===================================================================
RCS file: /cvs/ports/productivity/radicale/patches/patch-radicale_config_py,v
retrieving revision 1.8
diff -u -b -B -w -p -r1.8 patch-radicale_config_py
--- patches/patch-radicale_config_py 15 Dec 2014 13:27:13 -0000 1.8
+++ patches/patch-radicale_config_py 11 Apr 2015 16:59:29 -0000
@@ -1,6 +1,6 @@
$OpenBSD: patch-radicale_config_py,v 1.8 2014/12/15 13:27:13 ian Exp $
---- radicale/config.py.orig Wed Aug 6 13:23:29 2014
-+++ radicale/config.py Sun Nov 16 18:58:10 2014
+--- radicale/config.py.orig Tue Oct 21 13:03:32 2014
++++ radicale/config.py Sat Jan 24 15:25:53 2015
@@ -43,8 +43,8 @@ INITIAL_CONFIG = {
"daemon": "False",
"pid": "",
@@ -12,7 +12,7 @@ $OpenBSD: patch-radicale_config_py,v 1.8
"protocol": "PROTOCOL_SSLv23",
"ciphers": "",
"dns_lookup": "True",
-@@ -57,7 +57,7 @@ INITIAL_CONFIG = {
+@@ -60,7 +60,7 @@ INITIAL_CONFIG = {
"auth": {
"type": "None",
"custom_handler": "",
@@ -21,7 +21,12 @@ $OpenBSD: patch-radicale_config_py,v 1.8
"htpasswd_encryption": "crypt",
"imap_hostname": "localhost",
"imap_port": "143",
-@@ -83,11 +83,10 @@ INITIAL_CONFIG = {
+@@ -82,15 +82,14 @@ INITIAL_CONFIG = {
+ "rights": {
+ "type": "None",
+ "custom_handler": "",
+- "file": "~/.config/radicale/rights"},
++ "file": "${SYSCONFDIR}/config/radicale/rights"},
"storage": {
"type": "filesystem",
"custom_handler": "",
@@ -35,7 +40,7 @@ $OpenBSD: patch-radicale_config_py,v 1.8
"debug": "False",
"full_environment": "False"}}
-@@ -99,7 +98,7 @@ for section, values in INITIAL_CONFIG.items():
+@@ -102,7 +101,7 @@ for section, values in INITIAL_CONFIG.items():
for key, value in values.items():
_CONFIG_PARSER.set(section, key, value)