]> git.pld-linux.org Git - packages/yelp.git/blame - yelp-libxul.patch
- fix build with xulrunner 1.9
[packages/yelp.git] / yelp-libxul.patch
CommitLineData
8035b8dd
MB
1diff -urN yelp-2.22.1/configure.in yelp-2.22.1.new/configure.in
2--- yelp-2.22.1/configure.in 2008-04-07 23:59:54.000000000 +0200
3+++ yelp-2.22.1.new/configure.in 2008-07-08 19:40:59.000000000 +0200
4@@ -25,6 +25,8 @@
5 AM_PROG_LIBTOOL
6 AM_PATH_GLIB_2_0
7
8+AM_PROG_CC_C_O
9+
10 GNOME_DEBUG_CHECK
11 GNOME_COMPILE_WARNINGS([maximum])
12 GNOME_CXX_WARNINGS
13@@ -179,6 +181,7 @@
14 # *****
15
16 GECKO_INIT([MOZILLA])
17+GECKO_DEFINES
18
19 AC_SUBST([MOZILLA])
20 AC_SUBST([MOZILLA_FLAVOUR])
21@@ -190,11 +193,17 @@
22
23 case "$MOZILLA" in
24 xulrunner) gecko_min_version=1.8 ;;
25+libxul*) gecko_min_version=1.9 ;;
26 *firefox) gecko_min_version=1.5 ;;
27 *) AC_MSG_ERROR([$gecko_cv_gecko is not supported])
28 esac
29
30-PKG_CHECK_MODULES([MOZILLA_COMPONENT],[${gecko_cv_gecko}-xpcom >= $gecko_min_version $gecko_cv_extra_pkg_dependencies])
31+if test $MOZILLA = libxul-embedding; then
32+ PKG_CHECK_MODULES([MOZILLA_COMPONENT],[libxul-embedding $gecko_cv_extra_pkg_dependencies])
33+ MOZILLA_COMPONENT_CFLAGS="$MOZILLA_COMPONENT_CFLAGS `$PKG_CONFIG --cflags ${gecko_cv_gecko}` `$PKG_CONFIG --define-variable=includetype=unstable --cflags ${gecko_cv_gecko}`"
34+else
35+ PKG_CHECK_MODULES([MOZILLA_COMPONENT],[${gecko_cv_gecko}-xpcom >= $gecko_min_version $gecko_cv_extra_pkg_dependencies])
36+fi
37
38 dnl ====================================
39 dnl = zlib for help converters
40diff -urN yelp-2.22.1/m4/gecko.m4 yelp-2.22.1.new/m4/gecko.m4
41--- yelp-2.22.1/m4/gecko.m4 2007-04-12 23:36:04.000000000 +0200
42+++ yelp-2.22.1.new/m4/gecko.m4 2008-07-08 19:40:59.000000000 +0200
43@@ -13,7 +13,7 @@
44 #
45 # You should have received a copy of the GNU General Public License along
46 # with this program; if not, write to the Free Software Foundation, Inc.,
47-# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
48+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
49
50 # GECKO_INIT(VARIABLE,[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
51 #
52@@ -32,6 +32,7 @@
53 # VARIABLE: Which gecko was found (e.g. "xulrunnner", "seamonkey", ...)
54 # VARIABLE_FLAVOUR: The flavour of the gecko that was found
55 # VARIABLE_HOME:
56+# VARIABLE_NSPR: set if nspr is provided by gecko flags
57 # VARIABLE_PREFIX:
58 # VARIABLE_INCLUDE_ROOT:
59 # VARIABLE_VERSION: The version of the gecko that was found
60@@ -51,7 +52,7 @@
61 AC_MSG_CHECKING([which gecko to use])
62
63 AC_ARG_WITH([gecko],
64- AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner@:>@],
65+ AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner|libxul-embedding|libxul@:>@],
66 [Which gecko engine to use (autodetected by default)]))
67
68 # Backward compat
69@@ -60,12 +61,15 @@
70 gecko_cv_gecko=$with_gecko
71
72 # Autodetect gecko
73-_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla"
74+_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla libxul-embedding libxul"
75 if test -z "$gecko_cv_gecko"; then
76 for lizard in $_geckos; do
77 if $PKG_CONFIG --exists $lizard-xpcom; then
78 gecko_cv_gecko=$lizard
79 break;
80+ elif $PKG_CONFIG --exists $lizard-unstable; then
81+ gecko_cv_gecko=$lizard
82+ break;
83 fi
84 done
85 fi
86@@ -82,6 +86,14 @@
87 gecko_cv_have_gecko=yes
88 fi
89
90+AC_MSG_CHECKING([manual gecko home set])
91+
92+AC_ARG_WITH([gecko-home],
93+ AS_HELP_STRING([--with-gecko-home@<:@=[path]@:>@],
94+ [Manually set MOZILLA_FIVE_HOME]))
95+
96+gecko_cv_gecko_home=$with_gecko_home
97+
98 # ****************
99 # Define variables
100 # ****************
101@@ -93,27 +105,38 @@
102 seamonkey) gecko_cv_gecko_flavour=mozilla ;;
103 *firefox) gecko_cv_gecko_flavour=toolkit ;;
104 xulrunner) gecko_cv_gecko_flavour=toolkit ;;
105+libxul*) gecko_cv_gecko_flavour=toolkit ;;
106 esac
107
108-_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`"
109-_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
110-_GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
111-_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`"
112-
113+if $PKG_CONFIG --exists ${gecko_cv_gecko}-xpcom; then
114+ _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`"
115+ _GECKO_CFLAGS="-I$_GECKO_INCLUDE_ROOT"
116+ _GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
117+ _GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
118+ _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`"
119+ _GECKO_NSPR=no # XXX asac: this is currently a blind guess and should be a AC test
120+else
121+ _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}`"
122+ _GECKO_CFLAGS="`$PKG_CONFIG --cflags ${gecko_cv_gecko}` `$PKG_CONFIG --cflags ${gecko_cv_gecko}-unstable`"
123+ _GECKO_LIBDIR="`$PKG_CONFIG --variable=sdkdir ${gecko_cv_gecko}`/bin"
124+ _GECKO_HOME=$with_gecko_home
125+ _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}`"
126+ _GECKO_NSPR=no # XXX asac: this is currently a blind guess and should be a AC test
127+fi
128 fi # if gecko_cv_have_gecko
129
130 if test "$gecko_cv_gecko_flavour" = "toolkit"; then
131 AC_DEFINE([HAVE_MOZILLA_TOOLKIT],[1],[Define if mozilla is of the toolkit flavour])
132 fi
133
134-AM_CONDITIONAL([HAVE_MOZILLA_TOOLKIT],[test "$gecko_cv_gecko_flavour" = "toolkit"])
135-
136 $1[]=$gecko_cv_gecko
137 $1[]_FLAVOUR=$gecko_cv_gecko_flavour
138 $1[]_INCLUDE_ROOT=$_GECKO_INCLUDE_ROOT
139+$1[]_CFLAGS=$_GECKO_CFLAGS
140 $1[]_LIBDIR=$_GECKO_LIBDIR
141 $1[]_HOME=$_GECKO_HOME
142 $1[]_PREFIX=$_GECKO_PREFIX
143+$1[]_NSPR=$_GECKO_NSPR
144
145 # **************************************************************
146 # This is really gcc-only
147@@ -184,7 +207,7 @@
148 AC_LANG_PUSH([C++])
149
150 _SAVE_CPPFLAGS="$CPPFLAGS"
151-CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT"
152+CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS"
153
154 AC_MSG_CHECKING([[whether we have a gtk 2 gecko build]])
155 AC_RUN_IFELSE(
156@@ -217,6 +240,18 @@
157 [gecko_cv_have_debug=no])
158 AC_MSG_RESULT([$gecko_cv_have_debug])
159
160+AC_MSG_CHECKING([[whether we have a xpcom glue]])
161+AC_COMPILE_IFELSE(
162+ [AC_LANG_SOURCE(
163+ [[
164+ #ifndef XPCOM_GLUE
165+ #error "no xpcom glue found"
166+ #endif]]
167+ )],
168+ [gecko_cv_have_xpcom_glue=yes],
169+ [gecko_cv_have_xpcom_glue=no])
170+AC_MSG_RESULT([$gecko_cv_have_xpcom_glue])
171+
172 CPPFLAGS="$_SAVE_CPPFLAGS"
173
174 AC_LANG_POP([C++])
175@@ -228,9 +263,11 @@
176 AC_DEFINE([HAVE_GECKO_DEBUG],[1],[Define if gecko is a debug build])
177 fi
178
179-fi # if gecko_cv_have_gecko
180+if test "$gecko_cv_have_xpcom_glue" = "yes"; then
181+ AC_DEFINE([HAVE_GECKO_XPCOM_GLUE],[1],[Define if xpcom glue is used])
182+fi
183
184-AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_debug" = "yes"])
185+fi # if gecko_cv_have_gecko
186
187 # ***********************
188 # Check for gecko version
189@@ -241,7 +278,7 @@
190 AC_LANG_PUSH([C++])
191
192 _SAVE_CPPFLAGS="$CPPFLAGS"
193-CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT"
194+CPPFLAGS="$CPPFLAGS $_GECKO_CFLAGS"
195
196 AC_CACHE_CHECK([for gecko version],
197 [gecko_cv_gecko_version],
198@@ -311,11 +348,6 @@
199
200 fi # if gecko_cv_have_gecko
201
202-AM_CONDITIONAL([HAVE_GECKO_1_7],[test "$gecko_cv_gecko_version_int" -ge "1007000"])
203-AM_CONDITIONAL([HAVE_GECKO_1_8],[test "$gecko_cv_gecko_version_int" -ge "1008000"])
204-AM_CONDITIONAL([HAVE_GECKO_1_8_1],[test "$gecko_cv_gecko_version_int" -ge "1008001"])
205-AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$gecko_cv_gecko_version_int" -ge "1009000"])
206-
207 $1[]_VERSION=$gecko_cv_gecko_version
208 $1[]_VERSION_INT=$gecko_cv_gecko_version_int
209
210@@ -328,8 +360,11 @@
211 gecko_cv_extra_pkg_dependencies=
212
213 if test "$gecko_cv_gecko_version_int" -ge "1009000"; then
214- gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul"
215- gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue_s"
216+ if ! test "$gecko_cv_have_xpcom_glue" = "yes"; then
217+ gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul"
218+ else
219+ gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue"
220+ fi
221 else
222 gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed"
223 fi
224@@ -340,6 +375,29 @@
225
226 ])
227
228+# GECKO_DEFINES
229+#
230+# Defines the AM_CONDITIONALS for GECKO_INIT. This is a separate call
231+# so that you may call GECKO_INIT conditionally; but note that you must
232+# call GECKO_DEFINES _unconditionally_ !
233+
234+AC_DEFUN([GECKO_DEFINES],
235+[
236+# Ensure we have an integer variable to compare with
237+if test -z "$gecko_cv_gecko_version_int"; then
238+ gecko_cv_gecko_version_int=0
239+fi
240+AM_CONDITIONAL([HAVE_MOZILLA_TOOLKIT],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_flavour" = "toolkit"])
241+AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_have_debug" = "yes"])
242+AM_CONDITIONAL([HAVE_GECKO_1_7],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1007000"])
243+AM_CONDITIONAL([HAVE_GECKO_1_8],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1008000"])
244+AM_CONDITIONAL([HAVE_GECKO_1_8_1],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1008001"])
245+AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1009000"])
246+AM_CONDITIONAL([HAVE_GECKO_HOME],[test "x$_GECKO_HOME" != "x"])
247+AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_debug" = "yes"])
248+AM_CONDITIONAL([HAVE_GECKO_XPCOM_GLUE],[test "$gecko_cv_have_xpcom_glue" = "yes"])
249+])
250+
251 # ***************************************************************************
252 # ***************************************************************************
253 # ***************************************************************************
254@@ -359,10 +417,20 @@
255 _SAVE_CXXFLAGS="$CXXFLAGS"
256 _SAVE_LDFLAGS="$LDFLAGS"
257 _SAVE_LIBS="$LIBS"
258-CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)"
259-CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)"
260-LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME"
261-LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)"
262+if test "${gecko_cv_gecko}" = "libxul-embedding" -o "${gecko_cv_gecko}" = "libxul"; then
263+ CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-unstable)"
264+ CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-unstable)"
265+ LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}) -ldl"
266+else
267+ CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)"
268+ CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)"
269+ LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)"
270+fi
271+if test -n "$_GECKO_HOME"; then
272+ LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME"
273+else
274+ LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS"
275+fi
276
277 _GECKO_DISPATCH_INCLUDEDIRS="$2"
278
279@@ -371,9 +439,11 @@
280 # Mind you, it's useful to be able to test against uninstalled mozilla builds...
281 _GECKO_DISPATCH_INCLUDEDIRS="$_GECKO_DISPATCH_INCLUDEDIRS dom necko pref"
282
283-# Now add them to CPPFLAGS
284+# Now add them to CPPFLAGS - asac: well ... not anymore since 1.9 -> test whether they exist before adding.
285 for i in $_GECKO_DISPATCH_INCLUDEDIRS; do
286- CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i"
287+ if test -d "$_GECKO_INCLUDE_ROOT/$i"; then
288+ CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i"
289+ fi
290 done
291
292 m4_indir([$1],m4_shiftn(2,$@))
293@@ -426,11 +496,17 @@
294 #include <mozilla-config.h>
295 #include <stdlib.h>
296 #include <stdio.h>
297+
298+#ifdef XPCOM_GLUE
299+#include <nsXPCOMGlue.h>
300+#else
301 #include <nsXPCOM.h>
302+#endif // XPCOM_GLUE
303+
304 #include <nsCOMPtr.h>
305 #include <nsILocalFile.h>
306 #include <nsIServiceManager.h>
307-#ifdef HAVE_GECKO_1_8
308+#if defined(HAVE_GECKO_1_8) || defined(HAVE_GECKO_1_9)
309 #include <nsStringAPI.h>
310 #else
311 #include <nsString.h>
312@@ -438,16 +514,37 @@
313 ]]
314 [$1],
315 [[
316+
317+nsresult rv;
318+#ifdef XPCOM_GLUE
319+ static const GREVersionRange greVersion = {
320+ "1.8", PR_TRUE,
321+ "1.9.*", PR_TRUE
322+ };
323+ char xpcomLocation[4096];
324+ rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096);
325+ if (NS_FAILED(rv)) {
326+ exit(123);
327+ }
328+
329+ // Startup the XPCOM Glue that links us up with XPCOM.
330+ XPCOMGlueStartup(xpcomLocation);
331+ if (NS_FAILED(rv)) {
332+ exit(124);
333+ }
334+#endif // XPCOM_GLUE
335+
336 // redirect unwanted mozilla debug output to the bit bucket
337 freopen ("/dev/null", "w", stdout);
338
339-nsresult rv;
340-nsCOMPtr<nsILocalFile> directory;
341+nsCOMPtr<nsILocalFile> directory = nsnull;
342+#ifndef XPCOM_GLUE
343 rv = NS_NewNativeLocalFile (NS_LITERAL_CSTRING("$_GECKO_HOME"), PR_FALSE,
344 getter_AddRefs (directory));
345 if (NS_FAILED (rv) || !directory) {
346 exit (126);
347 }
348+#endif
349
350 rv = NS_InitXPCOM2 (nsnull, directory, nsnull);
351 if (NS_FAILED (rv)) {
352@@ -595,21 +692,22 @@
353 AC_DEFUN([GECKO_XPIDL],
354 [AC_REQUIRE([GECKO_INIT])dnl
355
356-_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
357+if test ${gecko_cv_gecko} = "libxul-embedding" -o ${gecko_cv_gecko} = "libxul"; then
358+ _GECKO_LIBDIR="`$PKG_CONFIG pkg-config --variable=sdkdir ${gecko_cv_gecko}`/bin"
359+else
360+ _GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
361+fi
362
363 AC_PATH_PROG([XPIDL],[xpidl],[no],[$_GECKO_LIBDIR:$PATH])
364
365+if test ${gecko_cv_gecko} = "libxul-embedding" -o ${gecko_cv_gecko} = "libxul"; then
366+XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}`"
367+else
368 XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}-xpcom`"
369-
370-# Older geckos don't have this variable, see
371-# https://bugzilla.mozilla.org/show_bug.cgi?id=240473
372-
373 if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then
374 XPIDL_IDLDIR="`echo $_GECKO_LIBDIR | sed -e s!lib!share/idl!`"
375 fi
376-
377 # Some distributions (Gentoo) have it in unusual places
378-
379 if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then
380 XPIDL_IDLDIR="$_GECKO_INCLUDE_ROOT/idl"
381 fi
382diff -urN yelp-2.22.1/src/Makefile.am yelp-2.22.1.new/src/Makefile.am
383--- yelp-2.22.1/src/Makefile.am 2008-04-07 20:02:52.000000000 +0200
384+++ yelp-2.22.1.new/src/Makefile.am 2008-07-08 19:41:29.000000000 +0200
385@@ -60,15 +60,18 @@
386 uriloader \
387 webbrwsr \
388 webshell \
389- widget
390+ widget \
391+ xpcom
392
393 yelp_CPPFLAGS = \
394 -I$(top_srcdir) \
395 -I$(top_builddir)/src \
396- $(addprefix -I$(MOZILLA_INCLUDE_ROOT)/,$(mozilla_include_subdirs)) \
397 $(YELP_DEFINES) \
398 $(AM_CPPFLAGS)
399
400+yelp_CPPFLAGS += $(MOZILLA_COMPONENT_CFLAGS)
401+yelp_CPPFLAGS += $(addprefix -I$(MOZILLA_INCLUDE_ROOT)/,$(mozilla_include_subdirs))
402+
403 yelp_CFLAGS = \
404 $(YELP_CFLAGS) \
405 $(YELP_SEARCH_CFLAGS) \
406@@ -92,7 +95,11 @@
407 $(MOZILLA_EXTRA_LIBS) \
408 $(MOZILLA_GLUE_LIBS)
409
410-yelp_LDFLAGS = -R$(MOZILLA_HOME) $(AM_LDFLAGS)
411+yelp_LDFLAGS = $(AM_LDFLAGS)
412+
413+if !HAVE_GECKO_XPCOM_GLUE
414+yelp_LDFLAGS += -R$(MOZILLA_HOME)
415+endif
416
417 #check_PROGRAMS = \
418 # test-document \
419diff -urN yelp-2.22.1/src/yelp-gecko-services.cpp yelp-2.22.1.new/src/yelp-gecko-services.cpp
420--- yelp-2.22.1/src/yelp-gecko-services.cpp 2008-04-07 20:02:52.000000000 +0200
421+++ yelp-2.22.1.new/src/yelp-gecko-services.cpp 2008-07-08 19:40:59.000000000 +0200
422@@ -21,7 +21,7 @@
423 */
424
425 #include <mozilla-config.h>
426-#include "config.h"
427+#include <config.h>
428
429 #include <stdlib.h>
430 #include <unistd.h>
431@@ -30,12 +30,18 @@
432
433 #include <nsCOMPtr.h>
434 #include <nsIComponentManager.h>
435+#include <nsComponentManagerUtils.h>
436 #include <nsIComponentRegistrar.h>
437 #include <nsIGenericFactory.h>
438 #include <nsILocalFile.h>
439 #include <nsIPrintSettings.h>
440 #include <nsServiceManagerUtils.h>
441+
442+#ifdef XPCOM_GLUE
443+#include <nsXPCOMGlue.h>
444+#else
445 #include <nsXPCOM.h>
446+#endif
447
448 #include "yelp-gecko-services.h"
449
450@@ -298,7 +304,6 @@
451 target->SetPrintInColor (gtk_print_settings_get_use_color (settings->config));
452
453 target->SetPaperSizeUnit(nsIPrintSettings::kPaperSizeMillimeters);
454- target->SetPaperSize (nsIPrintSettings::kPaperSizeDefined);
455
456 GtkPaperSize *paperSize = gtk_page_setup_get_paper_size (settings->setup);
457 if (!paperSize) {
458@@ -437,15 +442,16 @@
459 NS_ENSURE_SUCCESS (rv, );
460
461 nsCOMPtr<nsIGenericFactory> componentFactory;
462- rv = NS_NewGenericFactory(getter_AddRefs(componentFactory),
463- &(sAppComps[0]));
464-
465+ componentFactory = do_CreateInstance ("@mozilla.org/generic-factory;1", &rv);
466+
467 if (NS_FAILED(rv) || !componentFactory)
468 {
469 g_warning ("Failed to make a factory for %s\n", sAppComps[0].mDescription);
470 return;
471 }
472
473+ componentFactory->SetComponentInfo(&(sAppComps[0]));
474+
475 rv = cr->RegisterFactory(sAppComps[0].mCID,
476 sAppComps[0].mDescription,
477 sAppComps[0].mContractID,
478diff -urN yelp-2.22.1/src/yelp-gecko-utils.cpp yelp-2.22.1.new/src/yelp-gecko-utils.cpp
479--- yelp-2.22.1/src/yelp-gecko-utils.cpp 2007-04-12 23:36:05.000000000 +0200
480+++ yelp-2.22.1.new/src/yelp-gecko-utils.cpp 2008-07-08 19:40:59.000000000 +0200
481@@ -27,6 +27,10 @@
482
483 #include <nsStringAPI.h>
484
485+#ifdef HAVE_GECKO_1_9
486+#include <gtkmozembed_glue.cpp>
487+#endif
488+
489 #include <gtkmozembed.h>
490 #include <gtkmozembed_internal.h>
491 #include <nsCOMPtr.h>
492@@ -205,18 +209,45 @@
493 #ifdef HAVE_GECKO_1_9
494 NS_LogInit ();
495 #endif
496-
497+
498+ nsresult rv;
499+#ifdef XPCOM_GLUE
500+ static const GREVersionRange greVersion = {
501+ "1.9a", PR_TRUE,
502+ "2", PR_TRUE
503+ };
504+ char xpcomLocation[PATH_MAX];
505+ rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, sizeof (xpcomLocation));
506+ NS_ENSURE_SUCCESS (rv, FALSE);
507+
508+ // Startup the XPCOM Glue that links us up with XPCOM.
509+ rv = XPCOMGlueStartup(xpcomLocation);
510+ NS_ENSURE_SUCCESS (rv, FALSE);
511+
512+ rv = GTKEmbedGlueStartup();
513+ NS_ENSURE_SUCCESS (rv, FALSE);
514+
515+ rv = GTKEmbedGlueStartupInternal();
516+ NS_ENSURE_SUCCESS (rv, FALSE);
517+
518+ char *lastSlash = strrchr(xpcomLocation, '/');
519+ if (lastSlash)
520+ *lastSlash = '\0';
521+
522+ gtk_moz_embed_set_path(xpcomLocation);
523+
524+#else
525 #ifdef HAVE_GECKO_1_9
526 gtk_moz_embed_set_path (MOZILLA_HOME);
527 #else
528 gtk_moz_embed_set_comp_path (MOZILLA_HOME);
529 #endif
530+#endif // XPCOM_GLUE
531
532 gtk_moz_embed_push_startup ();
533
534 yelp_register_printing ();
535
536- nsresult rv;
537 nsCOMPtr<nsIPrefService> prefService (do_GetService (NS_PREFSERVICE_CONTRACTID, &rv));
538 NS_ENSURE_SUCCESS (rv, FALSE);
539
540diff -urN yelp-2.22.1/src/yelp-main.c yelp-2.22.1.new/src/yelp-main.c
541--- yelp-2.22.1/src/yelp-main.c 2007-08-16 21:57:38.000000000 +0200
542+++ yelp-2.22.1.new/src/yelp-main.c 2008-07-08 19:40:59.000000000 +0200
543@@ -389,7 +389,8 @@
544 }
545
546 if (!yelp_html_initialize ()) {
547- g_error ("Could not initialize gecko!");
548+ g_printerr ("Could not initialize gecko!\n");
549+ exit (1);
550 }
551
552 if (files != NULL && files[0] != NULL) {
This page took 0.132677 seconds and 4 git commands to generate.