Bug 287772 - build failed against boost-1.48 [patch]
Summary: build failed against boost-1.48 [patch]
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Portability-Compilation (show other bugs)
Version: 2.3.0
Platform: Unlisted Binaries Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks: 267777
  Show dependency treegraph
 
Reported: 2011-11-28 17:25 UTC by nucleo
Modified: 2017-08-19 21:06 UTC (History)
17 users (show)

See Also:
Latest Commit:
Version Fixed In: 2.6.0


Attachments
Digikam 2.3.0 build log (150.27 KB, text/plain)
2011-11-28 17:28 UTC, nucleo
Details
Patch for reverse_graph_edge_descriptor related build error (1.16 KB, text/plain)
2011-12-06 02:13 UTC, nucleo
Details
Also in Macports version. (50.34 KB, application/octet-stream)
2011-12-27 17:22 UTC, Geoff King
Details
Build fix for boost 1.48 (4.68 KB, patch)
2012-01-04 21:57 UTC, Alex Merry
Details
adapted patch to work with old boost version (5.09 KB, patch)
2012-01-05 11:31 UTC, Angelo Naselli
Details
My proposed patch (not tested) (2.84 KB, patch)
2012-01-05 13:35 UTC, Jeremiah Willcock
Details
Attempted fix to my patch (3.79 KB, patch)
2012-01-05 14:19 UTC, Jeremiah Willcock
Details

Note You need to log in before you can comment on or make changes to this bug.
Description nucleo 2011-11-28 17:25:47 UTC
Version:           unspecified
OS:                Linux

Digikam 2.3.0 build failed against boost-1.48

Reproducible: Didn't try



Expected Results:
Comment 1 nucleo 2011-11-28 17:28:15 UTC
Created attachment 66158 [details]
Digikam 2.3.0 build log

See more details in build log.
Comment 2 Marcel Wiesweg 2011-11-28 20:54:21 UTC
Boost templates produce the worst to read error messages gcc can offer.
With a closer look, most noise is centered around a single line:
1394: return vertexLessThan(
      boost::target(a.toEdge(), g), boost::target(b.toEdge(), g));
in the context of a reverse_graph.

Another error in property_map gives, thankfully, this explanation: no known conversion for argument 1 from 'const boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >' to 'const key_type& {aka const boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int>&}'

In the changelog for boost Graph 1.48, I see 
"Changed edge_descriptor type for reverse_graph to a new data type to avoid ambiguities with the edge_descriptor of the underlying graph. "
So I assume this is the cause: source incompatible changes in the new release.
Comment 3 Blagovest Zlatev 2011-11-29 14:30:01 UTC
I wasn't able to reproduce the bug and I didn't find any duplicates of the bug.
Comment 4 nucleo 2011-11-29 17:37:48 UTC
Full build log is here:
http://koji.fedoraproject.org/koji/getfile?taskID=3531978&name=build.log

