[Buildroot] [PATCH 1/1] package/libtorrent-rasterbar: new package

Philipp Richter richterphilipp.pops at gmail.com
Sun Sep 9 17:53:17 UTC 2018


libtorrent is a feature complete C++ bittorrent implementation
focusing on efficiency and scalability.

https://www.libtorrent.org/

Signed-off-by: Philipp Richter <richterphilipp.pops at gmail.com>
---
 DEVELOPERS                                    |   3 +
 package/Config.in                             |   1 +
 package/libtorrent-rasterbar/Config.in        | 133 ++++++++++++++++++
 .../libtorrent-rasterbar.hash                 |   3 +
 .../libtorrent-rasterbar.mk                   |  95 +++++++++++++
 5 files changed, 235 insertions(+)
 create mode 100644 package/libtorrent-rasterbar/Config.in
 create mode 100644 package/libtorrent-rasterbar/libtorrent-rasterbar.hash
 create mode 100644 package/libtorrent-rasterbar/libtorrent-rasterbar.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 1f081e651f..e5b0482b61 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1663,6 +1663,9 @@ F:	package/psplash/
 F:	package/sispmctl/
 F:	package/zsh/
 
+N:	Philipp Richter <richterphilipp.pops at gmail.com>
+F:	package/libtorrent-rasterbar/
+
 N:	Philippe Proulx <eeppeliteloop at gmail.com>
 F:	package/lttng-babeltrace/
 F:	package/lttng-libust/
diff --git a/package/Config.in b/package/Config.in
index fb4d328846..d1b4147833 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1497,6 +1497,7 @@ menu "Networking"
 	source "package/libstrophe/Config.in"
 	source "package/libtirpc/Config.in"
 	source "package/libtorrent/Config.in"
+	source "package/libtorrent-rasterbar/Config.in"
 	source "package/libupnp/Config.in"
 	source "package/libupnp18/Config.in"
 	source "package/libupnpp/Config.in"
