]> git.pld-linux.org Git - packages/yelp.git/blob - yelp-libxul.patch
- fix build with xulrunner 1.9
[packages/yelp.git] / yelp-libxul.patch
1 diff -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
40 diff -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
382 diff -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           \
419 diff -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,
478 diff -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  
540 diff -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.118165 seconds and 4 git commands to generate.