Versions of libs used for this build are here:
http://koji.fedoraproject.org/koji/getfile?taskID=3531978&name=root.log
Comment 5 Rex Dieter 2011-11-30 13:29:52 UTC
between this and
https://bugreports.qt.nokia.com/browse/QTBUG-22829
boost-1.48 is surely "fun". :(
Comment 6 nucleo 2011-12-06 00:23:59 UTC
The same problem with 2.4.1.

Seel build log http://koji.fedoraproject.org/koji/getfile?taskID=3566086&name=build.log
Comment 7 nucleo 2011-12-06 02:13:15 UTC
Created attachment 66425 [details]
Patch for reverse_graph_edge_descriptor related build error

Maybe this thread will be useful:
this thread http://lists.fedoraproject.org/pipermail/devel/2011-December/160145.html
http://lists.fedoraproject.org/pipermail/devel/2011-December/160266.html

From: Petr Machata 
Reply-To: Development discussions related to Fedora 
 
Orion Poplawski writes:

> I'm seeing the following boost related build error building paraview
> in rawhide.  Do any boost gurus know what the issue might be the
> issue?

Hi there, please do not hesitate to file bugs for such regressions.  I
only noticed this message today.

The problem here is in a tree_edge(e,g) event point of boost's
breadth_first_search.  In reverse graph, this used to be called so that
"e" was directly the edge type of the edge in graph (vtkEdgeType in this
case).  Now it's called with a value of wrapper type
boost::detail::reverse_graph_edge_descriptor<vtkEdgeType>.  This wrapper
type has a public member underlying_desc which is the original edge.

Of course, with forward graph, this wrapping doesn't take place, so we
can't just plainly access e.underlying_desc.Id, we must wrap the access
itself.  The hack that I'm attaching should take care of it.  The build
is progressing now, I'm not sure if I'll hit something more.

I'll open an upstream bug for this.

Thanks,
PM
Comment 8 caulier.gilles 2011-12-14 08:12:19 UTC
Marcel, 

Do you see the comment #7 from Nicolas about VTK patched for a similar problem ?Perhaps we can do something like this in digiKam implementation ?

Gilles Caulier
Comment 9 Veaceslav Munteanu 2011-12-15 11:05:07 UTC
Any idea how to compile the code? Or only to downgrade liboost?

(On my arch packge mangaer don't have downgrade option)
Comment 10 caulier.gilles 2011-12-15 11:17:16 UTC
Nicolas,

I would to hack this problem but under Mageia, i still using an old Boost version. How to deal with it without to break system ?

Gilles
Comment 11 Jeremiah Willcock 2011-12-18 19:42:35 UTC
If you would like to have a version that works for both forward and reverse graphs, look at remove_reverse_edge_descriptor in <boost/graph/copy.hpp> in the Boost trunk.  Please don't refer to that code since it's internal, but you can copy it as a start for your fix; the code there should work for both old and new versions of Boost if you put an #ifdef around the partial specialization for reverse_graph_edge_descriptor.
Comment 12 Jeremiah Willcock 2011-12-19 01:03:58 UTC
Looking at the first Boost-related error in the build log, it appears that you are taking the reverse_graph's edge descriptor and converting it to the original graph's edge descriptor, then using that to access a property in the reverse_graph.  The easiest solution might just be to define a reverse_edge_t (graph_traits<reverse_graph<...> >::edge_descriptor) and be careful not to assign those to edge_ts, or, alternatively, to use edge_ts to access properties only in the original graph.
Comment 13 Jeremiah Willcock 2011-12-19 01:25:49 UTC
I looked through the file that is triggering the error, and in particular the depth_first_search_sorted function; would it be possible to change the outEdges variable there to be a QList<graph_traits<IncidenceGraph>::edge_descriptor> rather than using a wrapper class?  You will need to change the code to call toList rather than toEdgeList.  I think that would fix the problem relatively easily for all Boost versions.
Comment 14 caulier.gilles 2011-12-19 07:08:45 UTC
Jeremiah,

If you can provide a patch, we can test in local computers with different versions of Boost.

Gilles Caulier
Comment 15 Jeremiah Willcock 2011-12-19 15:56:06 UTC
I probably don't know enough of the QT APIs to write a patch, but it should be possible to follow what is in comment 13 to make the necessary modifications.
Comment 16 caulier.gilles 2011-12-19 17:45:00 UTC
I think the goal to patch current implementation is more relevant of boost API than Qt4...

Gilles Caulier
Comment 17 Jeremiah Willcock 2011-12-19 18:33:24 UTC
I don't have the tools to build Digikam, so I could write a patch but not easily test it.  The calls being removed and changed are those inside your Digikam code, not anything in Boost (or that calls Boost directly).
Comment 18 Alex Fiestas 2011-12-27 14:12:35 UTC
(In reply to comment #17)
> I don't have the tools to build Digikam, so I could write a patch but not
> easily test it.  The calls being removed and changed are those inside your
> Digikam code, not anything in Boost (or that calls Boost directly).

I can test any patch you can provide, I'm having this build fail right now and I have all the environment ready.
Comment 19 Geoff King 2011-12-27 17:22:56 UTC
Created attachment 67164 [details]
Also in Macports version. 

Hello. This also appears in macports. I just ran into this issue and here is a link to a bug report by someone else.  https://trac.macports.org/ticket/32524
Macports uses:
boost @1.48.0, Revision 3 (devel)
digikam @2.1.1, Revision 1 (kde, kde4)

Only the end of the log file is attached.
Comment 20 Chris Tanner 2011-12-30 00:44:52 UTC
(In reply to comment #18)
> (In reply to comment #17)
> > I don't have the tools to build Digikam, so I could write a patch but not
> > easily test it.  The calls being removed and changed are those inside your
> > Digikam code, not anything in Boost (or that calls Boost directly).
> 
> I can test any patch you can provide, I'm having this build fail right now and
> I have all the environment ready.

I can also test any patch. I have an X86_64 environment.
Comment 21 caulier.gilles 2012-01-04 08:56:40 UTC
Marcel,

Please, see my comment #8.

Gilles Caulier
Comment 22 Alex Merry 2012-01-04 21:57:19 UTC
Created attachment 67460 [details]
Build fix for boost 1.48

This patch fixes the build under boost 1.48.

I believe it should still work under older versions of boost.  Can someone check, please?
Comment 23 caulier.gilles 2012-01-04 22:03:20 UTC
Alex,

Thanks a lots for your patch. Tomorow, i will take a look if all compile fine with previous version of boost (1.46)

Some other people can check if patch compile AND work fine. Typically code relevant is used to manage image versioning in image editor. Look bug 267777 for details.

Gilles Caulier
Comment 24 nucleo 2012-01-04 23:11:32 UTC
digikam-2.5.0 build failed against boost-1.47 after I applied patch digikam-boost-1.48.diff.
See build log here http://nucleo.fedorapeople.org/digikam-boost-1.47.log

Unfortunately I am not able to test build against boost-1.48 because of recently added gcc-4.7.0 to Fedora Rawhide (See bug 290642 )
Comment 25 Angelo Naselli 2012-01-04 23:55:27 UTC
I confirm patch in Comment #22 builds, but Marcel should tell if it's also right imo :)
Comment 26 Chris Tanner 2012-01-05 00:17:25 UTC
Compiles and runs here also. How does one check that the patch is working?
Comment 27 nucleo 2012-01-05 01:58:13 UTC
After fixing gcc-4.7.0 related issues digikam-2.5.0 build completed against boost-1.48.
But this patch broke build against boost-1.47.
Comment 28 caulier.gilles 2012-01-05 08:13:11 UTC
To Nucleo, #27

I just tested under Mageia 1 with Boost 1.46, and all compile fine. I cannot test with boost 1.47.

To Chris, #26,

To check if versioning work fine, we have test unit program in digiKam core. Compile it with whole application to check if it work. To enable tests, add "-DKDE4_BUILD_TESTS=on" option to cmake command line to configure compilation. Results are something like this :


[gilles@localhost core (master)]$ patch -p1 < digikam-boost-1.48.diff 
patching file libs/database/imagehistory/imagehistorygraph_boost.h

[gilles@localhost core (master)]$ 
[gilles@localhost core (master)]$ pwd
/mnt/data/Devel/GIT/2.x/build/core
[gilles@localhost core (master)]$ make
[  0%] Built target digikam-gitversion
[  0%] Built target digikamcore_automoc
[  0%] Built target kexiv2_automoc                                                                                                         
[  1%] Built target kexiv2                                                                                                                 
[  1%] Built target kipi_automoc                                                                                                           
[  3%] Built target kipi                                                                                                                   
[  3%] Built target kdcraw_automoc                                                                                                         
[  3%] Built target libraw_automoc                                                                                                         
[  5%] Built target libraw                                                                                                                 
[  5%] Built target kdcraw
[  5%] Built target kface_automoc
[  7%] Built target kface
[  7%] Built target kgeomap_automoc
[  9%] Built target kgeomap
[ 45%] Built target digikamcore
[ 45%] Built target testlensfuniface_automoc
[ 45%] Built target testlensfuniface
[ 45%] Built target digikamdatabase_automoc
Scanning dependencies of target digikamdatabase
[ 45%] Building CXX object core/digikam/CMakeFiles/digikamdatabase.dir/__/libs/database/imagehistory/imagehistorygraph.cpp.o               
[ 45%] Building CXX object core/digikam/CMakeFiles/digikamdatabase.dir/__/libs/database/imagehistory/imagehistorygraphmodel.cpp.o          
Linking CXX shared library ../../lib/libdigikamdatabase.so                                                                                 
[ 54%] Built target digikamdatabase                                                                                                        
[ 54%] Built target advancedrename_automoc
[ 58%] Built target advancedrename
[ 58%] Built target cameragui_automoc
[ 62%] Built target cameragui
[ 62%] Built target queuemanager_automoc
[ 67%] Built target queuemanager
[ 67%] Built target digikam_automoc
Linking CXX executable digikam
[ 86%] Built target digikam                                                                                                                
[ 86%] Built target digikamnepomukservice_automoc
Linking CXX shared module ../../lib/digikamnepomukservice.so
[ 88%] Built target digikamnepomukservice                                                                                                  
[ 88%] Built target kio_digikamalbums_automoc
Linking CXX shared module ../../lib/kio_digikamalbums.so
[ 90%] Built target kio_digikamalbums                                                                                                      
[ 90%] Built target kio_digikamdates_automoc
Linking CXX shared module ../../lib/kio_digikamdates.so
[ 90%] Built target kio_digikamdates                                                                                                       
[ 90%] Built target kio_digikammapimages_automoc
Linking CXX shared module ../../lib/kio_digikammapimages.so
[ 90%] Built target kio_digikammapimages                                                                                                   
[ 90%] Built target kio_digikamsearch_automoc
Linking CXX shared module ../../lib/kio_digikamsearch.so
[ 90%] Built target kio_digikamsearch                                                                                                      
[ 90%] Built target kio_digikamtags_automoc
Linking CXX shared module ../../lib/kio_digikamtags.so
[ 90%] Built target kio_digikamtags                                                                                                        
[ 90%] Built target showfoto_automoc
[ 90%] Built target showfoto
[ 90%] Built target digikamimageplugin_color_automoc
[ 92%] Built target digikamimageplugin_color
[ 92%] Built target digikamimageplugin_decorate_automoc
[ 92%] Built target digikamimageplugin_decorate
[ 92%] Built target digikamimageplugin_enhance_automoc
[ 94%] Built target digikamimageplugin_enhance
[ 94%] Built target digikamimageplugin_fxfilters_automoc
[ 96%] Built target digikamimageplugin_fxfilters
[ 96%] Built target digikamimageplugin_transform_automoc
[ 96%] Built target digikamimageplugin_transform
[ 96%] Built target digikamdatabaseserver_automoc
Linking CXX executable digikamdatabaseserver
[ 96%] Built target digikamdatabaseserver
[ 96%] Built target advancedrenametest_automoc
Linking CXX executable advancedrenametest
[ 96%] Built target advancedrenametest
[ 96%] Built target cameranamehelpertest_automoc
Linking CXX executable cameranamehelpertest
[ 96%] Built target cameranamehelpertest
[ 96%] Built target dimagefilteractiontest_automoc
[ 96%] Built target dimagefilteractiontest
[ 96%] Built target dimagehistorygraphtest_automoc
Scanning dependencies of target dimagehistorygraphtest
[ 96%] Building CXX object core/tests/CMakeFiles/dimagehistorygraphtest.dir/dimagehistorygraphtest.cpp.o
Linking CXX executable dimagehistorygraphtest
[ 96%] Built target dimagehistorygraphtest
[ 96%] Built target dimagehistorytest_automoc
[ 96%] Built target dimagehistorytest
[ 96%] Built target filesaveoptionsboxtest_automoc
[ 96%] Built target filesaveoptionsboxtest
[ 96%] Built target freerotationtest_automoc
[ 96%] Built target freerotationtest
[ 96%] Built target loadpgfdata_automoc
[ 96%] Built target loadpgfdata
[ 96%] Built target pgfscaled_automoc
[ 96%] Built target pgfscaled
[ 96%] Built target qtpgftest_automoc
[ 96%] Built target qtpgftest
[ 96%] Built target searchtextbartest_automoc
[ 98%] Built target searchtextbartest
[ 98%] Built target statesavingobjecttest_automoc
[100%] Built target statesavingobjecttest
[100%] Built target uifilevalidatortest_automoc
Linking CXX executable uifilevalidatortest
[100%] Built target uifilevalidatortest

The most important part is dimagehistorygraphtest program which unit test about versioning. It must compile fine on your computer with new boost 1.48 version.

Gilles Caulier
Comment 29 Angelo Naselli 2012-01-05 11:05:51 UTC
To nucleo Comment #27 since it builds with 1.46 i suspect the problem is in a line of the patch that report boost version, did you try to remove the "="?
#if BOOST_VERSION > 104700
        Edge(const boost::detail::reverse_graph_edge_descriptor<edge_t>& e) : e(e.underlying_desc), null(false) {}
#endif
I'm not sure but maybe boost::detail::reverse_graph_edge_descriptor is not in 1.47.

btw, i'm testing a ugly patch that add all the changes for BOOST_VERSION > 104700
maybe you can try that one also (i will upload it as soon as i tested it).
Comment 30 Angelo Naselli 2012-01-05 11:31:25 UTC
Created attachment 67481 [details]
adapted patch to work with old boost version

this patch should work with old boost version also, even if i suspect the solution
is just to remove the "=" in the BOOST_VERSION check
Comment 31 nucleo 2012-01-05 13:05:43 UTC
(In reply to comment #30)
> Created an attachment (id=67481) [details]
> adapted patch to work with old boost version
> 
> this patch should work with old boost version also, even if i suspect the
> solution
> is just to remove the "=" in the BOOST_VERSION check

Now builds successful with both boost 1.47 and 1.48.
Comment 32 caulier.gilles 2012-01-05 13:08:49 UTC
To Nucleo,

And test program compile file with 1.47 and 1.48 as i explain in #28 ?

Gilles Caulier
Comment 33 Jeremiah Willcock 2012-01-05 13:23:49 UTC
I haven't had a chance to try this, but I think you should be able to get away with just the last hunk from the patch if you use toList rather than toEdgeList (and thus avoid any of the edge conversion stuff).
Comment 34 Jeremiah Willcock 2012-01-05 13:35:07 UTC
Created attachment 67482 [details]
My proposed patch (not tested)

This is my proposed patch, which I'm not able to test.  Please see if it works (it might need some minor tweaks).
Comment 35 Jeremiah Willcock 2012-01-05 13:36:48 UTC
A couple of other issues in that file -- the "stack" variable and "VertexInfo" type do not appear to be used anywhere, and the call to "boost::target" should be just "target" if you want the code to work on user-defined graphs.  My patch does not fix either of these issues.
Comment 36 caulier.gilles 2012-01-05 13:39:08 UTC
Someone can check if patch from Jeremiah #67482 compile fine and if unit tests are passed using Boost 1.47 and 1.48 ?

Thanks in advance

Gilles Caulier
Comment 37 nucleo 2012-01-05 13:49:22 UTC
Build against boost 1.48 completed with "-DKDE4_BUILD_TESTS=on" and patch from Comment #30.
Comment 38 Angelo Naselli 2012-01-05 14:02:25 UTC
patch (as it is) from Comment #34 does not build with boost 1.48
Comment 39 Jeremiah Willcock 2012-01-05 14:03:55 UTC
(In reply to comment #38)
> patch (as it is) from Comment #34 does not build with boost 1.48

Could I please get the error message from that failure?
Comment 40 Angelo Naselli 2012-01-05 14:14:10 UTC
Sure:
[ 88%] [ 89%] Building CXX object core/digikam/CMakeFiles/digikamdatabase.dir/__/libs/database/imagehistory/imagehistorygraph.cpp.o              
Building CXX object core/digikam/CMakeFiles/digikamdatabase.dir/__/libs/database/imagehistory/imagehistorygraphmodel.cpp.o                       
In file included from /usr/include/QtCore/qlist.h:47:0,
                 from /usr/include/QtCore/qvariant.h:47,                                                                                                                                      
                 from /usr/include/QtCore/qabstractitemmodel.h:45,                                                                                                                            
                 from /usr/include/QtCore/QAbstractItemModel:1,                                                                                                                               
                 from /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/build/core/digikam/../../../core/libs/database/imagehistory/imagehistorygraphmodel.h:29,                              
                 from /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/build/core/digikam/imagehistorygraphmodel.moc:10,                                                                     
                 from /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:24:                                                        
/usr/include/QtCore/qalgorithms.h: In function ‘void QAlgorithmsPrivate::qSortHelper(RandomAccessIterator, RandomAccessIterator, const T&, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, T = boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’:                                                                                                                                                    
/usr/include/QtCore/qalgorithms.h:187:9:   instantiated from ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’                                                                                                            
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1415:13:   instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depth_first_search_sorted(const IncidenceGraph&, Digikam::Graph<VertexProperties, EdgeProperties>::Vertex, DFSVisitor&, ColorMap, LessThan) [with IncidenceGraph = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, DFSVisitor = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::DepthFirstSearchVisitor, ColorMap = boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type> >, boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, long unsigned int>, boost::default_color_type, boost::default_color_type&>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1310:21:   instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depthFirstSearchSorted(const GraphType&, const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, bool, LessThan) [with GraphType = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:994:9:   instantiated from ‘QList<Digikam::Graph<VertexProperties, EdgeProperties>::Vertex> Digikam::Graph<VertexProperties, EdgeProperties>::verticesDepthFirstSorted(const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, LessThan) const [with LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:333:121:   instantiated from here
/usr/include/QtCore/qalgorithms.h:351:5: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’                                                                                                
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is:
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note:   no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’
/usr/include/QtCore/qalgorithms.h:187:9:   instantiated from ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1415:13:   instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depth_first_search_sorted(const IncidenceGraph&, Digikam::Graph<VertexProperties, EdgeProperties>::Vertex, DFSVisitor&, ColorMap, LessThan) [with IncidenceGraph = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, DFSVisitor = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::DepthFirstSearchVisitor, ColorMap = boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type> >, boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, long unsigned int>, boost::default_color_type, boost::default_color_type&>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1310:21:   instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depthFirstSearchSorted(const GraphType&, const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, bool, LessThan) [with GraphType = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:994:9:   instantiated from ‘QList<Digikam::Graph<VertexProperties, EdgeProperties>::Vertex> Digikam::Graph<VertexProperties, EdgeProperties>::verticesDepthFirstSorted(const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, LessThan) const [with LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:333:121:   instantiated from here
/usr/include/QtCore/qalgorithms.h:356:5: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’                                                                                                
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is:
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note:   no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’
/usr/include/QtCore/qalgorithms.h:358:5: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’                                                                                                
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is:
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note:   no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’
/usr/include/QtCore/qalgorithms.h:187:9:   instantiated from ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1415:13:   instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depth_first_search_sorted(const IncidenceGraph&, Digikam::Graph<VertexProperties, EdgeProperties>::Vertex, DFSVisitor&, ColorMap, LessThan) [with IncidenceGraph = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, DFSVisitor = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::DepthFirstSearchVisitor, ColorMap = boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type> >, boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, long unsigned int>, boost::default_color_type, boost::default_color_type&>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1310:21:   instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depthFirstSearchSorted(const GraphType&, const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, bool, LessThan) [with GraphType = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:994:9:   instantiated from ‘QList<Digikam::Graph<VertexProperties, EdgeProperties>::Vertex> Digikam::Graph<VertexProperties, EdgeProperties>::verticesDepthFirstSorted(const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, LessThan) const [with LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:333:121:   instantiated from here
/usr/include/QtCore/qalgorithms.h:366:9: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’                                                                                                
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is:
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note:   no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’
/usr/include/QtCore/qalgorithms.h:187:9:   instantiated from ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1415:13:   instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depth_first_search_sorted(const IncidenceGraph&, Digikam::Graph<VertexProperties, EdgeProperties>::Vertex, DFSVisitor&, ColorMap, LessThan) [with IncidenceGraph = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, DFSVisitor = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::DepthFirstSearchVisitor, ColorMap = boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type> >, boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, long unsigned int>, boost::default_color_type, boost::default_color_type&>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1310:21:   instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depthFirstSearchSorted(const GraphType&, const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, bool, LessThan) [with GraphType = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:994:9:   instantiated from ‘QList<Digikam::Graph<VertexProperties, EdgeProperties>::Vertex> Digikam::Graph<VertexProperties, EdgeProperties>::verticesDepthFirstSorted(const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, LessThan) const [with LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:333:121:   instantiated from here
/usr/include/QtCore/qalgorithms.h:369:9: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’                                                                                                
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is:
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note:   no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’
/usr/include/QtCore/qalgorithms.h:187:9:   instantiated from ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1415:13:   instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depth_first_search_sorted(const IncidenceGraph&, Digikam::Graph<VertexProperties, EdgeProperties>::Vertex, DFSVisitor&, ColorMap, LessThan) [with IncidenceGraph = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, DFSVisitor = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::DepthFirstSearchVisitor, ColorMap = boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type> >, boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, long unsigned int>, boost::default_color_type, boost::default_color_type&>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1310:21:   instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depthFirstSearchSorted(const GraphType&, const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, bool, LessThan) [with GraphType = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:994:9:   instantiated from ‘QList<Digikam::Graph<VertexProperties, EdgeProperties>::Vertex> Digikam::Graph<VertexProperties, EdgeProperties>::verticesDepthFirstSorted(const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, LessThan) const [with LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:333:121:   instantiated from here
/usr/include/QtCore/qalgorithms.h:381:5: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is:
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]
/home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note:   no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’
make[2]: *** [core/digikam/CMakeFiles/digikamdatabase.dir/__/libs/database/imagehistory/imagehistorygraphmodel.cpp.o] Errore 1
make[2]: *** Attesa dei processi non terminati....
make[1]: *** [core/digikam/CMakeFiles/digikamdatabase.dir/all] Errore 2
make: *** [all] Errore 2
Comment 41 Jeremiah Willcock 2012-01-05 14:19:25 UTC
Created attachment 67483 [details]
Attempted fix to my patch
Comment 42 nucleo 2012-01-05 14:27:19 UTC
Build successful with patch from Comment #22 with removed "=" both with boost 1.48 and 1.47 and with "-DKDE4_BUILD_TESTS=on".
Comment 43 Angelo Naselli 2012-01-05 14:32:32 UTC
and patch at comment #41 builds using boost 1.48, nucleo can you test it using 1.47?
Comment 44 nucleo 2012-01-05 15:10:45 UTC
Digiks build fine with patch from Comment #41 both for boost 1.47 and 1.48 and with "-DKDE4_BUILD_TESTS=on".
Comment 45 Angelo Naselli 2012-01-05 15:20:36 UTC
Ok now Gilles we need to wait Marcel comment to push this patch.
Comment 46 caulier.gilles 2012-01-05 18:14:42 UTC
I tested also patch from comment #41 and it compile fine too with Boost 1.46.

Gilles Caulier
Comment 47 caulier.gilles 2012-01-05 18:18:02 UTC
Marcel,

Compiling digiKam core + unit test is not enough...

I run test unit programm as well, and only 1 pass is fine per 3 pass of tests.

This is true for all patches applied on my computer using Boost 1.46.

This is also true with no patch and current implementation from git/master.

Conclusion : there is something wrong in test unit code for all implementation of digiKam graph boost interface.

Can you reproduce it ?

Gilles Caulier
Comment 48 Marcel Wiesweg 2012-01-05 19:22:39 UTC
Jeremiah's patch changes type definitions and no semantics, so I would not expect regressions and would accept the patch to be committed and thank Jeremiah and all that helped with this mess.

Gilles: it really seems the unit tests are broken
Comment 49 caulier.gilles 2012-01-06 10:26:51 UTC
Git commit d18ea6da2d3e2359f4113e83c3fd40c18a29ddab by Gilles Caulier.
Committed on 06/01/2012 at 11:23.
Pushed by cgilles into branch 'master'.

Apply patch #67483 from Jeremiah Willcock to compile fine digiKam boost graph interface with libboost 1.48
Related: bug 267777

M  +10   -8    libs/database/imagehistory/imagehistorygraph_boost.h

http://commits.kde.org/digikam/d18ea6da2d3e2359f4113e83c3fd40c18a29ddab
Comment 50 caulier.gilles 2012-01-06 10:37:12 UTC
Somebody in this room can check if bug 267777 can be closed now, using boost 1.47 and 1.48 ?

Following my comment https://bugs.kde.org/show_bug.cgi?id=267777#c11 i cannot reproduce the dysfunction in image editor with patch applied and boost 1.46. 

Thanks in advance

Gilles Caulier
Comment 51 Veaceslav Munteanu 2012-02-12 14:41:13 UTC
I don't know why, but it still fails for Kubuntu 11.10 and libboost 1.46.1

I've compiled and installed latest boost 1.48 from official site and still fails with error:

Linking CXX executable raw2dng                                                                           
../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const':
/usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)'
../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<QString&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::unused_type const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<QString&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::unused_type const&) const':
/usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)'
../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Project&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Project&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const':
/usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)'
../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Stitcher&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Stitcher&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const':
/usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)'
../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Image&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Image&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const':
/usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)'
../../../lib/liblibpanorama.a(ptoparser.cpp.o):/usr/include/boost/function/function_template.hpp:757: more undefined references to `boost::throw_exception(std::exception const&)' follow
collect2: ld returned 1 exit status
make[2]: *** [lib/kipiplugin_panorama.so] Error 1
make[1]: *** [extra/kipi-plugins/panorama/CMakeFiles/kipiplugin_panorama.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 57%] Building CXX object core/digikam/CMakeFiles/digikamcore.dir/__/libs/dimg/filters/bcg/bcgfilter.cpp.o                                                                                                       
../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const':
/usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)'
../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<QString&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::unused_type const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<QString&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::unused_type const&) const':
/usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)'
../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Project&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Project&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const':
/usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)'
../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Stitcher&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Stitcher&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const':
/usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)'
../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Image&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Image&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const':
/usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)'
../../../lib/liblibpanorama.a(ptoparser.cpp.o):/usr/include/boost/function/function_template.hpp:757: more undefined references to `boost::throw_exception(std::exception const&)' follow
collect2: ld returned 1 exit status
make[2]: *** [extra/kipi-plugins/panorama/panoramagui] Error 1
make[1]: *** [extra/kipi-plugins/panorama/CMakeFiles/panoramagui.dir/all] Error 2

but i can't reproduce it on my Archlinux with 1.48...
Comment 52 Benjamin Girault 2012-02-12 15:17:53 UTC
(In reply to comment #51)
> I don't know why, but it still fails for Kubuntu 11.10 and libboost 1.46.1
> 
> I've compiled and installed latest boost 1.48 from official site and still
> fails with error:
> 
> [CMake output]
>
> but i can't reproduce it on my Archlinux with 1.48...

This is another error that I introduced (not by purpose) yesterday. I pushed a patch in the git that may solve your compilation error (I suspect that BOOST_NO_EXCEPTIONS is set on ubuntu and not set on arch).
Comment 53 Veaceslav Munteanu 2012-02-12 16:19:54 UTC
how to disable BOOST_NO_EXCEPTION ?

Because I can't compile even with boost 1.47 :(

It's ok to throw exceptions?
Comment 54 Benjamin Girault 2012-02-12 16:25:48 UTC
That is not so(In reply to comment #53)
> how to disable BOOST_NO_EXCEPTION ?
> 
> Because I can't compile even with boost 1.47 :(

This is not something the user should worry about. Have tried with the most recent code (commit 9af480dc981ede33dcd43273c20f939cd4390944)? I fixed a compilation error for Boost 1.44 that was very similar to your error.

> It's ok to throw exceptions?

Don't worry about that, no exception should be thrown (at least in my code), otherwise that would mean there is a bug (meaning that it is not the expected behavior).
Comment 55 Veaceslav Munteanu 2012-02-12 16:41:24 UTC
After your previous post i git pulled all.

But it still fails on my laptop with boost 1.47

Now I compile digikam un my desktop with boost 1.48 and i'll tell you the result.

Both desktop and laptop have the same virtual machine with kubuntu.
Comment 56 Veaceslav Munteanu 2012-02-12 16:58:46 UTC
Now it compiles just fine on my both machines, with boost 1.47 and 1.48.

I'll do a extra clean build.. just in case..

But i want to ask.. whats with this crazy memory usage when building some boost components?

It almost goes to 600mb for each thread, that means it goes over 2 giga when I compile with 4 threads...
Comment 57 Benjamin Girault 2012-02-12 17:09:24 UTC
That's the drawback of C++ templates. Because those are made to be used with different types, no library cannot be compiled, thus the whole code is compiled each time a piece of code uses the template with a different type. If the code is pretty large it leads to a rather big memory usage and compile time. I tried to keep it to a minimum, but it is still quite big.