Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 156537

Summary: net-im/twinkle and net-libs/ccrtp have incorrect dependencies that can cause packages to get built out of order
Product: Gentoo Linux Reporter: ta2002 <throw_away_2002>
Component: New packagesAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: RESOLVED WORKSFORME    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
URL: http://www.xs4all.nl/~mfnboer/twinkle/download.html
Whiteboard:
Package list:
Runtime testing required: ---

Description ta2002 2006-11-28 11:51:55 UTC
Another bug I don't feel too sure about. :)

From twinkle-0.9-r1.ebuild:

RDEPEND=">=net-libs/ccrtp-1.5.0
        >=dev-cpp/commoncpp2-1.4.1
        $(qt_min_version 3.3.0)
        arts? ( kde-base/arts )
        media-libs/libsndfile
        dev-libs/boost
        speex? ( media-libs/speex )
        ilbc? ( dev-libs/ilbc-rfc3951 )
        zrtp? ( net-libs/libzrtpcpp )"

DEPEND="${RDEPEND}
        dev-util/pkgconfig"

This setup (I believe) can cause net-libs/ccrtp to get built before
dev-cpp/commoncpp2 (at least it did in my case).

From the net-libs/ccrtp-1.5.0.ebuild:

RDEPEND=">=dev-cpp/commoncpp2-1.3.0
        dev-libs/libgcrypt"
DEPEND="${RDEPEND}
        >=dev-util/pkgconfig-0.9.0
        doc? ( app-doc/doxygen )"

ccrtp DEPENDS on commoncpp2 during the compile so commoncpp2 should (I think)
get included in DEPEND, not RDEPEND (and twinkle doesn't need to mention
commoncpp2 at all, since ccrtp requires it).

$ ldd /usr/lib64/libccrtp1-1.5.so.0.0.0
        libccgnu2-1.5.so.0 => /usr/lib/libccgnu2-1.5.so.0 (0x00002b48323b0000)
        libdl.so.2 => /lib/libdl.so.2 (0x00002b48324f6000)
        librt.so.1 => /lib/librt.so.1 (0x00002b48325fa000)
        libgcrypt.so.11 => /usr/lib/libgcrypt.so.11 (0x00002b4832704000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/libstdc++.so.6 (0x00002b4832850000)
        libm.so.6 => /lib/libm.so.6 (0x00002b4832a51000)
        libc.so.6 => /lib/libc.so.6 (0x00002b4832ba8000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002b4832de9000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00002b4832ef6000)
        libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00002b483300d000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00002b4833110000)

The web page even says:

