Skip to contentSkip to conversation

bctoolbox: new package

PATCH New Jörg Krause 3 participants 7 messages Jan 22, 2017 – Feb 7, 2017

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/2 bctoolbox: new package

bctoolbox is a utilities library used by Belledonne Communications softwares like belle-sip, mediastreamer2 and linphone.

---
Changes v1 -> v2 (suggested by Romain Naour):
* depend on threads support
* properly wrap help text
* add comment about mbedtls being preferred over polarssl
* add -DGIT_EXECUTABLE=OFF to remove an ignored error message

---
 package/Config.in                |  1 +
 package/bctoolbox/Config.in      | 12 ++++++++++++
 package/bctoolbox/bctoolbox.hash |  2 ++
 package/bctoolbox/bctoolbox.mk   | 31 +++++++++++++++++++++++++++++++
 4 files changed, 46 insertions(+)
 create mode 100644 package/bctoolbox/Config.in
 create mode 100644 package/bctoolbox/bctoolbox.hash
 create mode 100644 package/bctoolbox/bctoolbox.mk
package/Config.in +1 -0
index 1766089b0..17e53602e 100644
@@ -1290,6 +1290,7 @@ menu "Other"
 	source "package/argp-standalone/Config.in"
 	source "package/armadillo/Config.in"
 	source "package/atf/Config.in"
+	source "package/bctoolbox/Config.in"
 	source "package/bdwgc/Config.in"
 	source "package/boost/Config.in"
 	source "package/clapack/Config.in"
package/bctoolbox/Config.in new file +12 -0
new file mode 100644
index 000000000..ee0757856
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_BCTOOLBOX
+	bool "bctoolbox"
+	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.
+
+	  https://github.com/BelledonneCommunications/bctoolbox
+
+comment "bctoolbox needs a toolchain w/ threads"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
package/bctoolbox/bctoolbox.hash new file +2 -0
new file mode 100644
index 000000000..70be55c3d
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256  da7df7ff359a9829e9e6ef98dfe9fead0cf735b8a4a5da1b1047f467dee1b2a9  bctoolbox-0.4.0.tar.gz
package/bctoolbox/bctoolbox.mk new file +31 -0
new file mode 100644
index 000000000..ce30832b2
@@ -0,0 +1,31 @@
+################################################################################
+#
+# bctoolbox
+#
+################################################################################
+
+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
+
+BCTOOLBOX_CONF_OPTS = \
+	-DENABLE_STRICT=OFF \
+	-DENABLE_TESTS_COMPONENT=OFF \
+	-DENABLE_TESTS=OFF \
+	-DGIT_EXECUTABLE=OFF
+
+ifeq ($(BR2_STATIC_LIBS),y)
+BCTOOLBOX_CONF_OPTS += \
+	-DENABLE_SHARED=OFF -DENABLE_STATIC=ON
+else ifeq ($(BR2_SHARED_STATIC_LIBS),y)
+BCTOOLBOX_CONF_OPTS += \
+	-DENABLE_SHARED=ON -DENABLE_STATIC=ON
+else ifeq ($(BR2_SHARED_LIBS),y)
+BCTOOLBOX_CONF_OPTS += \
+	-DENABLE_SHARED=ON -DENABLE_STATIC=OFF
+endif
+
+$(eval $(cmake-package))
Signature · 1 line
2.11.0
#1 lore raw

PATCH v2 2/2 package/ortp: bump version to 0.27.0

ortp now depends on bctoolbox. Note, that bctoolbox is added by the first commit of this series.

---
Changes v1 -> v2:
* add dependency on bctoolbox

---
 package/ortp/Config.in | 1 +
 package/ortp/ortp.hash | 2 +-
 package/ortp/ortp.mk   | 3 ++-
 3 files changed, 4 insertions(+), 2 deletions(-)
package/ortp/Config.in +1 -0
index 2de3c91f9..58b8d5c69 100644
@@ -1,6 +1,7 @@
 config BR2_PACKAGE_ORTP
 	bool "oRTP"
 	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_BCTOOLBOX
 	help
 	  oRTP, a Real-time Transport Protocol (RTP,RFC3550) library
 
package/ortp/ortp.hash +1 -1
index 8b099a705..c990d96eb 100644
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256	0deb826b79b1fd329f7638821d5439dc343bc55bb122daa6c90d19116cfe8d9a	ortp-0.25.0.tar.gz
+sha256  eb61a833ab3ad80978d7007411240f46e9b2d1034373b9d9dfaac88c1b6ec0af  ortp-0.27.0.tar.gz
package/ortp/ortp.mk +2 -1
index ca4a90d6d..da17231f9 100644
@@ -4,12 +4,13 @@
 #
 ################################################################################
 
-ORTP_VERSION = 0.25.0
+ORTP_VERSION = 0.27.0
 ORTP_SITE = http://download.savannah.nongnu.org/releases/linphone/ortp/sources
 
 ORTP_CONF_OPTS = --disable-strict
 ORTP_INSTALL_STAGING = YES
 ORTP_LICENSE = LGPLv2.1+
 ORTP_LICENSE_FILES = COPYING
+ORTP_DEPENDENCIES = bctoolbox
 
 $(eval $(autotools-package))
