Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 265900 - net-p2p/qbittorrent: revdep-rebuild fails to find broken qbittorrent
Summary: net-p2p/qbittorrent: revdep-rebuild fails to find broken qbittorrent
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High normal
Assignee: Gentoo net-p2p team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-12 21:15 UTC by Michael P. Soulier
Modified: 2009-12-17 15:14 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
conf.log from build (conf.log,597 bytes, text/plain)
2009-05-15 23:38 UTC, Michael P. Soulier
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael P. Soulier 2009-04-12 21:15:10 UTC
I just ran an emerge --update world, and it picked up some new qt libs. These broke qbittorrent. 

msoulier@anton:~$ qbittorrent 
qbittorrent: symbol lookup error: qbittorrent: undefined symbol: _ZN5boost10filesystem6detail15not_found_errorE

Running revdep-rebuild did not find this. 

Reproducible: Didn't try

Steps to Reproduce:
Put your box in this state...


msoulier@anton:~$ equery list | grep qbittorrent
net-p2p/qbittorrent-1.0.0
msoulier@anton:~$ equery list | grep qt
x11-libs/qt-core-4.4.2-r2
x11-libs/qt-gui-4.4.2-r3
x11-libs/qt-qt3support-4.4.2
x11-libs/qt-script-4.4.2
x11-libs/qt-sql-4.4.2-r1




When I try to rebuild qbittorrent, it fails.

>>> Emerging (1 of 1) net-p2p/qbittorrent-1.0.0
 * qbittorrent-1.0.0.tar.gz RMD160 SHA1 SHA256 size ;-) ...                   [ ok ]
 * checking ebuild checksums ;-) ...                                          [ ok ]
 * checking auxfile checksums ;-) ...                                         [ ok ]
 * checking miscfile checksums ;-) ...                                        [ ok ]
>>> Unpacking source...
>>> Unpacking qbittorrent-1.0.0.tar.gz to /var/tmp/portage/net-p2p/qbittorrent-1.0.0/work
>>> Source unpacked in /var/tmp/portage/net-p2p/qbittorrent-1.0.0/work
>>> Compiling source in /var/tmp/portage/net-p2p/qbittorrent-1.0.0/work/qbittorrent-1.0.0 ...
Configuring qbittorrent ...
Verifying Qt 4 build environment ... ok
Checking for Qt >= 4.3 ... yes
Checking for libtorrent >= 0.13 ... no

Error: need libtorrent >= 0.13!

 * 
 * ERROR: net-p2p/qbittorrent-1.0.0 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2671:  Called die
 * The specific snippet of code:
 *       ./configure --prefix=/usr --qtdir=/usr --with-libtorrent-inc=/usr/include --with-libtorrent-lib=/usr/$(get_libdir) || die "configure failed";
 *  The die message:
 *   configure failed
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/net-p2p/qbittorrent-1.0.0/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-p2p/qbittorrent-1.0.0/temp/environment'.
 * 

>>> Failed to emerge net-p2p/qbittorrent-1.0.0, Log file:

>>>  '/var/tmp/portage/net-p2p/qbittorrent-1.0.0/temp/build.log'
Comment 1 Michael P. Soulier 2009-04-12 21:17:14 UTC
msoulier@anton:~$ emerge --search libtorrent
Searching...   
[ Results for search key : libtorrent ]
[ Applications found : 2 ]
 
*  net-libs/libtorrent
      Latest version available: 0.12.4
      Latest version installed: [ Not Installed ]
      Size of files: 586 kB
      Homepage:      http://libtorrent.rakshasa.no/
      Description:   LibTorrent is a BitTorrent library written in C++ for *nix.
      License:       GPL-2

*  net-libs/rb_libtorrent
      Latest version available: 0.13
      Latest version installed: 0.13
      Size of files: 1,467 kB
      Homepage:      http://www.rasterbar.com/products/libtorrent/
      Description:   BitTorrent library written in C++ for *nix.
      License:       BSD
