Bug 1396676

Summary: gazebo fails to build on rawhide
Product: [Fedora] Fedora Reporter: Orion Poplawski <orion>
Component: gazeboAssignee: Rich Mattes <richmattes>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: itamar, jreznik, kevin, logans, me, rdieter, richmattes, rnovacek, smparrish, than
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-12-09 13:19:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1396755    
Bug Blocks:    

Description Orion Poplawski 2016-11-18 23:20:32 UTC
Description of problem:

Build on current rawhide fails with:

[ 57%] Generating moc_ApplyWrenchDialog.cxx
cd /builddir/build/BUILD/gazebo-7.4.0/build/gazebo/gui && /usr/lib64/qt4/bin/moc-qt4 @/builddir/build/BUILD/gazebo-7.4.0/build/gazebo/gui/moc_ApplyWrenchDialog.cxx_parameters
/usr/include/boost/predef/language/stdc.h:52: Parse error at "defined"
make[2]: *** [gazebo/gui/CMakeFiles/gazebo_gui.dir/build.make:76: gazebo/gui/moc_ApplyWrenchDialog.cxx] Error 1

Version-Release number of selected component (if applicable):
gazebo-7.4.0-2.fc26

Comment 1 Orion Poplawski 2016-11-18 23:29:28 UTC
Some possibilities:

- Use qt5 with the qt5 branch of gazebo (haven't tried)

- Wrap problematic boost includes like this:

#ifndef Q_MOC_RUN
#include <boost/python.hpp>
#endif

Comment 2 Orion Poplawski 2016-11-19 18:44:21 UTC
Also does not appear to support ppc64le:

-c /builddir/build/BUILD/gazebo-7.4.0/test/performance/RAMLibrary_TEST.cc
[  6%] Building CXX object deps/opende/OPCODE/CMakeFiles/gazebo_opcode.dir/OPC_OptimizedTree.cpp.o
cd /builddir/build/BUILD/gazebo-7.4.0/build/deps/opende/OPCODE && /usr/bin/c++   -DHAVE_OPENGL -DLIBBULLET_VERSION=2.83 -DLIBBULLET_VERSION_GT_282 -Dgazebo_opcode_EXPORTS -I/builddir/build/BUILD/gazebo-7.4.0/test/gtest/include -I/builddir/build/BUILD/gazebo-7.4.0 -I/builddir/build/BUILD/gazebo-7.4.0/build -isystem /builddir/build/BUILD/gazebo-7.4.0/build/deps/opende -isystem /builddir/build/BUILD/gazebo-7.4.0/deps/opende/include -isystem /builddir/build/BUILD/gazebo-7.4.0/deps/opende/ou/include -isystem /builddir/build/BUILD/gazebo-7.4.0/deps/opende/OPCODE -isystem /builddir/build/BUILD/gazebo-7.4.0/deps/opende/GIMPACT/include -isystem /builddir/build/BUILD/gazebo-7.4.0/deps/threadpool -isystem /builddir/build/BUILD/gazebo-7.4.0/build/deps/opende/OPCODE -isystem /builddir/build/BUILD/gazebo-7.4.0/deps/opende/OPCODE/Ice -I/usr/include/libusb-1.0 -I/usr/include/ignition/transport1 -I/usr/include/uuid -isystem /usr/include/ignition/math2 -isystem /usr/include/ccd -I/usr/include/bullet  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mcpu=power8 -mtune=power8 -std=c++11  -Wall -Wextra -Wno-long-long -Wno-unused-value -Wno-unused-value -Wno-unused-value -Wno-unused-value -Wfloat-equal -Wshadow -Winit-self -Wswitch-default -Wmissing-include-dirs -pedantic -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11 -DBUILDING_DLL_OPCODE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mcpu=power8 -mtune=power8 -std=c++11 -fPIC   -o CMakeFiles/gazebo_opcode.dir/OPC_OptimizedTree.cpp.o -c /builddir/build/BUILD/gazebo-7.4.0/deps/opende/OPCODE/OPC_OptimizedTree.cpp
/builddir/build/BUILD/gazebo-7.4.0/test/performance/RAMLibrary_TEST.cc:22:17: error: 'gazebo' has not been declared
 using namespace gazebo::test::memory;
                 ^~~~~~

Comment 3 Rich Mattes 2016-11-23 16:12:13 UTC
I'm able to reproduce the boost error.  The header moc is tripping over is way up the include chain, but I'll try to figure out where to block out the headers with Q_MOC_RUN.

Comment 4 Kevin Kofler 2016-11-23 18:17:28 UTC

*** This bug has been marked as a duplicate of bug 1396755 ***

Comment 5 Rex Dieter 2016-12-05 15:33:09 UTC
re-opening to track gazebo-specific issues (and depend on bug #1396755)

Comment 6 Rich Mattes 2016-12-09 13:19:06 UTC
Thanks Rex.

I tracked down the build issue with ppc64le, and found the new headers that need to be guarded with Q_MOC_RUN.  gazebo-7.4.0-4 built successfully in rawhide.

http://koji.fedoraproject.org/koji/buildinfo?buildID=820072

Upstream is working on migrating to Qt5.  According to their roadmap they are targeting Qt5 support in their next major version (8.0,) due to be released at the end of January.

Comment 7 Kevin Kofler 2016-12-09 13:28:30 UTC
The Q_MOC_RUN conditionals should not be necessary anymore, Rex pushed a new fix to Qt today that works around the issue directly in moc.

Comment 8 Rex Dieter 2016-12-09 13:29:41 UTC
Using Q_MOC_RUN shouldn't hurt anything either, and could help possible future issues.