Closed EvanHahn closed 9 years ago
Hey @EvanHahn. You're running a very old version of capybara-webkit. Qt 5 support was introduced in 1.0.0, and I'd recommend you run the latest version, 1.6.0.
Nuked my Vagrant box and made a completely new machine. Ran the same commands as above:
# Upgrade everything
sudo apt-get update
sudo apt-get upgrade -y
# Install G++, Git, and QT5
sudo apt-get install g++ qt5-default libqt5webkit5-dev -y
# Install and start RVM
command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
\curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
# Install Ruby 2.2
rvm install 2.2
# Check versions and stuff
which ruby # => /home/vagrant/.rvm/rubies/ruby-2.2.1/bin/ruby
ruby --version # => ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
g++ --version # => g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
qmake --version # => QMake version 3.0 / Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu
And then tried to install the latest version of the gem:
gem install capybara-webkit
And got this output:
Fetching: mini_portile-0.6.2.gem (100%)
Successfully installed mini_portile-0.6.2
Fetching: nokogiri-1.6.6.2.gem (100%)
Building native extensions. This could take a while...
Successfully installed nokogiri-1.6.6.2
Fetching: xpath-2.0.0.gem (100%)
Successfully installed xpath-2.0.0
Fetching: rack-1.6.4.gem (100%)
Successfully installed rack-1.6.4
Fetching: rack-test-0.6.3.gem (100%)
Successfully installed rack-test-0.6.3
Fetching: mime-types-2.6.1.gem (100%)
Successfully installed mime-types-2.6.1
Fetching: capybara-2.4.4.gem (100%)
Successfully installed capybara-2.4.4
Fetching: capybara-webkit-1.6.0.gem (100%)
Building native extensions. This could take a while...
ERROR: Error installing capybara-webkit:
ERROR: Failed to build gem native extension.
/home/vagrant/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20150705-21621-1oj9c6g.rb extconf.rb
cd src/ && ( test -e Makefile.webkit_server || /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /home/vagrant/.rvm/gems/ruby-2.2.1/gems/capybara-webkit-1.6.0/src/webkit_server.pro -o Makefile.webkit_server ) && ma
ke -f Makefile.webkit_server
make[1]: Entering directory `/home/vagrant/.rvm/gems/ruby-2.2.1/gems/capybara-webkit-1.6.0/src'
g++ -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_LOCATION_LIB -DQT_WEBKIT_LIB -DQT_QML_LIB -DQT_WIDGETS_LIB -DQ
T_POSITIONING_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt5/QtWebKitWidgets -I/usr/include
/qt5/QtQuick -I/usr/include/qt5/QtOpenGL -I/usr/include/qt5/QtPrintSupport -I/usr/include/qt5/QtLocation -I/usr/include/qt5/QtWebKit -I/usr/include/qt5/QtQml -I/usr/include/qt5/QtWidgets -I/usr/include/qt
5/QtPositioning -I/usr/include/qt5/QtSensors -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -Ibuild -x c++-header -c stable.h -o build/webkit_server.gch/c++
g++ -c -include build/webkit_server -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_LOCATION_LIB -DQT_WEBKIT_LIB -
DQT_QML_LIB -DQT_WIDGETS_LIB -DQT_POSITIONING_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt
5/QtWebKitWidgets -I/usr/include/qt5/QtQuick -I/usr/include/qt5/QtOpenGL -I/usr/include/qt5/QtPrintSupport -I/usr/include/qt5/QtLocation -I/usr/include/qt5/QtWebKit -I/usr/include/qt5/QtQml -I/usr/include
/qt5/QtWidgets -I/usr/include/qt5/QtPositioning -I/usr/include/qt5/QtSensors -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -Ibuild -o build/BlockUrl.o BlockUrl.cpp
g++: internal compiler error: Segmentation fault (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
make[1]: *** [build/BlockUrl.o] Error 4
make[1]: Leaving directory `/home/vagrant/.rvm/gems/ruby-2.2.1/gems/capybara-webkit-1.6.0/src'
make: *** [sub-src-webkit_server-pro-make_first-ordered] Error 2
Command 'make' failed
make "DESTDIR=" clean
cd src/ && ( test -e Makefile.webkit_server || /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /home/vagrant/.rvm/gems/ruby-2.2.1/gems/capybara-webkit-1.6.0/src/webkit_server.pro -o Makefile.webkit_server ) && ma
ke -f Makefile.webkit_server clean
make[1]: Entering directory `/home/vagrant/.rvm/gems/ruby-2.2.1/gems/capybara-webkit-1.6.0/src'
rm -f qrc_webkit_server.cpp
rm -f build/moc_BlockUrl.cpp build/moc_AllowUrl.cpp build/moc_SetUnknownUrlMode.cpp build/moc_FindModal.cpp build/moc_AcceptAlert.cpp build/moc_GoForward.cpp build/moc_GoBack.cpp build/moc_WindowMaximize$cpp build/moc_WindowSize.cpp build/moc_WindowCommand.cpp build/moc_WindowOpen.cpp build/moc_WindowClose.cpp build/moc_Version.cpp build/moc_EnableLogging.cpp build/moc_Authenticate.cpp build/moc_SetConfi$mAction.cpp build/moc_SetPromptAction.cpp build/moc_SetPromptText.cpp build/moc_ClearPromptText.cpp build/moc_JavascriptAlertMessages.cpp build/moc_JavascriptConfirmMessages.cpp build/moc_JavascriptPromp$Messages.cpp build/moc_IgnoreSslErrors.cpp build/moc_WindowResize.cpp build/moc_CurrentUrl.cpp build/moc_ConsoleMessages.cpp build/moc_WebPage.cpp build/moc_Server.cpp build/moc_Connection.cpp build/moc_Command.cpp build/moc_SocketCommand.cpp build/moc_Visit.cpp build/moc_Reset.cpp build/moc_Node.cpp build/moc_JavascriptInvocation.cpp build/moc_Evaluate.cpp build/moc_Execute.cpp build/moc_FrameFocus.cpp b
uild/moc_Response.cpp build/moc_NetworkAccessManager.cpp build/moc_NetworkCookieJar.cpp build/moc_Header.cpp build/moc_Render.cpp build/moc_Body.cpp build/moc_Status.cpp build/moc_Headers.cpp build/moc_Un
supportedContentHandler.cpp build/moc_SetCookie.cpp build/moc_ClearCookies.cpp build/moc_GetCookies.cpp build/moc_CommandParser.cpp build/moc_CommandFactory.cpp build/moc_SetProxy.cpp build/moc_NullComman
d.cpp build/moc_PageLoadingCommand.cpp build/moc_SetSkipImageLoading.cpp build/moc_WebPageManager.cpp build/moc_WindowFocus.cpp build/moc_GetWindowHandles.cpp build/moc_GetWindowHandle.cpp build/moc_GetTi
meout.cpp build/moc_SetTimeout.cpp build/moc_TimeoutCommand.cpp build/moc_SetUrlBlacklist.cpp build/moc_NoOpReply.cpp build/moc_JsonSerializer.cpp build/moc_ErrorMessage.cpp build/moc_Title.cpp build/moc_
FindCss.cpp build/moc_JavascriptCommand.cpp build/moc_FindXpath.cpp build/moc_NetworkReplyProxy.cpp build/moc_StdinNotifier.cpp build/moc_RequestHandler.cpp
rm -f build/BlockUrl.o build/AllowUrl.o build/SetUnknownUrlMode.o build/FindModal.o build/AcceptAlert.o build/GoForward.o build/GoBack.o build/WindowMaximize.o build/WindowSize.o build/WindowCommand.o bui
ld/WindowOpen.o build/WindowClose.o build/Version.o build/EnableLogging.o build/Authenticate.o build/SetConfirmAction.o build/SetPromptAction.o build/SetPromptText.o build/ClearPromptText.o build/Javascri
ptAlertMessages.o build/JavascriptConfirmMessages.o build/JavascriptPromptMessages.o build/IgnoreSslErrors.o build/WindowResize.o build/CurrentUrl.o build/ConsoleMessages.o build/main.o build/WebPage.o bu
ild/Server.o build/Connection.o build/Command.o build/SocketCommand.o build/Visit.o build/Reset.o build/Node.o build/JavascriptInvocation.o build/Evaluate.o build/Execute.o build/FrameFocus.o build/Respon
se.o build/NetworkAccessManager.o build/NetworkCookieJar.o build/Header.o build/Render.o build/body.o build/Status.o build/Headers.o build/UnsupportedContentHandler.o build/SetCookie.o build/ClearCookies.
o build/GetCookies.o build/CommandParser.o build/CommandFactory.o build/SetProxy.o build/NullCommand.o build/PageLoadingCommand.o build/SetTimeout.o build/GetTimeout.o build/SetSkipImageLoading.o build/We
bPageManager.o build/WindowFocus.o build/GetWindowHandles.o build/GetWindowHandle.o build/TimeoutCommand.o build/SetUrlBlacklist.o build/NoOpReply.o build/JsonSerializer.o build/InvocationResult.o build/E
rrorMessage.o build/Title.o build/FindCss.o build/JavascriptCommand.o build/FindXpath.o build/NetworkReplyProxy.o build/IgnoreDebugOutput.o build/StdinNotifier.o build/RequestHandler.o build/BlacklistedRe
questHandler.o build/MissingContentHeaderRequestHandler.o build/CustomHeadersRequestHandler.o build/NetworkRequestFactory.o build/UnknownUrlHandler.o build/qrc_webkit_server.o build/moc_BlockUrl.o build/m
oc_AllowUrl.o build/moc_SetUnknownUrlMode.o build/moc_FindModal.o build/moc_AcceptAlert.o build/moc_GoForward.o build/moc_GoBack.o build/moc_WindowMaximize.o build/moc_WindowSize.o build/moc_WindowCommand
.o build/moc_WindowOpen.o build/moc_WindowClose.o build/moc_Version.o build/moc_EnableLogging.o build/moc_Authenticate.o build/moc_SetConfirmAction.o build/moc_SetPromptAction.o build/moc_SetPromptText.o
build/moc_ClearPromptText.o build/moc_JavascriptAlertMessages.o build/moc_JavascriptConfirmMessages.o build/moc_JavascriptPromptMessages.o build/moc_IgnoreSslErrors.o build/moc_WindowResize.o build/moc_Cu
rrentUrl.o build/moc_ConsoleMessages.o build/moc_WebPage.o build/moc_Server.o build/moc_Connection.o build/moc_Command.o build/moc_SocketCommand.o build/moc_Visit.o build/moc_Reset.o build/moc_Node.o buil
d/moc_JavascriptInvocation.o build/moc_Evaluate.o build/moc_Execute.o build/moc_FrameFocus.o build/moc_Response.o build/moc_NetworkAccessManager.o build/moc_NetworkCookieJar.o build/moc_Header.o build/moc
_Render.o build/moc_Body.o build/moc_Status.o build/moc_Headers.o build/moc_UnsupportedContentHandler.o build/moc_SetCookie.o build/moc_ClearCookies.o build/moc_GetCookies.o build/moc_CommandParser.o buil
d/moc_CommandFactory.o build/moc_SetProxy.o build/moc_NullCommand.o build/moc_PageLoadingCommand.o build/moc_SetSkipImageLoading.o build/moc_WebPageManager.o build/moc_WindowFocus.o build/moc_GetWindowHan
dles.o build/moc_GetWindowHandle.o build/moc_GetTimeout.o build/moc_SetTimeout.o build/moc_TimeoutCommand.o build/moc_SetUrlBlacklist.o build/moc_NoOpReply.o build/moc_JsonSerializer.o build/moc_ErrorMess
age.o build/moc_Title.o build/moc_FindCss.o build/moc_JavascriptCommand.o build/moc_FindXpath.o build/moc_NetworkReplyProxy.o build/moc_StdinNotifier.o build/moc_RequestHandler.o
rm -f build/webkit_server.gch/c build/webkit_server.gch/c++
rm -f *~ core *.core
make[1]: Leaving directory `/home/vagrant/.rvm/gems/ruby-2.2.1/gems/capybara-webkit-1.6.0/src'
make "DESTDIR="
cd src/ && ( test -e Makefile.webkit_server || /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /home/vagrant/.rvm/gems/ruby-2.2.1/gems/capybara-webkit-1.6.0/src/webkit_server.pro -o Makefile.webkit_server ) && ma
ke -f Makefile.webkit_server
make[1]: Entering directory `/home/vagrant/.rvm/gems/ruby-2.2.1/gems/capybara-webkit-1.6.0/src'
g++ -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_LOCATION_LIB -DQT_WEBKIT_LIB -DQT_QML_LIB -DQT_WIDGETS_LIB -DQ
T_POSITIONING_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt5/QtWebKitWidgets -I/usr/include
/qt5/QtQuick -I/usr/include/qt5/QtOpenGL -I/usr/include/qt5/QtPrintSupport -I/usr/include/qt5/QtLocation -I/usr/include/qt5/QtWebKit -I/usr/include/qt5/QtQml -I/usr/include/qt5/QtWidgets -I/usr/include/qt
5/QtPositioning -I/usr/include/qt5/QtSensors -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -Ibuild -x c++-header -c stable.h -o build/webkit_server.gch/c++
g++ -c -include build/webkit_server -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_LOCATION_LIB -DQT_WEBKIT_LIB -
DQT_QML_LIB -DQT_WIDGETS_LIB -DQT_POSITIONING_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt
5/QtWebKitWidgets -I/usr/include/qt5/QtQuick -I/usr/include/qt5/QtOpenGL -I/usr/include/qt5/QtPrintSupport -I/usr/include/qt5/QtLocation -I/usr/include/qt5/QtWebKit -I/usr/include/qt5/QtQml -I/usr/include
/qt5/QtWidgets -I/usr/include/qt5/QtPositioning -I/usr/include/qt5/QtSensors -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -Ibuild -o build/BlockUrl.o BlockUrl.cpp
g++: internal compiler error: Segmentation fault (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
make[1]: *** [build/BlockUrl.o] Error 4
make[1]: Leaving directory `/home/vagrant/.rvm/gems/ruby-2.2.1/gems/capybara-webkit-1.6.0/src'
make: *** [sub-src-webkit_server-pro-make_first-ordered] Error 2
make failed, exit code 2
Gem files will remain installed in /home/vagrant/.rvm/gems/ruby-2.2.1/gems/capybara-webkit-1.6.0 for inspection.
Results logged to /home/vagrant/.rvm/gems/ruby-2.2.1/extensions/x86_64-linux/2.2.0/capybara-webkit-1.6.0/gem_make.out
Seems like something is wrong with G++?
Yikes. It does look like you've now got an issue with your compiler. Note that you've hit a different issue here, so that's good. I don't see why this wouldn't run on Trusty. I run locally on Debian jessie, which should be similar. However, my g++
version is 4.9.2. Perhaps there's a bug in 4.8.
@mhoran Do you know of a way to upgrade g++
on Ubuntu? I admit I'm afraid of compiling it from source (but I can if I must).
It doesn't look like there's an update for gcc
on Trusty. However, you may want to try utopic, which includes gcc
4.9.
@mhoran Upgraded to Vivid (15.04) and have the same error as before (made a gist of the error, too).
Here are my version numbers:
lsb_release -ds # => Ubuntu 15.04
which ruby # => /home/vagrant/.rvm/rubies/ruby-2.2.1/bin/ruby
ruby --version # => ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
g++ --version # => g++ (Ubuntu 4.9.2-10ubuntu13) 4.9.2
gcc --version # => gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2
qmake --version # => QMake version 3.0 / Using Qt version 5.4.1 in /usr/lib/x86_64-linux-gnu
# On my host machine...
vagrant --version # => Vagrant 1.6.5
Looks like we're on the same version of G++...any thoughts?
I had similar problems when I tried to compile with QT5, the only way I got it to work (on trusty or precise) was to use libqt4-dev
. This was with gcc 4.8 though. That's no big issue for me since I only want to run it headless anyways and it is ok for a local vagrant box, even if a little old fashioned.
Note that you have to run your tests with a virtual server, e.g. xvfb-run
once you get it to compile.
Hey @EvanHahn. I'm at a loss as to what may be happening. I'd recommend opening a bug report upstream in Ubuntu to see if they're aware of any issues and have any recommendations. I've had good luck raising problems via Launchpad in the past.
Okay. Sounds like this issues should be closed and moved to Launchpad?
Yes; I think that would be the best course of action.
Sounds good.
Recently I've faced this issue too on Ubuntu 14. I solved it by installing build-essential package from default repo.
I realized the problem is because of qt5. Removing all qt5 libs and install qt4 will solve the problem (at least for me)
I realized the problem is because of qt5. Removing all qt5 libs and install qt4 will solve the problem (at least for me)
Support for Qt4 is deprecated, as Qt4 is several years behind in its WebKit implementation. I highly recommend getting it to work with Qt5, as we'll be removing Qt4 support whenever we release 2.0.
That sounds like my problem. I'll upgrade.
In short, I have a completely fresh Ubuntu 14.04 Vagrant box. I cannot install
capybara-webkit
due to compiling issues.I created a fresh Ubuntu 14.04 Vagrant box. Here's my Vagrantfile:
Here are all the commands I ran:
Then, when I run this:
I get this nasty output:
I think I'm following the instructions exactly...am I missing something? It looks like there's something wrong with QT WebKit, or maybe something involving g++?