commit:     2366a6275eda717b0cec2520d7dfc9c26cd98a5b
Author:     Henning Schild <henning <AT> hennsch <DOT> de>
AuthorDate: Wed Feb 11 08:25:11 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Feb 11 23:56:26 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2366a627

www-apps/radicale: bump to 3.6.0

This one uses libpass but can officially be used with old passlib as
well. In order for that to work we need to force a bcrypt version < 5,
so we RDEPEND on that for now.

In the future the whole passlib/libpass story will hopefully resolve and
we can get back to no patching and optfeature.

Closes: https://bugs.gentoo.org/968579
Signed-off-by: Henning Schild <henning <AT> hennsch.de>
Part-of: https://github.com/gentoo/gentoo/pull/45749
Closes: https://github.com/gentoo/gentoo/pull/45749
Signed-off-by: Sam James <sam <AT> gentoo.org>

 www-apps/radicale/Manifest              |   1 +
 www-apps/radicale/radicale-3.6.0.ebuild | 111 ++++++++++++++++++++++++++++++++
 2 files changed, 112 insertions(+)

diff --git a/www-apps/radicale/Manifest b/www-apps/radicale/Manifest
index 87027950d108..cd7acf7d5a5b 100644
--- a/www-apps/radicale/Manifest
+++ b/www-apps/radicale/Manifest
@@ -1 +1,2 @@
 DIST Radicale-3.5.10.gh.tar.gz 235636 BLAKE2B 
86c89271172206f5ec9bb10b666f229667ce3515016e90728c6dfe71992a77dd20fced46b35ebb8b38f880a4fd272756cbfbb9ce6ce708e0df2e8746df27ea9b
 SHA512 
d7906d300fa68b81fd84520862581c565caa9b000202674827eb8a4954a8375f94857fc6c2c85e710285fca859e378a4bab50404b6fd31f398a397edfaab4aaf
+DIST Radicale-3.6.0.gh.tar.gz 240268 BLAKE2B 
c4daeee664886e7bf3738596cfd4d7355d2ee1a8c103c660eef7a7523dce7da55ef832bec51fd8ccec6d6f9d217f1866767e61bd796992db884af6f0a5689f94
 SHA512 
c091da37da4da4319f8c7651f8eb7bf3162b765667e718afef0849432f8b634fcb666a29cfd68698189ffc25b30dde612232d3dae5f965fd879e0b16e7c14ceb

diff --git a/www-apps/radicale/radicale-3.6.0.ebuild 
b/www-apps/radicale/radicale-3.6.0.ebuild
new file mode 100644
index 000000000000..5daa41e402ad
--- /dev/null
+++ b/www-apps/radicale/radicale-3.6.0.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 optfeature systemd
+
+MY_P=${P^}
+DESCRIPTION="A simple CalDAV calendar server"
+HOMEPAGE="https://radicale.org/";
+SRC_URI="
+       https://github.com/Kozea/Radicale/archive/refs/tags/v${PV}.tar.gz
+               -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+
+RDEPEND="
+       >=acct-user/radicale-0-r2
+       acct-group/radicale
+       dev-python/defusedxml[${PYTHON_USEDEP}]
+       dev-python/passlib[${PYTHON_USEDEP}]
+       dev-python/vobject[${PYTHON_USEDEP}]
+       sys-apps/util-linux
+"
+
+# was optfeature but need to stay below version 5
+# https://github.com/Kozea/Radicale/issues/1980
+RDEPEND="${RDEPEND}
+       <dev-python/bcrypt-5[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+       test? (
+               dev-python/pytest[${PYTHON_USEDEP}]
+               dev-python/waitress[${PYTHON_USEDEP}]
+       )
+"
+
+distutils_enable_tests pytest
+
+RDIR=/var/lib/"${PN}"
+
+DOCS=( DOCUMENTATION.md CHANGELOG.md )
+
+src_prepare() {
+       default
+
+       # use passlib over libpass
+       # https://github.com/Kozea/Radicale/issues/1980
+       sed -i -e 's|libpass[^"]*|passlib|' pyproject.toml || die
+}
+
+python_test() {
+       epytest -o addopts= radicale/tests/
+}
+
+python_install_all() {
+       rm README* || die
+       # init file
+       newinitd "${FILESDIR}"/radicale-r4.init.d radicale
+       systemd_dounit "${FILESDIR}/${PN}.service"
+
+       # directories
+       keepdir "${RDIR}"
+       fperms 0750 "${RDIR}"
+       fowners "${PN}:${PN}" "${RDIR}"
+
+       # config file
+       insinto /etc/"${PN}"
+       doins config
+
+       # fcgi and wsgi files
+       exeinto /usr/share/"${PN}"
+       doexe radicale.wsgi
+
+       distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+       local _erdir="${EROOT}${RDIR}"
+
+       ewarn ""
+       ewarn "Since 3.5.0 the default [auth] type is \"denyall\". You need to"
+       ewarn "change your config if you used the default type so far!"
+       ewarn ""
+       einfo "A sample WSGI script has been put into ${EROOT}/usr/share/${PN}."
+       einfo "You will also find there an example FastCGI script."
+       if [[ $(stat --format="%U:%G:%a" "${_erdir}") != "${PN}:${PN}:750" ]]
+       then
+               ewarn ""
+               ewarn "Unsafe file permissions detected on ${_erdir}."
+               ewarn "This probably comes from an earlier version of this 
ebuild."
+               ewarn "To fix run:"
+               ewarn "#  \`chown -R ${PN}:${PN} ${_erdir}\`"
+               ewarn "#  \`chmod 0750 ${_erdir}\`"
+               ewarn "#  \`chmod -R o= ${_erdir}\`"
+       fi
+
+       optfeature "Publish changes to rabbitmq" dev-python/pika
+       optfeature "LDAP/LDAPS authentication" dev-python/ldap3 
dev-python/python-ldap
+       ## TODO make that an optfeature again after libpass/passlib takeover
+       # optfeature "bcrypt password hashing" dev-python/bcrypt
+       optfeature "argon2 password hashing" dev-python/argon2-cffi
+}

Reply via email to