kfei / docktorrent

:zap: Full-featured BitTorrent box runs in Docker
378 stars 65 forks source link

Why building curl, libtorrent and rtorrent yourself? #21

Open ypid opened 9 years ago

ypid commented 9 years ago

Hi

I am curious, why is curl, libtorrent and rtorrent build from source code instead of using the once from Debian jessie (or experimental in case you really want to use bleeding edge).

Software version in Debian:

kfei commented 9 years ago

Hi. The main idea on this was to enable the c-ares support of curl. (See: https://github.com/kfei/docktorrent/blob/master/Dockerfile#L18)

Without asynchronous DNS resolver, rTorrent may hang most of the time when you have to connect to more and more trackers. (Reproduce this by setting set_max_open_http to a large number and start some torrents with lots of trackers, a rTorrent instance without async DNS will soon gets stuck.)

But this issue was discovered almost 3 years ago. It's likely the c-ares support of curl has been enabled by default in the Debian upstream at some time. I'm not sure on this because the curl come from Debian now shows me a AsyncDNS flag in curl --version output, but doesn't list libc-ares as its dependency in the package detail (https://packages.debian.org/sid/libcurl3). Will dig into this when I have time.

Thank you for reminding this. Any thoughts?

ypid commented 9 years ago

My curl on Debian jessie is showing me this as well:

curl 7.38.0 (x86_64-pc-linux-gnu) libcurl/7.38.0 OpenSSL/1.0.1k zlib/1.2.8 libidn/1.29 libssh2/1.4.3 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API SPNEGO NTLM NTLM_WB SSL libz TLS-SRP

I guess Debian solved the problem without libc-ares. See build log for curl (search for resolver: POSIX threaded). It might be worth a try to use the debian packages.