Signature · 1 line
2.11.0
#2 lore raw

PATCH v2 2/2 package/ortp: bump version to 0.27.0

Hello,

Quoted 4 lines · J?rg Krause

ortp now depends on bctoolbox. Note, that bctoolbox is added by the first commit of this series.

Quoted 8 lines

---
Changes v1 -> v2:
* add dependency on bctoolbox

---
 package/ortp/Config.in | 1 +
 package/ortp/ortp.hash | 2 +-
 package/ortp/ortp.mk   | 3 ++-
 3 files changed, 4 insertions(+), 2 deletions(-)

I propagated the C++ dependency of bctoolbox to ortp and its reverse dependencies and applied, thanks!

BTW, the ortp package is not listed in the DEVELOPERS file. If you're using it, would you agree to "adopt" it and be listed in the DEVELOPERS file for it?

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH v2 1/2 bctoolbox: new package

In reply to Jörg Krause

Hello,

package/bctoolbox/Config.in line 3

Quoted 9 lines · J?rg Krause
package/bctoolbox/Config.in new file +3 -0
new file mode 100644
index 000000000..ee0757856
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_BCTOOLBOX
+	bool "bctoolbox"
+	depends on BR2_TOOLCHAIN_HAS_THREADS

BR2_INSTALL_LIBSTDCPP dependency was missing here: there is some C++ code in this library. So I've added that.

package/bctoolbox/Config.in line 6

Quoted 3 lines
package/bctoolbox/Config.in new file +3 -0
+ifeq ($(BR2_STATIC_LIBS),y)
+BCTOOLBOX_CONF_OPTS += \
+	-DENABLE_SHARED=OFF -DENABLE_STATIC=ON

Those two lines could have been on the same line, it's about 60-62 characters long, it definitely fits in the 80 characters limit. So I've fixed the three occurrences of this.

Applied with those fixes, as well as a follow-up commit that adds you to the DEVELOPERS file for this package.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#4 lore raw

PATCH v2 1/2 bctoolbox: new package

In reply to Jörg Krause
Quoted 6 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"J?rg" == J?rg Krause <[email protected]> writes:

bctoolbox is a utilities library used by Belledonne Communications softwares like belle-sip, mediastreamer2 and linphone.

This seems to break building ortp statically:

http://autobuild.buildroot.org/?reason=ortp-0.27.0

Looking further, it comes from the bctoolbox pkg-config file libs.private:

bctoolbox-0.4.0/bctoolbox.pc.in:
Libs.private: @LIBS_PRIVATE@

Which gets populated from cmake:

bctoolbox-0.4.0/CMakeLists.txt:

if(MBEDTLS_FOUND)

        get_filename_component(mbedtls_library_path "${MBEDTLS_LIBRARIES}" PATH)
        set(LIBS_PRIVATE "${LIBS_PRIVATE} -L${mbedlts_library_path}")

endif()

mbedtls_library_path is apparently the empty string, so it ends up just with "-L".

Samuel/J?rg, any idea how this should work?

Signature · 1 line
Bye, Peter Korsgaard
#5 lore raw

PATCH v2 1/2 bctoolbox: new package

Quoted 27 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"J?rg" == J?rg Krause <[email protected]> writes:

?> bctoolbox is a utilities library used by Belledonne Communications ?> softwares like belle-sip, mediastreamer2 and linphone.

?> Signed-off-by: J?rg Krause <[email protected]>

This seems to break building ortp statically:

http://autobuild.buildroot.org/?reason=ortp-0.27.0

Looking further, it comes from the bctoolbox pkg-config file libs.private:

bctoolbox-0.4.0/bctoolbox.pc.in:
Libs.private: @LIBS_PRIVATE@

Which gets populated from cmake:

bctoolbox-0.4.0/CMakeLists.txt:

if(MBEDTLS_FOUND) ????????get_filename_component(mbedtls_library_path "${MBEDTLS_LIBRARIES}" PATH)
????????set(LIBS_PRIVATE "${LIBS_PRIVATE} -L${mbedlts_library_path}") endif()

Quoted 5 lines

mbedtls_library_path is apparently the empty string, so it ends up just
with "-L".

Samuel/J?rg, any idea how this should work?

I already had a look at this, but had no time to prepare a fix for it so far. The problem is that -lmbedtls is missing after -L. So it should be:

set(LIBS_PRIVATE "${LIBS_PRIVATE} -L${mbedlts_library_path}?-lmbedtls")

However, there are some more issues with the bctoolbox package to get static linking working properly.

J?rg

#6 lore raw

PATCH v2 1/2 bctoolbox: new package

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"J?rg" == J?rg Krause <[email protected]> writes:

Hi,

Quoted 7 lines
Quoted 1 line

Samuel/J?rg, any idea how this should work?

I already had a look at this, but had no time to prepare a fix for it so far. The problem is that -lmbedtls is missing after -L. So it should be:

set(LIBS_PRIVATE "${LIBS_PRIVATE} -L${mbedlts_library_path}?-lmbedtls")

Yes, that and the fact that mbedtls_library_path is empty, so gcc errors out with a missing path.

Signature · 1 line
Bye, Peter Korsgaard