Trouble going from 1.34 to 1.42

Ask for help and report issues not specific to either the Mac OS X or GTK+ versions of Transmission
Post Reply
yossicohen
Posts: 2
Joined: Thu Jan 01, 2009 3:47 pm

Trouble going from 1.34 to 1.42

Post by yossicohen »

Running Centos(rhel) 5.2 with all updates. 1.34 builds and runs fine. Trying to now build 1.42 . Configure demands libcurl-7.16.3 but Centos 5.2 has libcurl-7.15.5. When I try to install newer libcurl, it breaks numerous dependencies. I have tries to deal with this for half a day with no success. Too many updates and dependencies. With 1.34 this wasn't an issue. Is there any way I can get around this?

Thanks
Vladi
Posts: 5
Joined: Sat Jan 03, 2009 8:46 pm

Re: Trouble going from 1.34 to 1.42

Post by Vladi »

I have the same problem.

I compiled libcurl 7.19.2 into /opt/

Code: Select all

./configure --prefix=/opt
There is now 2 version from curl. One package and one compiled.

Now, i try to use compiled one.
In transmission 1.42 dir:

Code: Select all

./configure LIBCURL_CFLAGS=/opt/include/curl LIBCURL_LIBS=/opt/lib/
Configure ok:

Code: Select all

Configuration:

        Source code location:       .
        Compiler:                   g++
        Build Command-Line client:  yes
        Build Daemon:               yes
        Build BeOS client:          no
        Build GTK+ client:          yes
          ... gio support:          no
          ... dbus-glib support:    yes
          ... libnotify support:    no
        Build OS X client:          no
        Build wxWidgets client:     yes
But make give errors:

Code: Select all

web.c: In function ‘tr_multi_socket_action’:
web.c:284: warning: implicit declaration of function ‘curl_multi_socket_action’
web.c: In function ‘event_cb’:
web.c:319: error: ‘CURL_CSELECT_ERR’ undeclared (first use in this function)
web.c:319: error: (Each undeclared identifier is reported only once
web.c:319: error: for each function it appears in.)
web.c:322: error: ‘CURL_CSELECT_IN’ undeclared (first use in this function)
web.c:323: error: ‘CURL_CSELECT_OUT’ undeclared (first use in this function)
web.c: In function ‘tr_webInit’:
web.c:471: error: ‘CURLMOPT_TIMERDATA’ undeclared (first use in this function)
web.c:472: error: ‘CURLMOPT_TIMERFUNCTION’ undeclared (first use in this function)
make[2]: *** [web.o] Error 1
make[2]: Leaving directory `/usr/src/transmission-1.42/libtransmission'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/transmission-1.42/libtransmission'
make: *** [all-recursive] Error 1
Due to this bug, i tried again:

Code: Select all

CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash LIBCURL_CFLAGS=/opt/include/curl LIBCURL_LIBS=/opt/lib/
The same issue. :cry:

I don't want to break CentOS's dependency system. What now? How to compile transmission using /opt version of curl?

Code: Select all

ls /opt/include/curl
curlbuild.h  curlrules.h  easy.h     multi.h        typecheck-gcc.h
curl.h       curlver.h    mprintf.h  stdcheaders.h  types.h  
Marti
Posts: 3
Joined: Thu Dec 18, 2008 4:11 pm

Re: Trouble going from 1.34 to 1.42

Post by Marti »

I have no problems with intalling it with newer libcurl:
http://marti.dimerge.net/blog/2008/11/1 ... rl-problem

try to:
export LIBCURL_CFLAGS=/opt/include/curl
export LIBCURL_LIBS=/opt/lib/

and then invoke
./configure
without any additional options...
yossicohen
Posts: 2
Joined: Thu Jan 01, 2009 3:47 pm

Re: Trouble going from 1.34 to 1.42

Post by yossicohen »

I was able to get around this by installing rpms for newer libcurl: http://marti.dimerge.net/blog/2008/11/1 ... rl-problem

I had to tell rpm to ignore dependencies (--nodeps) and then I linked libcurl.so.3 and libcurl.so.3.0.0 to libcurl.so.4.0.0

There seems to be no other way to do this.

Built and installed transmission 1.42

Now I have very bad upload and download speeds.I had several torrents in progress at the time I changed versions and now all the torrents have only leechers connected - no seeds and thus all torrents are displaying "Time Remaining Unknown"

Another bug?
Vladi
Posts: 5
Joined: Sat Jan 03, 2009 8:46 pm

Re: Trouble going from 1.34 to 1.42

Post by Vladi »

Marti wrote:I have no problems with intalling it with newer libcurl:
try to:
export LIBCURL_CFLAGS=/opt/include/curl
export LIBCURL_LIBS=/opt/lib/

and then invoke
./configure
without any additional options...
I tried it, unfortunately the same issue. :(

Code: Select all

web.c: In function ‘tr_multi_socket_action’:
web.c:284: warning: implicit declaration of function ‘curl_multi_socket_action’
web.c: In function ‘event_cb’:
web.c:319: error: ‘CURL_CSELECT_ERR’ undeclared (first use in this function)
web.c:319: error: (Each undeclared identifier is reported only once
web.c:319: error: for each function it appears in.)
web.c:322: error: ‘CURL_CSELECT_IN’ undeclared (first use in this function)
web.c:323: error: ‘CURL_CSELECT_OUT’ undeclared (first use in this function)
web.c: In function ‘tr_webInit’:
web.c:471: error: ‘CURLMOPT_TIMERDATA’ undeclared (first use in this function)
web.c:472: error: ‘CURLMOPT_TIMERFUNCTION’ undeclared (first use in this function)
make[2]: *** [web.o] Error 1
make[2]: Leaving directory `/usr/src/transmission-1.42/libtransmission'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/transmission-1.42/libtransmission'
make: *** [all-recursive] Error 1
So I wait for curl update, and ask centos forum.
Thanks the help Marti. :mrgreen:
Vladi
Posts: 5
Joined: Sat Jan 03, 2009 8:46 pm

