diff --git a/net/iotivity/Makefile b/net/iotivity/Makefile index 7653d62ef..3c0999864 100644 --- a/net/iotivity/Makefile +++ b/net/iotivity/Makefile @@ -8,15 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iotivity -PKG_VERSION:=0.9.1 -PKG_RELEASE:=1 - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://gerrit.iotivity.org/gerrit/iotivity -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=0.9.1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz -PKG_MIRROR_MD5SUM:= +PKG_VERSION:=0.9.2 +PKG_RELEASE=1 + +PKG_SOURCE:=${PKG_NAME}-${PKG_VERSION}.tar.gz +PKG_SOURCE_URL:=https://downloads.iotivity.org/${PKG_VERSION}/ \ + http://mirrors.kernel.org/${PKG_NAME}/${PKG_VERSION}/ +PKG_MD5SUM:=cf32e10a8f355fe1327db98ffc9a6173 PKG_USE_MIPS16:=0 PKG_MAINTAINER:=Hauke Mehrtens @@ -33,8 +31,8 @@ include $(INCLUDE_DIR)/scons.mk define Package/iotivity SECTION:=net CATEGORY:=Network - DEPENDS:=@!USE_UCLIBC +libpthread +librt +libstdcpp +libuuid - TITLE:=IoTivity Library + DEPENDS:=@!USE_UCLIBC +libpthread +librt +libuuid + TITLE:=IoTivity C Library URL:=https://www.iotivity.org endef @@ -44,10 +42,24 @@ define Package/iotivity/description endef +define Package/iotivity-cpp + SECTION:=net + CATEGORY:=Network + DEPENDS:=iotivity +libpthread +libstdcpp + TITLE:=IoTivity C++ Library + URL:=https://www.iotivity.org +endef + +define Package/iotivity-cpp/description + IoTivity is a framework for the Internet of Things based on the + Open Interconnect Consortium Specification. +endef + + define Package/iotivity-things-manager-lib SECTION:=net CATEGORY:=Network - DEPENDS:=iotivity + DEPENDS:=iotivity +iotivity-cpp +libstdcpp TITLE:=IoTivity things manager lib URL:=https://www.iotivity.org endef @@ -60,7 +72,7 @@ endef define Package/iotivity-plugin-manager-lib SECTION:=net CATEGORY:=Network - DEPENDS:=iotivity +libexpat + DEPENDS:=iotivity +iotivity-cpp +libexpat +boost +boost-system TITLE:=IoTivity plugin manager lib URL:=https://www.iotivity.org endef @@ -73,7 +85,7 @@ endef define Package/iotivity-mqttclient SECTION:=net CATEGORY:=Network - DEPENDS:=iotivity +iotivity-plugin-manager-lib +boost +boost-system + DEPENDS:=iotivity +iotivity-cpp +iotivity-plugin-manager-lib +boost +boost-system TITLE:=IoTivity mqtt Client URL:=https://www.iotivity.org endef @@ -86,7 +98,7 @@ endef define Package/iotivity-oic-middle SECTION:=net CATEGORY:=Network - DEPENDS:=iotivity + DEPENDS:=iotivity +iotivity-cpp TITLE:=IoTivity OIC Middle URL:=https://www.iotivity.org endef @@ -99,7 +111,7 @@ endef define Package/iotivity-things-manager SECTION:=net CATEGORY:=Network - DEPENDS:=iotivity +iotivity-things-manager-lib + DEPENDS:=iotivity +iotivity-cpp +iotivity-things-manager-lib TITLE:=IoTivity things manager URL:=https://www.iotivity.org endef @@ -112,7 +124,7 @@ endef define Package/iotivity-example-garage SECTION:=net CATEGORY:=Network - DEPENDS:=iotivity + DEPENDS:=iotivity +iotivity-cpp TITLE:=IoTivity Garage example URL:=https://www.iotivity.org endef @@ -122,23 +134,23 @@ define Package/iotivity-example-garage/description endef -PKG_CEREAL_NAME:=cereal -PKG_CEREAL_VERSION:=7121e91e6ab8c3e6a6516d9d9c3e6804e6f65245 -PKG_CEREAL_SOURCE:=$(PKG_CEREAL_NAME)-$(PKG_CEREAL_VERSION).tar.bz2 -PKG_CEREAL_PROTO:=git -PKG_CEREAL_SOURCE_URL:=https://github.com/USCiLab/cereal.git -PKG_CEREAL_SUBDIR:=$(PKG_CEREAL_NAME) -#PKG_CEREAL_MIRROR_MD5SUM:=? +PKG_TINYCBOR_NAME:=tinycbor +PKG_TINYCBOR_VERSION:=3e83c0dc6e55bc73e9a4a7343ab8e06c43127efa +PKG_TINYCBOR_SOURCE:=$(PKG_TINYCBOR_NAME)-$(PKG_TINYCBOR_VERSION).tar.bz2 +PKG_TINYCBOR_PROTO:=git +PKG_TINYCBOR_SOURCE_URL:=https://github.com/01org/tinycbor.git +PKG_TINYCBOR_SUBDIR:=$(PKG_TINYCBOR_NAME) +#PKG_TINYCBOR_MIRROR_MD5SUM:=? -define Download/iotivity-cereal - FILE:=$(PKG_CEREAL_SOURCE) - URL:=$(PKG_CEREAL_SOURCE_URL) - PROTO:=$(PKG_CEREAL_PROTO) - VERSION:=$(PKG_CEREAL_VERSION) - SUBDIR:=$(PKG_CEREAL_SUBDIR) - #MIRROR_MD5SUM:=$(PKG_CEREAL_MIRROR_MD5SUM) +define Download/iotivity-tinycbor + FILE:=$(PKG_TINYCBOR_SOURCE) + URL:=$(PKG_TINYCBOR_SOURCE_URL) + PROTO:=$(PKG_TINYCBOR_PROTO) + VERSION:=$(PKG_TINYCBOR_VERSION) + SUBDIR:=$(PKG_TINYCBOR_SUBDIR) + #MIRROR_MD5SUM:=$(PKG_TINYCBOR_MIRROR_MD5SUM) endef -$(eval $(call Download,iotivity-cereal)) +$(eval $(call Download,iotivity-tinycbor)) SCONS_OPTIONS += \ @@ -146,6 +158,8 @@ SCONS_OPTIONS += \ TARGET_TRANSPORT=ALL \ TARGET_ARCH=$(ARCH) \ STAGING_DIR=$(STAGING_DIR) \ + LOGGING=true \ + SECURED=1 \ mqttclient examples samples libTGMSDK ConServerApp ConClientApp BootstrapServerApp ifneq ($(findstring c,$(OPENWRT_VERBOSE)),) @@ -154,9 +168,10 @@ endif define Build/Prepare $(call Build/Prepare/Default) - $(TAR) -C $(PKG_BUILD_DIR)/extlibs/cereal -xjf $(DL_DIR)/$(PKG_CEREAL_SOURCE) + $(TAR) -C $(PKG_BUILD_DIR)/extlibs/tinycbor/ -xjf $(DL_DIR)/$(PKG_TINYCBOR_SOURCE) endef + define Build/Configure (cd $(PKG_BUILD_DIR); \ $(SCONS_VARS) \ @@ -168,46 +183,51 @@ endef define Package/iotivity/install $(INSTALL_DIR) $(1)/usr/lib - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc.so $(1)/usr/lib/liboc.so - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc_logger.so $(1)/usr/lib/liboc_logger.so - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboctbstack.so $(1)/usr/lib/liboctbstack.so + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboctbstack.so $(1)/usr/lib/ +endef + +define Package/iotivity-cpp/install + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc.so $(1)/usr/lib/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc_logger.so $(1)/usr/lib/ endef define Package/iotivity-things-manager-lib/install $(INSTALL_DIR) $(1)/usr/lib - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libTGMSDKLibrary.so $(1)/usr/lib/libTGMSDKLibrary.so + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libTGMSDKLibrary.so $(1)/usr/lib/ endef define Package/iotivity-plugin-manager-lib/install $(INSTALL_DIR) $(1)/usr/lib - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libpmimpl.so $(1)/usr/lib/libpmimpl.so + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libpmimpl.so $(1)/usr/lib/ endef define Package/iotivity-mqttclient/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/protocol-plugin/sample-app/linux/mqtt/mqttclient $(1)/usr/bin/mqttclient + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/protocol-plugin/sample-app/linux/mqtt/mqttclient $(1)/usr/bin/ endef define Package/iotivity-oic-middle/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/examples/OICMiddle/OICMiddle $(1)/usr/bin/OICMiddle + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/examples/OICMiddle/OICMiddle $(1)/usr/bin/ endef define Package/iotivity-things-manager/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/bootstrapserver $(1)/usr/bin/bootstrapserver - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-server $(1)/usr/bin/con-server - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-client $(1)/usr/bin/con-client + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/bootstrapserver $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-server $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-client $(1)/usr/bin/ endef define Package/iotivity-example-garage/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageclient $(1)/usr/bin/garageclient - $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageserver $(1)/usr/bin/garageserver + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageclient $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageserver $(1)/usr/bin/ endef $(eval $(call BuildPackage,iotivity)) +$(eval $(call BuildPackage,iotivity-cpp)) $(eval $(call BuildPackage,iotivity-things-manager-lib)) $(eval $(call BuildPackage,iotivity-plugin-manager-lib)) $(eval $(call BuildPackage,iotivity-mqttclient)) diff --git a/net/iotivity/patches/001-no_unit_test.patch b/net/iotivity/patches/001-no_unit_test.patch index 6ba226592..60b20ddf8 100644 --- a/net/iotivity/patches/001-no_unit_test.patch +++ b/net/iotivity/patches/001-no_unit_test.patch @@ -1,6 +1,6 @@ --- a/resource/SConscript +++ b/resource/SConscript -@@ -61,7 +61,7 @@ if target_os == 'linux': +@@ -67,7 +67,7 @@ if target_os == 'linux': SConscript('csdk/stack/samples/linux/secure/SConscript') # Build C/C++ unit tests @@ -8,4 +8,17 @@ + # SConscript('unit_tests.scons') elif target_os == 'darwin': - # Build linux samples for now. + env.Command('../../out/darwin/iotivity-csdk.framework',None,src_dir + '/tools/darwin/mkfwk_osx.sh') +--- a/service/resource-encapsulation/SConscript ++++ b/service/resource-encapsulation/SConscript +@@ -101,7 +101,7 @@ SConscript('examples/SConscript') + ###################################################################### + # Build UnitTests Resource Client , resourceCache and resourceBroker + ################################################ ###################### +-SConscript('unittests/SConscript') +-SConscript('src/resourceCache/unittests/SConscript') +-SConscript('src/resourceBroker/unittest/SConscript') ++#SConscript('unittests/SConscript') ++#SConscript('src/resourceCache/unittests/SConscript') ++#SConscript('src/resourceBroker/unittest/SConscript') + diff --git a/net/iotivity/patches/004-use-env.patch b/net/iotivity/patches/004-use-env.patch index 62a2b768e..334d42946 100644 --- a/net/iotivity/patches/004-use-env.patch +++ b/net/iotivity/patches/004-use-env.patch @@ -9,7 +9,7 @@ Subject: [PATCH 3/4] 004-use-env.patch --- a/build_common/SConscript +++ b/build_common/SConscript -@@ -106,6 +106,26 @@ tc_set_msg = ''' +@@ -129,6 +129,26 @@ tc_set_msg = ''' * cause inexplicable errors. * ******************************************************************************* ''' @@ -35,4 +35,4 @@ Subject: [PATCH 3/4] 004-use-env.patch + if env.get('VERBOSE') == False: env['CCCOMSTR'] = "Compiling $TARGET" - env['CXXCOMSTR'] = "Compiling $TARGET" + env['SHCCCOMSTR'] = "Compiling $TARGET" diff --git a/net/iotivity/patches/010-libcoap-fix-big-endian-problems.patch b/net/iotivity/patches/010-libcoap-fix-big-endian-problems.patch deleted file mode 100644 index 63a9ad5ec..000000000 --- a/net/iotivity/patches/010-libcoap-fix-big-endian-problems.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 62c0a14ccd333d0e55fc431f151253a72a2836d0 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -Date: Mon, 8 Jun 2015 21:57:52 +0200 -Subject: [PATCH] libcoap: fix big endian problems - -When this is build for a big endian Linux system WORDS_BIGENDIAN was -not be set. This patch sets it correctly so it will not generate broken -code on big endian systems. -This was tested on MIPS BE 32 Bit. - -Change-Id: I59dd07d8020c553318e2aa43894a2185fe9b9286 -Signed-off-by: Hauke Mehrtens -Reviewed-on: https://gerrit.iotivity.org/gerrit/1219 -Tested-by: jenkins-iotivity -Reviewed-by: Erich Keane ---- - resource/csdk/connectivity/lib/libcoap-4.1.1/config.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/resource/csdk/connectivity/lib/libcoap-4.1.1/config.h -+++ b/resource/csdk/connectivity/lib/libcoap-4.1.1/config.h -@@ -135,8 +135,8 @@ - # define WORDS_BIGENDIAN 1 - # endif - #else --# ifndef WORDS_BIGENDIAN --/* # undef WORDS_BIGENDIAN */ -+# if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) -+# define WORDS_BIGENDIAN 1 - # endif - #endif - diff --git a/net/iotivity/patches/011-cdsk-fix-big-endian-problem.patch b/net/iotivity/patches/011-cdsk-fix-big-endian-problem.patch deleted file mode 100644 index 833f600ae..000000000 --- a/net/iotivity/patches/011-cdsk-fix-big-endian-problem.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 7189bc088f558945972d82a9a3427001cb20000a Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -Date: Mon, 8 Jun 2015 22:03:19 +0200 -Subject: [PATCH] cdsk: fix big endian problem - -Without this patch the client will endianes swap the port number when -sending the detailed request after it got the answer for his multicast -get. Use the same method for storing the port number in the address -array in ever part of the code and do not use memcpy and manual -bytewise coping mixed over the code. memcpy was used once and byte wise -copy was used twice so I choose the majority. -This was tested on MIPS BE 32 Bit. - -Change-Id: Ib486171987004d10209d2bbf6b1d9ada75235651 -Signed-off-by: Hauke Mehrtens -Reviewed-on: https://gerrit.iotivity.org/gerrit/1220 -Tested-by: jenkins-iotivity -Reviewed-by: Doug Hudson -Reviewed-by: Erich Keane ---- - resource/csdk/stack/src/ocstack.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/resource/csdk/stack/src/ocstack.c -+++ b/resource/csdk/stack/src/ocstack.c -@@ -723,7 +723,8 @@ OCStackResult UpdateResponseAddr(OCDevAd - address->addr[i] = atoi(tok); - } - -- memcpy(&address->addr[4], &endPoint->addressInfo.IP.port, sizeof(uint16_t)); -+ address->addr[4] = (uint8_t)endPoint->addressInfo.IP.port; -+ address->addr[5] = (uint8_t)(endPoint->addressInfo.IP.port >> 8); - ret = OC_STACK_OK; - - exit: diff --git a/net/iotivity/patches/030-fix-missing-lib.patch b/net/iotivity/patches/030-fix-missing-lib.patch deleted file mode 100644 index c5ba2708d..000000000 --- a/net/iotivity/patches/030-fix-missing-lib.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/service/protocol-plugin/sample-app/linux/SConscript -+++ b/service/protocol-plugin/sample-app/linux/SConscript -@@ -41,7 +41,7 @@ if target_os not in ['windows', 'winrt'] - - sample_env.AppendUnique(LIBS = ['oc', 'oc_logger', 'octbstack', - 'connectivity_abstraction', 'coap', -- 'ppm', 'pmimpl', 'dl']) -+ 'ppm', 'boost_system', 'pmimpl', 'dl']) - - if env.get('SECURED') == '1': - sample_env.AppendUnique(LIBS = ['tinydtls']) diff --git a/net/iotivity/patches/040-fix-things-manager.patch b/net/iotivity/patches/040-fix-things-manager.patch deleted file mode 100644 index 972841b72..000000000 --- a/net/iotivity/patches/040-fix-things-manager.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/service/things-manager/sampleapp/linux/configuration/SConscript -+++ b/service/things-manager/sampleapp/linux/configuration/SConscript -@@ -57,7 +57,7 @@ conserver = linux_sample_env.Program('co - conclient = linux_sample_env.Program('con-client', 'con-client.cpp') - bootstrapserver = linux_sample_env.Program('bootstrapserver', 'bootstrapserver.cpp') - Alias("ConServerApp", conserver) --Alias("ConCleintApp", conclient) -+Alias("ConClientApp", conclient) - Alias("BootstrapServerApp", bootstrapserver) - env.AppendTarget('ConServerApp') - env.AppendTarget('ConClientApp') diff --git a/net/iotivity/patches/050-fix-OICMidle.patch b/net/iotivity/patches/050-fix-OICMidle.patch deleted file mode 100644 index a03ed262d..000000000 --- a/net/iotivity/patches/050-fix-OICMidle.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/resource/csdk/stack/include/octypes.h -+++ b/resource/csdk/stack/include/octypes.h -@@ -35,9 +35,9 @@ extern "C" { - //Don't want to expose to application layer that lower level stack is using CoAP. - - /// Authority + URI string to prefix well known queries --#define OC_WELL_KNOWN_QUERY "224.0.1.187:5683/oc/core" -+#define OC_WELL_KNOWN_QUERY "/oc/core" - #define OC_MULTICAST_DISCOVERY_URI "/oc/core" --#define OC_EXPLICIT_DEVICE_DISCOVERY_URI "224.0.1.187:5683/oc/core/d?rt=core.led" -+#define OC_EXPLICIT_DEVICE_DISCOVERY_URI "/oc/core/d?rt=core.led" - /// Multicast address and port string to prefix multicast queries - #define OC_MULTICAST_PREFIX "224.0.1.187:5683" - /// IP Multicast address to use for multicast requests diff --git a/net/iotivity/patches/060-liboc-add-missing-depending-library.patch b/net/iotivity/patches/060-liboc-add-missing-depending-library.patch new file mode 100644 index 000000000..572373c4e --- /dev/null +++ b/net/iotivity/patches/060-liboc-add-missing-depending-library.patch @@ -0,0 +1,49 @@ +From b13839cceaae97d7d23b54586da1ad7ac85ab2b6 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Tue, 21 Jul 2015 20:50:39 +0200 +Subject: [PATCH] liboc: add missing depending library + +liboc.so depends on liboctbstack.so, liboc_logger.so and pthread, this +patch adds these dependencies to the build. + +Without this the dynamic loader will not automatically load these +libraries and it could result in unresolved dependencies at runtime. + +Change-Id: I971b45669adef31dc9cca719884ebeb74aaf735e +Signed-off-by: Hauke Mehrtens +Reviewed-on: https://gerrit.iotivity.org/gerrit/1794 +Tested-by: jenkins-iotivity +Reviewed-by: Erich Keane +--- + resource/src/SConscript | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +--- a/resource/src/SConscript ++++ b/resource/src/SConscript +@@ -40,18 +40,20 @@ oclib_env.AppendUnique(CPPPATH = [ + '../csdk/connectivity/lib/libcoap-4.1.1' + ]) + ++oclib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')]) ++ ++oclib_env.AppendUnique(LIBS = ['octbstack', 'oc_logger']) ++ + target_os = env.get('TARGET_OS') ++if target_os == 'linux': ++ oclib_env.AppendUnique(LIBS = ['pthread']) ++ + if target_os not in ['windows', 'winrt']: + oclib_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-fPIC']) + + if target_os == 'android': + oclib_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) +- oclib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')]) +- oclib_env.AppendUnique(LIBS = ['octbstack', 'oc_logger', 'boost_thread', 'gnustl_shared', 'log']) +- +-if target_os in ['darwin', 'ios']: +- oclib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')]) +- oclib_env.AppendUnique(LIBS = ['octbstack', 'oc_logger']) ++ oclib_env.AppendUnique(LIBS = ['boost_thread', 'gnustl_shared', 'log']) + + ###################################################################### + # Source files and Targets diff --git a/net/iotivity/patches/061-things-manager-libTGMSDKLibrary.so-add-missing-depen.patch b/net/iotivity/patches/061-things-manager-libTGMSDKLibrary.so-add-missing-depen.patch new file mode 100644 index 000000000..572abee5c --- /dev/null +++ b/net/iotivity/patches/061-things-manager-libTGMSDKLibrary.so-add-missing-depen.patch @@ -0,0 +1,42 @@ +From 0143dfaa7e6dace845412e97ebbf697d273b0d10 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Tue, 21 Jul 2015 22:06:52 +0200 +Subject: [PATCH] things-manager: libTGMSDKLibrary.so: add missing depending + library + +libTGMSDKLibrary.so also depends on liboc.so, liboctbstack.so and +pthread, this patch adds these dependencies to the build. + +Without this the dynamic loader will not automatically load these +libraries and it could result in unresolved dependencies at runtime. + +Change-Id: I174b38e747be247fc25544db629f8ad2b7eb5ef5 +Signed-off-by: Hauke Mehrtens +Reviewed-on: https://gerrit.iotivity.org/gerrit/1795 +Tested-by: jenkins-iotivity +Reviewed-by: Uze Choi +--- + service/things-manager/SConscript | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/service/things-manager/SConscript ++++ b/service/things-manager/SConscript +@@ -35,14 +35,17 @@ target_os = env.get('TARGET_OS') + ###################################################################### + things_manager_env.AppendUnique(CPPPATH = ['../../extlibs/timer', 'sdk/inc', 'sdk/src']) + ++things_manager_env.PrependUnique(LIBS = ['oc', 'octbstack']) ++ + if target_os not in ['windows', 'winrt']: + things_manager_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall']) + if target_os != 'android': + things_manager_env.AppendUnique(CXXFLAGS = ['-pthread']) ++ things_manager_env.AppendUnique(LIBS = ['pthread']) + + if target_os == 'android': + things_manager_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) +- things_manager_env.PrependUnique(LIBS = ['oc', 'octbstack', 'gnustl_shared']) ++ things_manager_env.PrependUnique(LIBS = ['gnustl_shared']) + + ###################################################################### + # Source files and Targets diff --git a/net/iotivity/patches/062-soft-sensor-manager-libSSMCore.so-add-missing-depend.patch b/net/iotivity/patches/062-soft-sensor-manager-libSSMCore.so-add-missing-depend.patch new file mode 100644 index 000000000..7cb33ab7e --- /dev/null +++ b/net/iotivity/patches/062-soft-sensor-manager-libSSMCore.so-add-missing-depend.patch @@ -0,0 +1,32 @@ +From b52307797b91d7448a72874e4da7bed30c27a4f5 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Tue, 21 Jul 2015 22:29:14 +0200 +Subject: [PATCH] soft-sensor-manager: libSSMCore.so: add missing depending + library + +libSSMCore.so also depends on libdl.so, this patch adds these +dependencies to the build. + +Without this the dynamic loader will not automatically load these +libraries and it could result in unresolved dependencies at runtime. + +Change-Id: I76faff46fe96caef75fb6673c7e83d62b15b8489 +Signed-off-by: Hauke Mehrtens +Reviewed-on: https://gerrit.iotivity.org/gerrit/1796 +Tested-by: jenkins-iotivity +Reviewed-by: Uze Choi +--- + service/soft-sensor-manager/SConscript | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/service/soft-sensor-manager/SConscript ++++ b/service/soft-sensor-manager/SConscript +@@ -157,7 +157,7 @@ static_libssmcore = ssmcore_env.StaticLi + + ssmcore_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')]) + ssmcore_env.AppendUnique(LIBS = ['oc', 'octbstack', 'oc_logger', +- 'connectivity_abstraction', 'coap']) ++ 'connectivity_abstraction', 'coap', 'dl']) + + shared_libssmcore = ssmcore_env.SharedLibrary( + target = 'SSMCore', diff --git a/net/iotivity/patches/063-mqtt-fan-libmosquittopp.so-add-missing-depending-lib.patch b/net/iotivity/patches/063-mqtt-fan-libmosquittopp.so-add-missing-depending-lib.patch new file mode 100644 index 000000000..b3b1353b2 --- /dev/null +++ b/net/iotivity/patches/063-mqtt-fan-libmosquittopp.so-add-missing-depending-lib.patch @@ -0,0 +1,39 @@ +From 60b43aed7e479bc6d7252f0dba2542fe7aab9195 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Tue, 21 Jul 2015 22:38:02 +0200 +Subject: [PATCH] mqtt-fan: libmosquittopp.so: add missing depending library + +libmosquittopp.so also depends on libpthread.so, this patch adds these +dependencies to the build. In addition it puts the dependency to +mosquitto to the beginning of the list. This is needed because +mosquitto is a statically linked lib and it also has unresolved +symbols, but gcc only searches the dynamic libs defined after the +static for unresolved symbols in the static lib. + +Without this the dynamic loader will not automatically load these +libraries and it could result in unresolved dependencies at runtime. + +Change-Id: I866a46305c31d37cf706b9f2b965e843c35c5667 +Signed-off-by: Hauke Mehrtens +Reviewed-on: https://gerrit.iotivity.org/gerrit/1797 +Tested-by: jenkins-iotivity +Reviewed-by: Younghyun Joo +Reviewed-by: Uze Choi +--- + .../plugins/mqtt-fan/lib/cpp/SConscript | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/service/protocol-plugin/plugins/mqtt-fan/lib/cpp/SConscript ++++ b/service/protocol-plugin/plugins/mqtt-fan/lib/cpp/SConscript +@@ -16,7 +16,10 @@ mosquittopp_env.AppendUnique(CPPPATH = [ + if target_os not in ['windows', 'winrt']: + mosquittopp_env.AppendUnique(CFLAGS = ['-Wall', '-ggdb', '-O2', '-fPIC']) + +-mosquittopp_env.AppendUnique(LIBS = ['mosquitto', 'ssl', 'crypto']) ++if target_os == 'linux': ++ mosquittopp_env.AppendUnique(LIBS = ['pthread']) ++ ++mosquittopp_env.PrependUnique(LIBS = ['mosquitto', 'ssl', 'crypto']) + ###################################################################### + # Source files and Targets + ###################################################################### diff --git a/net/iotivity/patches/064-protocol-plugin-libfanserver_mqtt_plugin.so-and-libl.patch b/net/iotivity/patches/064-protocol-plugin-libfanserver_mqtt_plugin.so-and-libl.patch new file mode 100644 index 000000000..476678afd --- /dev/null +++ b/net/iotivity/patches/064-protocol-plugin-libfanserver_mqtt_plugin.so-and-libl.patch @@ -0,0 +1,42 @@ +From d1fb4c055f168e68ffd2d5596eef8d96f6c6cfae Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Tue, 21 Jul 2015 22:41:09 +0200 +Subject: [PATCH] protocol-plugin: libfanserver_mqtt_plugin.so and + liblightserver_mqtt_plugin.so add missing depending library + +libfanserver_mqtt_plugin.so and liblightserver_mqtt_plugin.so are also +depending on liboc.so and libcrypto.so, this patch adds these +dependencies to the build. In addition it puts the dependency to +mosquitto to the beginning of the list. This is needed because +mosquitto is a statically linked lib and it also has unresolved +symbols, but gcc only searches the dynamic libs defined after the +static for unresolved symbols in the static lib. + +mosquitto was only build as a static linked library so we can use the +normal LIBS mechanism and it will be statically linked. + +Without this the dynamic loader will not automatically load these +libraries and it could result in unresolved dependencies at runtime. + +Change-Id: Ia130827d04bd3bb1a8863fc64d0097a076edc751 +Signed-off-by: Hauke Mehrtens +Reviewed-on: https://gerrit.iotivity.org/gerrit/1798 +Tested-by: jenkins-iotivity +Reviewed-by: Younghyun Joo +Reviewed-by: Uze Choi +--- + service/protocol-plugin/plugins/SConscript | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/service/protocol-plugin/plugins/SConscript ++++ b/service/protocol-plugin/plugins/SConscript +@@ -47,8 +47,7 @@ if target_os == 'android': + plugins_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) + plugins_env.AppendUnique(LIBS = ['gnustl_shared']) + +-plugins_env.AppendUnique(LIBS = [File(env.get('BUILD_DIR') + '/libmosquitto.a'), +- 'mosquitto', 'ssl', 'rt']) ++plugins_env.PrependUnique(LIBS = ['mosquitto', 'ssl', 'crypto', 'rt', 'oc']) + + + ###################################################################### diff --git a/net/iotivity/patches/065-resource-manipulation-libserver_builder.so-add-missi.patch b/net/iotivity/patches/065-resource-manipulation-libserver_builder.so-add-missi.patch new file mode 100644 index 000000000..1d83fd8b7 --- /dev/null +++ b/net/iotivity/patches/065-resource-manipulation-libserver_builder.so-add-missi.patch @@ -0,0 +1,69 @@ +From 2993af980993ebb70b686b1a521d98d26e85cfc2 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Tue, 21 Jul 2015 20:55:50 +0200 +Subject: [PATCH] resource-manipulation: libserver_builder.so add missing + depending library + +libserver_builder.so is also depending on liboc.so and +librcs_common.so, this patch adds these dependencies to the build. + +liboctbstack.so is only needed when LOGGING=true is set. Without +liboctbstack.so libserver_builder.so misses the dependencies to the +OCLog and OCLogv symbols. +Add LIBPATH to make sure the libs will be found, this fixes a problem +in some jenkins tests. + +pthread is added two times, once should be enough. + +Without this the dynamic loader will not automatically load these +libraries and it could result in unresolved dependencies at runtime. + +Change-Id: I6af126eb4af975b7231d01df922885c7dec5fc56 +Signed-off-by: Hauke Mehrtens +Reviewed-on: https://gerrit.iotivity.org/gerrit/1799 +Tested-by: jenkins-iotivity +Reviewed-by: Uze Choi +--- + .../src/serverBuilder/SConscript | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +--- a/service/resource-encapsulation/src/serverBuilder/SConscript ++++ b/service/resource-encapsulation/src/serverBuilder/SConscript +@@ -47,6 +47,8 @@ server_builder_env.AppendUnique(CPPPATH + + server_builder_env.AppendUnique(CPPPATH = [env.get('SRC_DIR')+'/extlibs', 'include']) + ++server_builder_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')]) ++ + if target_os not in ['windows', 'winrt']: + server_builder_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall']) + if target_os != 'android': +@@ -56,7 +58,10 @@ if target_os == 'android': + server_builder_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) + server_builder_env.PrependUnique(LIBS = ['gnustl_shared', 'compatibility', 'log']) + +-server_builder_env.AppendUnique(LIBS = ['dl']) ++server_builder_env.AppendUnique(LIBS = ['dl', 'oc', 'rcs_common']) ++ ++if env.get('LOGGING'): ++ server_builder_env.AppendUnique(LIBS = ['octbstack']) + + if not release: + server_builder_env.AppendUnique(CXXFLAGS = ['--coverage']) +@@ -77,7 +82,6 @@ server_builder_env.InstallTarget([server + ###################################################################### + server_builder_test_env = server_builder_env.Clone(); + +-server_builder_test_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')]) + server_builder_test_env.AppendUnique(CPPPATH = [ + env.get('SRC_DIR')+'/extlibs/hippomocks-master', + gtest_dir + '/include', +@@ -89,8 +93,6 @@ gtest_main = File(gtest_dir + '/lib/.lib + + server_builder_test_env.PrependUnique(LIBS = [ + 'rcs_server', +- 'rcs_common', +- 'oc', + 'octbstack', + 'oc_logger', + 'connectivity_abstraction', diff --git a/net/iotivity/patches/066-csdk-remove-dependency-to-liboc_logger.so-in-c-code.patch b/net/iotivity/patches/066-csdk-remove-dependency-to-liboc_logger.so-in-c-code.patch new file mode 100644 index 000000000..553494aa5 --- /dev/null +++ b/net/iotivity/patches/066-csdk-remove-dependency-to-liboc_logger.so-in-c-code.patch @@ -0,0 +1,54 @@ +From c02a2b8ad3efb0b59392b1c2d441e3f7144c1fda Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Tue, 21 Jul 2015 22:45:40 +0200 +Subject: [PATCH] csdk: remove dependency to liboc_logger.so in c code + +The liboc_logger.so is only used by the c++ part and not by the c part, +remove it from the c only part. + +Change-Id: Ib0894974de8ef7150401f02fbd0ea864d1d6f2cd +Signed-off-by: Hauke Mehrtens +Reviewed-on: https://gerrit.iotivity.org/gerrit/1801 +Tested-by: jenkins-iotivity +Reviewed-by: Charlie Lenahan +Reviewed-by: Erich Keane +--- + resource/csdk/connectivity/test/SConscript | 3 --- + .../samples/linux/SimpleClientServer/SConscript | 2 +- + .../csdk/stack/samples/linux/secure/SConscript | 2 +- + 3 files changed, 2 insertions(+), 5 deletions(-) + +--- a/resource/csdk/connectivity/test/SConscript ++++ b/resource/csdk/connectivity/test/SConscript +@@ -58,9 +58,6 @@ target_os = env.get('TARGET_OS') + if target_os not in ['arduino', 'darwin', 'ios']: + catest_env.AppendUnique(LIBS=['rt']) + +-if target_os != 'darwin': +- catest_env.PrependUnique(LIBS = ['oc_logger']) +- + if env.get('SECURED') == '1': + catest_env.AppendUnique(LIBS = ['tinydtls']) + +--- a/resource/csdk/stack/samples/linux/SimpleClientServer/SConscript ++++ b/resource/csdk/stack/samples/linux/SimpleClientServer/SConscript +@@ -41,7 +41,7 @@ samples_env.AppendUnique(LIBPATH = [env. + if target_os in ['darwin', 'ios']: + samples_env.PrependUnique(LIBS = ['m','octbstack', 'ocsrm', 'connectivity_abstraction','coap' ]) + elif target_os not in ['arduino']: +- samples_env.PrependUnique(LIBS = ['m', 'octbstack', 'ocsrm', 'oc_logger', 'connectivity_abstraction', 'coap']) ++ samples_env.PrependUnique(LIBS = ['m', 'octbstack', 'ocsrm', 'connectivity_abstraction', 'coap']) + samples_env.AppendUnique(LIBS = ['rt']) + + if env.get('SECURED') == '1': +--- a/resource/csdk/stack/samples/linux/secure/SConscript ++++ b/resource/csdk/stack/samples/linux/secure/SConscript +@@ -41,7 +41,7 @@ if target_os not in ['windows', 'winrt'] + samples_env.AppendUnique(LIBS = ['-lpthread']) + + samples_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')]) +-samples_env.PrependUnique(LIBS = ['octbstack', 'm', 'oc_logger', 'connectivity_abstraction', 'coap']) ++samples_env.PrependUnique(LIBS = ['octbstack', 'm', 'connectivity_abstraction', 'coap']) + if env.get('SECURED') == '1': + samples_env.AppendUnique(LIBS = ['tinydtls']) + diff --git a/net/iotivity/patches/067-csdk-libconnectivity_abstraction.so-add-missing-depe.patch b/net/iotivity/patches/067-csdk-libconnectivity_abstraction.so-add-missing-depe.patch new file mode 100644 index 000000000..eeb290433 --- /dev/null +++ b/net/iotivity/patches/067-csdk-libconnectivity_abstraction.so-add-missing-depe.patch @@ -0,0 +1,37 @@ +From 32e39b18fb4fd01408898a0ccba751f0033800c7 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Wed, 22 Jul 2015 23:05:19 +0200 +Subject: [PATCH] csdk: libconnectivity_abstraction.so: add missing depending + library + +libconnectivity_abstractionso depends on libcoap.so and librt.so when +build as shared lib, which is the case for the Tizen build. This patch +adds these dependencies to the build. + +Without this the dynamic loader will not automatically load these +libraries and it could result in unresolved dependencies at runtime. + +Change-Id: Ib972be2b766d7fbccac9b246ae6f11e6182af94c +Signed-off-by: Hauke Mehrtens +Reviewed-on: https://gerrit.iotivity.org/gerrit/1825 +Tested-by: jenkins-iotivity +Reviewed-by: Uze Choi +Tested-by: Uze Choi +--- + resource/csdk/connectivity/src/SConscript | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/resource/csdk/connectivity/src/SConscript ++++ b/resource/csdk/connectivity/src/SConscript +@@ -108,6 +108,11 @@ if 'BLE' in ca_transport: + print "Include path is %s" % env.get('CPPPATH') + print "Files path is %s" % env.get('CA_SRC') + if ca_os in ['android', 'tizen']: ++ env.AppendUnique(LIBS = ['coap']) ++ if env.get('SECURED') == '1': ++ env.AppendUnique(LIBS = ['tinydtls']) ++ if ca_os != 'android': ++ env.AppendUnique(LIBS = ['rt']) + calib = env.SharedLibrary('connectivity_abstraction', env.get('CA_SRC')) + else: + calib = env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC')) diff --git a/net/iotivity/patches/068-build-make-build-fail-if-unresolved-symbols-found.patch b/net/iotivity/patches/068-build-make-build-fail-if-unresolved-symbols-found.patch new file mode 100644 index 000000000..cf4037063 --- /dev/null +++ b/net/iotivity/patches/068-build-make-build-fail-if-unresolved-symbols-found.patch @@ -0,0 +1,227 @@ +From 2533c88e18de689dbb26cfd4d585b1a991533c76 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Tue, 21 Jul 2015 22:00:18 +0200 +Subject: [PATCH] build: make build fail if unresolved symbols found + +gcc links shared libs also when there are still some unresolved +symbols, you have to specify it explicitly to make it fail in such +cases. I think a compiler should fail in such cases otherwise +someone will add some not intended dependencies or some existing +dependencies are not getting declared. + +This patch makes gcc fail in such cases. I have only activated this for +libs build in a Linux build and explicitly deactivates it for windows +(does this even work at all?) This should be build tested with Android +also. + +This was build tested for Linux and Android. + +This patch depends on some other patches I send which are fixing the +problems I found with this change. + +Change-Id: I9ab79896ca2e86e9226cd9b39060a0763ef89694 +Signed-off-by: Hauke Mehrtens +Reviewed-on: https://gerrit.iotivity.org/gerrit/1802 +Tested-by: jenkins-iotivity +Reviewed-by: Erich Keane +Reviewed-by: Hun-je Yeon +Reviewed-by: Uze Choi +--- + extlibs/expat/SConscript | 3 +++ + .../csdk/connectivity/samples/android/SConscript | 1 + + resource/csdk/connectivity/src/SConscript | 3 +++ + resource/oc_logger/SConscript | 3 +++ + resource/src/SConscript | 3 +++ + service/notification-manager/SConscript | 3 +++ + service/protocol-plugin/plugin-manager/SConscript | 4 ++++ + .../plugin-manager/src/Android/jni/SConscript | 1 + + service/protocol-plugin/plugins/SConscript | 3 +++ + .../plugins/mqtt-fan/lib/cpp/SConscript | 3 +++ + .../resource-manipulation/src/common/SConscript | 5 ++++- + .../src/resourceContainer/SConscript | 3 +++ + .../src/resourceContainer/unittests/SConscript | 3 +++ + .../src/serverBuilder/SConscript | 3 +++ + service/soft-sensor-manager/SConscript | 3 +++ + service/things-manager/SConscript | 3 +++ + service/things-manager/sdk/java/jni/SConscript | 3 +++ + 17 files changed, 49 insertions(+), 1 deletion(-) + +--- a/extlibs/expat/SConscript ++++ b/extlibs/expat/SConscript +@@ -35,6 +35,9 @@ if target_os not in ['windows', 'winrt'] + '-fexceptions', '-fno-common']) + expat_env.AppendUnique(CPPDEFINES = ['HAVE_EXPAT_CONFIG_H']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ expat_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + ###################################################################### + # Source files and Targets + ###################################################################### +--- a/resource/csdk/connectivity/src/SConscript ++++ b/resource/csdk/connectivity/src/SConscript +@@ -27,6 +27,9 @@ env.AppendUnique(CPPPATH = [ os.path.joi + if ca_os not in ['arduino', 'windows', 'winrt']: + env.AppendUnique(CPPDEFINES = ['WITH_POSIX']) + ++if ca_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + if ca_os in ['darwin','ios']: + env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE']) + +--- a/resource/oc_logger/SConscript ++++ b/resource/oc_logger/SConscript +@@ -42,6 +42,9 @@ if target_os not in ['arduino', 'windows + liboc_logger_env.AppendUnique(CFLAGS = ['-Wall', '-std=c99', '-fPIC']) + liboc_logger_env.AppendUnique(CXXFLAGS = ['-Wall', '-std=c++0x', '-fPIC']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ liboc_logger_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + ###################################################################### + # Source files and Targets + ###################################################################### +--- a/resource/src/SConscript ++++ b/resource/src/SConscript +@@ -51,6 +51,9 @@ if target_os == 'linux': + if target_os not in ['windows', 'winrt']: + oclib_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-fPIC']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ oclib_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + if target_os == 'android': + oclib_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) + oclib_env.AppendUnique(LIBS = ['boost_thread', 'gnustl_shared', 'log']) +--- a/service/notification-manager/SConscript ++++ b/service/notification-manager/SConscript +@@ -65,6 +65,9 @@ notimgr_env.PrependUnique(LIBS = [ + if target_os not in ['windows', 'winrt']: + notimgr_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-fmessage-length=0', '-std=c++0x']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ notimgr_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + if target_os == 'linux': + notimgr_env.AppendUnique(LIBS = ['pthread']) + +--- a/service/protocol-plugin/plugin-manager/SConscript ++++ b/service/protocol-plugin/plugin-manager/SConscript +@@ -61,6 +61,10 @@ if target_os == 'android': + pmimpl_env = plugin_manager_env.Clone() + pmimpl_env.PrependUnique(CCFLAGS = ['-fPIC']) + pmimpl_env.PrependUnique(LIBS = File(env.get('BUILD_DIR') + '/libcpluff.a')) ++ ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ pmimpl_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + pmimpl = pmimpl_env.SharedLibrary('pmimpl', pmimpl_src) + + plugin_manager_env.InstallTarget([ppm, pmimpl], 'libppm') +--- a/service/protocol-plugin/plugin-manager/src/Android/jni/SConscript ++++ b/service/protocol-plugin/plugin-manager/src/Android/jni/SConscript +@@ -23,6 +23,7 @@ ppm_jni_env.PrependUnique(LIBS = ['pmimp + ppm_jni_env.AppendUnique(CPPPATH = [ppm_sdk+'/src']) + ppm_jni_env.AppendUnique(CPPPATH = [ppm_sdk+'/../lib/cpluff/libcpluff']) + ppm_jni_env.AppendUnique(CPPPATH = [env.get('SRC_DIR')+'/extlibs/rapidxml']) ++ppm_jni_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) + + ###################################################################### + # Source files and Targets +--- a/service/protocol-plugin/plugins/SConscript ++++ b/service/protocol-plugin/plugins/SConscript +@@ -40,6 +40,9 @@ if target_os not in ['windows', 'winrt'] + plugins_env.PrependUnique(CCFLAGS = ['-fPIC']) + plugins_env.AppendUnique(LINKFLAGS = ['-fPIC']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ plugins_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + if target_os not in ['arduino', 'android']: + plugins_env.AppendUnique(LIBS = ['pthread']) + +--- a/service/protocol-plugin/plugins/mqtt-fan/lib/cpp/SConscript ++++ b/service/protocol-plugin/plugins/mqtt-fan/lib/cpp/SConscript +@@ -16,6 +16,9 @@ mosquittopp_env.AppendUnique(CPPPATH = [ + if target_os not in ['windows', 'winrt']: + mosquittopp_env.AppendUnique(CFLAGS = ['-Wall', '-ggdb', '-O2', '-fPIC']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ mosquittopp_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + if target_os == 'linux': + mosquittopp_env.AppendUnique(LIBS = ['pthread']) + +--- a/service/resource-encapsulation/src/resourceContainer/SConscript ++++ b/service/resource-encapsulation/src/resourceContainer/SConscript +@@ -88,6 +88,9 @@ if target_os not in ['windows', 'winrt'] + if target_os != 'android': + resource_container_env.AppendUnique(CXXFLAGS = ['-pthread']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ resource_container_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + if target_os == 'android': + resource_container_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) + resource_container_env.PrependUnique(LIBS = ['gnustl_shared', 'compatibility', 'log']) +--- a/service/resource-encapsulation/src/resourceContainer/unittests/SConscript ++++ b/service/resource-encapsulation/src/resourceContainer/unittests/SConscript +@@ -144,6 +144,9 @@ if int(containerJavaSupport): + test_bundle_env = container_gtest_env.Clone() + test_bundle_env.AppendUnique(CCFLAGS = ['-fPIC']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ test_bundle_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + TEST_BUNDLE_DIR = 'TestBundle/' + test_bundle_env.AppendUnique(CPPPATH = [ + TEST_BUNDLE_DIR + 'include', +--- a/service/resource-encapsulation/src/serverBuilder/SConscript ++++ b/service/resource-encapsulation/src/serverBuilder/SConscript +@@ -54,6 +54,9 @@ if target_os not in ['windows', 'winrt'] + if target_os != 'android': + server_builder_env.AppendUnique(CXXFLAGS = ['-pthread']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ server_builder_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + if target_os == 'android': + server_builder_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) + server_builder_env.PrependUnique(LIBS = ['gnustl_shared', 'compatibility', 'log']) +--- a/service/soft-sensor-manager/SConscript ++++ b/service/soft-sensor-manager/SConscript +@@ -45,6 +45,9 @@ if target_os not in ['windows', 'winrt'] + soft_sensor_manager_env.AppendUnique(LIBS = ['pthread']) + soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-pthread']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ soft_sensor_manager_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + if target_os == 'android': + soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) + soft_sensor_manager_env.AppendUnique(LIBS = ['gnustl_shared']) +--- a/service/things-manager/SConscript ++++ b/service/things-manager/SConscript +@@ -43,6 +43,9 @@ if target_os not in ['windows', 'winrt'] + things_manager_env.AppendUnique(CXXFLAGS = ['-pthread']) + things_manager_env.AppendUnique(LIBS = ['pthread']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ things_manager_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + if target_os == 'android': + things_manager_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) + things_manager_env.PrependUnique(LIBS = ['gnustl_shared']) +--- a/service/things-manager/sdk/java/jni/SConscript ++++ b/service/things-manager/sdk/java/jni/SConscript +@@ -27,6 +27,9 @@ tm_jni_env.AppendUnique(CPPPATH = [tm_sd + tm_jni_env.AppendUnique(CPPPATH = [base_jni]) + tm_jni_env.AppendUnique(CPPPATH = ['tm/inc', 'jniutil/inc', extlibs+'/timer/']) + ++if target_os not in ['darwin', 'ios', 'windows', 'winrt']: ++ tm_jni_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) ++ + ###################################################################### + # Source files and Targets + ###################################################################### diff --git a/net/iotivity/patches/070-Avoid-Segv-by-testing-address-field-before-using-it.patch b/net/iotivity/patches/070-Avoid-Segv-by-testing-address-field-before-using-it.patch new file mode 100644 index 000000000..47e7676c9 --- /dev/null +++ b/net/iotivity/patches/070-Avoid-Segv-by-testing-address-field-before-using-it.patch @@ -0,0 +1,29 @@ +From a8f5ed3ff337bce5222967fdf8c0b475fd28e74a Mon Sep 17 00:00:00 2001 +From: John Light +Date: Thu, 30 Jul 2015 15:14:07 -0700 +Subject: [PATCH] Avoid Segv by testing address field before using it. + +sIssue reported off dev list by Gabriel Schulhof. + +Change-Id: Ifa529da59fb784fd5cdef6ca333635cf99ed1f59 +Signed-off-by: John Light +Reviewed-on: https://gerrit.iotivity.org/gerrit/2160 +Tested-by: jenkins-iotivity +Reviewed-by: Erich Keane +--- + .../src/ip_adapter/linux/caipnwmonitor.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/resource/csdk/connectivity/src/ip_adapter/linux/caipnwmonitor.c ++++ b/resource/csdk/connectivity/src/ip_adapter/linux/caipnwmonitor.c +@@ -57,6 +57,10 @@ u_arraylist_t *CAIPGetInterfaceInformati + struct ifaddrs *ifa = NULL; + for (ifa = ifp; ifa; ifa = ifa->ifa_next) + { ++ if (!ifa->ifa_addr) ++ { ++ continue; ++ } + int family = ifa->ifa_addr->sa_family; + if ((ifa->ifa_flags & IFF_LOOPBACK) || (AF_INET != family && AF_INET6 != family)) + { diff --git a/net/iotivity/patches/090-resource-encapsulation-fix-build-without-curl.patch b/net/iotivity/patches/090-resource-encapsulation-fix-build-without-curl.patch new file mode 100644 index 000000000..933238350 --- /dev/null +++ b/net/iotivity/patches/090-resource-encapsulation-fix-build-without-curl.patch @@ -0,0 +1,29 @@ +From e767f892e7736008b60f85d2c2690d660661814b Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Thu, 13 Aug 2015 15:03:11 +0200 +Subject: [PATCH] resource-encapsulation: fix build without curl + +The hue plugin needs curl and it should only be build when libcurl is available. +Without this patch, the build fails without curl installed, this patch fixes the problem and makes the build worm without curl and without the hue stuff. + +Without this patch I am getting this error message: +scons: *** +File "/service/third_party_libs.scons", line 50, in ? + +Change-Id: I5b4da555ff84b9b605cc6c119990d60ff670bd0d +Signed-off-by: Hauke Mehrtens +--- + .../src/resourceContainer/SConscript | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/service/resource-encapsulation/src/resourceContainer/SConscript ++++ b/service/resource-encapsulation/src/resourceContainer/SConscript +@@ -177,7 +177,7 @@ else: + + HueBundle = hue_resource_bundle_env.SharedLibrary('HueBundle', hue_resource_bundle_src) + hue_resource_bundle_env.InstallTarget(HueBundle, 'libHueBundle') +- lib_env = conf2.Finish() ++lib_env = conf2.Finish() + + ###################################################################### + # build resource container unit tests diff --git a/net/iotivity/patches/140-remove-glib2.patch b/net/iotivity/patches/140-remove-glib2.patch new file mode 100644 index 000000000..54593c5fa --- /dev/null +++ b/net/iotivity/patches/140-remove-glib2.patch @@ -0,0 +1,22 @@ +--- a/resource/csdk/security/provisioning/sample/SConscript ++++ b/resource/csdk/security/provisioning/sample/SConscript +@@ -53,7 +53,7 @@ provisioning_env.PrependUnique(LIBS = [' + + if env.get('SECURED') == '1': + provisioning_env.AppendUnique(LIBS = ['tinydtls']) +-provisioning_env.ParseConfig('pkg-config --libs glib-2.0'); ++#provisioning_env.ParseConfig('pkg-config --libs glib-2.0'); + + provisioning_env.AppendUnique(CPPDEFINES = ['TB_LOG']) + +--- a/resource/csdk/security/provisioning/SConscript ++++ b/resource/csdk/security/provisioning/SConscript +@@ -62,7 +62,7 @@ provisioning_env.PrependUnique(LIBS = [' + + provisioning_env.AppendUnique(LIBS = ['tinydtls']) + +-provisioning_env.ParseConfig('pkg-config --libs glib-2.0'); ++#provisioning_env.ParseConfig('pkg-config --libs glib-2.0'); + + if target_os == 'android': + provisioning_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) diff --git a/net/iotivity/patches/200-examples-OICMiddle-try-to-load-security-configuratio.patch b/net/iotivity/patches/200-examples-OICMiddle-try-to-load-security-configuratio.patch new file mode 100644 index 000000000..4bcd322a7 --- /dev/null +++ b/net/iotivity/patches/200-examples-OICMiddle-try-to-load-security-configuratio.patch @@ -0,0 +1,44 @@ +From ce27d50b9c11386242487852f14b025ed6c67701 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Wed, 19 Aug 2015 16:47:21 +0200 +Subject: [PATCH 14/14] examples: OICMiddle: try to load security + configuration by default + +Load the security configuration from the default location by default. +When it is not found security will just not work. + +Signed-off-by: Hauke Mehrtens +--- + examples/OICMiddle/OICMiddle.cpp | 9 ++++++++- + examples/OICMiddle/OICMiddle.h | 1 + + 2 files changed, 9 insertions(+), 1 deletion(-) + +--- a/examples/OICMiddle/OICMiddle.cpp ++++ b/examples/OICMiddle/OICMiddle.cpp +@@ -99,8 +99,15 @@ void Middle::startPlatform() + //std::string ipaddr = INADDR_ANY; + std::string ipaddr = "0.0.0.0"; + ++ // Initialize Persistent Storage for SVR database ++ middle.ps.open = fopen; ++ middle.ps.read = fread; ++ middle.ps.write = fwrite; ++ middle.ps.close = fclose; ++ middle.ps.unlink = unlink; ++ + PlatformConfig cfg { ServiceType::InProc, ModeType::Both, +- ipaddr, port, QualityOfService::LowQos}; ++ ipaddr, port, QualityOfService::LowQos, &middle.ps}; + + OC::OCPlatform::Configure(cfg); + } +--- a/examples/OICMiddle/OICMiddle.h ++++ b/examples/OICMiddle/OICMiddle.h +@@ -83,6 +83,7 @@ protected: + MiddleServer *m_server; + LineInput *m_lineInput; + RestInput *m_restInput; ++ OCPersistentStorage ps; + + protected: + void startPlatform();