Patchwork [1/2] libtorrent: new package

login
register
mail settings
Submitter Gustavo Zacarias
Date May 11, 2012, 7:39 p.m.
Message ID <1336765188-20743-1-git-send-email-gustavo@zacarias.com.ar>
Download mbox | patch
Permalink /patch/158584/
State Changes Requested
Headers show

Comments

Gustavo Zacarias - May 11, 2012, 7:39 p.m.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/Config.in                                 |    1 +
 package/libtorrent/Config.in                      |   12 +++++++++
 package/libtorrent/libtorrent-cross_compile.patch |   27 +++++++++++++++++++++
 package/libtorrent/libtorrent.mk                  |   14 +++++++++++
 4 files changed, 54 insertions(+), 0 deletions(-)
 create mode 100644 package/libtorrent/Config.in
 create mode 100644 package/libtorrent/libtorrent-cross_compile.patch
 create mode 100644 package/libtorrent/libtorrent.mk
Arnout Vandecappelle - May 11, 2012, 11:37 p.m.
On 05/11/12 21:39, Gustavo Zacarias wrote:
> +LIBTORRENT_DEPENDENCIES = host-pkg-config libsigc openssl
> +LIBTORRENT_CONF_OPT = --enable-aligned --enable-openssl

  Isn't the openssl dependency optional?

  Regards,
  Arnout
Gustavo Zacarias - May 11, 2012, 11:41 p.m.
On 2012-05-11 20:37, Arnout Vandecappelle wrote:

> On 05/11/12 21:39, Gustavo Zacarias wrote:
>> +LIBTORRENT_DEPENDENCIES = host-pkg-config libsigc openssl
>> +LIBTORRENT_CONF_OPT = --enable-aligned --enable-openssl
>
>  Isn't the openssl dependency optional?
>
>  Regards,
>  Arnout

Yes for libtorrent, no if you want rtorrent to work (needs libtorrent 
built with openssl to work - it builds without it but will bail out when 
running it).
I can add an openssl Config.in knob but since 99% of the time 
libtorrent will be used as a dependency of rtorrent it's kind of 
pointless.
Regards.
Arnout Vandecappelle - May 12, 2012, 2:17 p.m.
On 05/12/12 01:41, Gustavo Zacarias wrote:
> On 2012-05-11 20:37, Arnout Vandecappelle wrote:
>
>> On 05/11/12 21:39, Gustavo Zacarias wrote:
>>> +LIBTORRENT_DEPENDENCIES = host-pkg-config libsigc openssl
>>> +LIBTORRENT_CONF_OPT = --enable-aligned --enable-openssl
>>
>> Isn't the openssl dependency optional?
>>
>> Regards,
>> Arnout
>
> Yes for libtorrent, no if you want rtorrent to work (needs libtorrent built with openssl to work - it builds without it
> but will bail out when running it).
> I can add an openssl Config.in knob but since 99% of the time libtorrent will be used as a dependency of rtorrent it's
> kind of pointless.

  You could add 'select BR2_PACKAGE_OPENSSL' to rtorrent instead.  But indeed
it is probably pointless.

  Regards,
  Arnout
Peter Korsgaard - May 14, 2012, 8:30 p.m.
>>>>> "Arnout" == Arnout Vandecappelle <arnout@mind.be> writes:


 Arnout>  You could add 'select BR2_PACKAGE_OPENSSL' to rtorrent
 Arnout> instead.  But indeed it is probably pointless.

Still, I would prefer if we do it correctly, E.G. make openssl optional
in libtorrent, and select it by rtorrent.
Gustavo Zacarias - May 14, 2012, 8:56 p.m.
On 2012-05-14 17:30, Peter Korsgaard wrote:

> Still, I would prefer if we do it correctly, E.G. make openssl 
> optional
> in libtorrent, and select it by rtorrent.

Ok, i dunno who will use libtorrent on his own (specially since it was 
never added to BR) though.
Sent V3 set (on V2 i forgot to remove the select from libtorrent).
Regards.

Patch

diff --git a/package/Config.in b/package/Config.in
index 5c28174..6d5178e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -409,6 +409,7 @@  source "package/libpcap/Config.in"
 source "package/libosip2/Config.in"
 source "package/librsync/Config.in"
 source "package/libsoup/Config.in"
+source "package/libtorrent/Config.in"
 source "package/libupnp/Config.in"
 source "package/libvncserver/Config.in"
 source "package/zeromq/Config.in"
diff --git a/package/libtorrent/Config.in b/package/libtorrent/Config.in
new file mode 100644
index 0000000..a1ce236
--- /dev/null
+++ b/package/libtorrent/Config.in
@@ -0,0 +1,12 @@ 
+config BR2_PACKAGE_LIBTORRENT
+	bool "libtorrent"
+	depends on BR2_INSTALL_LIBSTDCPP
+	select BR2_PACKAGE_LIBSIGC
+	select BR2_PACKAGE_OPENSSL
+	help
+	  BitTorrent library written in C++ for *nix
+
+	  http://libtorrent.rakshasa.no/
+
+comment "libtorrent requires a toolchain with C++ support enabled"
+	depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/libtorrent/libtorrent-cross_compile.patch b/package/libtorrent/libtorrent-cross_compile.patch
new file mode 100644
index 0000000..39fe700
--- /dev/null
+++ b/package/libtorrent/libtorrent-cross_compile.patch
@@ -0,0 +1,27 @@ 
+Fix cross compilation, based on OpenWRT patch.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura libtorrent-0.13.2/configure.ac libtorrent-0.13.2-cross/configure.ac
+--- libtorrent-0.13.2/configure.ac	2012-04-20 03:55:10.000000000 -0300
++++ libtorrent-0.13.2-cross/configure.ac	2012-05-09 10:57:49.671175421 -0300
+@@ -17,7 +17,6 @@
+ 
+ AM_INIT_AUTOMAKE
+ AM_CONFIG_HEADER(config.h)
+-AM_PATH_CPPUNIT(1.9.6)
+ AC_DISABLE_STATIC
+ 
+ AM_DISABLE_STATIC
+diff -Nura libtorrent-0.13.2/scripts/checks.m4 libtorrent-0.13.2-cross/scripts/checks.m4
+--- libtorrent-0.13.2/scripts/checks.m4	2012-04-12 06:44:23.000000000 -0300
++++ libtorrent-0.13.2-cross/scripts/checks.m4	2012-05-09 10:42:32.642728917 -0300
+@@ -96,7 +96,7 @@
+ AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
+   AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
+ 
+-  AC_RUN_IFELSE([AC_LANG_SOURCE([
++  AC_LINK_IFELSE([AC_LANG_SOURCE([
+       #include <fcntl.h>
+       #include <stdlib.h>
+       #include <unistd.h>
diff --git a/package/libtorrent/libtorrent.mk b/package/libtorrent/libtorrent.mk
new file mode 100644
index 0000000..3f74c7b
--- /dev/null
+++ b/package/libtorrent/libtorrent.mk
@@ -0,0 +1,14 @@ 
+#############################################################
+#
+# libtorrent
+#
+#############################################################
+
+LIBTORRENT_VERSION = 0.13.2
+LIBTORRENT_SITE = http://libtorrent.rakshasa.no/downloads
+LIBTORRENT_DEPENDENCIES = host-pkg-config libsigc openssl
+LIBTORRENT_CONF_OPT = --enable-aligned --enable-openssl
+LIBTORRENT_INSTALL_STAGING = YES
+LIBTORRENT_AUTORECONF = YES
+
+$(eval $(call AUTOTARGETS))