Re: Trouble going from 1.34 to 1.42

Post by Vladi »

I don't know much about coding, but the problem is in
/libtransmission/web.c

It declares #include <curl/curl.h> and misses CURL_CSELECT_IN, CURL_CSELECT_OUT etc.
These are missing from
/opt/include/curl/curl.h
So: some problem in libcurl compilation.

[I use Linux, I never give up. :mrgreen: ]

mod:

curl configure:

Code: Select all

configure: Configured to build curl/libcurl:

  curl version:    7.19.2
  Host setup:      i686-pc-linux-gnu
  Install prefix:  /opt/
  Compiler:        gcc
  SSL support:     enabled (OpenSSL)
  SSH support:     enabled (libSSH2)
  zlib support:    enabled
  krb4 support:    no      (--with-krb4*)
  GSSAPI support:  no      (--with-gssapi)
  SPNEGO support:  no      (--with-spnego)
  c-ares support:  no      (--enable-ares)
  ipv6 support:    enabled
  IDN support:     enabled
  Build libcurl:   Shared=yes, Static=yes
  Built-in manual: enabled
  Verbose errors:  enabled (--disable-verbose)
  SSPI support:    no      (--enable-sspi)
  ca cert bundle:  /etc/pki/tls/certs/ca-bundle.crt
  ca cert path:    no
  LDAP support:    enabled (OpenLDAP)
  LDAPS support:   no      (--enable-ldaps)
arsa
Posts: 4
Joined: Fri Apr 03, 2009 2:22 pm

Re: Trouble going from 1.34 to 1.42

Post by arsa »

I have successfully installed latest Transmission on CentOS 5.3. I had to overcome the problem of old cURL version, too.

1) I am already using RPMforge repository and installed "libssh2" and "libssh2-devel" from it. Then I compiled cURL 7.19.4 from the source code:

Code: Select all

./configure --enable-http --enable-ftp --enable-file -enable-ldap -enable-ldaps --enable-proxy --enable-dict --enable-telnet --enable-tftp --enable-manual --enable-libgcc --enable-thread --enable-nonblocking --enable-verbose --enable-sspi --enable-crypto-auth --enable-cookies --enable-soname-bump --with-gssapi --with-zlib --with-libssh2 --with-gnutls --with-nss --with-libidn
make
make test
make install
You may probably omit libssh2 from that part, it you wish.

