[MDEV-9479] oqgraph fails to build with boost 1.60 Created: 2016-01-27  Updated: 2016-06-24  Resolved: 2016-06-24

Status: Closed
Project: MariaDB Server
Component/s: Packaging, Platform Debian, Platform RedHat, Storage Engine - OQGRAPH
Affects Version/s: 10.0.25, 10.1.10, 10.1.11
Fix Version/s: 10.0.26, 10.1.15

Type: Bug Priority: Critical
Reporter: Jakub Dorňák Assignee: Vicențiu Ciorbaru
Resolution: Fixed Votes: 1
Labels: contribution, foundation
Environment:

Fedora rawhide


Attachments: File fix-ftbfs-boost1.60.patch    
Sprint: 10.2.1-4, 10.2.1-5, 10.0.26

 Description   

https://kojipkgs.fedoraproject.org//work/tasks/526/12700526/build.log

In file included from /builddir/build/BUILD/mariadb-10.1.10/storage/oqgraph/graphcore-graph.h:28:0,
                 from /builddir/build/BUILD/mariadb-10.1.10/storage/oqgraph/graphcore-graph.cc:26:
/builddir/build/BUILD/mariadb-10.1.10/storage/oqgraph/oqgraph_shim.h:261:13: error: 'no_graph_bundle' does not name a type
     typedef no_graph_bundle type;
             ^
/builddir/build/BUILD/mariadb-10.1.10/storage/oqgraph/oqgraph_shim.h:267:13: error: 'no_vertex_bundle' does not name a type
     typedef no_vertex_bundle type;
             ^
[ 33%] Building C object storage/myisam/CMakeFiles/myisam.dir/mi_static.c.o
/builddir/build/BUILD/mariadb-10.1.10/storage/oqgraph/oqgraph_shim.h:273:13: error: 'no_edge_bundle' does not name a type
     typedef no_edge_bundle type;
             ^



 Comments   
Comment by Elena Stepanova [ 2016-01-28 ]

It is actually documented here: https://mariadb.com/kb/en/mariadb/compiling-oqgraph/

To compile OQGraph v2 you need to have the boost library with the versions not earlier than 1.40 and not later than 1.55

but lets ask andymc73 if it's still supposed to be the case.

Comment by Jakub Dorňák [ 2016-01-28 ]

I have built it with 1.58 in Fedora 23.

Comment by Brian Evans [ 2016-04-07 ]

@elenst

It is actually documented here: https://mariadb.com/kb/en/mariadb/compiling-oqgraph/

To compile OQGraph v2 you need to have the boost library with the versions not earlier than 1.40 and not later than 1.55

but lets ask Andrew McDonnell if it's still supposed to be the case.

I believe MariaDB 10 and above use OQGraph v3. So it is a valid bug

Comment by Andrew McDonnell [ 2016-04-09 ]

There is no "v3" - ha_ograph.cc reports "3.0" but this would seem to be a very long standing typo. As things stand, the wiki is correct, until someone submits a patch to make it work with newer systems

v1 was the original prototype by Antony which TTBOMK used a heavy reliance on the internals of the then MySQL 5.1
v2 was a rewrite using boost graph and a more correct storage engine implementation and virtual, which is what currently exists. Again TTBOMK, this was all first built before I got everything working for MariaDB 10.0

Comment by Vadim A. Misbakh-Soloviov [ 2016-04-12 ]

But wiki also states:

> MariaDB starting with 10.0.7
> OQGraph v3 compiles fine with the newer boost libraries, but it additionally needs Judy library installed.

And, for example, I do have judy installed, and had mariadb-10.1.12 built fine against boost-1.58. But now mariadb-10.1.13 refuses to build against boost-1.60 with the error, mentioned by bug reporter. So, I'd say it is some specific boost-1.60 incompatibility, or bulding against 1.58 with judy installed was a coincedence...

Comment by Dimitri John Ledkov [ 2016-04-26 ]

Is https://github.com/boostorg/graph/commit/e77cd87de11263b60cebf6996efc7d1b3cb4d0b5#diff-3d8548656a5db728e028023e3f803acdL385 of any help?

Comment by Heinz Wiesinger [ 2016-05-06 ]

For reference, this comment and the follow-up comment on an older bug are probably relevant. In summary, yes there is a v3, and it has different boost requirements than v2.

FWIW, I have mariadb 10.0.24 here compiled against boost 1.59.0 and all is good. So it's most likely something introduced in 1.60.0.

Comment by Otto Kekäläinen [ 2016-05-25 ]

This affects latest Debian/Ubuntu too, as it has upgraded to Boost 1.6.

Comment by Vicențiu Ciorbaru [ 2016-05-25 ]

Looked into this and it appears the typedef's are gone in Boost 1.6. There might be an easy fix for this, which I'm attempting now.

Comment by Vicențiu Ciorbaru [ 2016-05-29 ]

Hi Sergei,

Can you please review the patch for this bug?

https://lists.launchpad.net/maria-developers/msg09673.html

Comment by Daniel Black [ 2016-06-07 ]

https://lists.launchpad.net/maria-developers/msg09677.html has permission to push.

Comment by Otto Kekäläinen [ 2016-06-07 ]

I just noticed that an Ubuntu dev patched the 10.0.24-7 package in Yaketty (without consulting upstream) to support Boost 1.6. His patch is visible here: https://patches.ubuntu.com/m/mariadb-10.0/mariadb-10.0_10.0.24-7ubuntu1.patch

cvicentiu Please review that patch and apply something from there is its good.

Comment by Dimitri John Ledkov [ 2016-06-07 ]

@Otto

An Ubuntu dev is I, who commented on here https://jira.mariadb.org/browse/MDEV-9479?focusedCommentId=83042&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-83042 and also attached the patch to the same effect to this ticket on 10th of May. I'm not sure if that got missed, or I did something wrong in jira.

It is functionally equivalent to what was posted on the mailing list, and it's irrelevant which patch is taken =) or something else is done.

Regards,

Dimitri.

Comment by Antonio Malcolm [ 2016-06-20 ]

This also affects MariaDB v10.1.14, when compiled against Boost v1.6.1.0 (On Void Linux, with both MariaDB and Boost compiled from source).
Can confirm Dimitri's patch works (thanks).

Comment by Vicențiu Ciorbaru [ 2016-06-24 ]

Fixed with:
26bf066

Generated at Thu Feb 08 07:34:59 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.