Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 432242 - media-libs/qt-gstreamer should depend on dev-libs/boost
Summary: media-libs/qt-gstreamer should depend on dev-libs/boost
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
: 437710 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-08-21 21:02 UTC by Nikos Chantziaras
Modified: 2012-11-11 22:31 UTC (History)
3 users (show)

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


Attachments
export all dependencies required to success compilation w/ qt-gstreamer (qt-gstreamer-0.10.2-fix-missed-boost-include-dir.patch,2.16 KB, patch)
2012-10-14 08:51 UTC, Alex Turbov
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Nikos Chantziaras 2012-08-21 21:02:52 UTC
media-libs/qt-gstreamer needs Boost to build and run. But the ebuild doesn't depend on dev-libs/boost.
Comment 1 Johannes Huber (RETIRED) gentoo-dev 2012-08-22 07:21:03 UTC
I can only find references to dev-libs/boost on build time. Can you please confirm?
Comment 2 Nikos Chantziaras 2012-08-23 02:24:28 UTC
Try:

  $ grep -r "boost::" /usr/include/QtGStreamer

It's not exactly runtime, but it still needs Boost so software using QtGStreamer can be built.  Maybe Portage treats this case in some other way?  I don't know.
Comment 3 Alex Turbov 2012-08-27 03:58:20 UTC
confirm!
qt-gstreamer uses a lot of header-only libraries from boost!

makeing it depends on >dev-libs/boost-1.39 (it is exact version required according its' CMakeLists.txt) will solve just one problem... here is another bunch of troubles:
* net-libs/telepathy-log-qt fails to build cuz uses qt-gstreamer which is uses boost. First of all: its' CMakeLists.txt doesn't check for boost, cuz it doesn't depend on it directly! (only via qt-gstreamer). 
* The second problem: recent changes in =boost-1.50.0-r2 doesn't install any eselect-boost stuff -- it is why '#include <boost/config.hpp>' line in /usr/include/QtGStreamer/QGlib/global.h leads to an error and build failure -- there is no symlink /usr/include/boost anymore!
* and finally qt-gstreamer-0.10.2.ebuild rdepends on >=boost-build-1.40, I don't know why... as I mentioned above according CMakeLists.txt qt-gstreamer needs boost >= 1.39
Comment 4 Andreas K. Hüttel archtester gentoo-dev 2012-08-30 18:09:27 UTC
Fixed, thanks.
Comment 5 Johannes Huber (RETIRED) gentoo-dev 2012-10-13 23:14:36 UTC
*** Bug 437710 has been marked as a duplicate of this bug. ***
Comment 6 Nikoli 2012-10-14 04:33:54 UTC
media-libs/qt-gstreamer is DEPEND only for 2 packages: net-im/ktp-call-ui and net-libs/telepathy-logger-qt. If any of them needs boost-build for building, please add boost-build to their DEPEND and remove from RDEPEND of media-libs/qt-gstreamer.
Comment 7 Alex Turbov 2012-10-14 05:14:09 UTC
(In reply to comment #6)
> media-libs/qt-gstreamer is DEPEND only for 2 packages: net-im/ktp-call-ui
> and net-libs/telepathy-logger-qt. If any of them needs boost-build for
> building, please add boost-build to their DEPEND and remove from RDEPEND of
> media-libs/qt-gstreamer.

This is totally incorrect solution! qt-gstreamer should export its own dependencies, so other packages will use the same version of boost as used to compile qt-gstreamer.
Otherwise there is a risc to find some other version of boost (other than qt-gstreamer was compile against) which may leads to hard detectable problems...
Comment 8 Nikoli 2012-10-14 05:53:35 UTC
Current "solution" has same problem, it is possible to build media-libs/qt-gstreamer with boost-1.49.0-r1 and net-libs/telepathy-logger-qt with boost-1.41.0-r3. It is even possible to build any of them with boost-1.35.0-r2, because there is only check for which version of boost is installed, but not for which is selected with eselect.
It is not possible to "export its own dependencies" with current portage and EAPI5, it is known limitation.

Keeping boost-build in RDEPEND does not solve any problem, but breaks 'emerge --depclean --with-bdeps=n -qa'
Comment 9 Alex Turbov 2012-10-14 08:51:52 UTC
Created attachment 326516 [details, diff]
export all dependencies required to success compilation w/ qt-gstreamer
Comment 10 Alex Turbov 2012-10-14 08:52:04 UTC
(In reply to comment #8)
> Current "solution" has same problem, it is possible to build
> media-libs/qt-gstreamer with boost-1.49.0-r1 and
> net-libs/telepathy-logger-qt with boost-1.41.0-r3. It is even possible to
> build any of them with boost-1.35.0-r2, because there is only check for
> which version of boost is installed, but not for which is selected with
> eselect.

btw, be ready for no more eselect boost! 
qt-gstreamer must take care about all packages that will use it and MUST provide everything required to compile w/ it... this is not a task (to find qt-gstreamer's dependencies) for anyone else... This is so obvious and essential part of any good library, but too much libraries do not follow this practice (that was discovered after upgrade to boost-1.50.0-r1 (yep, w/o eselect boost anymore)...

> It is not possible to "export its own dependencies" with current portage and
> EAPI5, it is known limitation.

this is not a task for emerge anyway (w/ any EPAI) -- this is a lack of qt-gstreame ONLY.
Here is a patch I used to build it (and later KDE telepathy).
Comment 11 Nikoli 2012-10-14 15:04:51 UTC
I did simple test: 'emerge -1vb net-im/ktp-call-ui net-libs/telepathy-logger-qt;emerge -C boost-build;emerge -1vb net-im/ktp-call-ui net-libs/telepathy-logger-qt'
Builds fine, bins did not change - same sizes and md5sums. So i suggest just moving boost-build from RDEPEND to DEPEND in qt-gstreamer ebuild.
Comment 12 Alex Turbov 2012-10-14 15:35:12 UTC
(In reply to comment #11)
> I did simple test: 'emerge -1vb net-im/ktp-call-ui
> net-libs/telepathy-logger-qt;emerge -C boost-build;emerge -1vb
> net-im/ktp-call-ui net-libs/telepathy-logger-qt'
> Builds fine, bins did not change - same sizes and md5sums. So i suggest just
> moving boost-build from RDEPEND to DEPEND in qt-gstreamer ebuild.

It uses only header only boost libraries, so RDEPEND do not needed anyway.
btw, what boost do you have? please note that >=boost-1.50-r1 do not have `eselect boost` anymore (so there is no 'default' symlink /usr/include/boost) -- in that case dependend packages will fail to compile (because of lack of boost dependency in exported configuration files -- it is why I've done this patch)
Comment 13 Nikoli 2012-10-14 15:51:40 UTC
boost-1.50-r1 is hard masked, i use stable amd64 system, my boost version is 1.49.0-r1.
Comment 14 Alex Turbov 2012-10-14 16:03:49 UTC
(In reply to comment #13)
> boost-1.50-r1 is hard masked, i use stable amd64 system, my boost version is
> 1.49.0-r1.

Yeah, I know... here is a bunch of bugs still opened: #425188.
This one actually must be marked as blocker too...
Comment 15 Davide Pesavento (RETIRED) gentoo-dev 2012-11-11 22:31:11 UTC
boost-build dep removed wrt comments #8 and #11 (and also confirmed by flameeyes and me). Closing.