2) From the same repository I had already installed "wxGTK", "wxGTK-devel", "wxsvg" and "wxsvg-devel" packages. Then I compiled Transmission 1.51 from the source code:

Code: Select all

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --enable-gtk --enable-libnotify --enable-nls --enable-wx --enable-cli --enable-daemon
make
make install
You may probably omit wx from that part, it you wish.

At the first moment I've tried the next method. However, "./configure" did succeed but then "make" fails at its latest stage. Here's just as a reference:

Code: Select all

LIBCURL_CFLAGS=/usr/local/include/curl LIBCURL_LIBS=/usr/local/lib ./configure --enable-gtk --enable-libnotify --enable-nls --enable-wx --enable-cli --enable-daemon
make
make install
So, I bypassed RPM dependency conflicts by leaving old CentOS's cURL as it is. And also, latest Transmission is working :-)
I hope this help.
Vladi
Posts: 5
Joined: Sat Jan 03, 2009 8:46 pm

Re: Trouble going from 1.34 to 1.42

Post by Vladi »

Hello!

Thanks for the help! I will try, after updating to Cent 5.3. :mrgreen:
arsa
Posts: 4
Joined: Fri Apr 03, 2009 2:22 pm

Re: Trouble going from 1.34 to 1.42

Post by arsa »

I have installed Transmission 1.52 by using the same method (overwriting previous installation). Just an additional information:
The previous installation didn't include libnotify. That was, again, due to the version being older then required.
I have included libnotify by installing version 0.4.4 from source, like this:

Code: Select all

./configure --enable-gtk-doc
make
make check
make install
I tried to include version 0.4.5 but it required a newer version of DBUS-GLIB. But, I wasn't prepared to be involved with more source code compilations.
Also, the GIO from GTK+ is excluded. That's because to have GIO we need version 2.0 while the installed version is 1.2.0.
Overall, this means a significant number of libraries included in CentOS (in fact, RHEL) are pretty old.
arsa
Posts: 4
Joined: Fri Apr 03, 2009 2:22 pm

Re: Trouble going from 1.34 to 1.42

Post by arsa »

And here's my final addition to compiling Transmission 1.52 on CentOS 5.3. This time, I've tried doing it on a 64-bit version. Everything goes just as in my previous two posts, with two exceptions.

1) to compile libcurl source code, you must specify explicitly to look up for 64-bit version of libraries - otherwise "make" will fail.
You can do that by having this "configure" command for libcurl:

Code: Select all

LDFLAGS="-L/usr/lib64" ./configure --enable-http --enable-ftp --enable-file -enable-ldap -enable-ldaps --enable-proxy --enable-dict --enable-telnet --enable-tftp --enable-manual --enable-libgcc --enable-thread --enable-nonblocking --enable-verbose --enable-sspi --enable-crypto-auth --enable-cookies --enable-soname-bump --with-gssapi --with-zlib --with-libssh2 --with-gnutls --with-nss --with-libidn
2) to compile Transmission, you must prevent including the old libcurl and use the one that is just installed - otherwise "make" will fail.
You can do that by having this "configure" command for Transmission:

Code: Select all

LIBCURL_CFLAGS=-I/usr/local/include LIBCURL_LIBS=/usr/local/lib/libcurl.so PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --enable-gtk --enable-libnotify --enable-nls --enable-wx --enable-cli --enable-daemon
For transmission source code, "make check" will fail for all tests, but the final binary will work without errors.

As I said, all other commands remain the same.
Greetings to all from Ivan.
Vladi
Posts: 5
Joined: Sat Jan 03, 2009 8:46 pm

Re: Trouble going from 1.34 to 1.42

Post by Vladi »

Still no luck. :oops: But I did not use RPM forge's libssh2 packeges. No way, to compile transmission without braking official CentOS package system.

I will try with non official packages.
fmauro
Posts: 1
Joined: Sun Aug 02, 2009 1:03 pm

Re: Trouble going from 1.34 to 1.42

Post by fmauro »

Hey

Try using curl-config

Code: Select all

curl-config --cflags
and

Code: Select all

curl-config --libs
should tell you what you have pass to the configure script.

It worked fine for me with newest libcurl and transmission 1.73
Post Reply