radicale2: drop package as we do have radicale3
authorJosef Schlehofer <pepe.schlehofer@gmail.com>
Fri, 9 Jan 2026 09:36:10 +0000 (10:36 +0100)
committerJosef Schlehofer <pepe.schlehofer@gmail.com>
Fri, 9 Jan 2026 16:09:08 +0000 (17:09 +0100)
This package is not compiled due to this build log failure:
```
adding 'radicale-2.1.12.dist-info/RECORD'
removing build/bdist.linux-aarch64/wheel
Successfully built radicale-2.1.12-py3-none-any.whl
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/builder/shared-workdir/build/sdk/staging_dir/hostpkg/lib/python3.13/site-packages/installer/__main__.py", line 98, in <module>
    _main(sys.argv[1:], "python -m installer")
    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builder/shared-workdir/build/sdk/staging_dir/hostpkg/lib/python3.13/site-packages/installer/__main__.py", line 86, in _main
    with WheelFile.open(args.wheel) as source:
         ~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/builder/shared-workdir/build/sdk/staging_dir/target-aarch64_cortex-a53_musl/usr/lib/python3.13/contextlib.py", line 141, in __enter__
    return next(self.gen)
  File "/builder/shared-workdir/build/sdk/staging_dir/hostpkg/lib/python3.13/site-packages/installer/sources.py", line 162, in open
    with zipfile.ZipFile(path) as f:
         ~~~~~~~~~~~~~~~^^^^^^
  File "/builder/shared-workdir/build/sdk/staging_dir/target-aarch64_cortex-a53_musl/usr/lib/python3.13/zipfile/__init__.py", line 1367, in __init__
    self.fp = io.open(file, filemode)
              ~~~~~~~^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/builder/shared-workdir/build/sdk/build_dir/target-aarch64_cortex-a53_musl/pypi/Radicale-2.1.12//openwrt-build/Radicale-2.1.12-*.whl'
```

This occurred due to PEP 625, which requires wheel filenames in lowercase.
The local build produces lowercase-compliant names (radicale-2.1.12-*.whl),
but the script searches for uppercase (Radicale-2.1.12-*.whl).

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
net/radicale2/Makefile [deleted file]
net/radicale2/files/radicale2.config [deleted file]
net/radicale2/files/radicale2.init [deleted file]
net/radicale2/patches/110-disable-setup_requirements.patch [deleted file]

