Rtorrent compilation + problem solving

Just compiled rtorrent and recognised that it won't connect to private trackers anymore?

Usually due to a buggy libcurl version. Since version 0.8.2, rtorrent uses more advanced features of libcurl. While these work for many users, in unknown circumstances (depending on system setup? trackers?) it may cause announces to fail consistently. In that case please update libcurl to version 7.19.2 or higher.

Also new rtorrent versions have changed the syntax for ratio handling so your old config file may not work correctly any more! Check the following thread: http://libtorrent.rakshasa.no/wiki/RTorrentRatioHandling

Following packages are also needed: g++, OpenSSL & libgcrypt (compile newest from source), libsigc++-2.0-dev, libncurses & libncurses-dev

OpenSSL has to be configured like that:
./configure --prefix=/usr/local shared
in order to create shared libraries (.so files)

Fix (compiling info from www.lordraven.eu):
Compile new Curl:

cd /usr/local/src
wget http://curl.haxx.se/download/curl-7.19.3.tar.gz
tar -xvf curl-7.19.3.tar.gz
cd curl-7.19.3 ./configure --prefix=/usr/local

or better:
./configure --prefix=/usr/local --with-ssl --with-libssh2 --with-zlib --enable-tls-srp
(then you need libssh2 - itself needs zlib)

make install

Compile libtorrent:

cd /usr/local/src
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.4.tar.gz
tar -xvf libtorrent-0.12.4.tar.gz
cd libtorrent-0.12.4
./configure -prefix=/usr/local
make install

Compile rtorrent:

cd /usr/local/src
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.4.tar.gz
tar -xvf /rtorrent-0.8.4.tar.gz
cd rtorrent-0.8.4
./configure --prefix=/usr/local
make && make install

If you run into any problems during make or make install f.e. a library is needed you can search for it using:
apt-cache search name
and install it using:
apt-get install name

UPDATE (14.05.09):

If rtorrent consumes much memory and sometimes you get file chunk write errors that may be a compiler bug of gcc 4.1.* ...

Fixing the problem is maybe possible if you do the following before each configure:

export CXXFLAGS="-g -O0 -march=i386"

Read further:

UPDATE (28.01.10):

The problem:
HandshakeManager::receive_succeeded(...) Unread data won't fit PCB's read buffer.

Has also to do with gcc! It is therefore advised to use gcc-3.4 for compilation, that should work without any problems!

UPDATE (24.01.13):
Compiling an own ncurses library may need the following modifications:
env CXXFLAGS=-I/usr/local/include/ncurses
./configure --prefix=/usr/local
instead of the standard configure.

If you get the following:
cannot open shared object file: No such file or directory
ldconfig /usr/local/lib