GNOME Bugzilla – Bug 62001
[patch] mozilla component breaks with mozilla 0.9.5
Last modified: 2004-12-22 21:47:04 UTC
Mozilla 0.9.5 branch build is not binary compatible, nor source compatible with 0.9.4 and before. This causes the component in mozilla to break horribly. I'm attaching a patch.
Created attachment 5794 [details] [review] fix component to work with moz 0.9.5
Marking "2.0" and cc'ing Darin, as this comes with a patch!
I think I'd like to look at this for 1.0.5. Maybe we can make it compatible with both. I haven't looked at the patch yet to see whether it makes things incompatible with 0.9.4.
I read the patch, and it looks good. I'm having trouble figuring out what to do for 1.0.5. It seems that we can either be compatible with older Mozilla releases, or compatible with newer ones. Maybe we can release 1.0.5 compatible with the older Mozilla, and release a 1.0.6 very soon that is compatible with the new one (integrating this patch). I do have one question about the patch: Why the explicit forward declaration of std::string rather than including <string>? Is that a workaround for some kind of bug, or a compile-time speedup or something. Also, if we remove the nspr include thing from configure.in, then we want to remove the comment about it too. And the developer.eazel.com URLs for the Mozilla packages are no longer any good, so we should definitely remove those. Even if they still exist, they won't have Mozilla 0.9.5. By the way, in the future I'd prefer unified diffs to context diffs.
the <string> hack is to get around what looks to be a bug in gcc if you #include <string> it tries to include $mozilla_includedir/string instead and complains that it is a directory. We can't remove -I$mozilla_includedir since its required for a few core headers needed by xpcom. This was the quickest, and simplest solution I could find.
Mozilla 0.9.5 was released last night, so this should be moot.
I installed the Red Hat RPM for Mozilla 0.9.5 and applied the patch. I immediately had a problem with the nspr directory. The patch says -I$prefix/include/nspr, but I don't install Nautilus and mozilla with the same prefix. I changed it to -I$_mozilla_include_place/nspr, which works perfectly for me, but I am worried that it might not work for others.
The only thing I can think of is to default to $_mozilla_include_place then add a --with-nspr-includes flag to change it