From 2f1a3a1f299e07eef09a2fdf49ce1022559ed2c3 Mon Sep 17 00:00:00 2001 From: Josef Schlehofer Date: Fri, 9 Jan 2026 10:36:10 +0100 Subject: [PATCH] radicale2: drop package as we do have radicale3 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 "", line 198, in _run_module_as_main File "", 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 _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 --- net/radicale2/Makefile | 91 ------ net/radicale2/files/radicale2.config | 7 - net/radicale2/files/radicale2.init | 278 ------------------ .../110-disable-setup_requirements.patch | 11 - 4 files changed, 387 deletions(-) delete mode 100644 net/radicale2/Makefile delete mode 100644 net/radicale2/files/radicale2.config delete mode 100755 net/radicale2/files/radicale2.init delete mode 100644 net/radicale2/patches/110-disable-setup_requirements.patch diff --git a/net/radicale2/Makefile b/net/radicale2/Makefile deleted file mode 100644 index c2aacd68a2..0000000000 --- a/net/radicale2/Makefile +++ /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 index 5107219df0..0000000000 --- a/net/radicale2/files/radicale2.config +++ /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 index ac7a81a757..0000000000 --- a/net/radicale2/files/radicale2.init +++ /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 index bb832d1443..0000000000 --- a/net/radicale2/patches/110-disable-setup_requirements.patch +++ /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,