From 52e074411b937cd91d34ebeedc429de5dadce9a4 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Wed, 29 Jul 2020 17:30:38 +0800 Subject: openvswitch: only libopenvswitch depends on libunbound, libunwind This is to make explicit the conditional select of libunwind is only needed for libopenvswitch. If we spill it over other packages, the generated kconfig will have recursive dependency issue. 2 new patches were made for this goal The other thing is that "+libunwind" will cause it to be built if any of the packages defined in this Makefile is enabled (y or m). This is at the moment by-design of the build system. Libunwind does not support architectures like arc. Use conditional select To avoid (libunwind) build failures like the following, checking for ELF helper width... configure: error: Unknown ELF target: arc make[3]: *** [Makefile:65: /data/openwrt/build_dir/target-arc_arc700_uClibc/ libunwind-1.3.1/.configured_68b329da9893e34099c7d8ad5cb9c940] Error 1 Things like "+PACKAGE_openvswitch-libopenvswitch:libunwind" will also result in recursive deps error for chains of 3 nodes. Kconfig construct like the following will be made config A tristate select B depends on !(C) || (x) config B tristate select C config C tristate config x bool Other changes include - Shared use of variable ovs__common_depends was removed - Ovn doc build was patched out Link: https://github.com/openwrt/packages/pull/12959#issuecomment-665021413 Reported-by: Adrian Schmutzler Signed-off-by: Yousong Zhou --- net/openvswitch/Makefile | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'net/openvswitch/Makefile') diff --git a/net/openvswitch/Makefile b/net/openvswitch/Makefile index 74a0ae22c..c869ace10 100644 --- a/net/openvswitch/Makefile +++ b/net/openvswitch/Makefile @@ -17,7 +17,7 @@ include ./openvswitch.mk # PKG_NAME:=openvswitch PKG_VERSION:=$(ovs_version) -PKG_RELEASE:=7 +PKG_RELEASE:=8 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.openvswitch.org/releases/ PKG_HASH:=dd5f727427e36cab22bdeae61529d8c8fccacc53d968cfa7658f7f935ddda531 @@ -156,7 +156,7 @@ ovs_kmod_openvswitch-lisp-intree_depends:= +kmod-openvswitch-intree ovs_kmod_openvswitch-lisp-intree_files:= $(ovs_kmod_intree_dir)/vport-lisp.ko $(eval $(call OvsKmodPackageTemplate,openvswitch-lisp-intree)) -ovs__common_depends:= +libatomic +libunbound +libunwind +ovs__common_depends:=+libatomic +librt # Dependency review # @@ -166,42 +166,46 @@ ovs__common_depends:= +libatomic +libunbound +libunwind # ovs_libopenvswitch_title:=Open vSwitch (libopenvswitch.so) ovs_libopenvswitch_hidden:=1 -ovs_libopenvswitch_depends:=+libopenssl +librt +ovs_libopenvswitch_depends:=+libopenssl +libunbound +!(arc||arceb):libunwind +ovs_libopenvswitch_depends+=$(ovs__common_depends) ovs_libopenvswitch_files:=usr/lib/libopenvswitch*.so* $(eval $(call OvsPackageTemplate,libopenvswitch)) ovs_libofproto_title:=Open vSwitch (libofproto.so libsflow.so) ovs_libofproto_hidden:=1 -ovs_libofproto_depends:=+librt +ovs_libofproto_depends+=$(ovs__common_depends) ovs_libofproto_files:=usr/lib/libofproto*.so* usr/lib/libsflow*.so* $(eval $(call OvsPackageTemplate,libofproto)) ovs_libovsdb_title:=Open vSwitch (libovsdb.so) ovs_libovsdb_hidden:=1 -ovs_libovsdb_depends:=+librt +ovs_libovsdb_depends+=$(ovs__common_depends) ovs_libovsdb_files:=usr/lib/libovsdb*.so* $(eval $(call OvsPackageTemplate,libovsdb)) ovs_vswitchd_title:=Open vSwitch (ovs-vswitchd) ovs_vswitchd_hidden:=1 -ovs_vswitchd_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libofproto +ovs_vswitchd_depends:=+openvswitch-libopenvswitch +openvswitch-libofproto +ovs_vswitchd_depends+=$(ovs__common_depends) ovs_vswitchd_files:=usr/sbin/ovs-vswitchd $(eval $(call OvsPackageTemplate,vswitchd)) ovs_ovsdb_title:=Open vSwitch (ovsdb-server) ovs_ovsdb_hidden:=1 -ovs_ovsdb_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libovsdb +ovs_ovsdb_depends:=+openvswitch-libopenvswitch +openvswitch-libovsdb +ovs_ovsdb_depends+=$(ovs__common_depends) ovs_ovsdb_files:=usr/sbin/ovsdb-server $(eval $(call OvsPackageTemplate,ovsdb)) ovs_common_title:=Open vSwitch (common files) ovs_common_hidden:=1 -ovs_common_depends:=+librt +openvswitch-libopenvswitch +openvswitch-libofproto +openvswitch-libovsdb +ovs_common_depends:=+openvswitch-libopenvswitch +openvswitch-libofproto +openvswitch-libovsdb +ovs_common_depends+=$(ovs__common_depends) ovs_common_files:= \ usr/share/openvswitch/scripts/ovs-lib \ usr/share/openvswitch/scripts/ovs-ctl \ @@ -231,8 +235,9 @@ $(eval $(call OvsPackageTemplate,common)) # uuidgen is required for generating system-id ovs_openvswitch_title:=Open vSwitch ovs_openvswitch_hidden:= -ovs_openvswitch_depends:=+librt +coreutils +coreutils-sleep +uuidgen \ +ovs_openvswitch_depends:=+coreutils +coreutils-sleep +uuidgen \ +openvswitch-common +openvswitch-vswitchd +openvswitch-ovsdb +kmod-openvswitch +ovs_openvswitch_depends+=$(ovs__common_depends) ovs_openvswitch_files:= usr/share/openvswitch/vswitch.ovsschema $(eval $(call OvsPackageTemplate,openvswitch)) -- cgit v1.2.3