Opened 9 years ago

Closed 9 years ago

#46441 closed defect (fixed)

bob: build failure, moc in qt4 fails to parse has_binary_operator.hp in boost 1.57.0.

Reported by: dbevans (David B. Evans) Owned by: andre.anjos@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: laurent.el-shafey@…, anddam (Andrea D'Amore), michaelld (Michael Dickens), seanfarley (Sean Farley), zhangaustin.eternal@…
Port: qt4-mac qt4-x11 boost bob

Description

On a recent rebuild, bob @1.2.2_7 fails as follows:

:info:build make[2]: Entering directory `/opt/local/var/macports/build/_opt_macports_trunk_dports_science_bob/bob/work/bob-1.2.2'
:info:build opt/local/include/boost/type_traits/detail/has_binary_operator.hp:50: Parse error at "BOOST_JOIN"
:info:build make[2]: *** [src/visioner/programs/vgui/moc_fmap_scene.cxx] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_macports_trunk_dports_science_bob/bob/work/bob-1.2.2'
:info:build make[1]: *** [src/visioner/programs/CMakeFiles/bob_visioner_vgui.dir/all] Error 2
:info:build make[1]: *** Waiting for unfinished jobs....

Possibly an issue with boost @1.57.0.

Build log attached.

Attachments (2)

main.log (281.4 KB) - added by dbevans (David B. Evans) 9 years ago.
Build log showing error
Portfile.patch (1.5 KB) - added by andre.dos.anjos@… 9 years ago.

Download all attachments as: .zip

Change History (11)

Changed 9 years ago by dbevans (David B. Evans)

Attachment: main.log added

Build log showing error

comment:1 Changed 9 years ago by dbevans (David B. Evans)

Has duplicate #46492.

comment:2 Changed 9 years ago by anddam (Andrea D'Amore)

Cc: and.damore@… added

See this Qt bug for info and possible workarounds:

  • wrap the boost header (uglier solution)
  • wrap inclusion of specific boost header in the library's client
  • switch to Qt5 since the new moc properly expands macros.
Last edited 9 years ago by anddam (Andrea D'Amore) (previous) (diff)

comment:3 Changed 9 years ago by anddam (Andrea D'Amore)

Port: boost added; bob removed

comment:4 Changed 9 years ago by anddam (Andrea D'Amore)

Port: qt4-mac qt4-x11 added; boost removed

I set port to boost by error, the issue is actually with Qt4's moc.

comment:5 in reply to:  2 Changed 9 years ago by dbevans (David B. Evans)

Cc: michaelld@… sean@… added
Port: boost bob added

Replying to and.damore@…:

See this Qt bug for info and possible workarounds:

  • wrap the boost header (uglier solution)
  • wrap inclusion of specific boost header in the library's client
  • switch to Qt5 since the new moc properly expands macros.

Thanks for narrowing this down.

I've been trying to understand the inciting event that broke bob, since bob @1.2.2_6 built correctly but bob @1.2.2_7 does not. The only difference is a (unrelated) rev bump to bob due to an ABI change in hdf5.

I've confirmed that bob @1.2.2_7 will build without error if boost is reverted locally to boost @1.56.0_2+no_single+no_static+python27 (r127942).

This, in conjunction with the Qt bug report, supports the hypothesis that the problem is triggered by a specific combination of Qt version, boost version and boost includes used in bob.

In this case, combination is qt4-mac @4.8.6, boost @1.57.0 and bob @1.2.2.

The most recent comment in the Qt bug supports this hypothesis

Only for info: See also with Qt 4.8.6 + boost 1.57.0 + include <boost/signals2.hpp>

The best solution would be to fix moc in Qt 4.8.6 but the upstream bug has been closed so a work around in bob may be called for.

Copying possibly interested parties.

comment:6 Changed 9 years ago by dbevans (David B. Evans)

Summary: bob: build failure, possible boost issuebob: build failure, moc in qt4 fails to parse has_binary_operator.hp in boost 1.57.0.

comment:7 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: zhangaustin.eternal@… added

Has duplicate #46862.

Changed 9 years ago by andre.dos.anjos@…

Attachment: Portfile.patch added

comment:8 Changed 9 years ago by andre.dos.anjos@…

I have attached a patch to this discussion about 3 weeks ago. I was sure I had commented on it, but now looking at the bug I see that my discussion was not attached. I may have forgot to submit those changes.

Anyway, you'll find a work around for Bob's build with the Portfile.patch attached to this discussion. I have tested it locally and it seems to compile and install Bob v1 fine.

The patch suppresses the installation of a minor/buggy part of Bob which is touched by the Qt4 dependency. Could you please apply it? Thanks in advance.

comment:9 Changed 9 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: newclosed

Committed in r133917. Sorry for overlooking your patch for so long. Trac apparently does not issue an email notice for just adding an attachment.

This patch fixes the build on 10.9+ but a new problem appears for the earlier platforms. Will open a separate ticket.

Note: See TracTickets for help on using tickets.