diff --git a/package/libtorrent-rasterbar/Config.in b/package/libtorrent-rasterbar/Config.in
new file mode 100644
index 0000000000..0ce9496b70
--- /dev/null
+++ b/package/libtorrent-rasterbar/Config.in
@@ -0,0 +1,133 @@
+comment "libtorrent-rasterbar needs a toolchain w/ C++"
+	depends on !BR2_INSTALL_LIBSTDCPP
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR
+	bool "libtorrent-rasterbar"
+	depends on BR2_INSTALL_LIBSTDCPP
+	select BR2_PACKAGE_HOST_PKGCONF
+	select BR2_PACKAGE_BOOST
+	select BR2_PACKAGE_BOOST_CHRONO
+	select BR2_PACKAGE_BOOST_SYSTEM
+	select BR2_PACKAGE_BOOST_RANDOM
+	help
+	  libtorrent is a feature complete C++ bittorrent implementation
+	  focusing on efficiency and scalability.
+
+	  https://www.libtorrent.org/
+
+if BR2_PACKAGE_LIBTORRENT_RASTERBAR
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_LOGGING
+	bool "Logging alerts"
+	default y
+	help
+	  Enable support for logging alerts,
+	  like log_alert, torrent_log_alert and peer_log_alert.
+
+	  Default: yes
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG
+	bool "Debug"
+	help
+	  Enable debug build.
+
+	  Default: no
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DHT
+	bool "DHT"
+	default y
+	help
+	  Enable support for trackerless torrents.
+
+	  Default: yes
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_ENCRYPTION
+	bool "Encryption"
+	default y
+	select BR2_PACKAGE_OPENSSL
+	help
+	  Enable encryption support.
+	  Encryption support is the encrypted peer connection
+	  supported by clients such as uTorrent, Azureus and KTorrent.
+
+	  Default: yes
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_EXPORT_ALL_SYMBOLS
+	bool "Export all symbols"
+	help
+	  Export all symbols from libtorrent, including non-public ones.
+
+	  Default: no
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_POOL_ALLOCATORS
+	bool "Pool allocators"
+	default y
+	help
+	  Enable pool allocators for send buffers using boost::pool<>.
+
+	  Default: yes
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS
+	bool "Invariant checks"
+	default y
+	depends on BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG
+	help
+	  Enable invariant checks.
+
+	  Default: yes
+
+comment "Invariant checks need debug build"
+	depends on !BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG
+
+if BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS
+
+choice
+	prompt "Invariant checks type"
+	default BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_YES
+	help
+	  Select the type of invariant checks to use.
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_YES
+	bool "yes"
+	help
+	  Standard invariant checks.
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_FULL
+	bool "full"
+	help
+	  Turn on extra expensive invariant checks.
+
+endchoice
+
+endif
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEPRECATED_FUNCTIONS
+	bool "Deprecated functions"
+	default y
+	help
+	  Enable deprecated functions in the API.
+
+	  Default: yes
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_DISK_STATS
+	bool "Disk stats"
+	help
+	  Enable disk activity logging feature.
+
+	  Default: no
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_EXAMPLES
+	bool "Examples"
+	help
+	  Build example files.
+
+	  Default: no
+
+config BR2_PACKAGE_LIBTORRENT_RASTERBAR_TESTS
+	bool "Tests"
+	help
+	  Build test files.
+
+	  Default: no
+
+endif
diff --git a/package/libtorrent-rasterbar/libtorrent-rasterbar.hash b/package/libtorrent-rasterbar/libtorrent-rasterbar.hash
new file mode 100644
index 0000000000..01ac303bae
--- /dev/null
+++ b/package/libtorrent-rasterbar/libtorrent-rasterbar.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 d57a0f5b159f58003c3031943463503f0d05ae3e428dd7c2383d1e35fb2c4e8c libtorrent-rasterbar-1.1.9.tar.gz
+sha256 f3a5dd1558cce616b12edad521427ec8976ce2bb0af33f7f359cfa648bf55ad8 COPYING
diff --git a/package/libtorrent-rasterbar/libtorrent-rasterbar.mk b/package/libtorrent-rasterbar/libtorrent-rasterbar.mk
new file mode 100644
index 0000000000..19f0a9304d
--- /dev/null
+++ b/package/libtorrent-rasterbar/libtorrent-rasterbar.mk
@@ -0,0 +1,95 @@
+################################################################################
+#
+# libtorrent-rasterbar
+#
+################################################################################
+
+LIBTORRENT_RASTERBAR_VERSION = 1.1.9
+LIBTORRENT_RASTERBAR_SITE = https://github.com/arvidn/libtorrent/releases/download/libtorrent-$(subst .,_,$(LIBTORRENT_RASTERBAR_VERSION))
+LIBTORRENT_RASTERBAR_LICENSE = BSD-2-Clause
+LIBTORRENT_RASTERBAR_LICENSE_FILES = COPYING
+LIBTORRENT_RASTERBAR_DEPENDENCIES = host-pkgconf boost $(if $(BR2_PACKAGE_LIBICONV),libiconv)
+LIBTORRENT_RASTERBAR_INSTALL_STAGING = YES
+LIBTORRENT_RASTERBAR_CONF_OPTS += --with-boost-libdir="$(STAGING_DIR)/usr/lib"
+LIBTORRENT_RASTERBAR_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11"
+
+ifeq ($(BR2_ENABLE_LOCALE)$(BR2_PACKAGE_LIBICONV),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --with-libiconv
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --without-libiconv
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_LOGGING),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-logging
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-logging
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEBUG),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-debug
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-debug
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_DHT),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-dht
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-dht
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_ENCRYPTION),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-encryption
+LIBTORRENT_RASTERBAR_DEPENDENCIES += openssl
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-encryption
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_EXPORT_ALL_SYMBOLS),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-export-all
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-export-all
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_POOL_ALLOCATORS),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-pool-allocators
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-pool-allocators
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS),y)
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_YES),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-invariant-checks=yes
+else
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_INVARIANT_CHECKS_FULL),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-invariant-checks=full
+endif
+endif
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-invariant-checks
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_DEPRECATED_FUNCTIONS),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-deprecated-functions
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-deprecated-functions
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_DISK_STATS),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-disk-stats
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-disk-stats
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_EXAMPLES),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-examples
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-examples
+endif
+
+ifeq ($(BR2_PACKAGE_LIBTORRENT_RASTERBAR_TESTS),y)
+LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-tests
+else
+LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-tests
+endif
+
+$(eval $(autotools-package))
-- 
2.18.0



More information about the buildroot mailing list