SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
You mean symlinking /usr/lib/mozilla/plugins to /usr/lib/firefox-3.0/plugins to get access to installed plugins? There's no other way to do it.
Yea.. Your right. I guess I forgot you were symlinking. Doesn't matter as long as you have a /usr/lib/firefox/plugins. I symlink myself, only to /usr/lib/xulrunner/plugins. That way it picks up on null and unixprint, neither of which are particullarly usefull. But, if I'm using the runtime libs there, might as well use the plugin directory as well.
What I don't like is when people dump to /usr/lib/mozilla/plugins assuming that they will be found by all programs; cause they're not. Azureus is the only one I know of off hand that does it, but now that 3.0 is out, it finds everything it needs by way of /etc/gre.d/ which is pretty nice.
Which reminds me, I think you'll have a ghost file "/etc/gre.d/1.9.conf" not accounted for by pkgtool. Try uninstalling xulrunner and look at pkgtools output for "new files"...
No, /etc/gre.d/1.9.conf is definitely accounted for. It appears in /var/log/packages/var/log/packages/xulrunner-1.9-native-1_dc. I also don't see any messages about "new files" when I uninstall XULRunner.
Also, I tried symlinking /usr/lib/mozilla/plugins to /usr/lib/xulrunner-1.9/plugins. It didn't work (Firefox couldn't see the plugins there).
EDIT:
Jong, have you been able to build devhelp (part of Gnome) against XULRunner 1.9? The current versions don't recognize XULRunner 1.9. I tried applying patches from Fedora, Debian and Ubuntu (although I think Debian's and Ubuntu's are the same patch) and they don't work. With Fedora's configure fails, and with Debian and Ubuntu's, make fails. I can't build it against seamonkey either (again, make fails). Any luck on your end?
EDIT: Also tried patches from Arch Linux's subversion repository. They didn't work. Tried building against Seamonkey as well. Couldn't do that either.
Interesting. 1.9.conf was "# Generated Automatically. Do not edit" and wasn't installed via make install on my end. Something that happened at run-time...
Also, I symlink plugins like so:
( cd $PKG/usr/lib/firefox
ln -sf ../xulrunner/plugins . )
I avoid /usr/lib/mozilla altogether. And I have no use for devhelp at all so I don't build it. The seahorse epiphany plugin seems to be unmaintained as well. The developer told me to install xul-1.8 after 2 weeks of posting the bug report. Whatever. Doesn't matter if epiphany has a gecko or webkit backend, seahorse just hasn't migrated to the new API aparently, altho ./m4/gecko.m4 seems to indicate otherwise. Dunno. I just scrathed it off my list.
I have enough things on my plate as it is without taking over dev on other peoples code.
For quite a while, I've been working towards putting Firefox 3 on GnomeSlackBuild.
The GnomeSlackBuild devs built their own version of Firefox 2, and every package they could against it. Upgrading to Firefox 3 breaks those packages.
That means upgrading GnomeSlackBuild's Firefox to version 3.0 is more difficult on GnomeSlackBuild than on competing GNOME distributions. You have to take the packages depending on Firefox, and rebuild them against XULRunner 1.9.
In the end, they were not difficult to write. Only one needed to be patched to support XULRunner 1.9.
The only package I could not build against XULRunner 1.9 was devhelp. I think that's acceptable.
Anyway, here's what the GnomeSlackBuild documentation says:
Quote:
This is a shared library version of Mozilla Firefox. You must replace the Slackware Mozilla with the GSB version if you plan to use Epiphany (GNOME Browser), Yelp (GNOME Help System), GNOME Python (for the gtkmozembed widget for some Python applications), DevHelp (Developement Documentation Browser), or any Mono applications.
Note: Some apps linked against mozilla-firefox (our version is shared) may have hard coded runtime paths to gtkembodmoz, and these will need to be rebuilt when mozilla-firefox versions change.
Was kinda bored so I thought I'd tackle devhelp. Patch it and then run ./autogen.sh to update configure. You'll
need gnome-common installed first ofcourse. It will automatically use libxul-embedding so no need for a gecko
arguement. Just sysconfdir & prefix.
devhelp xulrunner 1.9 patch gecko (google)
Code:
Index: devhelp-0.19.1/m4/gecko.m4
===================================================================
--- devhelp-0.19.1.orig/m4/gecko.m4 2008-05-25 18:55:36.000000000 +0200
+++ devhelp-0.19.1/m4/gecko.m4 2008-05-27 12:20:49.989150297 +0200
@@ -13,7 +13,7 @@
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
-# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
# GECKO_INIT(VARIABLE,[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
#
@@ -32,6 +32,7 @@
# VARIABLE: Which gecko was found (e.g. "xulrunnner", "seamonkey", ...)
# VARIABLE_FLAVOUR: The flavour of the gecko that was found
# VARIABLE_HOME:
+# VARIABLE_NSPR: set if nspr is provided by gecko flags
# VARIABLE_PREFIX:
# VARIABLE_INCLUDE_ROOT:
# VARIABLE_VERSION: The version of the gecko that was found
@@ -51,7 +52,7 @@ AC_PROG_AWK
AC_MSG_CHECKING([which gecko to use])
AC_ARG_WITH([gecko],
- AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner@:>@],
+ AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner|libxul-embedding|libxul@:>@],
[Which gecko engine to use (autodetected by default)]))
# Backward compat
@@ -60,12 +61,15 @@ AC_ARG_WITH([mozilla],[],[with_gecko=$wi
gecko_cv_gecko=$with_gecko
# Autodetect gecko
-_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla"
+_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla libxul-embedding libxul"
if test -z "$gecko_cv_gecko"; then
for lizard in $_geckos; do
if $PKG_CONFIG --exists $lizard-xpcom; then
gecko_cv_gecko=$lizard
break;
+ elif $PKG_CONFIG --exists $lizard-unstable; then
+ gecko_cv_gecko=$lizard
+ break;
fi
done
fi
@@ -82,6 +86,14 @@ else
gecko_cv_have_gecko=yes
fi
+AC_MSG_CHECKING([manual gecko home set])
+
+AC_ARG_WITH([gecko-home],
+ AS_HELP_STRING([--with-gecko-home@<:@=[path]@:>@],
+ [Manually set MOZILLA_FIVE_HOME]))
+
+gecko_cv_gecko_home=$with_gecko_home
+
# ****************
# Define variables
# ****************
@@ -93,27 +105,38 @@ mozilla) gecko_cv_gecko_flavour=mozilla
seamonkey) gecko_cv_gecko_flavour=mozilla ;;
*firefox) gecko_cv_gecko_flavour=toolkit ;;
xulrunner) gecko_cv_gecko_flavour=toolkit ;;
+libxul*) gecko_cv_gecko_flavour=toolkit ;;
esac
-_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`"
-_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
-_GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
-_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`"
-
+if $PKG_CONFIG --exists ${gecko_cv_gecko}-xpcom; then
+ _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`"
+ _GECKO_CFLAGS="-I$_GECKO_INCLUDE_ROOT"
+ _GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
+ _GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
+ _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`"
+ _GECKO_NSPR=no # XXX asac: this is currently a blind guess and should be a AC test
+else
+ _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}`/unstable"
+ _GECKO_CFLAGS="`$PKG_CONFIG --cflags ${gecko_cv_gecko}` `$PKG_CONFIG --cflags ${gecko_cv_gecko}-unstable`"
+ _GECKO_LIBDIR="`$PKG_CONFIG --variable=sdkdir ${gecko_cv_gecko}`/bin"
+ _GECKO_HOME=$with_gecko_home
+ _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}`"
+ _GECKO_NSPR=no # XXX asac: this is currently a blind guess and should be a AC test
+fi
fi # if gecko_cv_have_gecko
if test "$gecko_cv_gecko_flavour" = "toolkit"; then
AC_DEFINE([HAVE_MOZILLA_TOOLKIT],[1],[Define if mozilla is of the toolkit flavour])
fi
-AM_CONDITIONAL([HAVE_MOZILLA_TOOLKIT],[test "$gecko_cv_gecko_flavour" = "toolkit"])
-
$1[]=$gecko_cv_gecko
$1[]_FLAVOUR=$gecko_cv_gecko_flavour
$1[]_INCLUDE_ROOT=$_GECKO_INCLUDE_ROOT
+$1[]_CFLAGS=$_GECKO_CFLAGS
$1[]_LIBDIR=$_GECKO_LIBDIR
$1[]_HOME=$_GECKO_HOME
$1[]_PREFIX=$_GECKO_PREFIX
+$1[]_NSPR=$_GECKO_NSPR
# **************************************************************
# This is really gcc-only
@@ -184,7 +207,7 @@ if test "$gecko_cv_have_gecko" = "yes";
AC_LANG_PUSH([C++])
_SAVE_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT"
+CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS"
AC_MSG_CHECKING([[whether we have a gtk 2 gecko build]])
AC_RUN_IFELSE(
@@ -217,6 +240,18 @@ AC_COMPILE_IFELSE(
[gecko_cv_have_debug=no])
AC_MSG_RESULT([$gecko_cv_have_debug])
+AC_MSG_CHECKING([[whether we have a xpcom glue]])
+AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+ #ifndef XPCOM_GLUE
+ #error "no xpcom glue found"
+ #endif]]
+ )],
+ [gecko_cv_have_xpcom_glue=yes],
+ [gecko_cv_have_xpcom_glue=no])
+AC_MSG_RESULT([$gecko_cv_have_xpcom_glue])
+
CPPFLAGS="$_SAVE_CPPFLAGS"
AC_LANG_POP([C++])
@@ -228,9 +263,11 @@ if test "$gecko_cv_have_debug" = "yes";
AC_DEFINE([HAVE_GECKO_DEBUG],[1],[Define if gecko is a debug build])
fi
-fi # if gecko_cv_have_gecko
+if test "$gecko_cv_have_xpcom_glue" = "yes"; then
+ AC_DEFINE([HAVE_GECKO_XPCOM_GLUE],[1],[Define if xpcom glue is used])
+fi
-AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_debug" = "yes"])
+fi # if gecko_cv_have_gecko
# ***********************
# Check for gecko version
@@ -241,7 +278,7 @@ if test "$gecko_cv_have_gecko" = "yes";
AC_LANG_PUSH([C++])
_SAVE_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT"
+CPPFLAGS="$CPPFLAGS $_GECKO_CFLAGS"
AC_CACHE_CHECK([for gecko version],
[gecko_cv_gecko_version],
@@ -311,11 +348,6 @@ fi
fi # if gecko_cv_have_gecko
-AM_CONDITIONAL([HAVE_GECKO_1_7],[test "$gecko_cv_gecko_version_int" -ge "1007000"])
-AM_CONDITIONAL([HAVE_GECKO_1_8],[test "$gecko_cv_gecko_version_int" -ge "1008000"])
-AM_CONDITIONAL([HAVE_GECKO_1_8_1],[test "$gecko_cv_gecko_version_int" -ge "1008001"])
-AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$gecko_cv_gecko_version_int" -ge "1009000"])
-
$1[]_VERSION=$gecko_cv_gecko_version
$1[]_VERSION_INT=$gecko_cv_gecko_version_int
@@ -328,8 +360,11 @@ gecko_cv_glue_libs=
gecko_cv_extra_pkg_dependencies=
if test "$gecko_cv_gecko_version_int" -ge "1009000"; then
- gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul"
- gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue_s"
+ if ! test "$gecko_cv_have_xpcom_glue" = "yes"; then
+ gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul"
+ else
+ gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue"
+ fi
else
gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed"
fi
@@ -340,6 +375,29 @@ $1[]_GLUE_LIBS="$gecko_cv_glue_libs"
])
+# GECKO_DEFINES
+#
+# Defines the AM_CONDITIONALS for GECKO_INIT. This is a separate call
+# so that you may call GECKO_INIT conditionally; but note that you must
+# call GECKO_DEFINES _unconditionally_ !
+
+AC_DEFUN([GECKO_DEFINES],
+[
+# Ensure we have an integer variable to compare with
+if test -z "$gecko_cv_gecko_version_int"; then
+ gecko_cv_gecko_version_int=0
+fi
+AM_CONDITIONAL([HAVE_MOZILLA_TOOLKIT],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_flavour" = "toolkit"])
+AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_have_debug" = "yes"])
+AM_CONDITIONAL([HAVE_GECKO_1_7],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1007000"])
+AM_CONDITIONAL([HAVE_GECKO_1_8],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1008000"])
+AM_CONDITIONAL([HAVE_GECKO_1_8_1],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1008001"])
+AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1009000"])
+AM_CONDITIONAL([HAVE_GECKO_HOME],[test "x$_GECKO_HOME" != "x"])
+AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_debug" = "yes"])
+AM_CONDITIONAL([HAVE_GECKO_XPCOM_GLUE],[test "$gecko_cv_have_xpcom_glue" = "yes"])
+])
+
# ***************************************************************************
# ***************************************************************************
# ***************************************************************************
@@ -359,10 +417,20 @@ _SAVE_CPPFLAGS="$CPPFLAGS"
_SAVE_CXXFLAGS="$CXXFLAGS"
_SAVE_LDFLAGS="$LDFLAGS"
_SAVE_LIBS="$LIBS"
-CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)"
-CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)"
-LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME"
-LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)"
+if test "${gecko_cv_gecko}" = "libxul-embedding" -o "${gecko_cv_gecko}" = "libxul"; then
+ CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-unstable)"
+ CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-unstable)"
+ LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}) -ldl"
+else
+ CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)"
+ CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)"
+ LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)"
+fi
+if test -n "$_GECKO_HOME"; then
+ LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME"
+else
+ LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS"
+fi
_GECKO_DISPATCH_INCLUDEDIRS="$2"
@@ -371,9 +439,11 @@ _GECKO_DISPATCH_INCLUDEDIRS="$2"
# Mind you, it's useful to be able to test against uninstalled mozilla builds...
_GECKO_DISPATCH_INCLUDEDIRS="$_GECKO_DISPATCH_INCLUDEDIRS dom necko pref"
-# Now add them to CPPFLAGS
+# Now add them to CPPFLAGS - asac: well ... not anymore since 1.9 -> test whether they exist before adding.
for i in $_GECKO_DISPATCH_INCLUDEDIRS; do
- CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i"
+ if test -d "$_GECKO_INCLUDE_ROOT/$i"; then
+ CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i"
+ fi
done
m4_indir([$1],m4_shiftn(2,$@))
@@ -426,11 +496,17 @@ AC_DEFUN([GECKO_XPCOM_PROGRAM],
#include <mozilla-config.h>
#include <stdlib.h>
#include <stdio.h>
+
+#ifdef XPCOM_GLUE
+#include <nsXPCOMGlue.h>
+#else
#include <nsXPCOM.h>
+#endif // XPCOM_GLUE
+
#include <nsCOMPtr.h>
#include <nsILocalFile.h>
#include <nsIServiceManager.h>
-#ifdef HAVE_GECKO_1_8
+#if defined(HAVE_GECKO_1_8) || defined(HAVE_GECKO_1_9)
#include <nsStringAPI.h>
#else
#include <nsString.h>
@@ -438,16 +514,37 @@ AC_DEFUN([GECKO_XPCOM_PROGRAM],
]]
[$1],
[[
+
+nsresult rv;
+#ifdef XPCOM_GLUE
+ static const GREVersionRange greVersion = {
+ "1.8", PR_TRUE,
+ "1.9.*", PR_TRUE
+ };
+ char xpcomLocation[4096];
+ rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096);
+ if (NS_FAILED(rv)) {
+ exit(123);
+ }
+
+ // Startup the XPCOM Glue that links us up with XPCOM.
+ XPCOMGlueStartup(xpcomLocation);
+ if (NS_FAILED(rv)) {
+ exit(124);
+ }
+#endif // XPCOM_GLUE
+
// redirect unwanted mozilla debug output to the bit bucket
freopen ("/dev/null", "w", stdout);
-nsresult rv;
-nsCOMPtr<nsILocalFile> directory;
+nsCOMPtr<nsILocalFile> directory = nsnull;
+#ifndef XPCOM_GLUE
rv = NS_NewNativeLocalFile (NS_LITERAL_CSTRING("$_GECKO_HOME"), PR_FALSE,
getter_AddRefs (directory));
if (NS_FAILED (rv) || !directory) {
exit (126);
}
+#endif
rv = NS_InitXPCOM2 (nsnull, directory, nsnull);
if (NS_FAILED (rv)) {
@@ -595,21 +692,22 @@ fi
AC_DEFUN([GECKO_XPIDL],
[AC_REQUIRE([GECKO_INIT])dnl
-_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
+if test ${gecko_cv_gecko} = "libxul-embedding" -o ${gecko_cv_gecko} = "libxul"; then
+ _GECKO_LIBDIR="`$PKG_CONFIG pkg-config --variable=sdkdir ${gecko_cv_gecko}`/bin"
+else
+ _GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
+fi
AC_PATH_PROG([XPIDL],[xpidl],[no],[$_GECKO_LIBDIR:$PATH])
+if test ${gecko_cv_gecko} = "libxul-embedding" -o ${gecko_cv_gecko} = "libxul"; then
+XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}`"
+else
XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}-xpcom`"
-
-# Older geckos don't have this variable, see
-# https://bugzilla.mozilla.org/show_bug.cgi?id=240473
-
if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then
XPIDL_IDLDIR="`echo $_GECKO_LIBDIR | sed -e s!lib!share/idl!`"
fi
-
# Some distributions (Gentoo) have it in unusual places
-
if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then
XPIDL_IDLDIR="$_GECKO_INCLUDE_ROOT/idl"
fi
Index: devhelp-0.19.1/configure.in
===================================================================
--- devhelp-0.19.1.orig/configure.in 2008-05-25 18:56:13.000000000 +0200
+++ devhelp-0.19.1/configure.in 2008-05-27 13:19:21.246154749 +0200
@@ -19,6 +19,8 @@ AM_PROG_LIBTOOL
AM_PATH_GLIB_2_0
+AM_PROG_CC_C_O
+
IT_PROG_INTLTOOL([0.35.5])
AC_PATH_PROG(GCONFTOOL, gconftool-2)
@@ -66,6 +68,7 @@ PKG_CHECK_MODULES(LIBDEVHELP, [
# *****
GECKO_INIT([GECKO])
+GECKO_DEFINES
AC_SUBST([GECKO])
AC_SUBST([GECKO_FLAVOUR])
@@ -73,6 +76,7 @@ AC_SUBST([GECKO_INCLUDE_ROOT])
AC_SUBST([GECKO_HOME])
AC_SUBST([GECKO_PREFIX])
AC_SUBST([GECKO_EXTRA_LIBS])
+AC_SUBST([GECKO_GLUE_LIBS])
case "$GECKO" in
mozilla) gecko_min_version=1.7 ;;
@@ -80,9 +84,18 @@ seamonkey) gecko_min_version=1.0 ;;
*firefox) gecko_min_version=1.0 ;;
*thunderbird) gecko_min_version=1.0 ;;
xulrunner) gecko_min_version=1.8 ;;
+libxul*) gecko_min_version=1.9 ;;
+*) AC_MSG_ERROR([$gecko_cv_gecko is not supported])
esac
-PKG_CHECK_MODULES([GECKO],[$GECKO_EXTRA_PKG_DEPENDENCIES $GECKO-xpcom >= $gecko_min_version])
+if test $GECKO = libxul-embedding; then
+ GECKO_CFLAGS=`pkg-config --cflags libxul-embedding '>=' $gecko_min_version $gecko_cv_extra_pkg_dependencies`
+ GECKO_LIBS=`pkg-config --libs libxul-embedding '>=' $gecko_min_version $gecko_cv_extra_pkg_dependencies`
+else
+ GECKO_CFLAGS=`pkg-config --cflags ${GECKO}-xpcom '>=' $gecko_min_version $GECKO_EXTRA_PKG_DEPENDENCIES`
+ GECKO_LIBS=`pkg-config --libs ${GECKO}-xpcom '>=' $gecko_min_version $GECKO_EXTRA_PKG_DEPENDENCIES`
+fi
+
AC_SUBST([GECKO_CFLAGS])
AC_SUBST([GECKO_LIBS])
Index: devhelp-0.19.1/src/Makefile.am
===================================================================
--- devhelp-0.19.1.orig/src/Makefile.am 2008-05-25 18:55:37.000000000 +0200
+++ devhelp-0.19.1/src/Makefile.am 2008-05-27 12:20:50.001150076 +0200
@@ -25,17 +25,11 @@ devhelp_LDADD = \
$(DEVHELP_LIBS) \
libdevhelp-1.la
-devhelp_LDFLAGS = -R$(GECKO_HOME) $(AM_LDFLAGS)
+devhelp_LDFLAGS = $(AM_LDFLAGS)
-# Build the C++ code in a separate library so we can use our warning
-# flags for the C code.
-noinst_LTLIBRARIES = libcppwrapper.la
-
-libcppwrapper_la_SOURCES = \
- Yelper.cpp \
- Yelper.h \
- dh-gecko-utils.cpp \
- dh-gecko-utils.h
+if !HAVE_GECKO_XPCOM_GLUE
+devhelp_LDFLAGS += -R$(GECKO_HOME)
+endif
gecko_include_subdirs = \
. \
@@ -53,23 +47,6 @@ gecko_include_subdirs = \
string \
xpcom
-libcppwrapper_la_CPPFLAGS = \
- $(DEFINES) \
- -DALLOW_PRIVATE_API \
- -DGECKO_HOME=\""$(GECKO_HOME)\"" \
- -include $(GECKO_INCLUDE_ROOT)/mozilla-config.h \
- $(addprefix -I$(GECKO_INCLUDE_ROOT)/,$(gecko_include_subdirs)) \
- $(LIBDEVHELP_CFLAGS) \
- $(AM_CPPFLAGS)
-
-libcppwrapper_la_CXXFLAGS = \
- $(GECKO_CFLAGS) \
- $(AM_CXXFLAGS)
-
-libcppwrapper_la_LIBADD = \
- $(GECKO_LIBS) \
- $(GECKO_EXTRA_LIBS)
-
lib_LTLIBRARIES = libdevhelp-1.la
devhelpincludedir = $(includedir)/devhelp-1.0/devhelp
@@ -88,6 +65,10 @@ devhelpinclude_HEADERS = \
eggfindbar.h
libdevhelp_1_la_SOURCES = \
+ Yelper.cpp \
+ Yelper.h \
+ dh-gecko-utils.cpp \
+ dh-gecko-utils.h \
bacon-message-connection.c \
bacon-message-connection.h \
dh-marshal-main.c \
@@ -106,6 +87,8 @@ libdevhelp_1_la_SOURCES = \
libdevhelp_1_la_CPPFLAGS = \
$(DEFINES) \
+ -DALLOW_PRIVATE_API \
+ -DGECKO_HOME=\""$(GECKO_HOME)\"" \
$(addprefix -I$(GECKO_INCLUDE_ROOT)/,$(gecko_include_subdirs)) \
$(AM_CPPFLAGS)
@@ -115,13 +98,21 @@ libdevhelp_1_la_CFLAGS = \
$(GECKO_CFLAGS) \
$(AM_CFLAGS)
+libdevhelp_1_la_CXXFLAGS = \
+ $(LIBDEVHELP_CFLAGS) \
+ $(GECKO_CFLAGS) \
+ $(AM_CXXFLAGS)
+
libdevhelp_1_la_LIBADD = \
- libcppwrapper.la \
$(LIBDEVHELP_LIBS) \
$(GECKO_LIBS) \
$(GECKO_EXTRA_LIBS)
-libdevhelp_1_la_LDFLAGS = -R$(GECKO_HOME) $(AM_LDFLAGS)
+libdevhelp_1_la_LDFLAGS = $(AM_LDFLAGS)
+
+if !HAVE_GECKO_XPCOM_GLUE
+libdevhelp_1_la_LDFLAGS += -R$(GECKO_HOME)
+endif
dh-marshal.h: dh-marshal.list
(cd $(srcdir) && \
Index: devhelp-0.19.1/src/dh-gecko-utils.cpp
===================================================================
--- devhelp-0.19.1.orig/src/dh-gecko-utils.cpp 2008-05-25 18:55:37.000000000 +0200
+++ devhelp-0.19.1/src/dh-gecko-utils.cpp 2008-05-27 12:20:50.001150076 +0200
@@ -21,6 +21,9 @@
*/
#include <config.h>
+#ifdef XPCOM_GLUE
+# include <gtkmozembed_glue.cpp>
+#endif
#include <gtkmozembed.h>
#include <gtkmozembed_internal.h>
@@ -41,7 +44,7 @@
#include <stdlib.h>
-#ifndef HAVE_GECKO_1_8
+#if !defined(HAVE_GECKO_1_8) && !defined(HAVE_GECKO_1_9)
#if defined (HAVE_CHROME_NSICHROMEREGISTRYSEA_H)
#include <chrome/nsIChromeRegistrySea.h>
#elif defined(MOZ_NSIXULCHROMEREGISTRY_SELECTSKIN)
@@ -226,7 +229,7 @@ dh_gecko_utils_set_font (gint type, cons
g_free (name);
}
-#ifndef HAVE_GECKO_1_8
+#if !defined(HAVE_GECKO_1_8) && !defined(HAVE_GECKO_1_9)
static nsresult
getUILang (nsAString& aUILang)
@@ -286,7 +289,7 @@ gecko_utils_init_chrome (void)
#endif
}
-#endif /* !HAVE_GECKO_1_8 */
+#endif /* !HAVE_GECKO_1_8 && !HAVE_GECKO_1_9 */
static nsresult
gecko_utils_init_prefs (void)
@@ -318,11 +321,57 @@ dh_gecko_utils_init (void)
NS_LogInit ();
#endif
+nsresult rv;
+#ifdef XPCOM_GLUE
+ static const GREVersionRange greVersion = {
+ "1.9a", PR_TRUE,
+ "1.9.*", PR_TRUE
+ };
+ char xpcomLocation[4096];
+ rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096);
+ if (NS_FAILED (rv))
+ {
+ g_warning ("Could not determine locale!\n");
+ return;
+ }
+
+ // Startup the XPCOM Glue that links us up with XPCOM.
+ rv = XPCOMGlueStartup(xpcomLocation);
+ if (NS_FAILED (rv))
+ {
+ g_warning ("Could not determine locale!\n");
+ return;
+ }
+
+ rv = GTKEmbedGlueStartup();
+ if (NS_FAILED (rv))
+ {
+ g_warning ("Could not startup embed glue!\n");
+ return;
+ }
+
+ #ifdef GTKEmbedGlueStartupInternal
+ rv = GTKEmbedGlueStartupInternal();
+ if (NS_FAILED (rv))
+ {
+ g_warning ("Could not startup embed glue (internal)!\n");
+ return;
+ }
+ #endif
+
+ char *lastSlash = strrchr(xpcomLocation, '/');
+ if (lastSlash)
+ *lastSlash = '\0';
+
+ gtk_moz_embed_set_path(xpcomLocation);
+
+#else
#ifdef HAVE_GECKO_1_9
gtk_moz_embed_set_path (GECKO_HOME);
#else
gtk_moz_embed_set_comp_path (GECKO_HOME);
#endif
+#endif // XPCOM_GLUE
gchar *profile_dir = g_build_filename (g_get_home_dir (),
".gnome2",
@@ -336,7 +385,7 @@ dh_gecko_utils_init (void)
gecko_utils_init_prefs ();
-#ifndef HAVE_GECKO_1_8
+#if !defined(HAVE_GECKO_1_8) && !defined(HAVE_GECKO_1_9)
gecko_utils_init_chrome ();
#endif
}
Index: devhelp-0.19.1/src/default-prefs-gecko-1-9.js
===================================================================
--- devhelp-0.19.1.orig/src/default-prefs-gecko-1-9.js 2008-05-25 18:55:37.000000000 +0200
+++ devhelp-0.19.1/src/default-prefs-gecko-1-9.js 2008-05-27 12:20:50.001150076 +0200
@@ -1,2 +1,2 @@
-pref("browser.display.use_document_colors", false);
+pref("browser.display.use_document_colors", true);
Don't forget the last line there with one space... Crap. It cut that off. Some code box. Put a blank line
at the end with just one space.
This gives me an idea for seahorse so thanks for bring up devhelp dugan...
BTW, I think it's pretty nice that the dev files were split from Firefox. GSB should no longer have to ship firefox and
people can go back to using the stock Slackware package. I've made it optional on my Gnome build.
And those gnome packages that used to depend on firefox will now depend on xulrunner so... Nothing has changed really.
You've always needed a gecko to build those packages that you mentioned, and you still do.
I'm curious, what other package needed patching for 1.9? Regardless of what it is, it's only a matter of time until
they migrate to gecko1.9....
EDIT - Just checked. It's gnome-python-extras. Nevermind. I dropped that package awhile back because I didn't see a
need for it and development looks to be stalled.
--- ./m4/gecko.m4
+++ ./m4/gecko.m4
@@ -46,31 +46,34 @@
# ************************
# Check which gecko to use
# ************************
AC_MSG_CHECKING([which gecko to use])
AC_ARG_WITH([gecko],
- AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner@:>@],
+ AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner|libxul-unstable@:>@],
[Which gecko engine to use (autodetected by default)]))
# Backward compat
AC_ARG_WITH([mozilla],[],[with_gecko=$withval],[])
gecko_cv_gecko=$with_gecko
# Autodetect gecko
-_geckos="firefox mozilla-firefox seamonkey mozilla xulrunner"
+_geckos="firefox mozilla-firefox seamonkey mozilla xulrunner libxul-unstable"
if test -z "$gecko_cv_gecko"; then
for lizard in $_geckos; do
if $PKG_CONFIG --exists $lizard-xpcom; then
gecko_cv_gecko=$lizard
break;
+ elif $PKG_CONFIG --exists $lizard; then
+ gecko_cv_gecko=$lizard
+ break;
fi
done
fi
AC_MSG_RESULT([$gecko_cv_gecko])
if test "x$gecko_cv_gecko" = "x"; then
ifelse([$3],,[AC_MSG_ERROR([No gecko found; you may need to adjust PKG_CONFIG_PATH or install a mozilla/firefox/xulrunner -devel package])],[$3])
@@ -88,21 +91,28 @@
if test "$gecko_cv_have_gecko" = "yes"; then
case "$gecko_cv_gecko" in
mozilla) gecko_cv_gecko_flavour=mozilla ;;
seamonkey) gecko_cv_gecko_flavour=mozilla ;;
*firefox) gecko_cv_gecko_flavour=toolkit ;;
xulrunner) gecko_cv_gecko_flavour=toolkit ;;
+libxul*) gecko_cv_gecko_flavour=toolkit ;;
esac
+if test $gecko_cv_gecko = libxul-unstable; then
+_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}`/unstable"
+_GECKO_HOME=""
+_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}`"
+else
_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`"
_GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`"
+fi
fi # if gecko_cv_have_gecko
if test "$gecko_cv_gecko_flavour" = "toolkit"; then
AC_DEFINE([HAVE_MOZILLA_TOOLKIT],[1],[Define if mozilla is of the toolkit flavour])
fi
AM_CONDITIONAL([HAVE_MOZILLA_TOOLKIT],[test "$gecko_cv_gecko_flavour" = "toolkit"])
@@ -349,27 +359,34 @@
fi
AC_LANG_PUSH([C++])
_SAVE_CPPFLAGS="$CPPFLAGS"
_SAVE_CXXFLAGS="$CXXFLAGS"
_SAVE_LDFLAGS="$LDFLAGS"
_SAVE_LIBS="$LIBS"
+if test $gecko_cv_gecko = libxul-unstable; then
+CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko})"
+CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko})"
+LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS"
+LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko})"
+else
CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)"
CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)"
LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME"
LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)"
+fi
_GECKO_DISPATCH_INCLUDEDIRS="$2"
# Sigh Gentoo has a rubbish header layout
# http://bugs.gentoo.org/show_bug.cgi?id=100804
# Mind you, it's useful to be able to test against uninstalled mozilla builds...
-_GECKO_DISPATCH_INCLUDEDIRS="$_GECKO_DISPATCH_INCLUDEDIRS dom necko pref"
+_GECKO_DISPATCH_INCLUDEDIRS="$_GECKO_DISPATCH_INCLUDEDIRS dom necko pref unstable"
# Now add them to CPPFLAGS
for i in $_GECKO_DISPATCH_INCLUDEDIRS; do
CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i"
done
m4_indir([$1],m4_shiftn(2,$@))
@@ -585,21 +602,29 @@
#
# Variables set:
# XPIDL: the xpidl program
# XPIDL_IDLDIR: the xpidl include directory
AC_DEFUN([GECKO_XPIDL],
[AC_REQUIRE([GECKO_INIT])dnl
+if test $gecko_cv_gecko = libxul-unstable; then
+_GECKO_LIBDIR="`$PKG_CONFIG --variable=sdkdir ${gecko_cv_gecko}`/bin"
+else
_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`"
+fi
AC_PATH_PROG([XPIDL],[xpidl],[no],[$_GECKO_LIBDIR:$PATH])
+if test $gecko_cv_gecko = libxul-unstable; then
+XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}`/unstable"
+else
XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}-xpcom`"
+fi
# Older geckos don't have this variable, see
# https://bugzilla.mozilla.org/show_bug.cgi?id=240473
if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then
XPIDL_IDLDIR="`echo $_GECKO_LIBDIR | sed -e s!lib!share/idl!`"
fi
--- ./configure.in
+++ ./configure.in
@@ -503,16 +503,17 @@
if test "$with_epiphany_plugin" = "yes"; then
AC_SUBST([MOZILLA])
AC_SUBST([MOZILLA_FLAVOUR])
AC_SUBST([MOZILLA_HOME])
AC_SUBST([MOZILLA_PREFIX])
AC_SUBST([MOZILLA_INCLUDE_ROOT])
case "$MOZILLA" in
+ libxul-unstable) min_version=1.9 ;;
xulrunner) min_version=1.8 ;;
*firefox) min_version=1.5 ;;
*) AC_MSG_ERROR([Unsupported gecko "$gecko_cv_gecko"]) ;;
esac
PKG_CHECK_MODULES([EPIPHANY_DEPENDENCY], [\
libxml-2.0 >= $EPIPHANY_LIBXML_REQUIRED \
libglade-2.0 \
@@ -585,19 +585,25 @@
gtk+-2.0 >= $EPIPHANY_LIBGTK_REQUIRED \
epiphany-2.14 >= $EPIPHANY_REQUIRED],
[with_epiphany_plugin=yes E_API_VERSION=2.14 e_api_minor=14],[with_epiphany_plugin=no; echo "no"; echo "disabling epiphany plugin"])])])])])])])])])
else
echo "disabling epiphany plugin"
fi
if test "$with_epiphany_plugin" = "yes"; then
+ if test $gecko_cv_gecko = libxul-unstable; then
+ PKG_CHECK_MODULES([MOZILLA_COMPONENT],
+ [${gecko_cv_gecko} >= $min_version $gecko_cv_extra_pkg_dependencies],
+ [with_epiphany_plugin=yes],[with_epiphany_plugin=no echo "disabling epiphany plugin"])
+ else
PKG_CHECK_MODULES([MOZILLA_COMPONENT],
[${gecko_cv_gecko}-xpcom >= $min_version $gecko_cv_extra_pkg_dependencies],
[with_epiphany_plugin=yes],[with_epiphany_plugin=no echo "disabling epiphany plugin"])
+ fi
fi
if test "$with_epiphany_plugin" = "yes"; then
echo "enabling epiphany plugin"
if test "$e_api_minor" -ge 21; then
AC_DEFINE([EPHY_NOTAB], 1, [Defines whether EphyTab exists in the API])
else
FYI, the new $lizard is called libxul-unstable for pkgconfig querying purposes. I saw on gentoo bugzilla that people said the debian
patches don't work. I think they just forgot to update configure after patching... Any patching of .in or .am files will require
an autoreconf or autogen.sh to rebuild configure.
Hi, it's great to finally get an updated xulrunner build. But unfortunately, it doesn't seem to work on my system. I'm on 12.0, and I followed each step as mentioned, but I hit this error each time I run the build:
Code:
creating cache ./config.cache
configure: error: installation or configuration problem: C compiler cannot create executables
This is the config.log:
Code:
configure:1000: checking host system type
configure:1021: checking target system type
configure:1039: checking build system type
configure:1119: checking for gawk
configure:2184: checking for gcc
configure:2297: checking whether the C compiler (gcc -O3 -march=native ) works
configure:2313: gcc -o conftest -O3 -march=native conftest.c 1>&5
conftest.c:1: error: bad value (native) for -march= switch
conftest.c:1: error: bad value (native) for -mtune= switch
configure: failed program was:
#line 2308 "configure"
#include "confdefs.h"
main(){return(0);}
Is this build optimized for the newer Glibc in 12.1? Please advise.
Change your -march to i686 or whatever your box is. Slack 12 uses gcc-4.1 and I'm guessing native and
generic are 4.2 and onwards. Don't know tho. Usually don't keep track of such things.
Here's what's going on. Whenever I build devhelp with a patch such as (this one) and set it to use libxul-embedding, make fails with:
Code:
./.libs/libdevhelp-1.so: undefined reference to `MOZ_Z_gzclose'
./.libs/libdevhelp-1.so: undefined reference to `MOZ_Z_gzread'
./.libs/libdevhelp-1.so: undefined reference to `MOZ_Z_gzopen'
./.libs/libdevhelp-1.so: undefined reference to `MOZ_Z_gzerror'
collect2: ld returned 1 exit status
make[3]: *** [devhelp] Error 1
make[3]: Leaving directory `/home/dugan/devhelp-0.19.1/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/dugan/devhelp-0.19.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dugan/devhelp-0.19.1'
make: *** [all] Error 2
I get the same results with the Debian/Ubuntu patches too.
The patch you posted I can't get to apply properly. I saved it as "a.patch" and get many failed chunks when I apply it.
Code:
patching file m4/gecko.m4
Hunk #3 FAILED at 52.
Hunk #4 FAILED at 61.
Hunk #5 succeeded at 86 with fuzz 1.
Hunk #6 FAILED at 105.
Hunk #8 succeeded at 240 with fuzz 1.
Hunk #9 succeeded at 263 with fuzz 1.
Hunk #10 succeeded at 278 with fuzz 1.
Hunk #12 FAILED at 360.
Hunk #15 FAILED at 439.
Hunk #17 FAILED at 514.
Hunk #18 FAILED at 692.
7 out of 18 hunks FAILED -- saving rejects to file m4/gecko.m4.rej
patching file configure.in
patching file src/Makefile.am
Hunk #1 FAILED at 25.
Hunk #2 FAILED at 47.
Hunk #3 FAILED at 65.
Hunk #4 FAILED at 87.
Hunk #5 FAILED at 98.
5 out of 5 hunks FAILED -- saving rejects to file src/Makefile.am.rej
patching file src/dh-gecko-utils.cpp
Hunk #3 succeeded at 229 with fuzz 2.
Hunk #5 FAILED at 321.
Hunk #6 FAILED at 385.
2 out of 6 hunks FAILED -- saving rejects to file src/dh-gecko-utils.cpp.rej
patching file src/default-prefs-gecko
And afterwards, configure doesn't recognize xulrunner 1.9.
Doesn't make a lot of sense because you build with system-zlib as well, but I'd try it anyway. If it works, then you have an annoyingly tedious process of elimination ahead of you...
EDIT - Have you tried leaving gecko out of your configure arguments? It sorts it out just fine over here.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.