diff --git a/net/radicale2/Makefile b/net/radicale2/Makefile
deleted file mode 100644 (file)
index c2aacd6..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=radicale2
-PKG_VERSION:=2.1.12
-PKG_RELEASE:=1
-
-PKG_LICENSE:=GPL-3.0-or-later
-PKG_LICENSE_FILES:=COPYING
-PKG_CPE_ID:=cpe:/a:radicale:radicale
-
-PYPI_NAME:=Radicale
-PKG_HASH:=8fd07806e3e4f873b63838dfee69bf0283216943df6051cf80a22f11d7a7eda4
-
-include ../../lang/python/pypi.mk
-include $(INCLUDE_DIR)/package.mk
-include ../../lang/python/python3-package.mk
-
-define Package/radicale2/Default
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Web Servers/Proxies
-  URL:=https://radicale.org/
-  TITLE:=Radicale 2.x CalDAV/CardDAV server
-endef
-
-define Package/radicale2
-$(call Package/radicale2/Default)
-  USERID:=radicale2=225:radicale2=225
-  DEPENDS:=+python3 +python3-dateutil +python3-vobject +python3-setuptools
-  CONFLICTS:=radicale
-endef
-
-define Package/radicale2-examples
-$(call Package/radicale2/Default)
-  TITLE:=Radicale v2 example configs
-endef
-
-define Package/radicale2-meta/description
-The Radicale Project is a CalDAV (calendar) and CardDAV (contact) server. It aims to be a light solution, easy to use, easy to install, easy to configure. As a consequence, it requires few software dependencies and is pre-configured to work out-of-the-box.
-
-The Radicale Project runs on most of the UNIX-like platforms (Linux, BSD, MacOS X) and Windows. It is known to work with Evolution, Lightning, iPhone and Android clients. It is free and open-source software, released under GPL version 3.
-endef
-
-define Package/radicale2/description
-$(call Package/radicale2-meta/description)
-
-This package contains the python files.
-
-Note that md5 encryption of passwords requires passlib, and
-bcrypt encryption requires passlib + bcrypt.  These are not
-added as hard dependencies as users may be running radicale2
-with a web server doing the authentication instead of radicale2.
-
-endef
-
-define Package/radicale2-examples/description
-$(call Package/radicale2-meta/description)
-.
-This package contains upstream configs for example purposes.
-endef
-
-define Package/radicale2/conffiles
-/etc/config/radicale2
-/etc/radicale2/config
-/etc/radicale2/users
-/etc/radicale2/rights
-/etc/radicale2/logging
-endef
-
-define Py3Package/radicale2/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/radicale $(1)/usr/bin/radicale2
-       $(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d
-       $(INSTALL_CONF) ./files/radicale2.config $(1)/etc/config/radicale2
-       $(INSTALL_BIN) ./files/radicale2.init $(1)/etc/init.d/radicale2
-endef
-
-define Package/radicale2-examples/install
-       $(INSTALL_DIR) $(1)/usr/share/radicale2
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/config $(1)/usr/share/radicale2/config.example
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/rights $(1)/usr/share/radicale2/rights.example
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/logging $(1)/usr/share/radicale2/logging.example
-endef
-
-$(eval $(call Py3Package,radicale2))
-$(eval $(call BuildPackage,radicale2))
-$(eval $(call BuildPackage,radicale2-src))
-$(eval $(call BuildPackage,radicale2-examples))
diff --git a/net/radicale2/files/radicale2.config b/net/radicale2/files/radicale2.config
deleted file mode 100644 (file)
index 5107219..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#config section server
-       # list host 127.0.0.1:5232
-       # list host ::1:5232
-
-#config user
-       #option name user1
-       #option password password1
diff --git a/net/radicale2/files/radicale2.init b/net/radicale2/files/radicale2.init
deleted file mode 100755 (executable)
index ac7a81a..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-#!/bin/sh /etc/rc.common
-
-START=80
-STOP=10
-
-CFGDIR=/var/etc/radicale2
-SYSCFG=$CFGDIR/config
-USRCFG=$CFGDIR/users
-
-DATADIR="/srv/radicale2/data"
-LOGDIR=""
-USE_PROCD=1
-
-# we could start with empty configuration file using defaults
-[ -f ${IPKG_INSTROOT}/etc/config/radicale2 ] || touch ${IPKG_INSTROOT}/etc/config/radicale2
-
-conf_line() {
-       local cfgfile="$1"
-       local option="$2"
-       local value="$3"
-
-       if [ -n "$value" ]; then
-               eval "echo '$2' = '$value' >>'$cfgfile'"
-       fi
-}
-
-conf_getline() {
-       local cfg="$1"
-       local cfgfile="$2"
-       local option="$3"
-       local defval="$4"
-       local flag="$5"
-       unset value
-
-       if [ "$flag" != "1" ]; then
-               config_get value "$cfg" "$option" "$defval"
-               conf_line "$cfgfile" "$option" "$value"
-       else
-               config_get_bool value "$cfg" "$option" "$defval"
-               [ -z "$defval" ] && defval=1
-               if [ "$value" -ne "$defval" ]; then
-                       if [ "$value" -ne 0 ]; then
-                               conf_line "$cfgfile" "$option" "True"
-                       else
-                               conf_line "$cfgfile" "$option" "False"
-                       fi
-               fi
-       fi
-}
-
-build_hosts_line() {
-       local val="$1"
-
-       append hostlist "$val" ", "
-}
-
-conf_section() {
-       local cfg="$1"
-       local cfgfile="$2"
-       local hostlist=""
-       local value
-
-       echo "[$cfg]
-" >>$cfgfile
-
-       case $cfg in
-       server)
-               config_list_foreach "$cfg" host build_hosts_line
-               conf_line "$tmpfile" hosts "$hostlist"
-               conf_getline "$cfg" $tmpfile max_connections
-               conf_getline "$cfg" $tmpfile max_conntent_length
-               conf_getline "$cfg" $tmpfile timeout
-
-               conf_getline "$cfg" $tmpfile ssl 0 1
-               if [ "$value" -eq 1 ]; then
-                       conf_getline "$cfg" $tmpfile certificate
-                       conf_getline "$cfg" $tmpfile key
-                       conf_getline "$cfg" $tmpfile certificate_authority
-                       conf_getline "$cfg" $tmpfile protocol
-                       conf_getline "$cfg" $tmpfile ciphers
-               fi
-
-               conf_getline "$cfg" $tmpfile dns_lookup 1 1
-               conf_getline "$cfg" $tmpfile realm
-               ;;
-       encoding)
-               conf_getline "$cfg" $tmpfile request
-               conf_getline "$cfg" $tmpfile stock
-               ;;
-       auth)
-               conf_getline "$cfg" $tmpfile "type" htpasswd
-               if [ "$value" = "htpasswd" ]; then
-                       conf_getline "$cfg" $tmpfile htpasswd_filename $CFGDIR/users
-                       conf_getline "$cfg" "$tmpfile" htpasswd_encryption plain
-               fi
-
-               conf_getline "$cfg" "$tmpfile" delay
-               ;;
-       rights)
-               conf_getline "$cfg" "$tmpfile" "type"
-               if [ "$value" = "from_file" ]; then
-                       conf_getline "$cfg" "$tmpfile" "file"
-               fi
-               ;;
-       storage)
-               conf_getline "$cfg" $tmpfile filesystem_folder "$DATADIR"
-               DATADIR="$value"
-               conf_getline "$cfg" $tmpfile filesystem_locking 1 1
-               conf_getline "$cfg" $tmpfile max_sync_token_age
-               conf_getline "$cfg" $tmpfile filesystem_close_lock_file 0 1
-               conf_getline "$cfg" $tmpfile hook
-               ;;
-       web)
-               conf_getline "$cfg" $tmpfile "type"
-               ;;
-       logging)
-               conf_getline "$cfg" "$tmpfile" config
-               conf_getline "$cfg" "$tmpfile" debug 0 1
-               conf_getline "$cfg" "$tmpfile" full_environment 0 1
-               conf_getline "$cfg" "$tmpfile" mask_passwords 1 1
-               ;;
-       headers)
-               config_get "$cfg" "$tmpfile" cors
-               if [ -n "$cors" ]; then
-                       echo "Access-Control-Allow-Origin = $cors" >>$tmpfile
-               fi
-               ;;
-       esac
-
-       echo "
-" >>$cfgfile
-}
-
-add_missing_sections() {
-       local cfgfile="$1"
-
-       for section in server encoding auth rights storage web logging headers; do
-               if [ "$section" = "server" ]; then
-                       grep -q "\[$section\]" $cfgfile || echo "
-[$section]
-hosts = 0.0.0.0:5232, [::]:5232
-
-" >>$cfgfile
-               elif [ "$section" = "auth" ]; then
-                       grep -q "\[$section\]" $cfgfile || echo "
-[$section]
-type = htpasswd
-htpasswd_filename = $CFGDIR/users
-htpasswd_encryption = plain
-
-" >>$cfgfile
-               elif [ "$section" = "storage" ]; then
-                       grep -q "\[$section\]" $cfgfile || echo "
-[$section]
-filesystem_folder = $DATADIR
-
-" >>$cfgfile
-               else
-                       grep -q "\[$section\]" $cfgfile || echo "
-[$section]
-
-" >>$cfgfile
-               fi
-       done
-}
-
-add_user() {
-       local cfg="$1"
-       local tmpfile="$2"
-       local name password
-
-       config_get name "$cfg" name
-       config_get password "$cfg" password
-
-       [ -n "$name" ] && echo "$name:$password" >>$tmpfile
-}
-
-build_users() {
-       local tmpfile="$1"
-
-       # temporary config file
-       # radicale2 needs read access
-       chmod 0640 $tmpfile
-
-       config_foreach add_user user "$tmpfile"
-}
-
-build_config() {
-       local tmpfile=$(mktemp)
-       local tmpfile2=$(mktemp)
-
-       # temporary config file
-       # radicale2 need read access
-       chmod 0640 $tmpfile
-
-       config_load radicale2
-       config_foreach conf_section section $tmpfile
-       add_missing_sections $tmpfile
-
-       build_users $tmpfile2
-
-       # move tmp to final
-       mkdir -m0750 -p $CFGDIR
-       cat $tmpfile >$SYSCFG
-       rm -f $tmpfile
-       cat $tmpfile2 >$USRCFG
-       rm -f $tmpfile2
-}
-
-set_permission() {
-       # config file permissions (read access for group)
-       chmod 0750 $CFGDIR
-       chmod 0640 $SYSCFG
-       chmod 0640 $USRCFG
-       chgrp -R radicale2 $CFGDIR
-       # data directory does not exist
-       [ -d $DATADIR ] || {
-               logger -p user.error -t "radicale2[----]" "Data directory '$DATADIR' does not exist. Startup failed !!!"
-       }
-}
-
-
-interface_triggers() {
-       local action="$1"
-       local triggerlist trigger
-
-       config_load radicale2
-       config_get triggerlist server triggerlist
-
-       . /lib/functions/network.sh
-
-       if [ -n "$triggerlist" ]; then
-               for trigger in $triggerlist; do
-                       if [ "$action" = "add_trigger" ]; then
-                               procd_add_interface_trigger "interface.*" "$trigger" /etc/init.d/radicale2 reload
-                       else
-                               network_is_up "$trigger" && return 0
-                       fi
-               done
-       else
-               if [ "$action" = "add_trigger" ]; then
-                       procd_add_raw_trigger "interface.*.up" 2000 /etc/init.d/radicale2 reload
-               else
-                       ubus call network.device status | grep -q '"up": true' && return 0
-               fi
-       fi
-       [ "$action" = "add_trigger" ] || return 1
-}
-
-start_service() {
-       local haveinterface
-
-       if [ ! -r /etc/radicale2/config ]; then
-               build_config
-               set_permission
-       fi
-
-       interface_triggers "check_interface_up" || return
-
-       procd_open_instance "radicale2"
-       procd_set_param respawn
-       procd_set_param stderr 1
-       procd_set_param stdout 1
-       if [ ! -r /etc/radicale2/config ]; then
-               procd_set_param command /usr/bin/radicale2 --config="$SYSCFG"
-       else
-               procd_set_param command /usr/bin/radicale2 --config="/etc/radicale2/config"
-       fi
-       procd_set_param user radicale2
-       procd_close_instance
-
-       return 0
-}
-
-service_triggers() {
-       interface_triggers "add_trigger"
-       procd_add_reload_trigger "radicale2"
-}
diff --git a/net/radicale2/patches/110-disable-setup_requirements.patch b/net/radicale2/patches/110-disable-setup_requirements.patch
deleted file mode 100644 (file)
index bb832d1..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/setup.py
-+++ b/setup.py
-@@ -67,7 +67,7 @@ setup(
-     package_data={"radicale": WEB_FILES},
-     entry_points={"console_scripts": ["radicale = radicale.__main__:run"]},
-     install_requires=["vobject>=0.9.6", "python-dateutil>=2.7.3"],
--    setup_requires=pytest_runner,
-+    setup_requires=[],
-     tests_require=tests_require,
-     extras_require={
-         "test": tests_require,