Comment 2 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2009-04-13 08:56:37 UTC
Please post your "emerge --info" and attach the config.log file of the failed emerge to this bug.
Comment 3 Jeroen Roovers (RETIRED) gentoo-dev 2009-04-16 04:14:15 UTC
Please reopen this bug report when you have provided the requested information.
Comment 4 Michael P. Soulier 2009-04-28 19:18:33 UTC
(In reply to comment #3)
> Please reopen this bug report when you have provided the requested information.
> 

Apologies...

msoulier@anton:~$ less /var/tmp/portage/net-p2p/qbittorrent-1.0.0/temp/build.log>>> Unpacking source...
>>> Unpacking qbittorrent-1.0.0.tar.gz to /var/tmp/portage/net-p2p/qbittorrent-1.0.0/work
>>> Source unpacked in /var/tmp/portage/net-p2p/qbittorrent-1.0.0/work
>>> Compiling source in /var/tmp/portage/net-p2p/qbittorrent-1.0.0/work/qbittorrent-1.0.0 ...
Configuring qbittorrent ...
Verifying Qt 4 build environment ... ok
Checking for Qt >= 4.3 ... yes
Checking for libtorrent >= 0.13 ... no

Error: need libtorrent >= 0.13!

 *
 * ERROR: net-p2p/qbittorrent-1.0.0 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2671:  Called die
 * The specific snippet of code:
 *       ./configure --prefix=/usr --qtdir=/usr --with-libtorrent-inc=/usr/include --with-libtorrent-lib=/usr/$(get_libdir) || die "configure failed";
 *  The die message:
 *   configure failed
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/net-p2p/qbittorrent-1.0.0/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-p2p/qbittorrent-1.0.0/temp/environment'.
 *

msoulier@anton:~$ emerge --info
Portage 2.1.6.7 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.8_p20080602-r1, 2.6.25-gentoo-r8 i686)
=================================================================
System uname: Linux-2.6.25-gentoo-r8-i686-AMD_Athlon-tm-_XP_1700+-with-glibc2.0
Timestamp of tree: Sat, 18 Apr 2009 08:00:02 +0000
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7-r1, 2.1.7
dev-lang/python:     2.5.4-r2
dev-python/pycrypto: 2.0.1-r8
dev-util/cmake:      2.6.2-r1
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=athlon-xp -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=athlon-xp -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://distro.ibiblio.org/pub/linux/distributions/gentoo/ http://www.gtlib.gatech.edu/pub/gentoo "
LDFLAGS="-Wl,-O1"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl acpi aim alsa bash-completion berkdb branding bzip2 cairo cli cracklib crypt dri dvd dvdr dvdread encode exif ffmpeg fontconfig gdbm gif gnuplot gphoto2 gpm gtk iconv imap ipod ipv6 isdnlog jpeg midi mp3 mpeg mplayer msn mudflap ncurses nls nptl nptlonly nsplugin ogg opengl openmp pam pcre pdf perl png pppd python quicktime readline reflection session spl ssl svg sysfs tcpd tiff tk truetype unicode usb win32codecs x86 xcomposite xine xorg xulrunner xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

