GNOME Bugzilla – Bug 565669
epiphany doesn't compile against xulrunner 1.9.1
Last modified: 2009-02-28 00:19:29 UTC
On Fedora/rawhide: build log here: http://koji.fedoraproject.org/koji/getfile?taskID=1021841&name=build.log extract: /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../lib -I../../embed -I../.. -I/usr/include/xulrunner-sdk-1.9.1/unstable/. -I/usr/include/xulrunner-sdk-1.9.1/unstable/caps -I/usr/include/xulrunner-sdk-1.9.1/unstable/chardet -I/usr/include/xulrunner-sdk-1.9.1/unstable/chrome -I/usr/include/xulrunner-sdk-1.9.1/unstable/commandhandler -I/usr/include/xulrunner-sdk-1.9.1/unstable/content -I/usr/include/xulrunner-sdk-1.9.1/unstable/cookie -I/usr/include/xulrunner-sdk-1.9.1/unstable/docshell -I/usr/include/xulrunner-sdk-1.9.1/unstable/dom -I/usr/include/xulrunner-sdk-1.9.1/unstable/exthandler -I/usr/include/xulrunner-sdk-1.9.1/unstable/fastfind -I/usr/include/xulrunner-sdk-1.9.1/unstable/helperAppDlg -I/usr/include/xulrunner-sdk-1.9.1/unstable/find -I/usr/include/xulrunner-sdk-1.9.1/unstable/gfx -I/usr/include/xulrunner-sdk-1.9.1/unstable/gtkembedmoz -I/usr/include/xulrunner-sdk-1.9.1/unstable/history -I/usr/include/xulrunner-sdk-1.9.1/unstable/js -I/usr/include/xulrunner-sdk-1.9.1/unstable/layout -I/usr/include/xulrunner-sdk-1.9.1/unstable/locale -I/usr/include/xulrunner-sdk-1.9.1/unstable/mimetype -I/usr/include/xulrunner-sdk-1.9.1/unstable/necko -I/usr/include/xulrunner-sdk-1.9.1/unstable/nkcache -I/usr/include/xulrunner-sdk-1.9.1/unstable/passwordmgr -I/usr/include/xulrunner-sdk-1.9.1/unstable/pipboot -I/usr/include/xulrunner-sdk-1.9.1/unstable/pipnss -I/usr/include/xulrunner-sdk-1.9.1/unstable/pref -I/usr/include/xulrunner-sdk-1.9.1/unstable/shistory -I/usr/include/xulrunner-sdk-1.9.1/unstable/string -I/usr/include/xulrunner-sdk-1.9.1/unstable/sidebar -I/usr/include/xulrunner-sdk-1.9.1/unstable/spellchecker -I/usr/include/xulrunner-sdk-1.9.1/unstable/uriloader -I/usr/include/xulrunner-sdk-1.9.1/unstable/uconv -I/usr/include/xulrunner-sdk-1.9.1/unstable/wallet -I/usr/include/xulrunner-sdk-1.9.1/unstable/webbrowserpersist -I/usr/include/xulrunner-sdk-1.9.1/unstable/webbrwsr -I/usr/include/xulrunner-sdk-1.9.1/unstable/widget -I/usr/include/xulrunner-sdk-1.9.1/unstable/windowwatcher -I/usr/include/xulrunner-sdk-1.9.1/unstable/xmlextras -I/usr/include/xulrunner-sdk-1.9.1/unstable/xpcom -I/usr/include/xulrunner-sdk-1.9.1/unstable/xpconnect -DSHARE_DIR=\"/usr/share/epiphany\" -DPLUGINDIR=\"/usr/lib/epiphany/2.24/plugins\" -DMOZILLA_HOME=\"\" -DMOZILLA_PREFIX=\"/usr\" -DMOZILLA_NATIVE_PLUGINSDIR=\"/usr/lib/mozilla/plugins\" -DUA_VERSION=\"2.22\" -DALLOW_PRIVATE_API -DXPCOM_GLUE_USE_NSPR -DXPCOM_GLUE -fshort-wchar -I/usr/include/xulrunner-sdk-1.9.1/stable -I/usr/include/nspr4 -DXPCOM_GLUE -fshort-wchar -I/usr/include/xulrunner-sdk-1.9.1/unstable -I/usr/include/nspr4 -I/usr/include/nspr4 -DORBIT2=1 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/libxml2 -I/usr/include/libgnome-2.0 -I/usr/include/orbit-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gnome-keyring-1 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gail-1.0 -I/usr/include/libglade-2.0 -I/usr/include/gnome-desktop-2.0 -I/usr/include/startup-notification-1.0 -fno-rtti -fshort-wchar -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -Wno-unused -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -MT libephymozillaembed_la-EphyRedirectChannel.lo -MD -MP -MF .deps/libephymozillaembed_la-EphyRedirectChannel.Tpo -c -o libephymozillaembed_la-EphyRedirectChannel.lo `test -f 'EphyRedirectChannel.cpp' || echo './'`EphyRedirectChannel.cpp EphyBrowser.cpp: In member function 'virtual nsresult EphyCommandEventListener::HandleEvent(nsIDOMEvent*)': EphyBrowser.cpp:703: error: 'nsIDOMNSLocation' was not declared in this scope EphyBrowser.cpp:703: error: template argument 1 is invalid EphyBrowser.cpp:703: error: invalid type in declaration before '(' token EphyBrowser.cpp:703: error: cannot convert 'nsQueryInterface' to 'int' in initialization EphyBrowser.cpp:739: error: base operand of '->' is not a pointer EphyBrowser.h: In constructor 'EphyBrowser::EphyBrowser()': EphyBrowser.h:226: warning: 'EphyBrowser::mInitialized' will be initialized after EphyBrowser.h:211: warning: 'float EphyBrowser::mZoom' EphyBrowser.cpp:822: warning: when initialized here Full build info here: http://koji.fedoraproject.org/koji/taskinfo?taskID=1021841
Confirmed. Apparently nsIDOMNSLocation was removed in https://bugzilla.mozilla.org/show_bug.cgi?id=453571 ; the reload function now lives in nsIDOMLocation.
Should be fixed on gnome-2-24 branch in svn, but since I have no xulrunner 1.9.1 build, I cannot test. Please re-open if the patch didn't work.
(In reply to comment #2) > Should be fixed on gnome-2-24 branch in svn, but since I have no xulrunner > 1.9.1 build, I cannot test. Please re-open if the patch didn't work. Thanks, I filed a downstream bug: http://bugzilla.redhat.com/show_bug.cgi?id=477982 asking the maintainer of the Fedora package to test the new build. Can you make a snapshot or new point release as a tarball for this?
There will be a 2.24.3 release according to the schedule at http://live.gnome.org/TwoPointTwentyfive .
Ah, I didn't notice this bug, but that fix is insufficient. There are two more changes that affect epiphany: http://hg.mozilla.org/releases/mozilla-1.9.1/rev/2e8dfe209f09 http://hg.mozilla.org/releases/mozilla-1.9.1/rev/cf62923208e1 I have a patch which fixes those issues here, however it needs the appropriate configure checks: http://cvs.fedoraproject.org/viewvc/rpms/epiphany/devel/epiphany-2.24-moz191.patch?revision=1.1&view=markup
The nsIDOM[NS]Element thing should be fixed in 2.24.3 and 2-26 branch, or did that not work (I worked blindly on the code, since I don't have a 1.9.1 build) ? The plugin stuff really sucks; I think I'll just disable the plugin on 1.9.1.
Oh, yeah. I guess it did get fixed. Not sure how I missed that. The plugin changes are pretty much just symbol renames. You can get away with a typedef or #define or something if you don't want to have a huge #ifdef in the actual code.
Oh, I see. No, the changes for the nsIDOM[NS]Element thing didn't work, which is why I assumed that it hadn't been accounted for yet. EventContext.cpp:693: error: 'class nsIDOMNSHTMLElement' has no member named 'GetScrollTop' EventContext.cpp:695: error: 'class nsIDOMNSHTMLElement' has no member named 'GetScrollLeft' Because they are 'NS' interfaces and not part of the DOM spec, they don't follow normal rules, so nsIDOMNSHTMLElement _does not_ inherit from nsIDOMNSElement which means you can't use one interface for them, you must use both. You must use the HTMLElement one for the Offset functions, and the Element one for the Scroll functions. See my patch.
Hmm, I don't understand that compiler error. GetScrollTop is on nsIDOMNSElement, and the code uses this: #ifdef HAVE_GECKO_1_9_1 elem->GetOffsetTop(&val); y += val; elem->GetScrollTop(&val); y -= val; elem->GetOffsetLeft(&val); x += val; elem->GetScrollLeft(&val); x -= val; #else ... so I thought I should replace GetOffsetTop and GetOffsetLeft calls with htmlElem->... not the other ones... ? Can you check that the HAVE_GECKO_1_9_1 define is getting correctly defined in config.h ? If it isn't, please attach the config.log file .
What does "pkg-config --modversion libxul-embedding" output?
Created attachment 128178 [details] config.log HAVE_GECKO_1_9_1 is not getting defined, though gecko_cv_have_gecko_1_9_1=yes per the log file...
Created attachment 128179 [details] [review] patch to EventContext.cpp
Got together with chpe on irc, and after a couple of other patches, I think this can be closed again.
Sorry to suggest reopening this, but it looks like one of the lines sneaked out of the #ifdef... I've just been trying to compile this against xulrunner-1.9.1, and I ran into a "NewNPP_NewProc not defined" error. It looks as though, in http://svn.gnome.org/viewvc/epiphany/branches/gnome-2-26/plugins/desktop-file/plugin.cpp?revision=8766&view=markup, line 537 should be at line 556...
Right; fixed in gnome-2-26 branch in svn.