|
@@ -0,0 +1,92 @@
|
|
|
+################################################################################
|
|
|
+#
|
|
|
+# netavark
|
|
|
+#
|
|
|
+################################################################################
|
|
|
+
|
|
|
+NETAVARK_VERSION = v1.14.0
|
|
|
+NETAVARK_SITE = https://github.com/containers/netavark
|
|
|
+NETAVARK_SITE_METHOD = git
|
|
|
+
|
|
|
+NETAVARK_LICENSE = Apache-2.0
|
|
|
+NETAVARK_LICENSE_FILES = LICENSE
|
|
|
+
|
|
|
+# For protoc
|
|
|
+NETAVARK_DEPENDENCIES = host-protobuf
|
|
|
+
|
|
|
+NETAVARK_CARGO_ENV = PROTOC=$(HOST_DIR)/bin/protoc
|
|
|
+
|
|
|
+# In case only nftables is enabled, use that as the firwewall backend
|
|
|
+ifeq ($(BR2_PACKAGE_IPTABLES).$(BR2_PACKAGE_NFTABLES),.y)
|
|
|
+define NETAVARK_CONFIG_NFTABLES
|
|
|
+ $(Q)mkdir -p $(TARGET_DIR)/etc/containers/containers.conf.d/
|
|
|
+ printf '[network]\nfirewall_driver = "nftables"\n' \
|
|
|
+ > $(TARGET_DIR)/etc/containers/containers.conf.d/50-buildroot-nftables.conf
|
|
|
+endef
|
|
|
+NETAVARK_POST_INSTALL_TARGET_HOOKS += NETAVARK_CONFIG_NFTABLES
|
|
|
+
|
|
|
+# See https://github.com/containers/netavark/issues/1057#issuecomment-2286149984
|
|
|
+define NETAVARK_LINUX_CONFIG_FIXUPS_NFTABLES
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_IPV6)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NF_TABLES)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NF_TABLES_INET)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_NUMGEN)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_CT)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_FLOW_OFFLOAD)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_CONNLIMIT)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_LOG)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_LIMIT)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_MASQ)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_REDIR)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_NAT)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_TUNNEL)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_QUEUE)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_QUOTA)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_REJECT)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_REJECT_INET)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_COMPAT)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_HASH)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_FIB)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_FIB_INET)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_XFRM)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_SOCKET)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_TPROXY)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_SYNPROXY)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_DUP_NETDEV)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_FWD_NETDEV)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_FIB_NETDEV)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_REJECT_NETDEV)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_REJECT_IPV4)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_DUP_IPV4)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_FIB_IPV4)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_COMPAT_ARP)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_REJECT_IPV6)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_DUP_IPV6)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_FIB_IPV6)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_BRIDGE_META)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NFT_BRIDGE_REJECT)
|
|
|
+endef
|
|
|
+endif
|
|
|
+
|
|
|
+define NETAVARK_LINUX_CONFIG_FIXUPS
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_ADVANCED)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XTABLES)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_COMMENT)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_CONNTRACK)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MARK)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_IPVS)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_IPTABLES)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_FILTER)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_NAT)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_IP_NF_TARGET_MASQUERADE)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_BRIDGE_NETFILTER)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NET_CORE)
|
|
|
+ $(call KCONFIG_ENABLE_OPT,CONFIG_VETH)
|
|
|
+ $(NETAVARK_LINUX_CONFIG_FIXUPS_NFTABLES)
|
|
|
+endef
|
|
|
+
|
|
|
+$(eval $(cargo-package))
|