SOURCES: totem-libxul.patch (NEW) - fix for building with xulrunner 1.9 tak...

hawk hawk at pld-linux.org
Wed Sep 10 12:34:54 CEST 2008


Author: hawk                         Date: Wed Sep 10 10:34:54 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- fix for building with xulrunner 1.9 taken from redhat

---- Files affected:
SOURCES:
   totem-libxul.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/totem-libxul.patch
diff -u /dev/null SOURCES/totem-libxul.patch:1.1
--- /dev/null	Wed Sep 10 12:34:54 2008
+++ SOURCES/totem-libxul.patch	Wed Sep 10 12:34:48 2008
@@ -0,0 +1,453 @@
+Index: browser-plugin/totemStringGlue.h
+===================================================================
+--- browser-plugin/totemStringGlue.h	(revision 5028)
++++ browser-plugin/totemStringGlue.h	(working copy)
+@@ -1,58 +0,0 @@
+-/* Totem browser plugin
+- *
+- * Copyright © 2006 Bastien Nocera <hadess at hadess.net>
+- * Copyright © 2006 Christian Persch
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Library General Public
+- * License as published by the Free Software Foundation; either
+- * version 2 of the License, or (at your option) any later version.
+- *
+- * This library is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- * Library General Public License for more details.
+- *
+- * You should have received a copy of the GNU Library General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+- * Boston, MA 02111-1307, USA.
+- */
+-
+-#include <nsEmbedString.h>
+-
+-#ifndef NS_LITERAL_CSTRING
+-#define NS_LITERAL_CSTRING(x) (x)
+-#endif
+-
+-class nsString : public nsEmbedString {
+-  public:
+-    PRBool IsEmpty () { return !Length (); }
+-};
+-
+-class nsCString : public nsEmbedCString {
+-  public:
+-    nsCString () : nsEmbedCString () { }
+-    explicit nsCString (const char *aData, PRUint32 aLength) : nsEmbedCString (aData, aLength) { }
+-    explicit nsCString (const abstract_string_type& aOther) { Assign (aOther); }
+-    explicit nsCString (const char *&aOther) { Assign (aOther); }
+-    explicit nsCString (const nsCString& aData, int aStartPos, PRUint32 aLength) : nsEmbedCString (aData.get() + aStartPos, aLength-aStartPos) { }
+-    PRBool IsEmpty () { return !Length (); }
+-    PRBool Equals (const self_type& aOther) { return !strcmp (aOther.get (), get ()); }
+-    PRBool Equals (const char_type *aOther) { return !strcmp (aOther, get ()); }
+-    void SetLength (PRUint32 aLen) { Assign (""); }
+-    self_type& operator=(const abstract_string_type& aOther) { Assign (aOther); return *this; }
+-    self_type& operator=(const char_type* aOther) { Assign (aOther); return *this; }
+-};
+-
+-class NS_ConvertUTF16toUTF8 : public nsCString {
+-  public:
+-    explicit NS_ConvertUTF16toUTF8 (const nsAString& aString) {
+-	 NS_UTF16ToCString (aString, NS_CSTRING_ENCODING_UTF8, *this);
+-      }
+-};
+-
+-typedef nsString nsDependentString;
+-typedef nsCString nsDependentCString;
+-typedef nsCString nsDependentCSubstring;
+-
+Index: browser-plugin/totemPlugin.h
+===================================================================
+--- browser-plugin/totemPlugin.h	(revision 5028)
++++ browser-plugin/totemPlugin.h	(working copy)
+@@ -29,9 +29,8 @@
+ 
+ #include <nsStringAPI.h>
+ 
+-#ifdef NEED_STRING_GLUE
+-#include "totemStringGlue.h"
+-#endif
++#define NS_STATIC_CAST(__type, __ptr) static_cast< __type >(__ptr)
++#define NS_REINTERPRET_CAST(__type, __expr) reinterpret_cast< __type >(__expr)
+ 
+ #if defined(TOTEM_COMPLEX_PLUGIN) && defined(HAVE_NSTARRAY_H)
+ #include <nsTArray.h>
+Index: browser-plugin/Makefile.am
+===================================================================
+--- browser-plugin/Makefile.am	(revision 5028)
++++ browser-plugin/Makefile.am	(working copy)
+@@ -144,7 +144,6 @@
+ 	totemPluginGlue.h		\
+ 	totemPlugin.cpp			\
+ 	totemPlugin.h			\
+-	totemStringGlue.h		\
+ 	totemBasicPlugin.cpp		\
+ 	totemBasicPlugin.h		\
+ 	totemClassInfo.h		\
+@@ -182,12 +181,13 @@
+ 	libtotempluginviewer_helper.la					\
+ 	$(DBUS_LIBS)	\
+ 	$(BROWSER_PLUGIN_LIBS)	\
+-	$(LIBXPCOMGLUE_S)
++	$(GECKO_LIBS)
+ 
+ libtotem_basic_plugin_la_LDFLAGS = \
+ 	-avoid-version	\
+ 	-export-symbols $(srcdir)/plugin.symbols \
+ 	-module		\
++	-no-undefined	\
+ 	$(AM_LDFLAGS)
+ 
+ endif
+@@ -210,7 +210,6 @@
+ 	totemPluginGlue.h		\
+ 	totemPlugin.cpp			\
+ 	totemPlugin.h			\
+-	totemStringGlue.h		\
+ 	totemGMPPlugin.cpp		\
+ 	totemGMPPlugin.h		\
+ 	totemClassInfo.h		\
+@@ -248,12 +247,13 @@
+ 	libtotempluginviewer_helper.la	\
+ 	$(DBUS_LIBS)	\
+ 	$(BROWSER_PLUGIN_LIBS)	\
+-	$(LIBXPCOMGLUE_S)
++	$(GECKO_LIBS)
+ 
+ libtotem_gmp_plugin_la_LDFLAGS = \
+ 	-avoid-version	\
+ 	-export-symbols $(srcdir)/plugin.symbols \
+ 	-module		\
++	-no-undefined	\
+ 	$(AM_LDFLAGS)
+ 
+ endif
+@@ -270,7 +270,6 @@
+ 	totemPluginGlue.h		\
+ 	totemPlugin.cpp			\
+ 	totemPlugin.h			\
+-	totemStringGlue.h		\
+ 	totemComplexPlugin.cpp		\
+ 	totemComplexPlugin.h		\
+ 	totemClassInfo.h		\
+@@ -308,12 +307,13 @@
+ 	libtotempluginviewer_helper.la					\
+ 	$(DBUS_LIBS)	\
+ 	$(BROWSER_PLUGIN_LIBS)	\
+-	$(LIBXPCOMGLUE_S)
++	$(GECKO_LIBS)
+ 
+ libtotem_complex_plugin_la_LDFLAGS = \
+ 	-avoid-version	\
+ 	-export-symbols $(srcdir)/plugin.symbols \
+ 	-module		\
++	-no-undefined	\
+ 	$(AM_LDFLAGS)
+ 
+ endif
+@@ -330,7 +330,6 @@
+ 	totemPluginGlue.h		\
+ 	totemPlugin.cpp			\
+ 	totemPlugin.h			\
+-	totemStringGlue.h		\
+ 	totemNarrowSpacePlugin.cpp	\
+ 	totemNarrowSpacePlugin.h	\
+ 	totemClassInfo.h		\
+@@ -368,12 +367,13 @@
+ 	libtotempluginviewer_helper.la					\
+ 	$(DBUS_LIBS)	\
+ 	$(BROWSER_PLUGIN_LIBS)	\
+-	$(LIBXPCOMGLUE_S)
++	$(GECKO_LIBS)
+ 
+ libtotem_narrowspace_plugin_la_LDFLAGS = \
+ 	-avoid-version	\
+ 	-export-symbols $(srcdir)/plugin.symbols \
+ 	-module		\
++	-no-undefined	\
+ 	$(AM_LDFLAGS)
+ 
+ endif
+@@ -390,7 +390,6 @@
+ 	totemPluginGlue.h		\
+ 	totemPlugin.cpp			\
+ 	totemPlugin.h			\
+-	totemStringGlue.h		\
+ 	totemMullYPlugin.cpp		\
+ 	totemMullYPlugin.h		\
+ 	totemClassInfo.h		\
+@@ -428,12 +427,13 @@
+ 	libtotempluginviewer_helper.la					\
+ 	$(DBUS_LIBS)	\
+ 	$(BROWSER_PLUGIN_LIBS)	\
+-	$(LIBXPCOMGLUE_S)
++	$(GECKO_LIBS)
+ 
+ libtotem_mully_plugin_la_LDFLAGS = \
+ 	-avoid-version	\
+ 	-export-symbols $(srcdir)/plugin.symbols \
+ 	-module		\
++	-no-undefined	\
+ 	$(AM_LDFLAGS)
+ 
+ endif
+@@ -450,7 +450,6 @@
+ 	totemPluginGlue.h		\
+ 	totemPlugin.cpp			\
+ 	totemPlugin.h			\
+-	totemStringGlue.h		\
+ 	totemConePlugin.cpp		\
+ 	totemConePlugin.h		\
+ 	totemClassInfo.h		\
+@@ -488,12 +487,13 @@
+ 	libtotempluginviewer_helper.la					\
+ 	$(DBUS_LIBS)	\
+ 	$(BROWSER_PLUGIN_LIBS)	\
+-	$(LIBXPCOMGLUE_S)
++	$(GECKO_LIBS)
+ 
+ libtotem_cone_plugin_la_LDFLAGS = \
+ 	-avoid-version	\
+ 	-export-symbols $(srcdir)/plugin.symbols \
+ 	-module		\
++	-no-undefined	\
+ 	$(AM_LDFLAGS)
+ 
+ endif
+Index: configure.in
+===================================================================
+--- configure.in	(revision 5028)
++++ configure.in	(working copy)
+@@ -40,6 +40,7 @@
+ GNOMEICON_REQS=2.15.90
+ DBUS_REQS=0.61
+ VALA_REQS=0.1.6
++XULRUNNER_REQS=1.9
+ 
+ TOTEM_VERSION_MAJOR=totem_version_major
+ TOTEM_VERSION_MINOR=totem_version_minor
+@@ -560,61 +561,23 @@
+ 	[AS_HELP_STRING([--enable-browser-plugins],[compile the totem browser plugins])],
+ 	[],[enable_browser_plugins=autodetect])
+ 
+-# Backward compatibility
+-AC_ARG_ENABLE([mozilla],[],[enable_browser_plugins=$enableval],[])
+-
+ AC_MSG_RESULT([$enable_browser_plugins])
+ 
+ # Check which mozilla to use
+ 
+ if test "$enable_browser_plugins" != "no" ; then
+-	AC_MSG_CHECKING([which gecko to use])
++	PKG_CHECK_MODULES([GECKO], [libxul >= $XULRUNNER_REQS], [gecko=xulrunner], [gecko=""])
+ 
+-	AC_ARG_WITH([gecko],
+-		[AS_HELP_STRING([--with-gecko],[Which gecko engine to use (default: autodetect)])])
+-
+-	# backward compat
+-	AC_ARG_WITH([mozilla],[],[with_gecko=$withval])
+-
+-	GECKOS="xulrunner firefox mozilla-firefox seamonkey mozilla"
+-	gecko=$with_gecko
+-
+-	if test -z "$with_gecko"; then
+-		dnl Autodetect gecko
+-		for g in $GECKOS; do
+-			if $PKG_CONFIG --exists $g-xpcom; then
+-				gecko=$g
+-				break;
+-			fi
+-		done
+-	elif ! $PKG_CONFIG --exists $gecko-xpcom; then
+-		AC_MSG_ERROR([Gecko "$gecko" not found])
+-	fi
+-
+-	if test -z "$gecko" -a "$enable_browser_plugins" = "autodetect"; then
++	if "x$enable_browser_plugins" = "xautodetect"; then
+ 		dnl No gecko found, disable plugin
+ 		AC_MSG_WARN([No gecko found, disabling plugin])
+ 		enable_browser_plugins=no
+ 	elif test -z "$gecko"; then
+-		AC_MSG_ERROR([No gecko found])
+-	elif ! ( echo "$GECKOS" | egrep "(^| )$gecko(\$| )" > /dev/null); then
+-		AC_MSG_ERROR([Unknown gecko "$gecko" specified])
++		AC_MSG_ERROR([No xulrunner found])
+ 	else
+ 		enable_browser_plugins=yes
+ 	fi
+ 
+-	AC_MSG_RESULT([$gecko])
+-
+-	case "$gecko" in
+-		mozilla) MOZILLA_VERSION_MIN=1.7 ;;
+-		seamonkey) MOZILLA_VERSION_MIN=1.0 ;;
+-		*firefox) MOZILLA_VERSION_MIN=1.0 ;;
+-		xulrunner) MOZILLA_VERSION_MIN=1.8 ;;
+-	esac
+-
+-	MOZILLA=$gecko
+-	AC_SUBST([MOZILLA])
+-
+ 	if test "$enable_cxx_warnings" != "no" -a "$GXX" = "yes"; then
+ 		PLUGIN_EXTRA_WARN_CXXFLAGS="-Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Woverloaded-virtual"
+ 	else
+@@ -625,15 +588,14 @@
+ 
+ # Check for mozilla modules, but keep the CFLAGS and LIBS in
+ # separate vars
+-if test "$enable_browser_plugins" = "yes" ; then
++if test "x$enable_browser_plugins" = "xyes" ; then
+ 	PKG_CHECK_MODULES([MOZILLA_NOT_LINKED],
+-		[$MOZILLA-xpcom >= $MOZILLA_VERSION_MIN \
+-		 $MOZILLA-plugin],,
++		[libxul >= $XULRUNNER_REQS],,
+                 [enable_browser_plugins=no])
+ fi
+ # Check for other required modules, and merge CFLAGS, but not link
+ # flags to avoid linking against -lxpcom -lplds4 -lplc4 -lnspr4
+-if test "$enable_browser_plugins" = "yes" ; then
++if test "x$enable_browser_plugins" = "xyes" ; then
+ 	PKG_CHECK_MODULES([BROWSER_PLUGIN],
+ 		[glib-2.0
+ 		 gnome-vfs-2.0 >= $GNOMEVFS_REQS
+@@ -654,7 +616,7 @@
+ 				>= 0.22 to function.])])
+ fi
+ 
+-if test "$enable_browser_plugins" = "yes" ; then
++if test "x$enable_browser_plugins" = "xyes" ; then
+ 	PKG_CHECK_MODULES([DBUS], [dbus-glib-1 >= $DBUS_REQS],,
+ 			[enable_browser_plugins=no])
+ 	DBUSLIBDIR="`$PKG_CONFIG dbus-glib-1 --variable=libdir`"
+@@ -675,56 +637,46 @@
+ 
+ # Sets some variables, and check for xpidl
+ if test "$enable_browser_plugins" = "yes" ; then
+-	MOZILLA_PREFIX="`$PKG_CONFIG $MOZILLA-xpcom --variable=prefix`"
+-	MOZILLA_LIBDIR="`$PKG_CONFIG $MOZILLA-xpcom --variable=libdir`"
+-	MOZILLA_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir $MOZILLA-xpcom`"
+-	MOZILLA_XPCOM_CFLAGS="-I`$PKG_CONFIG --variable=includedir $MOZILLA-xpcom`"
++	LIBXUL_SDK_DIR=`$PKG_CONFIG --variable=sdkdir libxul`
++	MOZILLA_PREFIX="`$PKG_CONFIG libxul --variable=prefix`"
++	MOZILLA_LIBDIR="`$PKG_CONFIG libxul --variable=libdir`"
++	MOZILLA_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir libxul`"
++	MOZILLA_XPCOM_CFLAGS="`$PKG_CONFIG --cflags libxul-unstable`"
++	MOZILLA_LIBS="`$PKG_CONFIG --libs libxul`"
++	MOZILLA_IDLDIR="`$PKG_CONFIG --variable=idldir libxul`"
++
+ 	MOZILLA_PLUGINDIR="${MOZILLA_PLUGINDIR:-"\${libdir}/mozilla/plugins"}"
+ 
+-	AC_PATH_PROG([MOZILLA_XPIDL], [xpidl], [no], [$MOZILLA_LIBDIR:$PATH])
++	AC_PATH_PROG([MOZILLA_XPIDL], [xpidl], [no], [$LIBXUL_SDK_DIR/bin:$PATH])
+ 	if test "x$MOZILLA_XPIDL" = "xno"; then
+ 		AC_MSG_ERROR([xpidl compiler not found])
+ 	fi
+ 
+-	AC_PATH_PROG([MOZILLA_XPT_LINK],[xpt_link],[no],[$MOZILLA_LIBDIR:$PATH])
++	AC_PATH_PROG([MOZILLA_XPT_LINK],[xpt_link],[no],[$LIBXUL_SDK_DIR/bin:$PATH])
+ 	if test "$MOZILLA_XPT_LINK" = "no"; then
+ 		AC_MSG_ERROR([xpt_link not found])
+ 	fi
+ 
+ 	AC_SUBST([MOZILLA_PREFIX])
+ 	AC_SUBST([MOZILLA_LIBDIR])
++	AC_SUBST([MOZILLA_LIBS])
+ 	AC_SUBST([MOZILLA_XPCOM_CFLAGS])
+ 	AC_SUBST([MOZILLA_INCLUDE_ROOT])
++	AC_SUBST([MOZILLA_IDLDIR])
+ 	AC_ARG_VAR([MOZILLA_PLUGINDIR],[Where to install the plugin to])
+ fi
+ 
+-# Search for the idl include directory
+-if test "$enable_browser_plugins" = "yes" ; then
+-	dnl This only works on gecko 1.8
+-	MOZILLA_IDLDIR="`$PKG_CONFIG --variable=idldir $MOZILLA-xpcom`"
+-	dnl Fallback for older versions
+-	if test "x$MOZILLA_IDLDIR" = "x"; then
+-		MOZILLA_IDLDIR="`echo $MOZILLA_LIBDIR | sed -e s!lib!share/idl!`"
+-	fi
+-	dnl Some distributions (Gentoo) have it in unusual places
+-	if test "x$MOZILLA_IDLDIR" = "x"; then
+-		MOZILLA_IDLDIR="$MOZILLA_INCLUDE_ROOT/idl"
+-	fi
+-
+-	AC_SUBST([MOZILLA_IDLDIR])
+-fi
+-
+-if test "$enable_browser_plugins" = "yes" ; then
++if test "x$enable_browser_plugins" = "xyes" ; then
+ 	AC_DEFINE([ENABLE_BROWSER_PLUGINS],[1],[Define if you build the mozilla plugin])
+ fi
+ 
+-AM_CONDITIONAL([ENABLE_BROWSER_PLUGINS], [test "$enable_browser_plugins" = "yes"])
++AM_CONDITIONAL([ENABLE_BROWSER_PLUGINS], [test "x$enable_browser_plugins" = "xyes"])
+ 
+ # check for libxpcomglue_s
+ 
+ LIBXPCOMGLUE_S=
+ 
+-if test "$enable_browser_plugins" = "yes"; then
++if test "x$enable_browser_plugins" = "xyes"; then
+ 	AC_LANG_PUSH([C++])
+ 	__SAVE_CPPFLAGS=$CPPFLAGS
+ 	__SAVE_CXXFLAGS=$CXXFLAGS
+@@ -765,7 +717,7 @@
+ 
+ # check for -fno-rtti flag
+ 
+-if test "$enable_browser_plugins" = "yes"; then
++if test "x$enable_browser_plugins" = "xyes"; then
+ 	AC_LANG_PUSH([C++])
+ 	__SAVE_CXXFLAGS=$CXXFLAGS
+ 	CXXFLAGS="-fno-rtti $CXXFLAGS"
+@@ -782,35 +734,9 @@
+ 	fi
+ fi
+ 
+-# check for some additional xpcom headers and for string compatibility
+-
+-if test "$enable_browser_plugins" = "yes"; then
+-	AC_LANG_PUSH([C++])
+-	__SAVE_CPPFLAGS=$CPPFLAGS
+-	CPPFLAGS="$CPPFLAGS $MOZILLA_NOT_LINKED_CFLAGS -I$MOZILLA_INCLUDE_ROOT -I$MOZILLA_INCLUDE_ROOT/xpcom"
+-
+-	AC_CHECK_HEADERS([nsTArray.h])
+-
+-	AC_MSG_CHECKING([whether we need string glue])
+-	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+-				#include <mozilla-config.h>
+-				#include <nsStringAPI.h>
+-		],[
+-				nsDependentCString test("Test");
+-		])],[need_string_glue=no],[need_string_glue=yes])
+-	AC_MSG_RESULT([$need_string_glue])
+-
+-	CPPFLAGS=$__SAVE_CPPFLAGS
+-	AC_LANG_POP([C++])
+-
+-	if test "$need_string_glue" = "yes"; then
+-		AC_DEFINE([NEED_STRING_GLUE],[1],[Define if we need string glue])
+-	fi
+-fi
+-
+ # check which plugins to enable
+ 
+-if test "$enable_browser_plugins" = "yes"; then
++if test "x$enable_browser_plugins" = "xyes"; then
+ 
+ AC_MSG_CHECKING([whether to enable the basic browser plugin])
+ AC_ARG_ENABLE([basic-plugin],
+@@ -1097,7 +1023,7 @@
+ 	AC_MSG_NOTICE([   No Totem plugins enabled])
+ fi
+ if test x$enable_browser_plugins = xyes ; then
+-	AC_MSG_NOTICE([** Browser plugin enabled (using $MOZILLA)])
++	AC_MSG_NOTICE([** Browser plugin enabled (using xulrunner)])
+ 	if test x$enable_basic_plugin = xyes ; then
+ 		AC_MSG_NOTICE([** Basic browser plugin enabled])
+ 	else
================================================================


More information about the pld-cvs-commit mailing list