From d9aea0982cba7e0b4967febb72826f499fd792c0 Mon Sep 17 00:00:00 2001 From: Eneas U de Queiroz Date: Tue, 7 Apr 2020 17:07:19 -0300 Subject: [PATCH] kernel: add @IPV6 dependency to ipv6 modules IPv6 modules should all depend on @IPV6, to avoid circular dependencies problems, especially if they select a module that depends on IPV6 as well. In theory, if a package A depends on IPV6, any package doing 'select A' (DEPENDS+= A) should also depend on IPV6; otherwise selecting A will fail. Sometimes the build system is forgiving this, but eventually, and unexpectedly, it may blow up on some other commit. Alternatively one can conditionally add IPv6 dependencies only if CONFIG_IPV6 is selected: (DEPENDS+= +IPV6:package6). Signed-off-by: Eneas U de Queiroz --- package/kernel/linux/modules/netfilter.mk | 13 ++++++++----- package/kernel/linux/modules/netsupport.mk | 6 +++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/package/kernel/linux/modules/netfilter.mk b/package/kernel/linux/modules/netfilter.mk index 2fec1a12bd..04cd854c40 100644 --- a/package/kernel/linux/modules/netfilter.mk +++ b/package/kernel/linux/modules/netfilter.mk @@ -137,7 +137,7 @@ define KernelPackage/nf-nat6 SUBMENU:=$(NF_MENU) TITLE:=Netfilter IPV6-NAT KCONFIG:=$(KCONFIG_NF_NAT6) - DEPENDS:=+kmod-nf-conntrack6 +kmod-nf-nat + DEPENDS:=@IPV6 +kmod-nf-conntrack6 +kmod-nf-nat FILES:=$(foreach mod,$(NF_NAT6-m),$(LINUX_DIR)/net/$(mod).ko) AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT6-m))) endef @@ -554,6 +554,7 @@ $(eval $(call KernelPackage,ipt-weburl)) define KernelPackage/ipt-raw6 TITLE:=Netfilter IPv6 raw table support + DEPENDS:=@IPV6 KCONFIG:=CONFIG_IP6_NF_RAW FILES:=$(LINUX_DIR)/net/ipv6/netfilter/ip6table_raw.ko AUTOLOAD:=$(call AutoProbe,ip6table_raw) @@ -565,6 +566,7 @@ $(eval $(call KernelPackage,ipt-raw6)) define KernelPackage/ipt-nat6 TITLE:=IPv6 NAT targets + DEPENDS:=@IPV6 KCONFIG:=$(KCONFIG_IPT_NAT6) FILES:=$(foreach mod,$(IPT_NAT6-m),$(LINUX_DIR)/net/$(mod).ko) AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_NAT6-m))) @@ -889,7 +891,7 @@ $(eval $(call KernelPackage,ipt-physdev)) define KernelPackage/ip6tables SUBMENU:=$(NF_MENU) TITLE:=IPv6 modules - DEPENDS:=+kmod-nf-reject6 +kmod-nf-ipt6 +kmod-ipt-core + DEPENDS:=@IPV6 +kmod-nf-reject6 +kmod-nf-ipt6 +kmod-ipt-core KCONFIG:=$(KCONFIG_IPT_IPV6) FILES:=$(foreach mod,$(IPT_IPV6-m),$(LINUX_DIR)/net/$(mod).ko) AUTOLOAD:=$(call AutoLoad,42,$(notdir $(IPT_IPV6-m))) @@ -904,7 +906,7 @@ $(eval $(call KernelPackage,ip6tables)) define KernelPackage/ip6tables-extra SUBMENU:=$(NF_MENU) TITLE:=Extra IPv6 modules - DEPENDS:=+kmod-ip6tables + DEPENDS:=@IPV6 +kmod-ip6tables KCONFIG:=$(KCONFIG_IPT_IPV6_EXTRA) FILES:=$(foreach mod,$(IPT_IPV6_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko) AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_IPV6_EXTRA-m))) @@ -994,6 +996,7 @@ $(eval $(call KernelPackage,ebtables-ipv4)) define KernelPackage/ebtables-ipv6 TITLE:=ebtables: IPv6 support + DEPENDS:=@IPV6 FILES:=$(foreach mod,$(EBTABLES_IP6-m),$(LINUX_DIR)/net/$(mod).ko) KCONFIG:=$(KCONFIG_EBTABLES_IP6) AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP6-m))) @@ -1132,7 +1135,7 @@ $(eval $(call KernelPackage,ipt-rpfilter)) define KernelPackage/nft-core SUBMENU:=$(NF_MENU) TITLE:=Netfilter nf_tables support - DEPENDS:=+kmod-nfnetlink +kmod-nf-reject +kmod-nf-reject6 +kmod-nf-conntrack6 +LINUX_5_4:kmod-nf-nat + DEPENDS:=+kmod-nfnetlink +kmod-nf-reject +IPV6:kmod-nf-reject6 +IPV6:kmod-nf-conntrack6 +LINUX_5_4:kmod-nf-nat FILES:=$(foreach mod,$(NFT_CORE-m),$(LINUX_DIR)/net/$(mod).ko) AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_CORE-m))) KCONFIG:= \ @@ -1189,7 +1192,7 @@ $(eval $(call KernelPackage,nft-nat)) define KernelPackage/nft-offload SUBMENU:=$(NF_MENU) TITLE:=Netfilter nf_tables routing/NAT offload support - DEPENDS:=+kmod-nf-flow +kmod-nft-nat + DEPENDS:=@IPV6 +kmod-nf-flow +kmod-nft-nat KCONFIG:= \ CONFIG_NF_FLOW_TABLE_INET \ CONFIG_NF_FLOW_TABLE_IPV4 \ diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk index 57e443f39b..7082e1e858 100644 --- a/package/kernel/linux/modules/netsupport.mk +++ b/package/kernel/linux/modules/netsupport.mk @@ -318,7 +318,7 @@ IPSEC6-m += $(ifeq ($$(strip $$(call CompareKernelPatchVer,$$(KERNEL_PATCHVER),l define KernelPackage/ipsec6 SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IPsec related modules (IPv6) - DEPENDS:=kmod-ipsec +kmod-iptunnel6 + DEPENDS:=@IPV6 kmod-ipsec +kmod-iptunnel6 KCONFIG:= \ CONFIG_INET6_AH \ CONFIG_INET6_ESP \ @@ -383,7 +383,7 @@ $(eval $(call KernelPackage,ip-vti)) define KernelPackage/ip6-vti SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IPv6 VTI (Virtual Tunnel Interface) - DEPENDS:=+kmod-iptunnel +kmod-ip6-tunnel +kmod-ipsec6 + DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-ipsec6 KCONFIG:=CONFIG_IPV6_VTI FILES:=$(LINUX_DIR)/net/ipv6/ip6_vti.ko AUTOLOAD:=$(call AutoLoad,33,ip6_vti) @@ -399,7 +399,7 @@ $(eval $(call KernelPackage,ip6-vti)) define KernelPackage/xfrm-interface SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IPsec XFRM Interface - DEPENDS:=+kmod-ipsec4 +kmod-ipsec6 @!LINUX_4_14 @!LINUX_4_9 + DEPENDS:=+kmod-ipsec4 +@IPV6:kmod-ipsec6 @!(LINUX_4_9||LINUX_4_14) KCONFIG:=CONFIG_XFRM_INTERFACE FILES:=$(LINUX_DIR)/net/xfrm/xfrm_interface.ko AUTOLOAD:=$(call AutoProbe,xfrm_interface)