Summary: | sci-geosciences/mapnik-0.6.1-r1 does not work with >=dev-libs/boost-1.42 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Sebastian Luther (few) <SebastianLuther> |
Component: | Current packages | Assignee: | Steve Arnold <nerdboy> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | rose, sci-geosciences |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 301673 | ||
Attachments: |
/var/tmp/portage/sci-geosciences/mapnik-0.6.1-r1/temp/build.log
A mapnik-0.6.1-r1.ebuild which takes boost-1_39 header and libboost_thread-mt-1_42 library |
Description
Sebastian Luther (few)
2010-01-20 21:45:22 UTC
Created attachment 217010 [details]
/var/tmp/portage/sci-geosciences/mapnik-0.6.1-r1/temp/build.log
This also causes problems with gpsdrive if mapnik builds against anything newer than the 1.39 version of boost, so now mapnik has been pegged at boost-1.39*. 'emerge mapnik' fails for me even if boost-1.39.0 is installed: ... main.cpp:(.text+0x939): undefined reference to `boost::program_options::options_description::options_description(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)' collect2: ld returned 1 exit status scons: *** [utils/pgsql2sqlite/pgsql2sqlite] Error 1 scons: building terminated because of errors. * ERROR: sci-geosciences/mapnik-0.6.1-r1 failed: ... root@moose:/root(15)# qlist -Iv boost app-admin/eselect-boost-0.3 dev-libs/boost-1.39.0 dev-libs/boost-1.42.0 dev-util/boost-build-1.39.0 dev-util/boost-build-1.42.0 (In reply to comment #2) > This also causes problems with gpsdrive if mapnik builds against anything newer > than the 1.39 version of boost, so now mapnik has been pegged at boost-1.39*. > The ebuild doesn't tell the build system to use 1.39. Searching for boost libs and headers... (cached) *libs found: /usr/lib64 *headers found: /usr/include *lib naming extension found: mt Checking for Boost version >= 1.34... yes Found boost lib version... 1_42 Have a look at dev-python/visual-5.13 on how to do this. I had a look at dev-python/visual-5.13 and wrote a mapnik-0.6.1-r1 (without really understanding what I did). With this ebuild 'emerge -v1 mapnik' fails with: ... x86_64-pc-linux-gnu-g++ -o utils/pgsql2sqlite/pgsql2sqlite utils/pgsql2sqlite/main.o utils/pgsql2sqlite/sqlite.o -Lsrc -L/usr/lib64 -L/usr/lib64/postgresql-8.4/lib64 -lboost_program_options-mt -lboost_thread-mt -lsqlite3 -lpq -lmapnik utils/pgsql2sqlite/main.o: In function `global constructors keyed to _ZN6mapnik14numeric2stringEPKc': main.cpp:(.text+0xd0): undefined reference to `boost::thread_resource_error::thread_resource_error()' utils/pgsql2sqlite/main.o: In function `main': main.cpp:(.text+0x939): undefined reference to `boost::program_options::options_description::options_description(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)' collect2: ld returned 1 exit status scons: *** [utils/pgsql2sqlite/pgsql2sqlite] Error 1 I think that emerge takes now the wanted /usr/include/boost-1_39 headers but still the /usr/lib/libboost_thread-mt.so -> libboost_thread-mt-1_42.so library. Who can improve this ebuild? Created attachment 222037 [details]
A mapnik-0.6.1-r1.ebuild which takes boost-1_39 header and libboost_thread-mt-1_42 library
Seems like this really calls for a boost eclass, but the "hack" looks like a good one, worthy of the name ;) Thanks... I'm testing it now, but it should probably be a forced r2 rev bump, just in case it hasn't broken yet for some people. (In reply to comment #7) > Seems like this really calls for a boost eclass, but the "hack" looks like a > good one, worthy of the name ;) Thanks... I'm testing it now, but it should > probably be a forced r2 rev bump, just in case it hasn't broken yet for some > people. > Be sure to not use the -I... , -L... hack. The build system allows you to pass the directories. Yeah, it wasn't exactly working as intended; it was still somehow getting linked against 1.41 even though the scons output showed the 1.39. I'm passing the LIB and INC paths on the compile line, so we'll see how that goes. Setting the default boost with eselect doesn't seem to make any difference, so I'm ignoring that for now. Okay, the final hack in 0.6.1-r2 should work for now; there's a new 0.7.0 upstream, but I'm waiting for the fixes in 0.7.1 so I probably won't do an ebuild for the former. I'd recommend a fresh sync in case you picked up a python eclass glitch from earlier today. |