summaryrefslogtreecommitdiffstats
path: root/package/bctoolbox
diff options
context:
space:
mode:
Diffstat (limited to 'package/bctoolbox')
-rw-r--r--package/bctoolbox/0001-Fix-Libs.private-flags-for-mbedtls.patch49
-rw-r--r--package/bctoolbox/Config.in4
-rw-r--r--package/bctoolbox/bctoolbox.mk22
3 files changed, 72 insertions, 3 deletions
diff --git a/package/bctoolbox/0001-Fix-Libs.private-flags-for-mbedtls.patch b/package/bctoolbox/0001-Fix-Libs.private-flags-for-mbedtls.patch
new file mode 100644
index 0000000000..a70c7c633a
--- /dev/null
+++ b/package/bctoolbox/0001-Fix-Libs.private-flags-for-mbedtls.patch
@@ -0,0 +1,49 @@
+From c0b3dbb43aa3a38c47311556c85eadc6072e2d68 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
+Date: Tue, 14 Feb 2017 22:02:26 +0100
+Subject: [PATCH] Fix Libs.private flags for mbedtls
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Static linking with bctoolbox fails when using pkg-config as the
+generated bctoolbox.pc file only consists of an '-L' string without any
+search path or libraries flags.
+
+That's because of an typo in `mbedtls_library_path`. However,
+`mbedtls_library_path` contains a string of the mbedtls libraries
+concatenated by an ';' which cannot be parsed by pkg-config.
+
+Therefore, use `MBEDTLS_LIBRARY` instead of `MBEDTLS_LIBRARIES` to get
+the library path.
+
+Furthermore, add the three mbedtls libraries *mbedtls*, *mbedcrypto*, and
+*mbedx509* to `LIBS_PRIVATE` so these libraries are added to the
+`Libs.private` field of bctoolbox.pc.
+
+Upstream status: Pending
+https://github.com/BelledonneCommunications/bctoolbox/pull/4
+
+Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ed7aa00..4127f0e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -103,8 +103,8 @@ else()
+ endif()
+
+ if(MBEDTLS_FOUND)
+- get_filename_component(mbedtls_library_path "${MBEDTLS_LIBRARIES}" PATH)
+- set(LIBS_PRIVATE "${LIBS_PRIVATE} -L${mbedlts_library_path}")
++ get_filename_component(mbedtls_library_path "${MBEDTLS_LIBRARY}" PATH)
++ set(LIBS_PRIVATE "${LIBS_PRIVATE} -L${mbedtls_library_path} -lmbedtls -lmbedcrypto -lmbedx509")
+ endif()
+ if(POLARSSL_FOUND)
+ get_filename_component(polarssl_library_path "${POLARSSL_LIBRARIES}" PATH)
+--
+2.11.1
+
diff --git a/package/bctoolbox/Config.in b/package/bctoolbox/Config.in
index 834f6e2a6a..e9e69205f8 100644
--- a/package/bctoolbox/Config.in
+++ b/package/bctoolbox/Config.in
@@ -2,11 +2,13 @@ config BR2_PACKAGE_BCTOOLBOX
bool "bctoolbox"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
- select BR2_PACKAGE_MBEDTLS # mbedtls is preferred over polarssl
help
Utilities library used by Belledonne Communications
softwares like belle-sip, mediastreamer2 and linphone.
+ Select BR2_PACKAGE_MBEDTLS (preferred) or
+ BR2_PACKAGE_POLARSSL for crypto support.
+
https://github.com/BelledonneCommunications/bctoolbox
comment "bctoolbox needs a toolchain w/ C++, threads"
diff --git a/package/bctoolbox/bctoolbox.mk b/package/bctoolbox/bctoolbox.mk
index 64c67792a7..78269751ef 100644
--- a/package/bctoolbox/bctoolbox.mk
+++ b/package/bctoolbox/bctoolbox.mk
@@ -8,14 +8,32 @@ BCTOOLBOX_VERSION = 0.4.0
BCTOOLBOX_SITE = $(call github,BelledonneCommunications,bctoolbox,$(BCTOOLBOX_VERSION))
BCTOOLBOX_LICENSE = GPLv2+
BCTOOLBOX_LICENSE_FILES = COPYING
-BCTOOLBOX_DEPENDENCIES = mbedtls
BCTOOLBOX_INSTALL_STAGING = YES
+# Set CMAKE_SKIP_RPATH to prevent bctoolbox from adding the rpath to
+# shared library.
BCTOOLBOX_CONF_OPTS = \
-DENABLE_STRICT=OFF \
-DENABLE_TESTS_COMPONENT=OFF \
-DENABLE_TESTS=OFF \
- -DGIT_EXECUTABLE=OFF
+ -DGIT_EXECUTABLE=OFF \
+ -DCMAKE_SKIP_RPATH=ON
+
+# bctoolbox can be build with mbedTLS or PolarSSL support. If both
+# libraries are present, mbedTLS is preferred over PolarSSL.
+ifeq ($(BR2_PACKAGE_MBEDTLS),y)
+BCTOOLBOX_DEPENDENCIES += mbedtls
+BCTOOLBOX_CONF_OPTS += -DENABLE_MBEDTLS=ON
+else
+BCTOOLBOX_CONF_OPTS += -DENABLE_MBEDTLS=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_POLARSSL),y)
+BCTOOLBOX_DEPENDENCIES += polarssl
+BCTOOLBOX_CONF_OPTS += -DENABLE_POLARSSL=ON
+else
+BCTOOLBOX_CONF_OPTS += -DENABLE_POLARSSL=OFF
+endif
ifeq ($(BR2_STATIC_LIBS),y)
BCTOOLBOX_CONF_OPTS += -DENABLE_SHARED=OFF -DENABLE_STATIC=ON
OpenPOWER on IntegriCloud