Skip to content
This repository has been archived by the owner on Mar 3, 2020. It is now read-only.

class NetworkReplyProxy has no member named rawHeaderPairs #528

Closed
sheldonh opened this issue May 24, 2013 · 14 comments
Closed

class NetworkReplyProxy has no member named rawHeaderPairs #528

sheldonh opened this issue May 24, 2013 · 14 comments

Comments

@sheldonh
Copy link

On Centos 6.4 (w/ EPEL+rpmfusion), the qtwebkit-devel stack looks like this:

qt-4.6.2-26.el6_4.x86_64
qtwebkit-2.1.1-1.el6.x86_64
qtwebkit-devel-2.1.1-1.el6.x86_64

Installing capybara-webkit-1.0.0 fails thusly:

g++ -c -include webkit_server -pipe -O2 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include/QtWebKit -I/usr/include -I. -o WebPage.o WebPage.cpp
WebPage.cpp: In member function ‘void WebPage::setFrameProperties(QWebFrame*, QUrl&, NetworkReplyProxy*)’:
WebPage.cpp:71: error: ‘class NetworkReplyProxy’ has no member named ‘rawHeaderPairs’
WebPage.cpp:71: error: template argument 1 is invalid
WebPage.cpp:71: error: invalid type in declaration before ‘(’ token
WebPage.cpp:71: error: ‘class NetworkReplyProxy’ has no member named ‘rawHeaderPairs’
WebPage.cpp:71: error: request for member ‘brk’ in ‘_container_’, which is of non-class type ‘int’
WebPage.cpp:71: error: request for member ‘i’ in ‘_container_’, which is of non-class type ‘int’
WebPage.cpp:71: error: request for member ‘e’ in ‘_container_’, which is of non-class type ‘int’
WebPage.cpp:71: error: request for member ‘brk’ in ‘_container_’, which is of non-class type ‘int’
WebPage.cpp:71: error: request for member ‘i’ in ‘_container_’, which is of non-class type ‘int’
WebPage.cpp:71: error: ‘RawHeaderPair’ is not a member of ‘QNetworkReply’
WebPage.cpp:71: error: expected ‘;’ before ‘header’
WebPage.cpp:71: error: request for member ‘brk’ in ‘_container_’, which is of non-class type ‘int’
WebPage.cpp:72: error: ‘header’ was not declared in this scope
make[1]: *** [WebPage.o] Error 1
make[1]: Leaving directory `/var/lib/jenkins/.rvm/gems/ruby-2.0.0-p0@capybara-webkit-test/gems/capybara-webkit-1.0.0/src'
make: *** [sub-src-webkit_server-pro-make_default-ordered] Error 2
Command 'make' failed
@jferris
Copy link
Member

jferris commented May 24, 2013

capybara-webkit requires at least Qt 4.8. Sorry about the confusion.

@jferris jferris closed this as completed May 24, 2013
@sheldonh
Copy link
Author

Owch. That's unfortunate. It puts CentOS and RedHat out of the running as CI servers. :-(

@jferris
Copy link
Member

jferris commented May 28, 2013

Yeah, I understand it can be frustrating. Version requirements are always inconvenient for somebody, but they're necessary for sane development.

Qt 4.8 was released about a year and a half ago. There's been another major update since then. The version in the original backtrace, 4.6, was released at the end of 2009.

The bottom line is that we're not willing to make the project dependent on four year old code. You can still use CentOS or RedHat, but if you want to use an distribution that updates so infrequently, you're going to have to do a decent amount of work on your own to keep things up-to-date.

@sheldonh
Copy link
Author

Sorry, I shouldn't have said anything. I realize that it could only be read
as a complaint, rather than a simple that demanded no response. I
shouldn't complain, because capybara-webkit has caught many, many bugs for
me over the years. Thank you.

For others who hit this issue and also feel despair, I have this...

Webkit is special. They don't provide unpackaged binaries, and building it
from source takes an indecent amount of work. So I wouldn't hold this
particular problem against CentOS and RedHat. :-)

With that out of the way, you need to harden up and choose a bullet to bite.

You can convert from capybara-webkit+qtwebkit to poltergeist+phantomjs. How
much work that takes depends on the extent to which you've bypassed the
capabara DSL and dropped right down to driver methods. For example, the
cookie and header manipulation interfaces are different.

If that looks like a lot of work, just bite the bullet and acquire access
to another distro. There's no shame in it, and it's work you have to do
once across all your test suites. Switching capybara driver has to be done
per test suite.

On Tue, May 28, 2013 at 3:33 PM, Joe Ferris notifications@github.comwrote:

Yeah, I understand it can be frustrating. Version requirements are always
inconvenient for somebody, but they're necessary for sane development.

Qt 4.8 was released about a year and a half ago. There's been another
major update since then. The version in the original backtrace, 4.6, was
released at the end of 2009.

The bottom line is that we're not willing to make the project dependent on
four year old code. You can still use CentOS or RedHat, but if you want to
use an distribution that updates so infrequently, you're going to have to
do a decent amount of work on your own to keep things up-to-date.


Reply to this email directly or view it on GitHubhttps://github.com//issues/528#issuecomment-18550391
.

@jamesmoriarty
Copy link

@sheldonh
Copy link
Author

Awesome, thanks!

On Tue, Jun 11, 2013 at 8:25 AM, James Moriarty notifications@github.comwrote:

@sheldonh https://github.com/sheldonh I've added Centos 6.4 to
https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit#centos-64


Reply to this email directly or view it on GitHubhttps://github.com//issues/528#issuecomment-19244996
.

@synth
Copy link

synth commented Oct 16, 2013

i'm running centos 6.3, and just went through the amazing long compiliation process(6+ hours - i had to go home and come back the next day), which succeeded, but the capybara-webkit process failed with the above error. However, I went through the instructions for 6.4 and they worked beautifully! ( and in under 10minutes) :)

@jamesmoriarty
Copy link

@synth glad to hear.

@ghost
Copy link

ghost commented Oct 18, 2013

@synth if I remember it right it was me who wrote the 6.3 process, I'll give 6.4 process a go with another 6.3 , if it works then we should edit that bit. Infact if you're confident enough just do it so it save someone else's time.

@synth
Copy link

synth commented Oct 18, 2013

@ikhtear well...i'm not confident that the 6.4 instructions would work straight away. Perhaps the compiling I did for the 6.3 helped out. I unfortunately don't have the time or resources atm to test this in isolation. Just wanted to post here so that others would know. Maybe putting a post script in the 6.3 instructions might be helpful to avoid people having to dig for this issue.

@WattsInABox
Copy link

I'm testing the 6.4 instructions on 6.5 within a vagrant box so I'd be happy to test it from scratch and report back

@WattsInABox
Copy link

So it looks like this is working. I'm happy to also update the wiki, with approval from a committer or @ThoughtbotThom or someone else can do it, if so inclined. I'm thinking a CentOS 6.3+ section with an "if you have problems and need to build from source" subsection

@mhoran
Copy link
Collaborator

mhoran commented Jan 27, 2015

@BillyWatson, please feel free to update the wiki! We rely on our community to keep install instructions current. Thanks for putting in the effort.

@WattsInABox
Copy link

No problem

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants