pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Radicale3: Update to v3.1.8
Module Name: pkgsrc-wip
Committed By: Hauke Fath <hauke%NetBSD.org@localhost>
Pushed By: hauke
Date: Thu Nov 3 21:19:43 2022 +0100
Changeset: c706753930226e6634b61412639473baa293339a
Modified Files:
Radicale3/Makefile
Radicale3/PLIST
Radicale3/distinfo
Radicale3/files/radicale.sh
Log Message:
Radicale3: Update to v3.1.8
From the upstream changelog:
* Fix setuptools requirement if installing wheel
* Tests: Switch from `python setup.py test` to `tox`
* Small changes to build system configuration and tests
* Fix random href fallback
* Ignore `Not a directory` error for optional config paths
* Fix upload of whole address book/calendar with UIDs that collide on
case-insensitive filesystem
* Remove runtime dependency on setuptools for Python>=3.9
* Windows: Block ADS paths
* Ignore configuration file if access is denied
* Use F_FULLFSYNC with PyPy on MacOS
* Fallback if F_FULLFSYNC is not supported by the filesystem
* Fallback if RENAME_EXCHANGE is not supported by the filesystem
* Assume POSIX compatibility if `sys.platform` is not `win32`
* Redirect '~/.well-known/caldav' and '~/.well-known/carddav' to base prefix
* Warning instead of error when base prefix ends with '/'
* Verify that base prefix starts with '/' but doesn't end with '/'
* Improve base prefix log message
* Never send body for HEAD requests (again)
* Workaround for contact photo bug in InfCloud
* Redirect GET and HEAD requests under `/.web` to sanitized path
* Set `Content-Length` header for HEAD requests
* Never send body for HEAD requests
* Improve error messages for `from_file` rights backend
* Don't sanitize WSGI script name
* Single `<D:propstat>` element in PROPPATCH response
* Allow multiple `<D:set>` and `<D:remove>` elements
* Improve log messages
* Fix date filter
* Improve sanitization of collection properties
* Cancel mkcalendar request on error
* Use **renameat2** on Linux for atomic overwriting of collections
* Command Line Parser
* Disallow abbreviated arguments
* Support backend specific options and HTTP headers
* Optional argument for boolean options
* Load no config file for `--config` without argument
* Allow float for server->timeout setting
* Fix **is-not-defined** filter in **addressbook-query** report
* Add python type hints
* Add **multifilesystem_nolock** storage
* Add support for Python 3.9 and 3.10
* Drop support for Python 3.5
* Fix compatibility with Evolution (Exceptions from recurrence rules)
TODO is done by running radicale with sysutils/daemonize
Change user:group to something less generic than 'www'
Move data store from PREFIX/share to VARBASE, since it is runtime data
Install documentation
Fix PKG_SYSCONFDIR handling
-- pkglint is happy, this could be moved to pkgsrc, I guess.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=c706753930226e6634b61412639473baa293339a
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
Radicale3/Makefile | 69 ++++++++++++++++++++++++++++++---------------
Radicale3/PLIST | 18 ++++++++++++
Radicale3/distinfo | 6 ++--
Radicale3/files/radicale.sh | 36 +++++++++++++----------
4 files changed, 88 insertions(+), 41 deletions(-)
diffs:
diff --git a/Radicale3/Makefile b/Radicale3/Makefile
index b54026fedd..e87eec6553 100644
--- a/Radicale3/Makefile
+++ b/Radicale3/Makefile
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.10 2020/07/13 20:05:12 wiz Exp $
+# $NetBSD$
-DISTNAME= Radicale-3.0.6
+DISTNAME= Radicale-3.1.8
CATEGORIES= net time www
MASTER_SITES= ${MASTER_SITE_PYPI:=R/Radicale/}
@@ -9,47 +9,70 @@ HOMEPAGE= https://radicale.org/
COMMENT= CalDAV (calendar) and CardDAV (contact) server
LICENSE= gnu-gpl-v3
-EGDIR= share/examples/radicale
+DEPENDS+= ${PYPKGPREFIX}-vobject-[0-9]*:../../textproc/py-vobject
+DEPENDS+= ${PYPKGPREFIX}-defusedxml-[0-9]*:../../textproc/py-defusedxml
+DEPENDS+= ${PYPKGPREFIX}-dateutil-[0-9]*:../../time/py-dateutil
+
+# for md5 htpasswd_encryption method
+DEPENDS+= ${PYPKGPREFIX}-passlib-[0-9]*:../../security/py-passlib
+
+DEPENDS+= daemonize>=1.7.8:../../sysutils/daemonize
+
+BUILD_DEFS+= VARBASE
-RADICALE_USER?= www
-RADICALE_GROUP?= www
+RADICALE_USER?= radicale
+RADICALE_GROUP?= radicale
PKG_GROUPS= ${RADICALE_GROUP}
PKG_USERS= ${RADICALE_USER}:${RADICALE_GROUP}
+
PYTHON_VERSIONS_INCOMPATIBLE= 27
+PYTHON_VERSIONED_DEPENDENCIES+= setuptools
+
+PKG_SYSCONFSUBDIR= radicale
-INSTALLATION_DIRS= ${EGDIR}
-OWN_DIRS= ${PKG_SYSCONFDIR}/radicale
-CONF_FILES+= ${EGDIR}/config ${PKG_SYSCONFDIR}/radicale/config
RCD_SCRIPTS= radicale
+
+EGDIR= share/examples/radicale
+DOCDIR= share/doc/radicale
+INSTALLATION_DIRS= ${EGDIR} ${DOCDIR}
+
+RADICALE_LOGDIR= ${VARBASE}/log/radicale
+OWN_DIRS_PERMS+= ${RADICALE_LOGDIR} ${RADICALE_USER} \
+ ${RADICALE_GROUP} 0750
+RADICALE_DATADIR= ${VARBASE}/radicale
+OWN_DIRS_PERMS+= ${RADICALE_DATADIR} ${RADICALE_USER} \
+ ${RADICALE_GROUP} 0750
+
+CONF_FILES+= ${EGDIR}/config ${PKG_SYSCONFDIR}/config
+CONF_FILES+= ${EGDIR}/rights ${PKG_SYSCONFDIR}/rights
+
FILES_SUBST+= RADICALE_USER=${RADICALE_USER}
FILES_SUBST+= RADICALE_GROUP=${RADICALE_GROUP}
+FILES_SUBST+= RADICALE_LOGDIR=${RADICALE_LOGDIR}
FILES_SUBST+= PYTHONBIN=${PYTHONBIN}
SUBST_CLASSES+= config
-SUBST_SED.config+= -e 's,/etc,${PKG_SYSCONFDIR},g'
-SUBST_SED.config+= -e 's,/var/lib,${PREFIX}/share,g'
+SUBST_SED.config+= -e 's,/etc/radicale,${PKG_SYSCONFDIR},g'
+SUBST_SED.config+= -e 's,/var/lib/,${VARBASE}/,g'
SUBST_FILES.config+= radicale/config.py config rights
+SUBST_FILES.config+= DOCUMENTATION.md
SUBST_STAGE.config= pre-configure
-SUBST_MESSAGE.config= Fixing path to configuration file.
+SUBST_MESSAGE.config= Fixing path to configuration file
SUBST_CLASSES+= server
SUBST_SED.server+= -e 's,\#filesystem_folder,filesystem_folder,'
SUBST_FILES.server+= config
SUBST_STAGE.server= pre-configure
-SUBST_MESSAGE.server= Override default collection location
-
-DEPENDS+= ${PYPKGPREFIX}-vobject-[0-9]*:../../textproc/py-vobject
-DEPENDS+= ${PYPKGPREFIX}-defusedxml-[0-9]*:../../textproc/py-defusedxml
-DEPENDS+= ${PYPKGPREFIX}-dateutil-[0-9]*:../../time/py-dateutil
-
-# for md5 htpasswd_encryption method
-DEPENDS+= ${PYPKGPREFIX}-passlib-[0-9]*:../../security/py-passlib
+SUBST_MESSAGE.server= Adapt default collection location
post-install:
- ${INSTALL_DATA} ${WRKSRC}/config ${DESTDIR}${PREFIX}/${EGDIR}/config
- ${INSTALL_DATA} ${WRKSRC}/rights ${DESTDIR}${PREFIX}/${EGDIR}/rights
-
-PYTHON_VERSIONED_DEPENDENCIES+= setuptools
+.for docf in config rights radicale.wsgi
+ ${INSTALL_DATA} ${WRKSRC}/${docf} ${DESTDIR}${PREFIX}/${EGDIR}/${docf}
+.endfor
+.for docf in CHANGELOG COPYING DOCUMENTATION README
+ ${INSTALL_DATA} ${WRKSRC}/${docf}.md \
+ ${DESTDIR}${PREFIX}/${DOCDIR}/${docf}.md
+.endfor
.include "../../lang/python/egg.mk"
.include "../../lang/python/versioned_dependencies.mk"
diff --git a/Radicale3/PLIST b/Radicale3/PLIST
index b7c9ad57ea..95303b8a5c 100644
--- a/Radicale3/PLIST
+++ b/Radicale3/PLIST
@@ -15,6 +15,9 @@ ${PYSITELIB}/radicale/__main__.pyo
${PYSITELIB}/radicale/app/__init__.py
${PYSITELIB}/radicale/app/__init__.pyc
${PYSITELIB}/radicale/app/__init__.pyo
+${PYSITELIB}/radicale/app/base.py
+${PYSITELIB}/radicale/app/base.pyc
+${PYSITELIB}/radicale/app/base.pyo
${PYSITELIB}/radicale/app/delete.py
${PYSITELIB}/radicale/app/delete.pyc
${PYSITELIB}/radicale/app/delete.pyo
@@ -84,6 +87,7 @@ ${PYSITELIB}/radicale/log.pyo
${PYSITELIB}/radicale/pathutils.py
${PYSITELIB}/radicale/pathutils.pyc
${PYSITELIB}/radicale/pathutils.pyo
+${PYSITELIB}/radicale/py.typed
${PYSITELIB}/radicale/rights/__init__.py
${PYSITELIB}/radicale/rights/__init__.pyc
${PYSITELIB}/radicale/rights/__init__.pyo
@@ -108,6 +112,9 @@ ${PYSITELIB}/radicale/storage/__init__.pyo
${PYSITELIB}/radicale/storage/multifilesystem/__init__.py
${PYSITELIB}/radicale/storage/multifilesystem/__init__.pyc
${PYSITELIB}/radicale/storage/multifilesystem/__init__.pyo
+${PYSITELIB}/radicale/storage/multifilesystem/base.py
+${PYSITELIB}/radicale/storage/multifilesystem/base.pyc
+${PYSITELIB}/radicale/storage/multifilesystem/base.pyo
${PYSITELIB}/radicale/storage/multifilesystem/cache.py
${PYSITELIB}/radicale/storage/multifilesystem/cache.pyc
${PYSITELIB}/radicale/storage/multifilesystem/cache.pyo
@@ -144,6 +151,12 @@ ${PYSITELIB}/radicale/storage/multifilesystem/upload.pyo
${PYSITELIB}/radicale/storage/multifilesystem/verify.py
${PYSITELIB}/radicale/storage/multifilesystem/verify.pyc
${PYSITELIB}/radicale/storage/multifilesystem/verify.pyo
+${PYSITELIB}/radicale/storage/multifilesystem_nolock.py
+${PYSITELIB}/radicale/storage/multifilesystem_nolock.pyc
+${PYSITELIB}/radicale/storage/multifilesystem_nolock.pyo
+${PYSITELIB}/radicale/types.py
+${PYSITELIB}/radicale/types.pyc
+${PYSITELIB}/radicale/types.pyo
${PYSITELIB}/radicale/utils.py
${PYSITELIB}/radicale/utils.pyc
${PYSITELIB}/radicale/utils.pyo
@@ -163,5 +176,10 @@ ${PYSITELIB}/radicale/web/none.pyo
${PYSITELIB}/radicale/xmlutils.py
${PYSITELIB}/radicale/xmlutils.pyc
${PYSITELIB}/radicale/xmlutils.pyo
+share/doc/radicale/CHANGELOG.md
+share/doc/radicale/COPYING.md
+share/doc/radicale/DOCUMENTATION.md
+share/doc/radicale/README.md
share/examples/radicale/config
+share/examples/radicale/radicale.wsgi
share/examples/radicale/rights
diff --git a/Radicale3/distinfo b/Radicale3/distinfo
index 0516019975..41642cfbd0 100644
--- a/Radicale3/distinfo
+++ b/Radicale3/distinfo
@@ -1,5 +1,5 @@
$NetBSD: distinfo,v 1.4 2017/09/04 10:35:44 prlw1 Exp $
-RMD160 (Radicale-3.0.6.tar.gz) = d499cd93ff45320c3264ea1628142111a759cf8c
-SHA512 (Radicale-3.0.6.tar.gz) = dfc4e5c0cdb8037e1c04eca7df095f5b4a4a096b8c501d6d1f22eb63c0038f63a9fa6a1c65c92af17ebef4c973472938bac44b7cc3ca0eff7b83be82fe459077
-Size (Radicale-3.0.6.tar.gz) = 102983 bytes
+BLAKE2s (Radicale-3.1.8.tar.gz) = 8533a3d37ab861352a84a8b6e35269d04ec89e555ae1c239167f2839792f0a51
+SHA512 (Radicale-3.1.8.tar.gz) = 282c45c5d7b6ad0d3614dc42766a4b952c65491a67c24c93f5ef1d7cc546388b4f3a2cbf0cb5ea2b8a345b05eeb92ec888ea459cf355db67e248386ec1a0c3e5
+Size (Radicale-3.1.8.tar.gz) = 113385 bytes
diff --git a/Radicale3/files/radicale.sh b/Radicale3/files/radicale.sh
index 5a7efa23d4..b028a42379 100644
--- a/Radicale3/files/radicale.sh
+++ b/Radicale3/files/radicale.sh
@@ -1,6 +1,6 @@
#!@RCD_SCRIPTS_SHELL@
#
-# $NetBSD: radicale.sh,v 1.1 2017/07/01 05:57:07 darcy Exp $
+# $NetBSD$
#
# PROVIDE: radicale
# REQUIRE: DAEMON
@@ -13,26 +13,32 @@ rcvar=$name
load_rc_config $name
-: ${radicale_user:=@RADICALE_USER@}
-: ${radicale_group:=@RADICALE_GROUP@}
-: ${radicale_pidfile:="@VARBASE@/run/${name}.pid"}
-: ${radicale_logfile:="@VARBASE@/log/${name}.log"}
-
-command="@PREFIX@/bin/radicale"
-command_args=" </dev/null >/dev/null 2>${radicale_logfile} & echo \$! >${radicale_pidfile}"
command_interpreter="@PYTHONBIN@"
-required_files="@PKG_SYSCONFDIR@/radicale/config"
+
+task="@PREFIX@/bin/${name}"
+procname="${task}"
+pidfile="@VARBASE@/run/${name}/${name}.pid"
+
+command="@PREFIX@/sbin/daemonize"
+
+command_args="-a \
+ -p ${pidfile} \
+ -u @RADICALE_USER@ \
+ -e @RADICALE_LOGDIR@/${name}.log \
+ -o @RADICALE_LOGDIR@/daemonize.stdout \
+ ${task}"
+
+required_files="@PKG_SYSCONFDIR@/config"
start_precmd="radicale_precmd"
radicale_precmd()
{
- @TOUCH@ ${radicale_logfile} && \
- @CHOWN@ ${radicale_user}:${radicale_group} ${radicale_logfile} && \
- @CHMOD@ 0750 ${radicale_logfile} && \
- @TOUCH@ ${radicale_pidfile} && \
- @CHOWN@ ${radicale_user}:${radicale_group} ${radicale_pidfile} && \
- @CHMOD@ 0750 ${radicale_pidfile}
+ if [ ! -e "@VARBASE@/run/${name}" ] ; then
+ install -d -o @RADICALE_USER@ -g @RADICALE_GROUP@ \
+ -m 0750 "@VARBASE@/run/${name}"
+ fi
}
+load_rc_config ${name}
run_rc_command "$1"
Home |
Main Index |
Thread Index |
Old Index