I'm not sure where my config.log is. I assume that's different from the build.log. 
Comment 5 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2009-04-28 20:34:53 UTC
Look under the "work" dir for the config.log file.
Comment 6 Michael P. Soulier 2009-04-28 20:49:05 UTC
(In reply to comment #5)
> Look under the "work" dir for the config.log file.

I found a conf.log...

msoulier@anton:~$ less conf.log
/usr/bin/moc -DHAVE_MODULES -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4 -I. -I. conf4.cpp -o conf4.moc
g++ -c -pipe -O2 -march=athlon-xp -pipe -Wall -W -D_REENTRANT -DHAVE_MODULES -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4 -I. -I. -o conf4.o conf4.cpp
g++ -Wl,-O1 -o conf conf4.o    -L/usr/lib/qt4 -lQtCore -L/usr/lib/qt4 -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
Comment 7 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2009-04-28 21:29:19 UTC
Please attach that file to this bug report.
Comment 8 Peter Alfredsen (RETIRED) gentoo-dev 2009-05-05 23:42:30 UTC
Re-open when appropriate.
Comment 9 Michael P. Soulier 2009-05-15 23:38:04 UTC
Created attachment 191428 [details]
conf.log from build

As requested.
Comment 10 Michael P. Soulier 2009-05-15 23:38:30 UTC
Reopening as requested. 
Comment 11 Andrew Evans 2009-05-17 16:27:28 UTC
I have exactly this same problem. The root cause seems to be missing symbols in Boost. Here's the verbose configure output:

./configure --prefix=/usr --qtdir=/usr --with-libtorrent-inc=/usr/include --with-libtorrent-lib=/usr/include --verbose             
Configuring qbittorrent ...                                                                                                                                   

PREFIX=/usr
BINDIR=/usr/bin
DATADIR=/usr/share
EX_QTDIR=/usr     
QC_WITH_LIBTORRENT_INC=/usr/include
QC_WITH_LIBTORRENT_LIB=/usr/include
QC_WITH_LIBTORRENT_STATIC_LIB=     
QC_WITH_LIBBOOST_INC=              
QC_WITH_LIBCURL_INC=               
QC_WITH_LIBCURL_LIB=               
QC_DISABLE_libmagick=              
QC_WITH_LIBMAGICK_INC=             
QC_WITH_LIBMAGICK_LIB=             
QC_DISABLE_libzzip=                
QC_WITH_LIBZZIP_INC=
QC_WITH_LIBZZIP_LIB=

Verifying Qt 4 build environment ...
qmake found in /usr/bin/qmake
 -> ok
conf command: [./configure]
conf path:    [./configure]
srcdir:       [/var/tmp/portage/net-p2p/qbittorrent-1.0.0/work/qbittorrent-1.0.0]
builddir:     [/var/tmp/portage/net-p2p/qbittorrent-1.0.0/work/qbittorrent-1.0.0]
profile:      [/var/tmp/portage/net-p2p/qbittorrent-1.0.0/work/qbittorrent-1.0.0/qbittorrent.pro]
qmake path:   [/usr/bin/qmake]
make tool:    [/usr/bin/gmake]

Checking for Qt >= 4.3 ... yes
Checking for libtorrent >= 0.13 ...
 * INCLUDEPATH += /usr/include
 * INCLUDEPATH += /usr/include/libtorrent
 * Wrote atest.cpp:
int main()
{
    return 0;
}

 * Wrote atest.pro:
CONFIG  += console
CONFIG  -= qt app_bundle
SOURCES += atest.cpp
LIBS += -L/usr/include -ltorrent

 * [/usr/bin/qmake atest.pro]
 * returned: 0
 * [/usr/bin/gmake]
g++ -c -pipe -pipe -march=athlon -O2 -Wall -W  -I/usr/share/qt4/mkspecs/linux-g++ -I. -I. -o atest.o atest.cpp
g++ -Wl,-O1 -o atest atest.o     -L/usr/include -ltorrent
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../libtorrent.so: undefined reference to `boost::system::get_posix_category()'
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../libtorrent.so: undefined reference to `boost::thread::sleep(boost::posix_time::ptime const&)'
collect2: ld returned 1 exit status
gmake: *** [atest] Error 1
 * returned: 512
 * [/usr/bin/gmake distclean]
rm -f atest.o
rm -f *~ core *.core
rm -f atest
rm -f Makefile
 * returned: 0
 -> no

Error: need libtorrent >= 0.13!

So the problem is not that it can't find libtorrent of a suitable version, it's that Boost has made binary-incompatible API changes.

Here is the relevant history from my /var/log/emerge.log:

Sat Apr 18 10:44:30 2009:  ::: completed emerge (7 of 14) dev-libs/boost-1.35.0-r2 to /

Fri Apr 24 22:03:48 2009:  ::: completed emerge (3 of 3) net-p2p/qbittorrent-1.0.0 to /                                                                                                                        

Tue May 12 12:44:33 2009:  ::: completed emerge (21 of 123) dev-util/boost-build-1.37.0 to /

Tue May 12 12:44:35 2009:  >>> unmerge success: dev-util/boost-build-1.35.0-r1

Tue May 12 12:46:57 2009:  ::: completed emerge (26 of 123) app-admin/eselect-boost-0.3 to /

Tue May 12 13:21:12 2009:  ::: completed emerge (32 of 123) dev-libs/boost-1.37.0-r1 to /

Tue May 12 13:22:18 2009:  >>> unmerge success: dev-libs/boost-1.35.0-r2

This bug needs to be split in two: one bug to fix revdep-rebuild to process data and function relocs (to catch the ABI breakage) and another to fix qbittorrent to build with dev-libs/boost-1.37.0, I think.
Comment 12 Andrew Evans 2009-05-17 17:09:31 UTC
It looks like newer versions of qbittorrent (> 1.0.0) have been updated to work with boost > 1.35.0. Unfortunately those versions of qbittorrent are hard-masked because of dependencies on newer rb_libtorrent, which some other BitTorrent clients apparently can't build against yet.

I'm going to try unmasking qbittorrent and rb_libtorrent and see what happens.
Comment 13 Andrew Evans 2009-05-17 17:29:22 UTC
net-p2p/qbittorrent-1.3.3 merges successfully against dev-libs/boost-1.37.0-r1. So it's either time to remove qbittorrent and rb_libtorrent from package.mask, or backport the Boost > 1.35.0 updates from qbittorrent 1.3.3.
Comment 14 Ben de Groot (RETIRED) gentoo-dev 2009-12-17 15:14:13 UTC
net-p2p/qbittorrent-1.0.0 is to be removed