Linux kernel and iproute2 together now implement strict checking of the existence of route tables. Previously kernel does not support filtering by table id, now it does and will error with nlmsgerr "ipv4: FIB table does not exist". Previously iproute2 dump all routes and filter by table id in userspace, now this has changed with iproute2 commit c7e6371bc4af ("ip route: Add protocol, table id and device to dump request") Error scene root@OpenWrt:/# ip route flush table 100 Error: ipv4: FIB table does not exist. Flush terminated root@OpenWrt:/# echo $? 2 Fixes: https://github.com/openwrt/packages/issues/12095 Ref: https://lists.openwall.net/netdev/2019/05/02/105 Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
132 lines
3.5 KiB
Makefile
132 lines
3.5 KiB
Makefile
#
|
|
# Copyright (C) 2017-2020 Yousong Zhou <yszhou4tech@gmail.com>
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
# Checklist when bumping versions
|
|
#
|
|
# - update cipher list by checking src/crypto.c:crypto_init()
|
|
# - check if default mode has changed from being tcp_only
|
|
#
|
|
PKG_NAME:=shadowsocks-libev
|
|
PKG_VERSION:=3.3.4
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(PKG_VERSION)
|
|
PKG_HASH:=fce47a956fad0c30def9c71821bcec450a40d3f881548e31e66cedf262b89eb1
|
|
|
|
PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
|
|
|
|
PKG_LICENSE:=GPL-3.0-or-later
|
|
PKG_LICENSE_FILES:=LICENSE
|
|
|
|
PKG_FIXUP:=autoreconf
|
|
PKG_INSTALL:=1
|
|
PKG_USE_MIPS16:=0
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_BUILD_DEPENDS:=c-ares pcre
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
|
|
define Package/shadowsocks-libev-config
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
SUBMENU:=Web Servers/Proxies
|
|
TITLE:=shadowsocks-libev config scripts
|
|
URL:=https://github.com/shadowsocks/shadowsocks-libev
|
|
endef
|
|
|
|
define Package/shadowsocks-libev-config/install
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_DATA) ./files/shadowsocks-libev.config $(1)/etc/config/shadowsocks-libev
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/shadowsocks-libev.init $(1)/etc/init.d/shadowsocks-libev
|
|
endef
|
|
|
|
|
|
define Package/shadowsocks-libev/Default
|
|
define Package/shadowsocks-libev-$(1)
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
SUBMENU:=Web Servers/Proxies
|
|
TITLE:=shadowsocks-libev $(1)
|
|
URL:=https://github.com/shadowsocks/shadowsocks-libev
|
|
DEPENDS:=+libev +libmbedtls +libpthread +libsodium +shadowsocks-libev-config $(DEPENDS_$(1))
|
|
endef
|
|
|
|
define Package/shadowsocks-libev-$(1)/install
|
|
$$(INSTALL_DIR) $$(1)/usr/bin
|
|
$$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/usr/bin/$(1) $$(1)/usr/bin
|
|
endef
|
|
|
|
endef
|
|
|
|
DEPENDS_ss-local = +libpcre
|
|
DEPENDS_ss-server = +libcares +libpcre
|
|
|
|
SHADOWSOCKS_COMPONENTS:=ss-local ss-redir ss-tunnel ss-server
|
|
define shadowsocks-libev/templates
|
|
$(foreach component,$(SHADOWSOCKS_COMPONENTS),
|
|
$(call Package/shadowsocks-libev/Default,$(component))
|
|
)
|
|
endef
|
|
$(eval $(call shadowsocks-libev/templates))
|
|
|
|
|
|
define Package/shadowsocks-libev-ss-rules
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
SUBMENU:=Web Servers/Proxies
|
|
TITLE:=shadowsocks-libev ss-rules
|
|
URL:=https://github.com/shadowsocks/shadowsocks-libev
|
|
DEPENDS:=+ip +ipset +iptables-mod-tproxy +resolveip +shadowsocks-libev-ss-redir +shadowsocks-libev-config
|
|
endef
|
|
|
|
define Package/shadowsocks-libev-ss-rules/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) ./files/ss-rules $(1)/usr/bin
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_DATA) ./files/firewall.ss-rules $(1)/etc
|
|
$(INSTALL_BIN) ./files/ss-rules.defaults $(1)/etc/uci-defaults
|
|
endef
|
|
|
|
define Package/shadowsocks-libev-ss-rules/prerm
|
|
#!/bin/sh
|
|
s=firewall.ss_rules
|
|
uci get "$$s" >/dev/null || exit 0
|
|
uci batch <<-EOF
|
|
delete $$s
|
|
commit firewall
|
|
EOF
|
|
endef
|
|
|
|
define Build/Prepare
|
|
$(call Build/Prepare/Default)
|
|
$(FIND) $(PKG_BUILD_DIR) \
|
|
-name '*.o' \
|
|
-o -name '*.lo' \
|
|
-o -name '.deps' \
|
|
-o -name '.libs' \
|
|
| $(XARGS) rm -rvf
|
|
endef
|
|
|
|
CONFIGURE_ARGS += \
|
|
--disable-documentation \
|
|
--disable-silent-rules \
|
|
--disable-assert \
|
|
--disable-ssp \
|
|
|
|
TARGET_CFLAGS += -flto
|
|
TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
|
|
|
|
$(eval $(call BuildPackage,shadowsocks-libev-config))
|
|
$(eval $(call BuildPackage,shadowsocks-libev-ss-rules))
|
|
$(foreach component,$(SHADOWSOCKS_COMPONENTS), \
|
|
$(eval $(call BuildPackage,shadowsocks-libev-$(component))) \
|
|
)
|