"You have to install the commoncpp2 package before the ccrtp package."
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2006-11-28 11:55:53 UTC
(In reply to comment #0)
> From the net-libs/ccrtp-1.5.0.ebuild:
> 
> RDEPEND=">=dev-cpp/commoncpp2-1.3.0
>         dev-libs/libgcrypt"
> DEPEND="${RDEPEND}
>         >=dev-util/pkgconfig-0.9.0
>         doc? ( app-doc/doxygen )"
> 
> ccrtp DEPENDS on commoncpp2 during the compile so commoncpp2 should (I think)
> get included in DEPEND, not RDEPEND 

It already _is_ in DEPEND... Missed the DEPEND="${RDEPEND} bit, or?
Comment 2 ta2002 2006-11-28 12:35:25 UTC
I don't understand portage that well, but maybe having
both of them (net-libs/ccrtp and dev-cpp/commoncpp2)
listed in twinkle sets them up out of order.

My emerge log from "emerge -v twinkle":

1164702382:  *** emerge --verbose twinkle
1164702383:  >>> emerge (1 of 5) dev-libs/boost-1.33.1 to /
1164702383:  === (1 of 5) Cleaning (dev-libs/boost-1.33.1::/usr/portage/dev-libs/boost/boost-1.33.1.ebuild)
1164702384:  === (1 of 5) Compiling/Merging (dev-libs/boost-1.33.1::/usr/portage/dev-libs/boost/boost-1.33.1.ebuild)
1164705106:  >>> AUTOCLEAN: dev-libs/boost
1164705106:  --- AUTOCLEAN: Nothing unmerged.
1164705107:  === (1 of 5) Post-Build Cleaning (dev-libs/boost-1.33.1::/usr/portage/dev-libs/boost/boost-1.33.1.ebuild)
1164705107:  ::: completed emerge (1 of 5) dev-libs/boost-1.33.1 to /
1164705107:  >>> emerge (2 of 5) net-libs/ccrtp-1.5.0 to /
1164705107:  === (2 of 5) Cleaning (net-libs/ccrtp-1.5.0::/usr/portage/net-libs/ccrtp/ccrtp-1.5.0.ebuild)
1164705108:  === (2 of 5) Compiling/Merging (net-libs/ccrtp-1.5.0::/usr/portage/net-libs/ccrtp/ccrtp-1.5.0.ebuild)
1164705333:  >>> AUTOCLEAN: net-libs/ccrtp
1164705338: === Unmerging... (net-libs/ccrtp-1.3.6)
1164705340:  >>> unmerge success: net-libs/ccrtp-1.3.6
1164705340:  === (2 of 5) Post-Build Cleaning (net-libs/ccrtp-1.5.0::/usr/portage/net-libs/ccrtp/ccrtp-1.5.0.ebuild)
1164705340:  ::: completed emerge (2 of 5) net-libs/ccrtp-1.5.0 to /
1164705340:  >>> emerge (3 of 5) dev-cpp/commoncpp2-1.5.1-r1 to /
1164705340:  === (3 of 5) Cleaning (dev-cpp/commoncpp2-1.5.1-r1::/usr/portage/dev-cpp/commoncpp2/commoncpp2-1.5.1-r1.ebuild)
1164705341:  === (3 of 5) Compiling/Merging (dev-cpp/commoncpp2-1.5.1-r1::/usr/portage/dev-cpp/commoncpp2/commoncpp2-1.5.1-r1.ebuild)
1164705741:  >>> AUTOCLEAN: dev-cpp/commoncpp2
1164705746: === Unmerging... (dev-cpp/commoncpp2-1.3.22)
1164705748:  >>> unmerge success: dev-cpp/commoncpp2-1.3.22
1164705748:  === (3 of 5) Post-Build Cleaning (dev-cpp/commoncpp2-1.5.1-r1::/usr/portage/dev-cpp/commoncpp2/commoncpp2-1.5.1-r1.ebuild)
1164705748:  ::: completed emerge (3 of 5) dev-cpp/commoncpp2-1.5.1-r1 to /
1164705748:  >>> emerge (4 of 5) net-libs/libzrtpcpp-0.9.0 to /
1164705748:  === (4 of 5) Cleaning (net-libs/libzrtpcpp-0.9.0::/usr/portage/net-libs/libzrtpcpp/libzrtpcpp-0.9.0.ebuild)
1164705748:  === (4 of 5) Compiling/Merging (net-libs/libzrtpcpp-0.9.0::/usr/portage/net-libs/libzrtpcpp/libzrtpcpp-0.9.0.ebuild)
1164705816:  >>> AUTOCLEAN: net-libs/libzrtpcpp
1164705816:  --- AUTOCLEAN: Nothing unmerged.
1164705816:  === (4 of 5) Post-Build Cleaning (net-libs/libzrtpcpp-0.9.0::/usr/portage/net-libs/libzrtpcpp/libzrtpcpp-0.9.0.ebuild)
1164705816:  ::: completed emerge (4 of 5) net-libs/libzrtpcpp-0.9.0 to /
1164705816:  >>> emerge (5 of 5) net-im/twinkle-0.9-r1 to /
1164705816:  === (5 of 5) Cleaning (net-im/twinkle-0.9-r1::/usr/portage/net-im/twinkle/twinkle-0.9-r1.ebuild)
1164705816:  === (5 of 5) Compiling/Merging (net-im/twinkle-0.9-r1::/usr/portage/net-im/twinkle/twinkle-0.9-r1.ebuild)
1164706653:  === (5 of 5) Updating world file (net-im/twinkle-0.9-r1)
1164706653:  >>> AUTOCLEAN: net-im/twinkle
1164706658: === Unmerging... (net-im/twinkle-0.7.1)
1164706660:  >>> unmerge success: net-im/twinkle-0.7.1
1164706660:  === (5 of 5) Post-Build Cleaning (net-im/twinkle-0.9-r1::/usr/portage/net-im/twinkle/twinkle-0.9-r1.ebuild)
1164706660:  ::: completed emerge (5 of 5) net-im/twinkle-0.9-r1 to /
1164706660:  *** Finished. Cleaning up...
1164706670:  *** exiting successfully.
1164706674:  *** terminating.

Somebody else got bit by this, too:

http://forums.gentoo.org/viewtopic-p-3447386.html?#3447386

Something doesn't guarantee that commoncpp2 gets built before ccrtp
(and it should). Maybe this bug should go to portage (but I do
think that removing commoncpp2 from the twinkle ebuild would solve
the problem in this case).