mirror of
https://github.com/openwrt/packages.git
synced 2025-12-10 12:41:22 +00:00
Compare commits
25 Commits
57242e5db3
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0b6d2a2859 | ||
|
|
7403bb5bef | ||
|
|
d83488b077 | ||
|
|
afd2ef4f3a | ||
|
|
aecb53a8f7 | ||
|
|
10febdb24a | ||
|
|
83f3e116b1 | ||
|
|
dfe2967675 | ||
|
|
5dc13908b4 | ||
|
|
e35de9af78 | ||
|
|
8bf5f683fe | ||
|
|
803a754525 | ||
|
|
ba55134a1a | ||
|
|
a77e5889bc | ||
|
|
ebf044619d | ||
|
|
f4cf114981 | ||
|
|
c02a20dc90 | ||
|
|
90ee36fceb | ||
|
|
4406b792e7 | ||
|
|
3365ba873b | ||
|
|
6db7c6bae4 | ||
|
|
560e89e3bf | ||
|
|
ffa24c10da | ||
|
|
e0d24e48fd | ||
|
|
605a457cac |
@@ -1,13 +1,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=qbee-agent
|
||||
PKG_VERSION:=2025.34
|
||||
PKG_VERSION:=2025.49
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/qbee-io/qbee-agent.git
|
||||
PKG_SOURCE_VERSION:=e1c6ced58a7d5714ba413695a105177da0d5dd3a
|
||||
PKG_MIRROR_HASH:=c27f89de3456d63af575e234d919cea916f892779e56f34b6a80659d5daa7d7e
|
||||
PKG_SOURCE_VERSION:=9493a57f7f4f2cb4c0db3dfd1812042b96479fc2
|
||||
PKG_MIRROR_HASH:=b07c3c51447da45d6139c305a0f92bcd85b502ab3cc2af0b8afb99f73ae43288
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-babel
|
||||
PKG_VERSION:=2.17.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PYPI_NAME:=babel
|
||||
PKG_HASH:=0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d
|
||||
@@ -40,7 +40,6 @@ define Package/python3-babel
|
||||
URL:=https://babel.pocoo.org/
|
||||
DEPENDS:= \
|
||||
+python3-decimal \
|
||||
+python3-distutils \
|
||||
+python3-email \
|
||||
+python3-light \
|
||||
+python3-logging \
|
||||
|
||||
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-docker
|
||||
PKG_VERSION:=7.1.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PYPI_NAME:=docker
|
||||
PKG_HASH:=ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c
|
||||
@@ -25,8 +25,8 @@ define Package/python3-docker
|
||||
TITLE:=A Python library for the Docker Engine API
|
||||
URL:=https://github.com/docker/docker-py
|
||||
DEPENDS:=\
|
||||
+python3-light +python3-distutils +python3-logging \
|
||||
+python3-openssl +python3-packaging +python3-paramiko +python3-six \
|
||||
+python3-light +python3-logging +python3-openssl \
|
||||
+python3-packaging +python3-paramiko +python3-six \
|
||||
+python3-requests +python3-urllib3 +python3-websocket-client
|
||||
endef
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-incremental
|
||||
PKG_VERSION:=24.7.2
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PYPI_NAME:=incremental
|
||||
PKG_HASH:=fb4f1d47ee60efe87d4f6f0ebb5f70b9760db2b2574c59c8e8912be4ebd464c9
|
||||
@@ -32,7 +32,7 @@ define Package/python3-incremental
|
||||
SUBMENU:=Python
|
||||
TITLE:=Versions your Python projects
|
||||
URL:=https://github.com/twisted/incremental
|
||||
DEPENDS:=+python3-light +python3-distutils +python3-pkg-resources
|
||||
DEPENDS:=+python3-light +python3-pkg-resources
|
||||
endef
|
||||
|
||||
define Package/python3-incremental/description
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=yt-dlp
|
||||
PKG_VERSION:=2025.11.12
|
||||
PKG_VERSION:=2025.12.8
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=yt-dlp
|
||||
PKG_HASH:=5f0795a6b8fc57a5c23332d67d6c6acf819a0b46b91a6324bae29414fa97f052
|
||||
PKG_HASH:=b773c81bb6b71cb2c111cfb859f453c7a71cf2ef44eff234ff155877184c3e4f
|
||||
PYPI_SOURCE_NAME:=yt_dlp
|
||||
|
||||
PKG_MAINTAINER:=George Sapkin <george@sapk.in>
|
||||
|
||||
@@ -1,22 +1,19 @@
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=adguardhome
|
||||
PKG_VERSION:=0.107.69
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=0.107.70
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/AdGuardHome/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=65f95054bdb4efbfba446b708e7e2a1a36365ddbabcb7236daab1a44a83d06bc
|
||||
PKG_HASH:=5eb0c7076ab7b007f0e5afbaffc260d8950b5248bd04407464a2b2f0169694ba
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/AdGuardHome-$(PKG_VERSION)
|
||||
|
||||
FRONTEND_DEST:=$(PKG_NAME)-frontend-$(PKG_VERSION).tar.gz
|
||||
FRONTEND_URL:=https://github.com/AdguardTeam/AdGuardHome/releases/download/v$(PKG_VERSION)/
|
||||
FRONTEND_HASH:=8414ebbbba860f92d60d3ae3d591229e025f02bb0d2c5f87581df4b569ac3cce
|
||||
FRONTEND_HASH:=127658a4155d429fc8f7c6a4408107662a963b39f6db869f13dcd40aff12e6eb
|
||||
|
||||
PKG_LICENSE:=GPL-3.0-only
|
||||
PKG_LICENSE_FILES:=LICENSE.txt
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
# Migrate old config format only
|
||||
OLD_CONFIG_FILE=$(uci -q get adguardhome.config.config)
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# shellcheck disable=SC3043 # ash supports local
|
||||
|
||||
PROG=/usr/bin/AdGuardHome
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
AdGuardHome --version | grep -F "$PKG_VERSION"
|
||||
|
||||
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=bind
|
||||
PKG_VERSION:=9.20.15
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
USERID:=bind=57:bind=57
|
||||
|
||||
PKG_MAINTAINER:=Noah Meyerhans <frodo@morgul.net>
|
||||
|
||||
@@ -20,6 +20,10 @@ reload_service() {
|
||||
rndc -q reload
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
rndc stop
|
||||
}
|
||||
|
||||
start_service() {
|
||||
user_exists bind 57 || user_add bind 57
|
||||
group_exists bind 57 || group_add bind 57
|
||||
|
||||
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fail2ban
|
||||
PKG_VERSION:=1.1.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/fail2ban/fail2ban/tar.gz/$(PKG_VERSION)?
|
||||
@@ -30,7 +30,6 @@ define Package/fail2ban
|
||||
+nftables \
|
||||
+python3-light \
|
||||
+python3-ctypes \
|
||||
+python3-distutils \
|
||||
+python3-email \
|
||||
+python3-logging \
|
||||
+python3-sqlite3 \
|
||||
|
||||
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=flent
|
||||
PKG_VERSION:=2.2.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PYPI_NAME:=flent
|
||||
PKG_HASH:=04fc21de858863560423e79c822f405225f829afd8e5d62293099fbef341f9e8
|
||||
@@ -26,7 +26,6 @@ define Package/flent
|
||||
+python3-light \
|
||||
+python3-uuid \
|
||||
+python3-logging \
|
||||
+python3-distutils \
|
||||
+python3-defusedxml \
|
||||
+flent-tools \
|
||||
+netperf \
|
||||
|
||||
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=modemmanager
|
||||
PKG_VERSION:=1.24.0
|
||||
PKG_RELEASE:=7
|
||||
PKG_RELEASE:=8
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git
|
||||
|
||||
@@ -526,13 +526,6 @@ modemmanager_init_epsbearer() {
|
||||
local connectargs="$3"
|
||||
local apn="$4"
|
||||
|
||||
[ "$eps" != 'none' ] && [ -z "${apn}" ] && {
|
||||
echo "No '$eps' init eps bearer apn configured"
|
||||
proto_notify_error "${interface}" MM_INIT_EPS_BEARER_APN_NOT_CONFIGURED
|
||||
proto_block_restart "${interface}"
|
||||
return 1
|
||||
}
|
||||
|
||||
if [ "$eps" = "none" ]; then
|
||||
echo "Deleting inital EPS bearer..."
|
||||
else
|
||||
|
||||
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=openconnect
|
||||
PKG_VERSION:=9.12
|
||||
PKG_RELEASE:=5
|
||||
PKG_RELEASE:=6
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://www.infradead.org/openconnect/download
|
||||
|
||||
@@ -86,7 +86,7 @@ proto_openconnect_setup() {
|
||||
[ -n $uri ] && server=$(echo $uri | awk -F[/:] '{print $4}')
|
||||
|
||||
logger -t "openconnect" "adding host dependency for $server at $config"
|
||||
while resolveip -t 10 "$server" > "$tmpfile" && [ "$trials" -gt 0 ]; do
|
||||
while ! resolveip -t 10 "$server" > "$tmpfile" && [ "$trials" -gt 0 ]; do
|
||||
sleep 5
|
||||
trials=$((trials - 1))
|
||||
done
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=pbr
|
||||
PKG_VERSION:=1.2.0
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=1.2.1
|
||||
PKG_RELEASE:=35
|
||||
PKG_LICENSE:=AGPL-3.0-or-later
|
||||
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
|
||||
|
||||
@@ -81,28 +81,29 @@ define Package/pbr/default/install
|
||||
$(INSTALL_DIR) $(1)/usr/share/nftables.d
|
||||
$(CP) ./files/usr/share/nftables.d/* $(1)/usr/share/nftables.d/
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(INSTALL_BIN) ./files/etc/uci-defaults/90-pbr $(1)/etc/uci-defaults/90-pbr
|
||||
$(INSTALL_BIN) ./files/etc/uci-defaults/90-pbr $(1)/etc/uci-defaults/90-pbr
|
||||
$(INSTALL_BIN) ./files/etc/uci-defaults/91-pbr-nft $(1)/etc/uci-defaults/91-pbr-nft
|
||||
$(INSTALL_BIN) ./files/etc/uci-defaults/99-pbr-version $(1)/etc/uci-defaults/99-pbr-version
|
||||
endef
|
||||
|
||||
define Package/pbr/install
|
||||
$(call Package/pbr/default/install,$(1))
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(INSTALL_BIN) ./files/etc/uci-defaults/91-pbr-nft $(1)/etc/uci-defaults/91-pbr-nft
|
||||
endef
|
||||
|
||||
define Package/pbr-netifd/install
|
||||
$(call Package/pbr/default/install,$(1))
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(INSTALL_BIN) ./files/etc/uci-defaults/91-pbr-netifd $(1)/etc/uci-defaults/91-pbr-netifd
|
||||
endef
|
||||
# $(INSTALL_BIN) ./files/etc/uci-defaults/91-pbr-netifd $(1)/etc/uci-defaults/91-pbr-netifd
|
||||
|
||||
define Package/pbr/postinst
|
||||
#!/bin/sh
|
||||
# check if we are on real system
|
||||
if [ -z "$${IPKG_INSTROOT}" ]; then
|
||||
chmod -x /etc/init.d/pbr || true
|
||||
fw4 -q reload || true
|
||||
chmod +x /etc/init.d/pbr || true
|
||||
/etc/init.d/pbr netifd check && {
|
||||
echo -n "Reinstalling pbr netifd integration... "
|
||||
/etc/init.d/pbr netifd install >/dev/null 2>&1 && echo "OK" || echo "FAIL"
|
||||
}
|
||||
echo -n "Installing rc.d symlink for pbr... "
|
||||
/etc/init.d/pbr enable && echo "OK" || echo "FAIL"
|
||||
fi
|
||||
@@ -114,9 +115,13 @@ define Package/pbr/prerm
|
||||
# check if we are on real system
|
||||
if [ -z "$${IPKG_INSTROOT}" ]; then
|
||||
echo -n "Stopping pbr service... "
|
||||
/etc/init.d/pbr stop quiet >/dev/null 2>&1 && echo "OK" || echo "FAIL"
|
||||
/etc/init.d/pbr stop >/dev/null 2>&1 && echo "OK" || echo "FAIL"
|
||||
echo -n "Removing rc.d symlink for pbr... "
|
||||
/etc/init.d/pbr disable && echo "OK" || echo "FAIL"
|
||||
/etc/init.d/pbr netifd check && {
|
||||
echo -n "Uninstalling pbr netifd integration... "
|
||||
/etc/init.d/pbr netifd uninstall >/dev/null 2>&1 && echo "OK" || echo "FAIL"
|
||||
}
|
||||
fi
|
||||
exit 0
|
||||
endef
|
||||
@@ -134,10 +139,9 @@ define Package/pbr-netifd/postinst
|
||||
#!/bin/sh
|
||||
# check if we are on real system
|
||||
if [ -z "$${IPKG_INSTROOT}" ]; then
|
||||
chmod -x /etc/init.d/pbr || true
|
||||
fw4 -q reload || true
|
||||
chmod +x /etc/init.d/pbr || true
|
||||
echo -n "Installing rc.d symlink for pbr-netifd... "
|
||||
echo -n "Installing pbr integration with netifd... "
|
||||
/etc/init.d/pbr netifd check && /etc/init.d/pbr netifd install >/dev/null 2>&1 && echo "OK" || echo "FAIL"
|
||||
echo -n "Installing rc.d symlink for pbr... "
|
||||
/etc/init.d/pbr enable && echo "OK" || echo "FAIL"
|
||||
fi
|
||||
exit 0
|
||||
@@ -147,31 +151,12 @@ define Package/pbr-netifd/prerm
|
||||
#!/bin/sh
|
||||
# check if we are on real system
|
||||
if [ -z "$${IPKG_INSTROOT}" ]; then
|
||||
echo -n "Stopping pbr-netifd service... "
|
||||
/etc/init.d/pbr stop quiet >/dev/null 2>&1 && echo "OK" || echo "FAIL"
|
||||
echo -n "Stopping pbr service... "
|
||||
/etc/init.d/pbr stop >/dev/null 2>&1 && echo "OK" || echo "FAIL"
|
||||
echo -n "Removing rc.d symlink for pbr... "
|
||||
/etc/init.d/pbr disable && echo "OK" || echo "FAIL"
|
||||
echo -n "Cleaning up /etc/iproute2/rt_tables... "
|
||||
if sed -i '/pbr_/d' /etc/iproute2/rt_tables; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "FAIL"
|
||||
fi
|
||||
echo -n "Cleaning up /etc/config/network... "
|
||||
uci -q delete 'network.pbr_default' || true
|
||||
uci -q delete 'network.pbr_default6' || true
|
||||
uci commit network || true
|
||||
if sed -i '/ip.table.*pbr_/d' /etc/config/network; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "FAIL"
|
||||
fi
|
||||
echo -n "Restarting Network... "
|
||||
if /etc/init.d/network restart >/dev/null 2>&1; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "FAIL"
|
||||
fi
|
||||
echo -n "Uninstalling pbr integration with netifd... "
|
||||
/etc/init.d/pbr netifd check && /etc/init.d/pbr netifd uninstall >/dev/null 2>&1 && echo "OK" || echo "FAIL"
|
||||
fi
|
||||
exit 0
|
||||
endef
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
config pbr 'config'
|
||||
option enabled '0'
|
||||
option verbosity '2'
|
||||
option strict_enforcement '1'
|
||||
option resolver_set 'dnsmasq.nftset'
|
||||
list resolver_instance '*'
|
||||
option ipv6_enabled '0'
|
||||
option fw_mask '00ff0000'
|
||||
list ignored_interface 'vpnserver'
|
||||
option rule_create_option 'add'
|
||||
option procd_boot_trigger_delay '5000'
|
||||
option procd_reload_delay '1'
|
||||
option webui_show_ignore_target '0'
|
||||
option ipv6_enabled '0'
|
||||
option lan_device 'br-lan'
|
||||
option nft_rule_counter '0'
|
||||
option nft_set_auto_merge '1'
|
||||
option nft_set_counter '0'
|
||||
option nft_set_flags_interval '1'
|
||||
option nft_set_flags_timeout '0'
|
||||
option nft_set_gc_interval ''
|
||||
option nft_set_policy 'performance'
|
||||
option nft_set_timeout ''
|
||||
option nft_user_set_counter '0'
|
||||
option procd_boot_trigger_delay '5000'
|
||||
option procd_reload_delay '0'
|
||||
list resolver_instance '*'
|
||||
option resolver_set 'dnsmasq.nftset'
|
||||
option strict_enforcement '1'
|
||||
option uplink_interface 'wan'
|
||||
option uplink_interface6 'wan6'
|
||||
option uplink_ip_rules_priority '30000'
|
||||
option uplink_mark '00010000'
|
||||
option verbosity '2'
|
||||
list webui_supported_protocol 'all'
|
||||
list webui_supported_protocol 'tcp'
|
||||
list webui_supported_protocol 'udp'
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,6 @@ fi
|
||||
|
||||
# Transition from older versions of pbr
|
||||
sed -i "s/resolver_ipset/resolver_set/g" /etc/config/pbr
|
||||
sed -i "s/iptables_rule_option/rule_create_option/g" /etc/config/pbr
|
||||
sed -i "s/'FORWARD'/'forward'/g" /etc/config/pbr
|
||||
sed -i "s/'INPUT'/'input'/g" /etc/config/pbr
|
||||
sed -i "s/'OUTPUT'/'output'/g" /etc/config/pbr
|
||||
|
||||
@@ -9,6 +9,10 @@ else
|
||||
printf "%b: pbr init.d file (%s) not found! \n" '\033[0;31mERROR\033[0m' "$pbrFunctionsFile"
|
||||
fi
|
||||
|
||||
setup_netifd 'on_install'
|
||||
if netifd 'check'; then
|
||||
rc_procd stop_service 'on_netifd_install'
|
||||
netifd 'install'
|
||||
rc_procd start_service 'on_netifd_install'
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -10,15 +10,15 @@ else
|
||||
fi
|
||||
|
||||
# Transition resolver_set depending on dnsmasq support
|
||||
if [ "$(uci_get pbr config resolver_set)" != 'dnsmasq.nftset' ]; then
|
||||
if [ "$(uci_get "$packageName" 'config' 'resolver_set')" != 'dnsmasq.nftset' ]; then
|
||||
if check_dnsmasq_nftset; then
|
||||
output "Setting resolver_set to 'dnsmasq.nftset'... "
|
||||
uci_set pbr config resolver_set 'dnsmasq.nftset' && output_okn || output_failn
|
||||
uci_set "$packageName" 'config' 'resolver_set' 'dnsmasq.nftset' && output_okn || output_failn
|
||||
else
|
||||
output "Setting resolver_set to 'none'... "
|
||||
uci_set pbr config resolver_set 'none' && output_okn || output_failn
|
||||
uci_set "$packageName" 'config' 'resolver_set' 'none' && output_okn || output_failn
|
||||
fi
|
||||
uci_commit pbr
|
||||
uci_commit "$packageName"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
chain pbr_dstnat {}
|
||||
chain pbr_forward {}
|
||||
chain pbr_input {}
|
||||
chain pbr_output {}
|
||||
chain pbr_prerouting {}
|
||||
chain pbr_postrouting {}
|
||||
|
||||
@@ -1,87 +1,106 @@
|
||||
#!/bin/sh
|
||||
# When using pbr with dnsmasq's nft set support, a domain-based policy will not take effect until
|
||||
# the remote domain name has been resolved by dnsmasq. Resolve all domain names in pbr policies in advance.
|
||||
# shellcheck disable=SC3043
|
||||
|
||||
(
|
||||
timeout_nft='10'
|
||||
timeout_dnsmasq='20'
|
||||
pipe_ubus="/tmp/pipe.ubus.$$"
|
||||
pipe_nslookup="/tmp/pipe.nslookup.$$"
|
||||
log_abort='domain names in policies not resolved'
|
||||
pipe_nslookup="/var/run/${packageName}.nslookup.$$"
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
output()
|
||||
{
|
||||
msg="$*"
|
||||
msg=$(printf '%b' "$msg" | sed 's/\x1b\[[0-9;]*m//g')
|
||||
output() {
|
||||
local msg="$*"
|
||||
|
||||
msg="$(printf '%b' "$msg" | sed 's/\x1b\[[0-9;]*m//g')"
|
||||
# shellcheck disable=SC2154
|
||||
logger -t "$packageName [$$]" "$(printf '%b' "$msg")"
|
||||
}
|
||||
|
||||
nft_ready()
|
||||
{
|
||||
nft_ready() {
|
||||
local timeout_nft='10'
|
||||
|
||||
while ! /usr/sbin/nft list sets 'inet' | grep -q "pbr"; do
|
||||
[ "$timeout_nft" -eq '0' ] && {
|
||||
output "Pbr's nft sets not found, $log_abort $__FAIL__"
|
||||
return 1
|
||||
}
|
||||
sleep '1' && timeout_nft=$((timeout_nft - 1))
|
||||
sleep '1' && timeout_nft="$((timeout_nft - 1))"
|
||||
done
|
||||
}
|
||||
|
||||
run_nslookup()
|
||||
{
|
||||
output=$(nslookup "$1" 127.0.0.1) && { echo '0' > "$pipe_nslookup"; return; }
|
||||
reason=$(printf '%s' "$output" | grep -Eo -m 1 'NXDOMAIN|SERVFAIL|timed out') && \
|
||||
run_nslookup() {
|
||||
local output reason
|
||||
|
||||
output="$(nslookup "$1" 127.0.0.1)" && { echo '0' > "$pipe_nslookup"; return; }
|
||||
reason="$(printf '%s' "$output" | grep -Eo -m 1 'NXDOMAIN|SERVFAIL|timed out')" && \
|
||||
output "$_WARNING_ Lookup failed for $domain ($reason)"
|
||||
echo '1' > "$pipe_nslookup"
|
||||
}
|
||||
|
||||
# shellcheck disable=SC2162
|
||||
nslookup_tracker()
|
||||
{
|
||||
while read ec; do
|
||||
entries=$((entries + 1))
|
||||
[ "$ec" -eq '1' ] && errors=$((errors + 1))
|
||||
nslookup_tracker() {
|
||||
local entries errors
|
||||
|
||||
while read -r rc; do
|
||||
entries="$((entries + 1))"
|
||||
[ "$rc" -eq '1' ] && errors="$((errors + 1))"
|
||||
done < "$pipe_nslookup"
|
||||
|
||||
output "Finished resolving $entries domain names in policies (${errors:-0} failed) $__OK__"
|
||||
}
|
||||
|
||||
[ -n "$resolverSetSupported" ] || {
|
||||
output "Resolver set support disabled, $log_abort $__FAIL__"
|
||||
exit
|
||||
}
|
||||
mkfifo "$pipe_ubus"
|
||||
mkfifo "$pipe_nslookup"
|
||||
ubus listen -m 'ubus.object.add' > "$pipe_ubus" & ubus_listen_pid=$!
|
||||
main() {
|
||||
local pipe_ubus="/var/run/${packageName}.ubus.$$"
|
||||
local timeout_dnsmasq='20'
|
||||
local msg_abort='domain names in policies not resolved'
|
||||
local dnsmasq_restarted ubus_listen_pid event domain entries
|
||||
local rc='0'
|
||||
|
||||
# shellcheck disable=SC3045
|
||||
while read -t "$timeout_dnsmasq" -r event; do
|
||||
echo "$event" | grep -q "dnsmasq.dns" || continue
|
||||
dnsmasq_restarted='1'
|
||||
# shellcheck disable=SC2154
|
||||
[ -f "$packageDnsmasqFile" ] || {
|
||||
output "File $packageDnsmasqFile not found, $log_abort $__FAIL__"
|
||||
break
|
||||
[ -n "$resolverSetSupported" ] || {
|
||||
output "Resolver set support disabled, $msg_abort $__FAIL__"
|
||||
rc='1'
|
||||
return "$rc"
|
||||
}
|
||||
nft_ready || break
|
||||
nslookup_tracker & exec 3>"$pipe_nslookup"
|
||||
mkfifo "$pipe_ubus"
|
||||
mkfifo "$pipe_nslookup"
|
||||
# The subshell may be necessary for "$!" to expand to a correct value
|
||||
( exec ubus listen -m 'ubus.object.add' > "$pipe_ubus" ) &
|
||||
ubus_listen_pid="$!"
|
||||
|
||||
(
|
||||
output "Resolving domain names in policies..."
|
||||
while IFS='/' read -r _ domain _; do
|
||||
[ -n "$domain" ] && run_nslookup "$domain" &
|
||||
entries=$((entries + 1))
|
||||
done < "$packageDnsmasqFile"
|
||||
wait
|
||||
)
|
||||
# shellcheck disable=SC3045
|
||||
while read -t "$timeout_dnsmasq" -r event; do
|
||||
echo "$event" | grep -q "dnsmasq.dns" || continue
|
||||
dnsmasq_restarted='1'
|
||||
# shellcheck disable=SC2154
|
||||
[ -f "$packageDnsmasqFile" ] || {
|
||||
output "File $packageDnsmasqFile not found, $msg_abort $__FAIL__"
|
||||
rc='1'
|
||||
break
|
||||
}
|
||||
nft_ready || {
|
||||
output "Pbr's nft sets not found, $msg_abort $__FAIL__"
|
||||
rc='1'
|
||||
break
|
||||
}
|
||||
nslookup_tracker & exec 3>"$pipe_nslookup"
|
||||
(
|
||||
output "Resolving domain names in policies..."
|
||||
while IFS='/' read -r _ domain _; do
|
||||
[ -n "$domain" ] && run_nslookup "$domain" &
|
||||
entries="$((entries + 1))"
|
||||
done < "$packageDnsmasqFile"
|
||||
wait
|
||||
)
|
||||
exec 3>&-
|
||||
break
|
||||
done < "$pipe_ubus"
|
||||
|
||||
exec 3>&-
|
||||
break
|
||||
done < "$pipe_ubus"
|
||||
|
||||
[ -n "$dnsmasq_restarted" ] || output "Dnsmasq hasn't restarted, $log_abort $__FAIL__"
|
||||
kill "$ubus_listen_pid"
|
||||
rm "$pipe_ubus"
|
||||
rm "$pipe_nslookup"
|
||||
[ -n "$dnsmasq_restarted" ] || {
|
||||
output "Dnsmasq hasn't restarted, $msg_abort $__FAIL__"
|
||||
rc='1'
|
||||
}
|
||||
kill "$ubus_listen_pid"
|
||||
rm -f "$pipe_ubus"
|
||||
rm -f "$pipe_nslookup"
|
||||
return "$rc"
|
||||
}
|
||||
|
||||
main
|
||||
return "$?"
|
||||
) &
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ptunnel-ng
|
||||
PKG_VERSION:=1.42
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/lnslbrty/ptunnel-ng/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=5ee6b101e4e252ea98e3337da6542d73b7f33de49a89014276cc98a70142ab10
|
||||
|
||||
PKG_LICENSE:=BSD-3
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_INSTALL:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/ptunnel-ng
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
DEPENDS:=+libpthread
|
||||
TITLE:=PingTunnel [N]ew[G]eneration
|
||||
MAINTAINER:=Toni Uhlig <matzeton@googlemail.com>
|
||||
URL:=https://github.com/lnslbrty/ptunnel-ng
|
||||
endef
|
||||
|
||||
define Package/ptunnel-ng/description
|
||||
Tunnel TCP connections through ICMP.
|
||||
endef
|
||||
|
||||
CONFIGURE_ARGS += \
|
||||
--disable-pcap \
|
||||
--disable-selinux \
|
||||
--with-rngdev=/dev/urandom
|
||||
|
||||
define Package/ptunnel-ng/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/sbin/$(PKG_NAME)
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,ptunnel-ng))
|
||||
@@ -1,22 +0,0 @@
|
||||
--- a/src/ptunnel.h
|
||||
+++ b/src/ptunnel.h
|
||||
@@ -45,9 +45,6 @@
|
||||
#define PING_TUNNEL_H 1
|
||||
|
||||
#ifndef WIN32
|
||||
-#ifdef HAVE_ICMPFILTER
|
||||
-#include <linux/icmp.h>
|
||||
-#endif
|
||||
#ifdef HAVE_SYS_UNISTD_H
|
||||
#include <sys/unistd.h>
|
||||
#endif
|
||||
@@ -56,6 +53,9 @@
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netdb.h>
|
||||
+#ifdef HAVE_ICMPFILTER
|
||||
+#include <linux/icmp.h>
|
||||
+#endif
|
||||
#include <pthread.h>
|
||||
#include <errno.h>
|
||||
#include <net/ethernet.h>
|
||||
@@ -1,77 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 2008-2017 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=radicale
|
||||
PKG_VERSION:=1.1.7
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=Radicale
|
||||
PKG_HASH:=5b311b11f15db21a6000391eb3000ffc88ea8d7abbc91767dc54b771885be777
|
||||
|
||||
PKG_MAINTAINER:=
|
||||
PKG_LICENSE:=GPL-3.0
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
PKG_CPE_ID:=cpe:/a:radicale:radicale
|
||||
|
||||
include ../../lang/python/pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../../lang/python/python3-package.mk
|
||||
|
||||
define Package/radicale
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=Radicale CalDAV/CardDAV server
|
||||
URL:=https://radicale.org/
|
||||
DEPENDS:= \
|
||||
+python3-light \
|
||||
+python3-codecs \
|
||||
+python3-logging \
|
||||
+python3-openssl \
|
||||
+python3-urllib \
|
||||
+python3-xml
|
||||
USERID:=radicale=5232:radicale=5232
|
||||
PROVIDES:=radicale-py2 radicale-py3
|
||||
endef
|
||||
|
||||
define Package/radicale/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 dependances and is pre-configured to
|
||||
work out-of-the-box.
|
||||
endef
|
||||
|
||||
define Package/radicale/conffiles
|
||||
/etc/config/radicale
|
||||
/etc/radicale/users
|
||||
/etc/radicale/rights
|
||||
endef
|
||||
|
||||
define Py3Package/radicale/install
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/radicale.init $(1)/etc/init.d/radicale
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
|
||||
$(INSTALL_BIN) ./files/radicale.hotplug $(1)/etc/hotplug.d/iface/80-radicale
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_CONF) ./files/radicale.config $(1)/etc/config/radicale
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/radicale/ssl
|
||||
$(INSTALL_DATA) ./files/config.template $(1)/etc/radicale/config.template
|
||||
$(INSTALL_DATA) ./files/logging.template $(1)/etc/radicale/logging.template
|
||||
$(INSTALL_DATA) ./files/radicale.users $(1)/etc/radicale/users
|
||||
$(INSTALL_DATA) ./files/radicale.rights $(1)/etc/radicale/rights
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/radicale $(1)/usr/bin/
|
||||
endef
|
||||
|
||||
$(eval $(call Py3Package,radicale))
|
||||
$(eval $(call BuildPackage,radicale))
|
||||
$(eval $(call BuildPackage,radicale-src))
|
||||
@@ -1,30 +0,0 @@
|
||||
# -*- mode: conf -*-
|
||||
# vim:ft=cfg
|
||||
|
||||
### AUTO-GENERATED CONFIGURATION
|
||||
### USED BY RADICALE
|
||||
### DO NOT EDIT
|
||||
### SEE /etc/config/radicale INSTEAD
|
||||
|
||||
[server]
|
||||
# daemon # handled by /etc/init.d/radicale
|
||||
# pid # handled by /etc/init.d/radicale
|
||||
|
||||
[encoding]
|
||||
|
||||
[well-known]
|
||||
|
||||
[auth]
|
||||
# htpasswd_filename # hard-coded /etc/radicale/users
|
||||
|
||||
[git]
|
||||
|
||||
[rights]
|
||||
# file # hard-coded /etc/radicale/rights
|
||||
|
||||
[storage]
|
||||
|
||||
[logging]
|
||||
# config # hard-coded /var/etc/radicale/logging
|
||||
|
||||
[headers]
|
||||
@@ -1,47 +0,0 @@
|
||||
# -*- mode: conf -*-
|
||||
# vim:ft=cfg
|
||||
|
||||
### AUTO-GENERATED CONFIGURATION
|
||||
### USED BY RADICALE
|
||||
### DO NOT EDIT
|
||||
### SEE /etc/config/radicale INSTEAD
|
||||
|
||||
[loggers]
|
||||
keys = root
|
||||
|
||||
[handlers]
|
||||
keys = console,file,syslog
|
||||
|
||||
[formatters]
|
||||
keys = simple,full,syslog
|
||||
|
||||
[logger_root]
|
||||
level = DEBUG
|
||||
handlers = console,file,syslog
|
||||
|
||||
[handler_console]
|
||||
class = StreamHandler
|
||||
args = (sys.stdout,)
|
||||
formatter = simple
|
||||
# level = WARNING # set via /etc/config/radicale
|
||||
|
||||
[handler_file]
|
||||
class = handlers.RotatingFileHandler
|
||||
formatter = full
|
||||
# level = INFO # set via /etc/config/radicale
|
||||
# args = ('[filename]','a',[maxbytes],[backupcount]) # set via /etc/config/radicale
|
||||
|
||||
[handler_syslog]
|
||||
class = handlers.SysLogHandler
|
||||
args = ('/dev/log', handlers.SysLogHandler.LOG_DAEMON)
|
||||
formatter = syslog
|
||||
# level = WARNING # set via /etc/config/radicale
|
||||
|
||||
[formatter_simple]
|
||||
format = %(message)s
|
||||
|
||||
[formatter_full]
|
||||
format = %(asctime)s - %(levelname)s: %(message)s
|
||||
|
||||
[formatter_syslog]
|
||||
format = radicale [%(process)d]: %(message)s
|
||||
@@ -1,200 +0,0 @@
|
||||
#
|
||||
# You find additional information on Radicale Homepage
|
||||
# http://radicale.org
|
||||
#
|
||||
# OpenWrt's wiki needs to be setup/updated ;-)
|
||||
#
|
||||
# if setting additional options please remember that UCI does not support
|
||||
# section names and option names with "-" (Dash) inside their name
|
||||
# to use them anyway replace "-" with "_" (Underscore)
|
||||
# Each Radicale's config [section] is setup as UCI config setting 'section'
|
||||
#
|
||||
|
||||
####################################################
|
||||
# OpenWrt specific settings
|
||||
# not part of radicale package
|
||||
#
|
||||
config system 'radicale'
|
||||
# delayed startup at boot (default 10 seconds)
|
||||
# to wait for netifd to bring up interfaces
|
||||
# during this time iface hotplug events are ignored
|
||||
# option boot_delay '10'
|
||||
|
||||
####################################################
|
||||
# Server options
|
||||
#
|
||||
config setting 'server'
|
||||
|
||||
# hostname:port
|
||||
# IPv4 syntax: address:port
|
||||
# IPv6 syntax: [address]:port
|
||||
# ATTENTION:
|
||||
# only use ports > 1024 (non-privileged Ports)
|
||||
# because this implementation is running as non-root user
|
||||
# Default: 0.0.0.0:5232
|
||||
# list hosts '0.0.0.0:5232'
|
||||
# list hosts 'localhost:5232'
|
||||
|
||||
# SSL flag, enable HTTPS protocol
|
||||
# Default: 0 (disabled)
|
||||
# option ssl '1'
|
||||
|
||||
# SSL Protocol used. See python's ssl module for available values
|
||||
# Default: PROTOCOL_SSLv23
|
||||
# option protocol 'PROTOCOL_SSLv23'
|
||||
|
||||
# Ciphers available. See python's ssl module for available ciphers
|
||||
# option ciphers ''
|
||||
|
||||
# SSL certificate path and file
|
||||
# option certificate '/etc/radicale/ssl/server.crt'
|
||||
|
||||
# SSL private key path and file
|
||||
# option key '/etc/radicale/ssl/server.key'
|
||||
|
||||
# Reverse DNS to resolve client address in logs
|
||||
# Default: 0 (disabled)
|
||||
# option dns_lookup '1'
|
||||
|
||||
# Message displayed in the client when a password is needed
|
||||
# option realm 'Radicale - Password Required'
|
||||
|
||||
|
||||
####################################################
|
||||
# Encoding options
|
||||
#
|
||||
config setting 'encoding'
|
||||
|
||||
# Encoding for responding requests
|
||||
# option request 'utf-8'
|
||||
|
||||
# Encoding for storing local collections
|
||||
# option stock 'utf-8'
|
||||
|
||||
|
||||
####################################################
|
||||
# Authentication options
|
||||
#
|
||||
config setting 'auth'
|
||||
|
||||
# Authentication method
|
||||
# Value: None | htpasswd | IMAP | LDAP | PAM | courier | http | remote_user | custom
|
||||
# Default: None
|
||||
# if setting 'htpasswd' the file /etc/radicale/users is used (hardcoded)
|
||||
|
||||
# Htpasswd encryption method
|
||||
# Value: plain | sha1 | ssha | crypt
|
||||
# option htpasswd_encryption 'crypt'
|
||||
|
||||
# for other authenication methods consult Radicale documentation
|
||||
# and set options here
|
||||
|
||||
|
||||
####################################################
|
||||
# Git default options
|
||||
#
|
||||
config setting 'git'
|
||||
|
||||
# Git default options
|
||||
# option committer 'Radicale <radicale@example.com>'
|
||||
|
||||
|
||||
####################################################
|
||||
# Rights backend
|
||||
#
|
||||
config setting 'rights'
|
||||
|
||||
# Value: None | authenticated | owner_only | owner_write | from_file | custom
|
||||
# Default: None
|
||||
# if setting 'from_file' the file /etc/radicale/rights is used (hardcoded)
|
||||
|
||||
# Custom rights handler
|
||||
# option custom_handler ''
|
||||
|
||||
|
||||
####################################################
|
||||
# Storage backend
|
||||
# -------
|
||||
# WARNING: ONLY "filesystem" IS DOCUMENTED AND TESTED,
|
||||
# OTHER BACKENDS ARE NOT READY FOR PRODUCTION.
|
||||
# -------
|
||||
#
|
||||
config setting 'storage'
|
||||
# Value: filesystem | multifilesystem | database | custom
|
||||
option type 'filesystem'
|
||||
option filesystem_folder '/srv/radicale'
|
||||
|
||||
|
||||
####################################################
|
||||
# Additional HTTP headers
|
||||
#
|
||||
config setting 'headers'
|
||||
# enable all if using CardDavMATE-, CalDavZAP- or InfCloud- WEBclient
|
||||
# list Access_Control_Allow_Origin '*'
|
||||
# list Access_Control_Allow_Methods 'GET'
|
||||
# list Access_Control_Allow_Methods 'POST'
|
||||
# list Access_Control_Allow_Methods 'OPTIONS'
|
||||
# list Access_Control_Allow_Methods 'PROPFIND'
|
||||
# list Access_Control_Allow_Methods 'PROPPATCH'
|
||||
# list Access_Control_Allow_Methods 'REPORT'
|
||||
# list Access_Control_Allow_Methods 'PUT'
|
||||
# list Access_Control_Allow_Methods 'MOVE'
|
||||
# list Access_Control_Allow_Methods 'DELETE'
|
||||
# list Access_Control_Allow_Methods 'LOCK'
|
||||
# list Access_Control_Allow_Methods 'UNLOCK'
|
||||
# list Access_Control_Allow_Headers 'User-Agent'
|
||||
# list Access_Control_Allow_Headers 'Authorization'
|
||||
# list Access_Control_Allow_Headers 'Content-type'
|
||||
# list Access_Control_Allow_Headers 'Depth'
|
||||
# list Access_Control_Allow_Headers 'If-match'
|
||||
# list Access_Control_Allow_Headers 'If-None-Match'
|
||||
# list Access_Control_Allow_Headers 'Lock-Token'
|
||||
# list Access_Control_Allow_Headers 'Timeout'
|
||||
# list Access_Control_Allow_Headers 'Destination'
|
||||
# list Access_Control_Allow_Headers 'Overwrite'
|
||||
# list Access_Control_Allow_Headers 'X-client'
|
||||
# list Access_Control_Allow_Headers 'X-Requested-With'
|
||||
# list Access_Control_Expose_Headers 'Etag'
|
||||
|
||||
|
||||
####################################################
|
||||
# Global logging options
|
||||
#
|
||||
config setting 'logging'
|
||||
|
||||
# Set the default logging level to debug for all outputs (ignore output level settings)
|
||||
# Default: 0 (disabled)
|
||||
# option debug '1'
|
||||
# Log all environment variables (including those set in the shell) when starting
|
||||
# Default: 0 (disabled)
|
||||
# option full_environment '1'
|
||||
|
||||
|
||||
####################################################
|
||||
# Spezial logging options
|
||||
# !!! not documented in Radicale documentation
|
||||
# !!! special settings for this implementation
|
||||
#
|
||||
config logging 'logger'
|
||||
|
||||
# Level: DEBUG | INFO | WARNING | ERROR | CRITICAL
|
||||
# To nearly disable logging set level to critical
|
||||
|
||||
# log level on console
|
||||
# option console_level 'ERROR'
|
||||
|
||||
# Here we use Rotating Logfiles in this implementation
|
||||
# !!! if maxbytes and/or backupcount is set to 0 !!!
|
||||
# !!! file rotation is disabled and logfile grows endless !!!
|
||||
# log level
|
||||
# option file_level 'INFO'
|
||||
# directory where log files are written
|
||||
# option file_path '/var/log/radicale'
|
||||
# max size of each logfile (see warning above)
|
||||
# option file_maxbytes '8196'
|
||||
# number of backup files to create (see warning above)
|
||||
# option file_backupcount '1'
|
||||
|
||||
# log level for syslog logging
|
||||
# option syslog_level 'WARNING'
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# only (re-)start on ifup
|
||||
[ "$ACTION" = "ifup" ] || exit 0
|
||||
# only start if boot_delay is done
|
||||
[ -f /tmp/radicale.hotplug ] || exit 0
|
||||
|
||||
_PID=$(ps | grep '[p]ython.*[r]adicale' 2>/dev/null | awk '{print $1}')
|
||||
kill -1 $_PID 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
# only restart if already running
|
||||
logger -p user.info -t "radicale[$_PID]" \
|
||||
"Restart request due to '$ACTION' of interface '$INTERFACE'"
|
||||
/etc/init.d/radicale restart
|
||||
else
|
||||
# only start if enabled
|
||||
/etc/init.d/radicale enabled && /etc/init.d/radicale start
|
||||
fi
|
||||
@@ -1,264 +0,0 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2006-2016 OpenWrt.org
|
||||
|
||||
START=80
|
||||
STOP=10
|
||||
|
||||
extra_command "export_storage" "<PATH>
|
||||
- export the storage into the specified folder
|
||||
- <PATH> can be directly used with the default storage backend of Radicale 2.x.x."
|
||||
|
||||
CFGDIR=/var/etc/radicale
|
||||
SYSCFG=$CFGDIR/config
|
||||
LOGCFG=$CFGDIR/logging
|
||||
|
||||
DATADIR="/srv/radicale"
|
||||
LOGDIR=""
|
||||
|
||||
PGREP="ps | grep '[p]ython.*[r]adicale' 2>/dev/null | awk '{print \$1}' "
|
||||
|
||||
# we could start with empty configuration file using defaults
|
||||
[ -f /etc/config/radicale ] || touch /etc/config/radicale
|
||||
|
||||
_uci2radicale() {
|
||||
local _SYSTMP="$SYSCFG.tmp"
|
||||
local _LOGTMP="$LOGCFG.tmp"
|
||||
local _LOPT # list option name
|
||||
local _LVAL # list option value
|
||||
local _STYPE # section type
|
||||
local _SNAME # section name
|
||||
local _console_level="ERROR" # logging console level
|
||||
local _file_level="INFO" # logging file level
|
||||
local _file_path="/var/log/radicale" # logging file path
|
||||
local _file_maxbytes="8196" # logging file maxBytes
|
||||
local _file_backupcount="1" # logging file backupCount
|
||||
local _syslog_level="WARNING" # logging syslog level
|
||||
|
||||
# write list values to config
|
||||
_write_list() {
|
||||
_write_value "$_LOPT" "$_LVAL" # there might be spaces in _LVAL
|
||||
_LOPT=""
|
||||
_LVAL=""
|
||||
}
|
||||
|
||||
_write_value() {
|
||||
# $1 option
|
||||
# $2 value
|
||||
local __OPT=$1
|
||||
local __VAL=$2
|
||||
# section "server" ignore option "daemon" and "pid"
|
||||
[ "$_SNAME" = "server" -a "$__OPT" = "daemon" ] && return 0
|
||||
[ "$_SNAME" = "server" -a "$__OPT" = "pid" ] && return 0
|
||||
# section "logging" ignore option "config" (logging config file)
|
||||
[ "$_SNAME" = "logging" -a "$__OPT" = "config" ] && return 0
|
||||
# section "auth" ignore option "htpasswd_filename" (htpasswd file)
|
||||
[ "$_SNAME" = "auth" -a "$__OPT" = "htpasswd_filename" ] && return 0
|
||||
# section "rights" ignore option "file" (reg-based rights file)
|
||||
[ "$_SNAME" = "rights" -a "$__OPT" = "file" ] && return 0
|
||||
# section "headers" replace "_" with "-" in option (UCI problem)
|
||||
[ "$_SNAME" = "headers" ] && __OPT=$(echo "$__OPT" | sed -e "s#_#-#g")
|
||||
# save data driectory
|
||||
[ "$_SNAME" = "storage" -a "$__OPT" = "filesystem_folder" ] && DATADIR="$__VAL"
|
||||
# special handling for well-known, value needs single quotes
|
||||
[ "$_SNAME" = "well-known" -a "${__VAL#*\%\(}" != "$__VAL" ] && __VAL="'$__VAL'"
|
||||
# handling of log settings
|
||||
if [ "$_STYPE" = "logging" -a "$_SNAME" = "logger" ]; then
|
||||
eval "_$__OPT='$__VAL'" # set to environment for later use
|
||||
else
|
||||
# handle bool
|
||||
[ "$__VAL" = "0" ] && __VAL="False"
|
||||
[ "$__VAL" = "1" ] && __VAL="True"
|
||||
# append data to the corresponding section
|
||||
sed -i "/\[$_SNAME\]/a $__OPT = $__VAL" $_SYSTMP
|
||||
fi
|
||||
}
|
||||
|
||||
# redefined callback for sections when calling config_load
|
||||
config_cb() {
|
||||
# $1 "Type"
|
||||
# $2 "Name"
|
||||
# write out last list option
|
||||
[ -n "$_LOPT" ] && _write_list
|
||||
# mark invalid
|
||||
_STYPE=""
|
||||
_SNAME=""
|
||||
# check section type
|
||||
[ "$1" = "setting" -o "$1" = "logging" ] && {
|
||||
_STYPE="$1"
|
||||
_SNAME="$2"
|
||||
}
|
||||
# translate section name
|
||||
[ "$2" = "well_known" ] && _SNAME="well-known"
|
||||
return 0
|
||||
}
|
||||
|
||||
# redefined callback for lists when calling config_load
|
||||
list_cb() {
|
||||
# $1 name of variable
|
||||
# $2 value
|
||||
# invalid section type then ignore
|
||||
[ -z "$_STYPE" -o -z "$_SNAME" ] && return 0
|
||||
# write out last list option if new list starts
|
||||
[ -n "$_LOPT" -a "$_LOPT" != "$1" ] && _write_list
|
||||
# new list option
|
||||
if [ -z "$_LOPT" ]; then
|
||||
_LOPT="$1"
|
||||
_LVAL="$2"
|
||||
else
|
||||
_LVAL="$_LVAL, $2"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
# redefined callback for options when calling config_load
|
||||
option_cb() {
|
||||
# $1 name of variable
|
||||
# $2 value
|
||||
local __OPT="$1"
|
||||
local __VAL="$2"
|
||||
# invalid section type then ignore
|
||||
[ -z "$_STYPE" -o -z "$_SNAME" ] && return 0
|
||||
# ignore list entrys will be handled by list_cb()
|
||||
[ "${__OPT#*_ITEM}" != "$__OPT" ] && return 0 # ignore lists *_ITEM*
|
||||
[ "${__OPT#*_LENGTH}" != "$__OPT" ] && return 0 # ignore lists *_LENGTH
|
||||
# write out last list option and clear
|
||||
[ -n "$_LOPT" ] && _write_list
|
||||
# write to file
|
||||
_write_value "$__OPT" "$__VAL" # there might be spaces in __VAL
|
||||
return 0
|
||||
}
|
||||
|
||||
# temporary config file
|
||||
# radicale need read access
|
||||
mkdir -m0755 -p $CFGDIR
|
||||
|
||||
cp /etc/radicale/config.template $_SYSTMP
|
||||
config_load radicale # calling above config_cb()/option_cb()/list_cb() and write into $_SYSTMP
|
||||
sed -i "/\[logging\]/a config = /var/etc/radicale/logging" $_SYSTMP # hard-code logging config
|
||||
sed -i "/\[auth\]/a htpasswd_filename = /etc/radicale/users" $_SYSTMP # hard-code htpasswd
|
||||
sed -i "/\[rights\]/a file = /etc/radicale/rights" $_SYSTMP # hard-code regexp-based rights
|
||||
|
||||
# temporary logging config file
|
||||
cp /etc/radicale/logging.template $_LOGTMP
|
||||
LOGDIR="$_file_path"
|
||||
sed -i "/\[handler_console\]/a level = $_console_level" $_LOGTMP
|
||||
sed -i "/\[handler_file\]/a level = $_file_level" $_LOGTMP
|
||||
sed -i "/\[handler_file\]/a args = ('$_file_path/radicale','a',$_file_maxbytes,$_file_backupcount)" $_LOGTMP
|
||||
sed -i "/\[handler_syslog\]/a level = $_syslog_level" $_LOGTMP
|
||||
|
||||
# move tmp to final
|
||||
mv -f $_SYSTMP $SYSCFG
|
||||
mv -f $_LOGTMP $LOGCFG
|
||||
}
|
||||
|
||||
_set_permission() {
|
||||
# config file permissions (read access for group)
|
||||
chmod 644 $SYSCFG $LOGCFG
|
||||
chgrp -R radicale $CFGDIR
|
||||
# log directory (full access and owner)
|
||||
[ -d $LOGDIR ] || mkdir -m0755 -p $LOGDIR
|
||||
chown -R radicale:radicale $LOGDIR
|
||||
# data directory does not exist
|
||||
[ -d $DATADIR ] || {
|
||||
logger -p user.error -t "radicale[----]" "Data directory '$DATADIR' does not exists. Startup failed !!!"
|
||||
exit 1
|
||||
}
|
||||
chgrp -R radicale $DATADIR
|
||||
}
|
||||
|
||||
export_storage() {
|
||||
# if already running do nothing
|
||||
local _PID=$(eval "$PGREP")
|
||||
kill -1 $_PID 2>/dev/null && {
|
||||
echo "Export failed !!! - Service running !" >&2
|
||||
logger -p user.error -t "radicale[$_PID]" "Export failed !!! - Service running !"
|
||||
return 1
|
||||
}
|
||||
|
||||
[ $# -ne 1 ] || [ ! -d $1 ] && {
|
||||
echo "Export failed !!! Directory not given or does not exist !" >&2
|
||||
logger -p user.error -t "radicale[----]" "Export failed !!! Directory not given or does not exist !"
|
||||
return 1
|
||||
}
|
||||
|
||||
_uci2radicale
|
||||
_set_permission
|
||||
|
||||
chmod 775 $1
|
||||
chgrp radicale $1
|
||||
|
||||
radicale --config=$SYSCFG --export-storage $1/export
|
||||
}
|
||||
|
||||
boot() {
|
||||
# wait a given time (default 10 seconds) before startup
|
||||
# to wait for interfaces to come up / not using hotplug events during boot
|
||||
_start() {
|
||||
[ $1 -gt 0 ] && sleep $1
|
||||
start
|
||||
}
|
||||
|
||||
local _DELAY
|
||||
_DELAY=$(uci_get "radicale" "system" "boot_delay" "10")
|
||||
_start $_DELAY &
|
||||
return 0
|
||||
}
|
||||
|
||||
shutdown() {
|
||||
rm -f /tmp/radicale.hotplug
|
||||
stop
|
||||
}
|
||||
|
||||
start() {
|
||||
_running() {
|
||||
sleep 2 # give radicale time to completely come up
|
||||
local _PID=$(eval "$PGREP")
|
||||
kill -1 $_PID 2>/dev/null
|
||||
[ $? -eq 0 ] \
|
||||
&& logger -p user.notice -t "radicale[$_PID]" "Service started successfully"\
|
||||
|| logger -p user.warn -t "radicale[----]" "Service failed to start"
|
||||
}
|
||||
|
||||
# if already running do nothing
|
||||
local _PID=$(eval "$PGREP")
|
||||
kill -1 $_PID 2>/dev/null && return 0
|
||||
|
||||
_uci2radicale
|
||||
_set_permission
|
||||
|
||||
radicale --daemon --config=$SYSCFG
|
||||
touch /tmp/radicale.hotplug
|
||||
|
||||
_running & # check if running and syslog
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
reload() {
|
||||
# reload is also used by luci
|
||||
local _PID=$(eval "$PGREP")
|
||||
kill -1 $_PID 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
# only restart if already running
|
||||
restart
|
||||
else
|
||||
# only start if enabled
|
||||
enabled && start
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
local _PID=$(eval "$PGREP")
|
||||
[ -z "$_PID" ] && return 0 # not running
|
||||
kill -15 $_PID 2>/dev/null
|
||||
sleep 3 # give time to shutdown
|
||||
local _tmp=$(eval "$PGREP")
|
||||
if [ -z "$_tmp" ]; then
|
||||
logger -p user.notice -t "radicale[$_PID]" "Service shutdown successfully"
|
||||
else
|
||||
kill -9 $_tmp # Normally never come here
|
||||
logger -p user.warn -t "radicale[----]" "Service shutdown FORCED"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
#
|
||||
# Authentication login is matched against the "user" key, and collection's path is matched against the "collection" key.
|
||||
# You can use Python's ConfigParser interpolation values %(login)s and %(path)s.
|
||||
# You can also get groups from the user regex in the collection with {0}, {1}, etc.
|
||||
#
|
||||
# For example, for the "user" key, ".+" means "authenticated user" and ".*" means "anybody" (including anonymous users).
|
||||
#
|
||||
# Section names are only used for naming the rule.
|
||||
# Leading or ending slashes are trimmed from collection's path.
|
||||
#
|
||||
|
||||
# This means all users starting with "admin" may read any collection
|
||||
[admin]
|
||||
user: ^admin.*$
|
||||
collection: .*
|
||||
permission: r
|
||||
|
||||
# This means all users may read and write any collection starting with public.
|
||||
# We do so by just not testing against the user string.
|
||||
[public]
|
||||
user: .*
|
||||
collection: ^public(/.+)?$
|
||||
permission: rw
|
||||
|
||||
# A little more complex: give read access to users from a domain for all
|
||||
# collections of all the users (ie. user@domain.tld can read domain/\*).
|
||||
[domain-wide-access]
|
||||
user: ^.+@(.+)\..+$
|
||||
collection: ^{0}/.+$
|
||||
permission: r
|
||||
|
||||
# Allow authenticated user to read all collections
|
||||
[allow-everyone-read]
|
||||
user: .+
|
||||
collection: .*
|
||||
permission: r
|
||||
|
||||
# Give write access to owners
|
||||
[owner-write]
|
||||
user: .+
|
||||
collection: ^%(login)s(/.+)?$
|
||||
permission: rw
|
||||
|
||||
# Allow CardDavMATE-, CalDavZAP- or InfCloud- WEBclient to work
|
||||
# anonymous users have read access to "/" but no files or subdir
|
||||
[infcloud]
|
||||
user: .*
|
||||
collection: /
|
||||
permission: r
|
||||
@@ -1,6 +0,0 @@
|
||||
#
|
||||
# Sample File
|
||||
#
|
||||
|
||||
user1:password1
|
||||
user2:password2
|
||||
@@ -1,25 +0,0 @@
|
||||
Subject: [PATCH] Run as user radicale and group radicale
|
||||
|
||||
Patch to run Radicale service as radicale:radicale non root user
|
||||
|
||||
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
|
||||
---
|
||||
bin/radicale | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
--- a/bin/radicale
|
||||
+++ b/bin/radicale
|
||||
@@ -26,6 +26,13 @@ Launch the server according to configura
|
||||
|
||||
"""
|
||||
|
||||
+# inserted to run as user radicale
|
||||
+import pwd, grp, os
|
||||
+uid = pwd.getpwnam('radicale').pw_uid
|
||||
+gid = grp.getgrnam('radicale').gr_gid
|
||||
+os.setegid(gid)
|
||||
+os.seteuid(uid)
|
||||
+
|
||||
import radicale.__main__
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=UDPspeeder
|
||||
PKG_VERSION:=20230206.0
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=$(PKG_VERSION)
|
||||
|
||||
@@ -93,6 +93,7 @@ start_instance() {
|
||||
procd_append_param command --queue-len "${queue_len}"
|
||||
procd_append_param command --log-level "${log_level}"
|
||||
procd_append_param command --fifo "${fifo}"
|
||||
procd_append_param command --disable-color
|
||||
|
||||
# procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
|
||||
procd_close_instance
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=snapcast
|
||||
PKG_VERSION:=0.28.0
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=0.34.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/badaix/snapcast.git
|
||||
PKG_SOURCE_URL:=https://github.com/snapcast/snapcast.git
|
||||
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
|
||||
PKG_MIRROR_HASH=288325fc8b134502adb522711c18210794734675684cf5d8eba8a0a82778f6c9
|
||||
PKG_MIRROR_HASH=b47c44e208708cbfd6fb89b5874ed05ffa165b959904ccc11b03073bf9b55b0a
|
||||
|
||||
PKG_MAINTAINER:=Szabolcs Hubai <szab.hu@gmail.com>, David Andreoletti <david@andreoletti.net>
|
||||
PKG_LICENSE:=GPL-3.0-or-later
|
||||
@@ -19,16 +19,22 @@ PKG_CPE_ID:=cpe:/a:badaix:snapcast
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
CMAKE_OPTIONS += -DBUILD_TESTS=OFF
|
||||
CMAKE_OPTIONS += -DBUILD_WITH_PULSE=OFF
|
||||
CMAKE_OPTIONS += -DBUILD_WITH_AVAHI=OFF
|
||||
CMAKE_OPTIONS += \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DBUILD_WITH_ALSA=ON \
|
||||
-DBUILD_WITH_AVAHI=OFF \
|
||||
-DBUILD_WITH_JACK=OFF \
|
||||
-DBUILD_WITH_PIPEWIRE=OFF \
|
||||
-DBUILD_WITH_PULSE=OFF \
|
||||
-DBUILD_WITH_SSL=OFF \
|
||||
-DBUILD_WITH_TREMOR=ON
|
||||
|
||||
define Package/snapcast/Default
|
||||
SECTION:=sound
|
||||
CATEGORY:=Sound
|
||||
TITLE:=Synchronous multiroom audio player
|
||||
DEPENDS:=+AUDIO_SUPPORT:alsa-lib +libexpat +libatomic +libogg +libflac +libopus +boost +libsoxr
|
||||
URL:=https://github.com/badaix/snapcast
|
||||
DEPENDS:=+alsa-lib +libexpat +libatomic +libogg +libflac +libopus +boost +libsoxr
|
||||
URL:=https://github.com/snapcast/snapcast
|
||||
endef
|
||||
|
||||
define Package/snapcast/Default/description
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
From 6ada939adf5c4f7e43d0fbe6ea45492b9564cb8d Mon Sep 17 00:00:00 2001
|
||||
From: badaix <johannes.pohl@badaix.de>
|
||||
Date: Thu, 19 Dec 2024 22:53:49 +0100
|
||||
Subject: [PATCH] Fix compilation with boost v1.87.0
|
||||
|
||||
---
|
||||
server/control_server.cpp | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/server/control_server.cpp
|
||||
+++ b/server/control_server.cpp
|
||||
@@ -161,7 +161,7 @@ void ControlServer::start()
|
||||
{
|
||||
LOG(INFO, LOG_TAG) << "Creating TCP acceptor for address: " << address << ", port: " << tcp_settings_.port << "\n";
|
||||
acceptor_tcp_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
|
||||
- tcp::endpoint(boost::asio::ip::address::from_string(address), tcp_settings_.port)));
|
||||
+ tcp::endpoint(boost::asio::ip::make_address(address), settings_.tcp.port)));
|
||||
}
|
||||
catch (const boost::system::system_error& e)
|
||||
{
|
||||
@@ -177,7 +177,7 @@ void ControlServer::start()
|
||||
{
|
||||
LOG(INFO, LOG_TAG) << "Creating HTTP acceptor for address: " << address << ", port: " << http_settings_.port << "\n";
|
||||
acceptor_http_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
|
||||
- tcp::endpoint(boost::asio::ip::address::from_string(address), http_settings_.port)));
|
||||
+ tcp::endpoint(boost::asio::ip::make_address(address), settings_.http.port)));
|
||||
}
|
||||
catch (const boost::system::system_error& e)
|
||||
{
|
||||
@@ -1,87 +0,0 @@
|
||||
From b2fd2bf9ef835104a813c40c190d71e3644125d7 Mon Sep 17 00:00:00 2001
|
||||
From: Rudi Heitbaum <rudi@heitbaum.com>
|
||||
Date: Thu, 19 Dec 2024 02:23:11 +1100
|
||||
Subject: [PATCH] use make_address from boost as from_string is deprecated
|
||||
(#1308)
|
||||
|
||||
Since boost 1.87.0 boost::asio::ip::address::from_string is no longer available
|
||||
|
||||
ref: https://github.com/boostorg/asio/commit/c0d1cfce7767599c4cf00df36f8017a1073339ae
|
||||
|
||||
fixes:
|
||||
../server/control_server.cpp: In member function 'void ControlServer::start()':
|
||||
../server/control_server.cpp:164:111: error: 'from_string' is not a member of 'boost::asio::ip::address'
|
||||
164 | tcp::endpoint(boost::asio::ip::address::from_string(address), tcp_settings_.port)));
|
||||
| ^~~~~~~~~~~
|
||||
../server/control_server.cpp:180:112: error: 'from_string' is not a member of 'boost::asio::ip::address'
|
||||
180 | tcp::endpoint(boost::asio::ip::address::from_string(address), http_settings_.port)));
|
||||
| ^~~~~~~~~~~
|
||||
../server/streamreader/tcp_stream.cpp: In constructor 'streamreader::TcpStream::TcpStream(streamreader::PcmStream::Listener*, boost::asio::io_context&, const ServerSettings&, const streamreader::StreamUri&)':
|
||||
../server/streamreader/tcp_stream.cpp:67:97: error: 'from_string' is not a member of 'boost::asio::ip::address'
|
||||
67 | acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::address::from_string(host_), port_));
|
||||
| ^~~~~~~~~~~
|
||||
../server/streamreader/tcp_stream.cpp: In member function 'virtual void streamreader::TcpStream::connect()':
|
||||
../server/streamreader/tcp_stream.cpp:96:75: error: 'from_string' is not a member of 'boost::asio::ip::address'
|
||||
96 | boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(host_), port_);
|
||||
| ^~~~~~~~~~~
|
||||
../server/stream_server.cpp: In member function 'void StreamServer::start()':
|
||||
../server/stream_server.cpp:234:103: error: 'from_string' is not a member of 'boost::asio::ip::address'
|
||||
234 | tcp::endpoint(boost::asio::ip::address::from_string(address), settings_.stream.port)));
|
||||
|
|
||||
---
|
||||
server/control_server.cpp | 4 ++--
|
||||
server/stream_server.cpp | 2 +-
|
||||
server/streamreader/tcp_stream.cpp | 4 ++--
|
||||
3 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
--- a/server/control_server.cpp
|
||||
+++ b/server/control_server.cpp
|
||||
@@ -161,7 +161,7 @@ void ControlServer::start()
|
||||
{
|
||||
LOG(INFO, LOG_TAG) << "Creating TCP acceptor for address: " << address << ", port: " << tcp_settings_.port << "\n";
|
||||
acceptor_tcp_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
|
||||
- tcp::endpoint(boost::asio::ip::make_address(address), settings_.tcp.port)));
|
||||
+ tcp::endpoint(boost::asio::ip::make_address(address), tcp_settings_.port)));
|
||||
}
|
||||
catch (const boost::system::system_error& e)
|
||||
{
|
||||
@@ -177,7 +177,7 @@ void ControlServer::start()
|
||||
{
|
||||
LOG(INFO, LOG_TAG) << "Creating HTTP acceptor for address: " << address << ", port: " << http_settings_.port << "\n";
|
||||
acceptor_http_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
|
||||
- tcp::endpoint(boost::asio::ip::make_address(address), settings_.http.port)));
|
||||
+ tcp::endpoint(boost::asio::ip::make_address(address), http_settings_.port)));
|
||||
}
|
||||
catch (const boost::system::system_error& e)
|
||||
{
|
||||
--- a/server/stream_server.cpp
|
||||
+++ b/server/stream_server.cpp
|
||||
@@ -231,7 +231,7 @@ void StreamServer::start()
|
||||
{
|
||||
LOG(INFO, LOG_TAG) << "Creating stream acceptor for address: " << address << ", port: " << settings_.stream.port << "\n";
|
||||
acceptor_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
|
||||
- tcp::endpoint(boost::asio::ip::address::from_string(address), settings_.stream.port)));
|
||||
+ tcp::endpoint(boost::asio::ip::make_address(address), settings_.stream.port)));
|
||||
}
|
||||
catch (const boost::system::system_error& e)
|
||||
{
|
||||
--- a/server/streamreader/tcp_stream.cpp
|
||||
+++ b/server/streamreader/tcp_stream.cpp
|
||||
@@ -64,7 +64,7 @@ TcpStream::TcpStream(PcmStream::Listener
|
||||
|
||||
LOG(INFO, LOG_TAG) << "TcpStream host: " << host_ << ", port: " << port_ << ", is server: " << is_server_ << "\n";
|
||||
if (is_server_)
|
||||
- acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::address::from_string(host_), port_));
|
||||
+ acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::make_address(host_), port_));
|
||||
}
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ void TcpStream::connect()
|
||||
else
|
||||
{
|
||||
stream_ = make_unique<tcp::socket>(strand_);
|
||||
- boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(host_), port_);
|
||||
+ boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::make_address(host_), port_);
|
||||
stream_->async_connect(endpoint,
|
||||
[this](const boost::system::error_code& ec)
|
||||
{
|
||||
@@ -1,44 +0,0 @@
|
||||
From 6190041e863968d76b6d16140bba90be6dff848f Mon Sep 17 00:00:00 2001
|
||||
From: badaix <johannes.pohl@badaix.de>
|
||||
Date: Thu, 19 Dec 2024 21:36:08 +0100
|
||||
Subject: [PATCH] Fix compilation with boost v1.87.0
|
||||
|
||||
---
|
||||
client/client_connection.cpp | 5 ++---
|
||||
server/stream_session_ws.cpp | 2 +-
|
||||
2 files changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/client/client_connection.cpp
|
||||
+++ b/client/client_connection.cpp
|
||||
@@ -124,10 +124,9 @@ std::string ClientConnection::getMacAddr
|
||||
|
||||
void ClientConnection::connect(const ResultHandler& handler)
|
||||
{
|
||||
- tcp::resolver::query query(server_.host, cpt::to_string(server_.port), boost::asio::ip::resolver_query_base::numeric_service);
|
||||
boost::system::error_code ec;
|
||||
LOG(INFO, LOG_TAG) << "Resolving host IP for: " << server_.host << "\n";
|
||||
- auto iterator = resolver_.resolve(query, ec);
|
||||
+ auto iterator = resolver_.resolve(server_.host, cpt::to_string(server_.port), boost::asio::ip::resolver_query_base::numeric_service, ec);
|
||||
if (ec)
|
||||
{
|
||||
LOG(ERROR, LOG_TAG) << "Failed to resolve host '" << server_.host << "', error: " << ec.message() << "\n";
|
||||
@@ -141,7 +140,7 @@ void ClientConnection::connect(const Res
|
||||
for (const auto& iter : iterator)
|
||||
{
|
||||
LOG(INFO, LOG_TAG) << "Connecting to " << iter.endpoint() << "\n";
|
||||
- socket_.connect(*iterator, ec);
|
||||
+ socket_.connect(iter, ec);
|
||||
if (!ec || (ec == boost::system::errc::interrupted))
|
||||
{
|
||||
// We were successful or interrupted, e.g. by sig int
|
||||
--- a/server/stream_session_ws.cpp
|
||||
+++ b/server/stream_session_ws.cpp
|
||||
@@ -114,7 +114,7 @@ void StreamSessionWebsocket::on_read_ws(
|
||||
return;
|
||||
}
|
||||
|
||||
- auto* data = boost::asio::buffer_cast<char*>(buffer_.data());
|
||||
+ auto* data = static_cast<char*>(buffer_.data().data());
|
||||
baseMessage_.deserialize(data);
|
||||
LOG(DEBUG, LOG_TAG) << "getNextMessage: " << baseMessage_.type << ", size: " << baseMessage_.size << ", id: " << baseMessage_.id
|
||||
<< ", refers: " << baseMessage_.refersTo << "\n";
|
||||
@@ -1,60 +0,0 @@
|
||||
From 901b79a213b139c35ff689c05aff01d29610a8d4 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Hochwallner <tobster@gmx.at>
|
||||
Date: Wed, 7 May 2025 22:42:07 +0200
|
||||
Subject: Build failure with boost 1.88.0 #1367
|
||||
1. [tobster] fix compilation errors by including the deprecated boost process v1 APIs
|
||||
2. [badaix] Define BOOST_PROCESS_VERSION=1 globally
|
||||
|
||||
---
|
||||
client/player/player.cpp | 6 +++++-
|
||||
server/streamreader/stream_control.hpp | 8 +++++---
|
||||
2 files changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/client/player/player.cpp
|
||||
+++ b/client/player/player.cpp
|
||||
@@ -34,10 +34,17 @@
|
||||
#pragma GCC diagnostic ignored "-Wmissing-braces"
|
||||
#pragma GCC diagnostic ignored "-Wnarrowing"
|
||||
#pragma GCC diagnostic ignored "-Wc++11-narrowing"
|
||||
+#if BOOST_VERSION >= 108800
|
||||
+#include <boost/process/v1/args.hpp>
|
||||
+#include <boost/process/v1/async.hpp>
|
||||
+#include <boost/process/v1/child.hpp>
|
||||
+#include <boost/process/v1/exe.hpp>
|
||||
+#else
|
||||
#include <boost/process/args.hpp>
|
||||
#include <boost/process/async.hpp>
|
||||
#include <boost/process/child.hpp>
|
||||
#include <boost/process/exe.hpp>
|
||||
+#endif
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
--- a/server/streamreader/stream_control.hpp
|
||||
+++ b/server/streamreader/stream_control.hpp
|
||||
@@ -32,7 +32,13 @@
|
||||
#pragma GCC diagnostic ignored "-Wnarrowing"
|
||||
#pragma GCC diagnostic ignored "-Wc++11-narrowing"
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
+#if BOOST_VERSION >= 108800
|
||||
+#include <boost/process/v1/io.hpp>
|
||||
+#include <boost/process/v1/start_dir.hpp>
|
||||
+#include <boost/process/v1/system.hpp>
|
||||
+#else
|
||||
#include <boost/process.hpp>
|
||||
+#endif
|
||||
#pragma GCC diagnostic pop
|
||||
#include <boost/asio/any_io_executor.hpp>
|
||||
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -318,7 +318,8 @@ else()
|
||||
add_compile_definitions(HAS_TREMOR)
|
||||
endif()
|
||||
|
||||
-add_compile_definitions(BOOST_ERROR_CODE_HEADER_ONLY BOOST_ASIO_NO_TS_EXECUTORS)
|
||||
+add_compile_definitions(BOOST_ERROR_CODE_HEADER_ONLY BOOST_ASIO_NO_TS_EXECUTORS
|
||||
+ BOOST_PROCESS_VERSION=1)
|
||||
|
||||
if(WIN32)
|
||||
include(FindPackageHandleStandardArgs)
|
||||
@@ -1,19 +0,0 @@
|
||||
From d2e1635ebd96ac76cc779cb3ab73bae10fd88fd1 Mon Sep 17 00:00:00 2001
|
||||
From: badaix <johannes.pohl@badaix.de>
|
||||
Date: Thu, 14 Aug 2025 20:25:01 +0200
|
||||
Subject: [PATCH] Fix building with boost v1.89.0
|
||||
|
||||
---
|
||||
client/player/alsa_player.cpp | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
--- a/client/player/alsa_player.cpp
|
||||
+++ b/client/player/alsa_player.cpp
|
||||
@@ -30,6 +30,7 @@
|
||||
|
||||
// standard headers
|
||||
#include <chrono>
|
||||
+#include <cmath>
|
||||
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
@@ -5,13 +5,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=lf
|
||||
PKG_VERSION:=38
|
||||
PKG_VERSION:=39
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/gokcehan/lf.git
|
||||
PKG_SOURCE_VERSION:=r$(PKG_VERSION)
|
||||
PKG_MIRROR_HASH:=ff99f81df2b30e37f6e34952ba1b004e3f8b641954e35bf87a359a88a6926faf
|
||||
PKG_MIRROR_HASH:=abbff226ee3f2374e8c9d65e3f2bff917271694ad01f3a9c0fa0c07065fc4bd7
|
||||
|
||||
PKG_MAINTAINER:=Nate Robinson <nrobinson2000@me.com>
|
||||
PKG_LICENSE:=MIT
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=prometheus-node-exporter-lua
|
||||
PKG_VERSION:=2025.07.15
|
||||
PKG_VERSION:=2025.11.22
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
|
||||
|
||||
@@ -11,7 +11,7 @@ _log() {
|
||||
start_service() {
|
||||
. /lib/functions/network.sh
|
||||
|
||||
local interface port listenflag cert key bind4 bind6
|
||||
local interface port listenflag cert key bind4 bind6 omit_zero_values
|
||||
|
||||
config_load prometheus-node-exporter-lua.main
|
||||
config_get keepalive "main" http_keepalive 70
|
||||
@@ -19,6 +19,7 @@ start_service() {
|
||||
config_get port "main" listen_port 9100
|
||||
config_get cert "main" cert
|
||||
config_get key "main" key
|
||||
config_get omit_zero_values "main" omit_zero_values 0
|
||||
|
||||
[ "$interface" = "*" ] || {
|
||||
network_get_ipaddr bind4 "$interface"
|
||||
@@ -31,6 +32,8 @@ start_service() {
|
||||
|
||||
procd_open_instance
|
||||
|
||||
[ "$omit_zero_values" -eq 1 ] && procd_set_param env OMIT_ZERO_VALUES=1
|
||||
|
||||
procd_set_param command /usr/sbin/uhttpd -f -c /dev/null -l / -L /usr/bin/prometheus-node-exporter-lua
|
||||
[ $keepalive -gt 0 ] && procd_append_param command -k $keepalive
|
||||
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
|
||||
socket = require("socket")
|
||||
|
||||
-- get configs
|
||||
|
||||
local omit_zero_values = os.getenv("OMIT_ZERO_VALUES") == "1"
|
||||
|
||||
-- Parsing
|
||||
|
||||
function space_split(s)
|
||||
@@ -50,8 +54,12 @@ end
|
||||
|
||||
function metric(name, mtype, labels, value)
|
||||
out:write("# TYPE ", name, " ", mtype, "\n")
|
||||
-- omit_zero_vales config supress time series always being zero
|
||||
local printall = not (mtype == "counter" and omit_zero_values)
|
||||
local outputter = function(labels, value)
|
||||
print_metric(name, labels, value)
|
||||
if printall or tonumber(value) ~= 0 then
|
||||
print_metric(name, labels, value)
|
||||
end
|
||||
end
|
||||
if value then
|
||||
outputter(labels, value)
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=telegraf
|
||||
PKG_VERSION:=1.36.4
|
||||
PKG_VERSION:=1.37.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/influxdata/telegraf/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=d4f647b3ff995698e4490cf9f156ec6d53552cd16287782a196c937ff8d748c3
|
||||
PKG_HASH:=1f05448f5026bff30f8a2b7ec04936c7967b7bb28d86d09f15a617c02071bb77
|
||||
|
||||
PKG_MAINTAINER:=Niklas Thorild <niklas@thorild.se>
|
||||
PKG_LICENSE:=MIT
|
||||
@@ -23,7 +23,7 @@ GO_PKG_BUILD_PKG:=github.com/influxdata/telegraf/cmd/telegraf
|
||||
GO_PKG_LDFLAGS_X := \
|
||||
github.com/influxdata/telegraf/internal.Version=$(PKG_VERSION) \
|
||||
github.com/influxdata/telegraf/internal.Branch=HEAD \
|
||||
github.com/influxdata/telegraf/internal.Commit=467473bd
|
||||
github.com/influxdata/telegraf/internal.Commit=f80cc596
|
||||
|
||||
ifeq ($(CONFIG_mips)$(CONFIG_mipsel),y)
|
||||
TARGET_LDFLAGS += -static
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
|
||||
[ -f /etc/telegraf.conf ] && exit 0
|
||||
|
||||
/usr/bin/telegraf config create > /etc/telegraf.conf
|
||||
HOME=/root /usr/bin/telegraf config create > /etc/telegraf.conf
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -8,20 +8,21 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=vim
|
||||
PKG_VERSION:=9.1
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=9.1.1918
|
||||
PKG_XXD_VERSION:=2025.08.24
|
||||
PKG_RELEASE:=2
|
||||
VIMVER:=91
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=https://www.vim.org/downloads
|
||||
PKG_HASH:=9c2d1d6763a672f6c5210a2bc4bad5a58e4eb8e8e3f293d950d9647811647ec7
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/vim/vim.git
|
||||
PKG_SOURCE_VERSION=v$(PKG_VERSION)
|
||||
PKG_MIRROR_HASH:=51c2d2492d884c879c61b1451f4690f221b2dbccacfe3ddf8abde4d6fcc5e2bf
|
||||
|
||||
PKG_MAINTAINER:=Marko Ratkaj <markoratkaj@gmail.com>
|
||||
PKG_LICENSE:=Vim
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_CPE_ID:=cpe:/a:vim:vim
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)$(VIMVER)
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
@@ -48,7 +49,6 @@ define Package/vim-full
|
||||
CONFLICTS:=vim
|
||||
endef
|
||||
|
||||
|
||||
define Package/vim-fuller
|
||||
$(call Package/vim/Default)
|
||||
TITLE+= (Big)
|
||||
@@ -71,6 +71,7 @@ define Package/xxd
|
||||
CATEGORY:=Utilities
|
||||
TITLE:=make a hexdump or do the reverse
|
||||
URL:=http://www.vim.org/
|
||||
VERSION:=$(PKG_XXD_VERSION)
|
||||
endef
|
||||
|
||||
define Package/vim-full/conffiles
|
||||
@@ -93,7 +94,6 @@ define Package/vim-full/description
|
||||
(Normal build)
|
||||
endef
|
||||
|
||||
|
||||
define Package/vim-fuller/description
|
||||
Vim is an almost compatible version of the UNIX editor Vi.
|
||||
(Big build)
|
||||
@@ -126,7 +126,8 @@ CONFIGURE_ARGS += \
|
||||
--disable-libsodium \
|
||||
--disable-selinux \
|
||||
--with-tlib=ncurses \
|
||||
--with-compiledby="non-existent-hostname-compiled"
|
||||
--with-compiledby="non-existent-hostname-compiled" \
|
||||
--with-wayland=no
|
||||
|
||||
CONFIGURE_VARS += \
|
||||
ac_cv_header_elf_h=no \
|
||||
@@ -181,8 +182,6 @@ define Build/Compile/vim-fuller
|
||||
endef
|
||||
endif
|
||||
|
||||
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_xxd),)
|
||||
define Build/Compile/xxd
|
||||
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
|
||||
@@ -220,7 +219,6 @@ define Package/vim-full/install
|
||||
$(INSTALL_CONF) ./files/vimrc.full $(1)/usr/share/vim/vimrc
|
||||
endef
|
||||
|
||||
|
||||
define Package/vim-fuller/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/vim_big $(1)/usr/bin/vim
|
||||
@@ -230,8 +228,6 @@ define Package/vim-fuller/install
|
||||
$(INSTALL_CONF) ./files/vimrc.full $(1)/usr/share/vim/vimrc
|
||||
endef
|
||||
|
||||
|
||||
|
||||
define Package/vim-runtime/install
|
||||
$(CP) $(PKG_INSTALL_DIR)/* $(1)
|
||||
rm -rf $(1)/usr/share/vim/vim$(VIMVER)/doc
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
--- a/src/po/Makefile
|
||||
+++ b/src/po/Makefile
|
||||
@@ -36,7 +36,7 @@ MSGMERGE = OLD_PO_FILE_INPUT=yes OLD_PO_
|
||||
-c "if error == 0 | q | else | num 2 | cq | endif" $<
|
||||
touch $@
|
||||
@@ -30,7 +30,7 @@ MSGMERGE = OLD_PO_FILE_INPUT=yes OLD_PO_
|
||||
.PHONY: all install uninstall prefixcheck originals converted check clean \
|
||||
checkclean distclean update-po $(LANGUAGES)
|
||||
|
||||
-all: $(MOFILES) $(MOCONVERTED) $(MSGFMT_DESKTOP)
|
||||
+all: $(MOFILES) $(MOCONVERTED)
|
||||
|
||||
check: $(CHECKFILES)
|
||||
originals: $(MOFILES)
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
+++ b/runtime/doc/Makefile
|
||||
@@ -24,7 +24,6 @@ all: tags vim.man evim.man vimdiff.man v
|
||||
# Use Vim to generate the tags file. Can only be used when Vim has been
|
||||
# compiled and installed. Supports multiple languages.
|
||||
# compiled. Supports multiple languages.
|
||||
vimtags: $(DOCS)
|
||||
- @$(VIMEXE) --clean -esX -V1 -u doctags.vim
|
||||
- @$(VIMPROG) --clean -esX -V1 -u doctags.vim
|
||||
|
||||
# Use "doctags" to generate the tags file. Only works for English!
|
||||
tags: doctags $(DOCS)
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
case "$1" in
|
||||
vim|vim-full|vim-fuller)
|
||||
vim --version | grep "$2"
|
||||
vim --version | grep -F "$2"
|
||||
;;
|
||||
xxd)
|
||||
xxd --version 2>&1 | grep -F "${2//./-}"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=watchcat
|
||||
PKG_VERSION:=1
|
||||
PKG_RELEASE:=17
|
||||
PKG_RELEASE:=18
|
||||
|
||||
PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@@ -39,7 +39,7 @@ config_watchcat() {
|
||||
config_get forcedelay "$1" forcedelay "60"
|
||||
config_get pingsize "$1" pingsize "standard"
|
||||
config_get interface "$1" interface
|
||||
config_get mmifacename "$1" mmifacename
|
||||
config_get mmifacename "$1" mmifacename "null"
|
||||
config_get_bool unlockbands "$1" unlockbands "0"
|
||||
config_get addressfamily "$1" addressfamily "any"
|
||||
config_get script "$1" script
|
||||
@@ -73,7 +73,7 @@ config_watchcat() {
|
||||
append_string "warn" "pingperiod cannot be a negative value." "; "
|
||||
fi
|
||||
|
||||
if [ "$mmifacename" != "" ] && [ "$period" -lt 30 ]; then
|
||||
if [ "$mmifacename" != "null" ] && [ "$period" -lt 30 ]; then
|
||||
append_string "error" "Check interval is less than 30s. For robust operation with ModemManager modem interfaces it is recommended to set the period to at least 30s."
|
||||
fi
|
||||
fi
|
||||
@@ -104,19 +104,19 @@ config_watchcat() {
|
||||
;;
|
||||
ping_reboot)
|
||||
procd_open_instance "watchcat_${1}"
|
||||
procd_set_param command /usr/bin/watchcat.sh "ping_reboot" "$period" "$forcedelay" "$pinghosts" "$pingperiod" "$pingsize" "$addressfamily"
|
||||
procd_set_param command /usr/bin/watchcat.sh "ping_reboot" "$period" "$forcedelay" \"$pinghosts\" "$pingperiod" "$pingsize" "$addressfamily"
|
||||
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
|
||||
procd_close_instance
|
||||
;;
|
||||
restart_iface)
|
||||
procd_open_instance "watchcat_${1}"
|
||||
procd_set_param command /usr/bin/watchcat.sh "restart_iface" "$period" "$pinghosts" "$pingperiod" "$pingsize" "$interface" "$mmifacename" "$unlockbands" "$addressfamily"
|
||||
procd_set_param command /usr/bin/watchcat.sh "restart_iface" "$period" \"$pinghosts\" "$pingperiod" "$pingsize" "$interface" "$mmifacename" "$unlockbands" "$addressfamily"
|
||||
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
|
||||
procd_close_instance
|
||||
;;
|
||||
run_script)
|
||||
procd_open_instance "watchcat_${1}"
|
||||
procd_set_param command /usr/bin/watchcat.sh "run_script" "$period" "$pinghosts" "$pingperiod" "$pingsize" "$interface" "$addressfamily" "$script"
|
||||
procd_set_param command /usr/bin/watchcat.sh "run_script" "$period" \"$pinghosts\" "$pingperiod" "$pingsize" "$interface" "$addressfamily" "$script"
|
||||
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
|
||||
procd_close_instance
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user