Bug 218066 - net/wireshark-qt5 poudriere build fails
Summary: net/wireshark-qt5 poudriere build fails
Status: Closed Not A Bug
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Only Me
Assignee: Joe Marcus Clarke
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-24 15:44 UTC by Dwayne MacKinnon
Modified: 2017-03-27 19:06 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (marcus)


Attachments
config.log from the poudriere build (220.90 KB, text/x-log)
2017-03-24 16:05 UTC, Dwayne MacKinnon
no flags Details
config.log from successful build (307.94 KB, text/x-log)
2017-03-24 19:47 UTC, Dwayne MacKinnon
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dwayne MacKinnon 2017-03-24 15:44:01 UTC
I've been experimenting with poudriere, and added wireshark-qt5 to my bulk build file. The compilation fails in the configure stage with the following errors:

checking if profile builds must be generated... no
checking for GLIB... yes
checking for Qt5Core - version >= 5.0.0... yes (version 5.7.1)
checking for Qt5Gui - version >= 5.0.0... yes (version 5.7.1)
checking for Qt5Widgets - version >= 5.0.0... yes (version 5.7.1)
checking for Qt5PrintSupport - version >= 5.0.0... yes (version 5.7.1)
checking for Qt5Multimedia - version >= 5.0.0... no
checking for Qt5MacExtras - version >= 5.0.0... no
checking whether Qt works without -fPIC... no
checking whether Qt works with -fPIC... no
configure: error: Couldn't compile Qt without -fPIC nor with -fPIC
===>  Script "configure" failed unexpectedly.
Please report the problem to marcus@FreeBSD.org [maintainer] and attach the
"/wrkdirs/usr/ports/net/wireshark-qt5/work/wireshark-2.2.5/config.log"
including the output of the failure of your make command. Also, it might be
a good idea to provide an overview of all packages installed on your system
(e.g. a /usr/local/sbin/pkg-static info -g -Ea).
*** Error code 1

Stop.
make: stopped in /usr/ports/net/wireshark-qt5

It's interesting to note that it compiles fine on my workstation outside of poudriere.
Comment 1 Joe Marcus Clarke freebsd_committer freebsd_triage 2017-03-24 15:47:22 UTC
Can you send me that config.log?
Comment 2 Dwayne MacKinnon 2017-03-24 16:05:44 UTC
Created attachment 181142 [details]
config.log from the poudriere build

Sorry, should have done this when I created the report...
Comment 3 Joe Marcus Clarke freebsd_committer freebsd_triage 2017-03-24 17:25:39 UTC
I'm seeing this:

/usr/local/include/qt5/QtCore/qcompilerdetection.h:562:6: error: Qt requires a C++11 compiler and yours does not seem to be that.
#    error Qt requires a C++11 compiler and yours does not seem to be that.
     ^
In file included from conftest.cpp:34:
In file included from /usr/local/include/qt5/QtCore/QtCore:4:
In file included from /usr/local/include/qt5/QtCore/qabstractanimation.h:43:
In file included from /usr/local/include/qt5/QtCore/qobject.h:46:
In file included from /usr/local/include/qt5/QtCore/qobjectdefs.h:48:
In file included from /usr/local/include/qt5/QtCore/qnamespace.h:43:
In file included from /usr/local/include/qt5/QtCore/qglobal.h:1145:
In file included from /usr/local/include/qt5/QtCore/qatomic.h:46:
/usr/local/include/qt5/QtCore/qbasicatomic.h:61:4: error: "Qt requires C++11 support"
#  error "Qt requires C++11 support"
   ^
2 errors generated.

Is there anything weird with your poudriere environment that would lend to a non-standard C++ compiler?  I'm not seeing any errors from the system build servers.
Comment 4 Dwayne MacKinnon 2017-03-24 19:47:12 UTC
Created attachment 181165 [details]
config.log from successful build

I've been digging into this a bit more. If you look at line 1485 of the first log file I attached here (from the poudriere build) you'll see that for some reason it's using -std=c++11 during the test. In the second log (from outside poudriere) it doesn't use that flag.

Similarly, on line 1599 (poudriere) where it's testing to see if the compiler handles c++11 by default... it's testing using the -std=c++11 flag. On the successful build, that's not the case... and unless I'm mistaken something is definitely wrong inside poudriere that it's testing for c++11 by default when it's using the "use c++11 standard" flag.

So when it gets down to testing the Qt stuff, poudriere configure is no longer using -std=c++11 (because it thinks the compiler uses it by default) while the successful build uses the flag.

BTW: Why do we require llvm39 for this build when it picks up and uses llvm 3.8.0 from base?
Comment 5 Joe Marcus Clarke freebsd_committer freebsd_triage 2017-03-24 19:59:04 UTC
Have you asked the poudriere people about this?  In terms of llvm 3.9, wireshark doesn't explicitly request it.  It may come from something else.  Either that or poudriere is picking up something it shouldn't.
Comment 6 Dwayne MacKinnon 2017-03-27 16:03:42 UTC
I tracked it down. Turns out that the kde-freebsd guys have changed bsd.qt.mk to force every qt5 port to use c++11, and that messes up wireshark's c++11 configuration stuff. This is only in their area51 repository. Gonna send them a note to tell them about this side effect.

Sorry to have wasted your time. I've marked this bug closed.
Comment 7 Tobias C. Berner freebsd_committer freebsd_triage 2017-03-27 19:06:28 UTC
Qt 5.7 requires C++11.