--- gnome-python-extras-2.19.1.orig/configure.ac 2007-06-05 17:03:21.000000000 +0200 +++ gnome-python-extras-2.19.1.orig/configure.ac 2008-05-13 00:16:03.584431957 +0200 @@ -19,6 +19,7 @@ m4_define(gtkhtml2_required_version, m4_define(mozilla_required_version, 1.2b) m4_define(firefox_required_version, 1.0) m4_define(xulrunner_required_version, 1.8) +m4_define(xulrunner19_required_version, 1.9) m4_define(libgda_required_version, 2.99.6) m4_define(gksu_required_version, 1.2.5) m4_define(gksu2_required_version, 2.0.4) @@ -136,50 +137,84 @@ fi dnl should we build the gtkmozembed module? build_gtkmozembed=false AC_ARG_WITH(gtkmozembed, AS_HELP_STRING( - [--with-gtkmozembed=mozilla|firefox|xulrunner], + [--with-gtkmozembed=mozilla|firefox|xulrunner|xulrunner-1.9], [package that provides libgtkmozembed]), [mozpackage=$withval], [mozpackage=any]) if test $mozpackage = any ; then +PKG_CHECK_MODULES(GTKMOZEMBED, [libxul-embedding >= xulrunner19_required_version + gtk+-2.0 >= gtk_required_version], + [build_gtkmozembed=true; mozpackage=xulrunner-1.9; mozpkgconfig=libxul-embedding], + [ PKG_CHECK_MODULES(GTKMOZEMBED, [xulrunner-gtkmozembed >= xulrunner_required_version gtk+-2.0 >= gtk_required_version], - [build_gtkmozembed=true; mozpackage=xulrunner], + [build_gtkmozembed=true; mozpackage=xulrunner; mozpkgconfig=$mozpackage-gtkmozembed], [ PKG_CHECK_MODULES(GTKMOZEMBED, [firefox-gtkmozembed >= firefox_required_version gtk+-2.0 >= gtk_required_version], - [build_gtkmozembed=true; mozpackage=firefox], + [build_gtkmozembed=true; mozpackage=firefox; mozpkgconfig=$mozpackage-gtkmozembed], [ PKG_CHECK_MODULES(GTKMOZEMBED, [mozilla-gtkmozembed >= mozilla_required_version gtk+-2.0 >= gtk_required_version], - [build_gtkmozembed=true; mozpackage=mozilla], + [build_gtkmozembed=true; mozpackage=mozilla; mozpkgconfig=$mozpackage-gtkmozembed], build_gtkmozembed=false) ]) ]) + ]) else case $mozpackage in - xulrunner) mozpackage_required_version=xulrunner_required_version ;; - firefox) mozpackage_required_version=firefox_required_version ;; - mozilla) mozpackage_required_version=mozilla_required_version ;; - *) AC_MSG_ERROR([--with-gtkmozembed argument must be either 'mozilla', 'firefox', or 'xulrunner']) + xulrunner-1.9) mozpackage_required_version=xulrunner19_required_version ; mozpkgconfig=libxul-embedding ;; + xulrunner) mozpackage_required_version=xulrunner_required_version ; mozpkgconfig=$mozpackage-gtkmozembed ;; + firefox) mozpackage_required_version=firefox_required_version ; mozpkgconfig=$mozpackage-gtkmozembed ;; + mozilla) mozpackage_required_version=mozilla_required_version ; mozpkgconfig=$mozpackage-gtkmozembed ;; + *) AC_MSG_ERROR([--with-gtkmozembed argument must be either 'mozilla', 'firefox', 'xulrunner-1.9' or 'xulrunner']) esac -PKG_CHECK_MODULES(GTKMOZEMBED, [$mozpackage-gtkmozembed >= $mozpackage_required_version, - gtk+-2.0 >= gtk_required_version], +PKG_CHECK_MODULES(GTKMOZEMBED, [$mozpkgconfig >= $mozpackage_required_version, + gtk+-2.0 >= gtk_required_version], build_gtkmozembed=true, build_gtkmozembed=false) fi -AM_CONDITIONAL(BUILD_GTKMOZEMBED, $build_gtkmozembed) +if test $mozpackage = xulrunner-1.9; then +GTKMOZEMBED_CFLAGS="$GTKMOZEMBED_CFLAGS $(pkg-config --cflags --define-variable=includetype=unstable libxul-embedding)" +GTKMOZEMBED_LIBS="$GTKMOZEMBED_LIBS $(pkg-config --libs libxul-embedding)" + +else + if test -n "$export_dynamic"; then GTKMOZEMBED_LIBS=`echo $GTKMOZEMBED_LIBS | sed -e "s/$export_dynamic//"` fi MOZILLA_HOME="`$PKG_CONFIG --variable=libdir $mozpackage-gtkmozembed`" AC_SUBST(MOZILLA_HOME) +fi +AM_CONDITIONAL(BUILD_GTKMOZEMBED, $build_gtkmozembed) + +AC_LANG_PUSH(C++) +_SAVE_CPPFLAGS=$CPPFLAGS +_SAVE_CXXFLAGS=$CXXFLAGS +CXXFLAGS=$GTKMOZEMBED_CFLAGS +CPPFLAGS= +AC_COMPILE_IFELSE([AC_LANG_SOURCE( +[[#ifndef XPCOM_GLUE +#error "no xpcom glue" +#endif]])], +[have_xpcom_glue=yes], [have_xpcom_glue=yes] +) +CPPFLAGS=$_SAVE_CPPFLAGS +CXXFLAGS=$_SAVE_CXXFLAGS +AC_LANG_POP(C++) + +AM_CONDITIONAL(HAVE_XPCOM_GLUE, [test $have_xpcom_glue=yes]) +if test "$have_xpcom_glue" = "yes"; then + AC_DEFINE(HAVE_XPCOM_GLUE, 1, + [Define to 1 if libxpcomglue is being used.]) +fi dnl should we build the gtkspell module? build_gtkspell=false --- gnome-python-extras-2.19.1.orig/gtkmozembed/Makefile.am 2007-06-05 16:52:30.000000000 +0200 +++ gnome-python-extras-2.19.1.orig/gtkmozembed/Makefile.am 2008-05-12 23:36:28.008932649 +0200 @@ -13,9 +13,15 @@ pkgpyexecdir = $(pyexecdir)/gtk-2.0 pkgpyexec_LTLIBRARIES = gtkmozembed.la gtkmozembed_la_LDFLAGS = -module -avoid-version \ -export-symbols-regex initgtkmozembed \ - -R$(MOZILLA_HOME) + $(NULL) + +# only use rpath for non-glue builds +if !HAVE_XPCOM_GLUE + gtkmozembed_la_LDFLAGS + = -R$(MOZILLA_HOME) +endif + gtkmozembed_la_LIBADD = $(GTKMOZEMBED_LIBS) -gtkmozembed_la_SOURCES = gtkmozembedmodule.c +gtkmozembed_la_SOURCES = gtkmozembedmodule.cpp nodist_gtkmozembed_la_SOURCES = gtkmozembed.c gtkmozembed.c: gtkmozembed.defs gtkmozembed.override CLEANFILES = gtkmozembed.c --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ gnome-python-extras-2.19.1/gtkmozembed/gtkmozembedmodule.cpp 2008-05-12 23:36:05.284429256 +0200 @@ -0,0 +1,73 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +/* include this first, before NO_IMPORT_PYGOBJECT is defined */ +#include +#include + +#ifdef XPCOM_GLUE +#include "gtkmozembed_glue.cpp" +#endif + +G_BEGIN_DECLS +void initgtkmozembed(void); +void pygtkmozembed_add_constants(PyObject *module, const gchar *strip_prefix); +void pygtkmozembed_register_classes (PyObject *d); +G_END_DECLS + +extern PyMethodDef pygtkmozembed_functions[]; + +void +initgtkmozembed(void) +{ + PyObject *m, *d; + int argc = 0; + + init_pygobject (); + +#ifdef XPCOM_GLUE + static const GREVersionRange greVersion = { + "1.9b", PR_TRUE, + "1.9.*", PR_TRUE + }; + char xpcomLocation[4096]; + nsresult rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096); + if (NS_FAILED(rv)) { + printf("failed 1\n"); + return; + } else printf("location: %s \n", xpcomLocation); + + // Startup the XPCOM Glue that links us up with XPCOM. + XPCOMGlueStartup(xpcomLocation); + if (NS_FAILED(rv)) { + printf("failed 2\n"); + return; + } + printf("before 3\n"); + + rv = GTKEmbedGlueStartup(); + if (NS_FAILED(rv)) {printf("location: %s \n", xpcomLocation); + printf("failed 3\n"); + return; + } + + //gtk_moz_embed_set_comp_path(xpcomLocation); + + char *lastSlash = strrchr(xpcomLocation, '/'); + if (lastSlash) + *lastSlash = '\0'; + + gtk_moz_embed_set_path(xpcomLocation); +#endif + + m = Py_InitModule ("gtkmozembed", pygtkmozembed_functions); + d = PyModule_GetDict (m); + + pygtkmozembed_add_constants(m, "GTK_MOZ_EMBED_"); + pygtkmozembed_register_classes (d); + + if (PyErr_Occurred ()) { + Py_FatalError ("can't initialise module gtkmozembed"); + } +}