Hi, please find below an update of productivity/radicale to 1.0.1.
bcrypt seems to be supported through passlib now, so add it as lib dependency and drop the patch. OK? Thanks, Regards, Joerg Index: Makefile =================================================================== RCS file: /cvs/ports/productivity/radicale/Makefile,v retrieving revision 1.24 diff -u -p -r1.24 Makefile --- Makefile 2 Apr 2015 14:21:16 -0000 1.24 +++ Makefile 27 Nov 2015 21:32:03 -0000 @@ -2,7 +2,7 @@ COMMENT = simple CalDAV calendar server -MODPY_EGG_VERSION = 0.9 +MODPY_EGG_VERSION = 1.0.1 DISTNAME = Radicale-${MODPY_EGG_VERSION} PKGNAME = ${DISTNAME:L} CATEGORIES = productivity net @@ -14,11 +14,13 @@ MAINTAINER = Sergey Bronnikov <estetus@g # GPLv3+ PERMIT_PACKAGE_CDROM = Yes +MODPY_SETUPTOOLS = Yes + MODPY_PI = Yes MODULES = lang/python MODPY_ADJ_FILES = radicale.py -LIB_DEPENDS = security/py-bcrypt +LIB_DEPENDS = security/py-passlib NO_TEST = Yes Index: distinfo =================================================================== RCS file: /cvs/ports/productivity/radicale/distinfo,v retrieving revision 1.10 diff -u -p -r1.10 distinfo --- distinfo 15 Dec 2014 13:27:13 -0000 1.10 +++ distinfo 27 Nov 2015 21:32:03 -0000 @@ -1,2 +1,2 @@ -SHA256 (Radicale-0.9.tar.gz) = d7+BP9JvDTWcGnt7zOm4QrRQPFUWmJpKCk9kjimeQfc= -SIZE (Radicale-0.9.tar.gz) = 42100 +SHA256 (Radicale-1.0.1.tar.gz) = 4Ypo0Hk0A+dZHHJffSuDSQ3MXzzdAIvXX+lSMR7uG2A= +SIZE (Radicale-1.0.1.tar.gz) = 45658 Index: patches/patch-config =================================================================== RCS file: /cvs/ports/productivity/radicale/patches/patch-config,v retrieving revision 1.8 diff -u -p -r1.8 patch-config --- patches/patch-config 15 Dec 2014 13:27:13 -0000 1.8 +++ patches/patch-config 27 Nov 2015 21:32:03 -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 Wed Aug 19 15:06:33 2015 ++++ config Fri Nov 27 22:12:29 2015 +@@ -28,10 +28,10 @@ + #ssl = False + # SSL certificate path --certificate = /etc/apache2/ssl/server.crt +-#certificate = /etc/apache2/ssl/server.crt +certificate = ${SYSCONFDIR}/radicale/server.crt + # SSL private key --key = /etc/apache2/ssl/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 = /etc/radicale/users +htpasswd_filename = ${SYSCONFDIR}/radicale/users + # Htpasswd encryption method --# Value: plain | sha1 | crypt --htpasswd_encryption = crypt -+# Value: plain | sha1 | crypt | 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 = ~/.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 = ${VARBASE}/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 = /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: patches/patch-radicale_auth_htpasswd_py diff -N patches/patch-radicale_auth_htpasswd_py --- patches/patch-radicale_auth_htpasswd_py 15 Dec 2014 13:27:13 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,38 +0,0 @@ -$OpenBSD: patch-radicale_auth_htpasswd_py,v 1.2 2014/12/15 13:27:13 ian Exp $ - -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 -@@ -30,6 +30,7 @@ supported, but md5 is not (see ``htpasswd`` man page t - import base64 - import hashlib - import os -+import bcrypt - - from .. import config - -@@ -59,11 +60,21 @@ def _sha1(hash_value, 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") -+ password = password.encode(config.get("encoding", "stock")) -+ return bcrypt.checkpw(password, hash_value) -+ -+ - def is_authenticated(user, password): - """Check if ``user``/``password`` couple is valid.""" - for line in open(FILENAME).readlines(): - if line.strip(): - login, hash_value = line.strip().split(":") - if login == user: -- return globals()["_%s" % ENCRYPTION](hash_value, password) -+ if hash_value[0:5] == '{SHA}': -+ return _sha1(hash_value, password) -+ else: -+ return globals()["_%s" % ENCRYPTION](hash_value, password) - return False Index: patches/patch-radicale_config_py =================================================================== RCS file: /cvs/ports/productivity/radicale/patches/patch-radicale_config_py,v retrieving revision 1.8 diff -u -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 27 Nov 2015 21:32:03 -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 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": "", @@ -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,7 @@ $OpenBSD: patch-radicale_config_py,v 1.8 "htpasswd_encryption": "crypt", "imap_hostname": "localhost", "imap_port": "143", -@@ -83,11 +83,10 @@ INITIAL_CONFIG = { +@@ -86,11 +86,10 @@ INITIAL_CONFIG = { "storage": { "type": "filesystem", "custom_handler": "", @@ -35,7 +35,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) Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/productivity/radicale/pkg/PLIST,v retrieving revision 1.9 diff -u -p -r1.9 PLIST --- pkg/PLIST 15 Dec 2014 13:27:13 -0000 1.9 +++ pkg/PLIST 27 Nov 2015 21:32:03 -0000 @@ -2,7 +2,12 @@ @newgroup _radicale:672 @newuser _radicale:672:_radicale:daemon:radicale user:/nonexistent:/sbin/nologin bin/radicale -lib/python${MODPY_VERSION}/site-packages/Radicale-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info +lib/python${MODPY_VERSION}/site-packages/Radicale-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/ +lib/python${MODPY_VERSION}/site-packages/Radicale-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/PKG-INFO +lib/python${MODPY_VERSION}/site-packages/Radicale-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/SOURCES.txt +lib/python${MODPY_VERSION}/site-packages/Radicale-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/dependency_links.txt +lib/python${MODPY_VERSION}/site-packages/Radicale-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/pbr.json +lib/python${MODPY_VERSION}/site-packages/Radicale-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/top_level.txt lib/python${MODPY_VERSION}/site-packages/radicale/ lib/python${MODPY_VERSION}/site-packages/radicale/__init__.py lib/python${MODPY_VERSION}/site-packages/radicale/__init__.pyc