diff options
author | Nirbheek Chauhan <nirbheek@gentoo.org> | 2011-03-23 14:38:59 +0000 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@gentoo.org> | 2011-03-23 14:38:59 +0000 |
commit | d4da12d2fb59bf95cb73682fb1c5bea23b40c771 (patch) | |
tree | a40bf7407afc45bae0eb959216d2d67be30f13e0 /gnome-extra | |
parent | Re-add patch file, fixes bug 360151 (diff) | |
download | gentoo-2-d4da12d2fb59bf95cb73682fb1c5bea23b40c771.tar.gz gentoo-2-d4da12d2fb59bf95cb73682fb1c5bea23b40c771.tar.bz2 gentoo-2-d4da12d2fb59bf95cb73682fb1c5bea23b40c771.zip |
Fix build with xulrunner-2.0 using an OpenSUSE patch. Fixes bug 330847
(Portage version: 2.1.9.44/cvs/Linux x86_64)
Diffstat (limited to 'gnome-extra')
-rw-r--r-- | gnome-extra/yelp/ChangeLog | 8 | ||||
-rw-r--r-- | gnome-extra/yelp/files/yelp-2.30.2-port-to-xulrunner-2.patch | 242 | ||||
-rw-r--r-- | gnome-extra/yelp/yelp-2.30.2-r2.ebuild | 65 |
3 files changed, 314 insertions, 1 deletions
diff --git a/gnome-extra/yelp/ChangeLog b/gnome-extra/yelp/ChangeLog index db89eeb79d85..dbd68349270b 100644 --- a/gnome-extra/yelp/ChangeLog +++ b/gnome-extra/yelp/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for gnome-extra/yelp # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/gnome-extra/yelp/ChangeLog,v 1.257 2011/03/23 08:32:01 nirbheek Exp $ +# $Header: /var/cvsroot/gentoo-x86/gnome-extra/yelp/ChangeLog,v 1.258 2011/03/23 14:38:58 nirbheek Exp $ + +*yelp-2.30.2-r2 (23 Mar 2011) + + 23 Mar 2011; Nirbheek Chauhan <nirbheek@gentoo.org> + +yelp-2.30.2-r2.ebuild, +files/yelp-2.30.2-port-to-xulrunner-2.patch: + Fix build with xulrunner-2.0 using an OpenSUSE patch. Fixes bug 330847 23 Mar 2011; Nirbheek Chauhan <nirbheek@gentoo.org> -yelp-2.30.1-r1.ebuild, -yelp-2.30.2.ebuild, yelp-2.30.2-r1.ebuild: diff --git a/gnome-extra/yelp/files/yelp-2.30.2-port-to-xulrunner-2.patch b/gnome-extra/yelp/files/yelp-2.30.2-port-to-xulrunner-2.patch new file mode 100644 index 000000000000..d3b39afa37f2 --- /dev/null +++ b/gnome-extra/yelp/files/yelp-2.30.2-port-to-xulrunner-2.patch @@ -0,0 +1,242 @@ +https://bugs.gentoo.org/show_bug.cgi?id=330847 + +Patch by the OpenSUSE folks, found by pacho. + +Index: yelp-2.30.2/m4/gecko.m4 +=================================================================== +--- yelp-2.30.2.orig/m4/gecko.m4 ++++ yelp-2.30.2/m4/gecko.m4 +@@ -212,25 +212,6 @@ AC_LANG_PUSH([C++]) + _SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS" + +-AC_MSG_CHECKING([[whether we have a gtk 2 gecko build]]) +-AC_RUN_IFELSE( +- [AC_LANG_SOURCE( +- [[#include <mozilla-config.h> +- #include <string.h> +- #include <stdlib.h> +- int main(void) { +- if (strcmp (MOZ_DEFAULT_TOOLKIT, "gtk2") == 0 || +- strcmp (MOZ_DEFAULT_TOOLKIT, "cairo-gtk2") == 0) +- return EXIT_SUCCESS; +- +- return EXIT_FAILURE; +- } ]] +- )], +- [result=yes], +- [AC_MSG_ERROR([[This program needs a gtk 2 gecko build]])], +- [result=maybe]) +-AC_MSG_RESULT([$result]) +- + AC_MSG_CHECKING([[whether we have a gecko debug build]]) + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( +@@ -304,7 +285,9 @@ if (!stream) return 126; + #ifdef MOZILLA_1_8_BRANCH + version = "1.8.1"; + #else +-if (strncmp (MOZILLA_VERSION, "1.9", strlen ("1.9")) == 0) { ++if (strncmp (MOZILLA_VERSION, "2.0", strlen ("2.0")) == 0) { ++ version = "2.0"; ++} else if (strncmp (MOZILLA_VERSION, "1.9", strlen ("1.9")) == 0) { + version = "1.9"; + } else if (strncmp (MOZILLA_VERSION, "1.8", strlen ("1.8")) == 0) { + version = "1.8"; +@@ -328,7 +311,7 @@ AC_LANG_POP([C++]) + + gecko_cv_gecko_version_int="$(echo "$gecko_cv_gecko_version" | $AWK -F . '{print [$]1 * 1000000 + [$]2 * 1000 + [$]3}')" + +-if test "$gecko_cv_gecko_version_int" -lt "1007000" -o "$gecko_cv_gecko_version_int" -gt "1009000"; then ++if test "$gecko_cv_gecko_version_int" -lt "1007000" -o "$gecko_cv_gecko_version_int" -gt "2000000"; then + AC_MSG_ERROR([Gecko version $gecko_cv_gecko_version is not supported!]) + fi + +@@ -350,7 +333,10 @@ if test "$gecko_cv_gecko_version_int" -g + fi + + if test "${gecko_cv_gecko}" = "libxul-embedding" -o "${gecko_cv_gecko}" = "libxul"; then +- PKG_CHECK_EXISTS([${gecko_cv_gecko} >= 1.9.1],[gecko_cv_have_gecko_1_9_1=yes gecko_cv_gecko_version="1.9.1" gecko_cv_gecko_version_int=1009001],[gecko_cv_have_gecko_1_9_1=no]) ++ PKG_CHECK_EXISTS([${gecko_cv_gecko} >= 1.9.1], ++ [ gecko_cv_have_gecko_1_9_1=yes ++ if test "$gecko_cv_gecko_version_int" -lt "2000000"; then gecko_cv_gecko_version="1.9.1" gecko_cv_gecko_version_int=1009001; fi ++ ],[gecko_cv_have_gecko_1_9_1=no]) + else + gecko_cv_have_gecko_1_9_1=no + fi +@@ -359,6 +345,11 @@ if test "$gecko_cv_have_gecko_1_9_1" = " + AC_DEFINE([HAVE_GECKO_1_9_1],[1],[Define if we have gecko 1.9.1]) + fi + ++if test "$gecko_cv_gecko_version_int" -ge "2000000"; then ++ AC_DEFINE([HAVE_GECKO_2_0],[1],[Define if we have gecko 2.0]) ++ gecko_cv_have_gecko_2_0=yes ++fi ++ + fi # if gecko_cv_have_gecko + + $1[]_VERSION=$gecko_cv_gecko_version +@@ -407,6 +398,7 @@ AM_CONDITIONAL([HAVE_GECKO_1_8],[test "$ + 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_1_9_1],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_have_gecko_1_9_1" = "yes"]) ++AM_CONDITIONAL([HAVE_GECKO_2_0],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_have_gecko_2_0" = "yes"]) + 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"]) +Index: yelp-2.30.2/src/yelp-gecko-services.cpp +=================================================================== +--- yelp-2.30.2.orig/src/yelp-gecko-services.cpp ++++ yelp-2.30.2/src/yelp-gecko-services.cpp +@@ -32,7 +32,11 @@ + #include <nsIComponentManager.h> + #include <nsComponentManagerUtils.h> + #include <nsIComponentRegistrar.h> ++#ifndef HAVE_GECKO_2_0 + #include <nsIGenericFactory.h> ++#else ++#include <nsIFactory.h> ++#endif + #include <nsILocalFile.h> + #include <nsIPrintSettings.h> + #include <nsServiceManagerUtils.h> +@@ -418,6 +422,8 @@ PrintListener::SetPrintSettings (YelpPri + + /* component registration */ + ++#ifndef HAVE_GECKO_2_0 ++ + NS_GENERIC_FACTORY_CONSTRUCTOR(GPrintingPromptService) + + static const nsModuleComponentInfo sAppComps[] = { +@@ -462,3 +468,115 @@ yelp_register_printing () + } + + } ++ ++#else ++ ++/* ++ * Adapted from code from ./embedding/browser/activex/src/control/PromptService.cpp in Firefox ++ */ ++ ++//***************************************************************************** ++// GPrintingPromptServiceFactory ++//***************************************************************************** ++ ++class GPrintingPromptServiceFactory : public nsIFactory ++{ ++public: ++ NS_DECL_ISUPPORTS ++ NS_DECL_NSIFACTORY ++ ++ GPrintingPromptServiceFactory(); ++ virtual ~GPrintingPromptServiceFactory(); ++}; ++ ++//***************************************************************************** ++ ++NS_IMPL_ISUPPORTS1(GPrintingPromptServiceFactory, nsIFactory) ++ ++GPrintingPromptServiceFactory::GPrintingPromptServiceFactory() ++{ ++} ++ ++GPrintingPromptServiceFactory::~GPrintingPromptServiceFactory() ++{ ++} ++ ++NS_IMETHODIMP GPrintingPromptServiceFactory::CreateInstance(nsISupports *aOuter, const nsIID & aIID, void **aResult) ++{ ++ NS_ENSURE_ARG_POINTER(aResult); ++ ++ *aResult = NULL; ++ GPrintingPromptService *inst = new GPrintingPromptService; ++ if (!inst) ++ return NS_ERROR_OUT_OF_MEMORY; ++ ++ nsresult rv = inst->QueryInterface(aIID, aResult); ++ if (rv != NS_OK) { ++ // We didn't get the right interface, so clean up ++ delete inst; ++ } ++ ++ return rv; ++} ++ ++NS_IMETHODIMP GPrintingPromptServiceFactory::LockFactory(PRBool lock) ++{ ++ return NS_OK; ++} ++ ++//***************************************************************************** ++ ++nsresult NS_NewPrintingPromptServiceFactory(nsIFactory** aFactory) ++{ ++ NS_ENSURE_ARG_POINTER(aFactory); ++ *aFactory = nsnull; ++ ++ GPrintingPromptServiceFactory *result = new GPrintingPromptServiceFactory; ++ if (!result) ++ return NS_ERROR_OUT_OF_MEMORY; ++ ++ NS_ADDREF(result); ++ *aFactory = result; ++ ++ return NS_OK; ++} ++ ++/* ++ * End of adapted code. ++ */ ++ ++static NS_DEFINE_CID(kGPrintingPromptServiceCID, G_PRINTINGPROMPTSERVICE_CID); ++ ++void ++yelp_register_printing () ++{ ++ nsresult rv; ++ nsCOMPtr<nsIComponentRegistrar> cr; ++ rv = NS_GetComponentRegistrar(getter_AddRefs(cr)); ++ NS_ENSURE_SUCCESS (rv, ); ++ ++ nsCOMPtr<nsIComponentManager> cm; ++ rv = NS_GetComponentManager (getter_AddRefs (cm)); ++ NS_ENSURE_SUCCESS (rv, ); ++ ++ nsCOMPtr<nsIFactory> componentFactory; ++ rv = NS_NewPrintingPromptServiceFactory(getter_AddRefs(componentFactory)); ++ ++ if (NS_FAILED(rv) || !componentFactory) ++ { ++ g_warning ("Failed to make a factory for %s\n", G_PRINTINGPROMPTSERVICE_CLASSNAME); ++ return; ++ } ++ ++ rv = cr->RegisterFactory(kGPrintingPromptServiceCID, ++ G_PRINTINGPROMPTSERVICE_CLASSNAME, ++ G_PRINTINGPROMPTSERVICE_CONTRACTID, ++ componentFactory); ++ if (NS_FAILED(rv)) ++ { ++ g_warning ("Failed to register %s\n", G_PRINTINGPROMPTSERVICE_CLASSNAME); ++ } ++ ++} ++ ++#endif +Index: yelp-2.30.2/src/yelp-gecko-utils.cpp +=================================================================== +--- yelp-2.30.2.orig/src/yelp-gecko-utils.cpp ++++ yelp-2.30.2/src/yelp-gecko-utils.cpp +@@ -213,8 +213,8 @@ yelp_gecko_init (void) + nsresult rv; + #ifdef XPCOM_GLUE + static const GREVersionRange greVersion = { +- "1.9a", PR_TRUE, +- "2", PR_TRUE ++ "2.0a", PR_TRUE, ++ "2.0", PR_TRUE + }; + char xpcomLocation[PATH_MAX]; + rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, sizeof (xpcomLocation)); diff --git a/gnome-extra/yelp/yelp-2.30.2-r2.ebuild b/gnome-extra/yelp/yelp-2.30.2-r2.ebuild new file mode 100644 index 000000000000..3de3edee76b2 --- /dev/null +++ b/gnome-extra/yelp/yelp-2.30.2-r2.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-extra/yelp/yelp-2.30.2-r2.ebuild,v 1.1 2011/03/23 14:38:58 nirbheek Exp $ + +EAPI="3" +GCONF_DEBUG="yes" + +inherit autotools eutils gnome2 + +DESCRIPTION="Help browser for GNOME" +HOMEPAGE="http://www.gnome.org/" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris" +# FIXME: lzma/xz support will be fixed in yelp3, bug #314923 +IUSE="" + +RDEPEND=">=gnome-base/gconf-2:2 + >=app-text/gnome-doc-utils-0.19.1 + >=x11-libs/gtk+-2.18:2 + >=dev-libs/glib-2.16:2 + >=dev-libs/libxml2-2.6.5:2 + >=dev-libs/libxslt-1.1.4 + >=x11-libs/startup-notification-0.8 + >=dev-libs/dbus-glib-0.71 + net-libs/xulrunner:1.9 + sys-libs/zlib + app-arch/bzip2 + >=app-text/rarian-0.7 + >=app-text/scrollkeeper-9999" +DEPEND="${RDEPEND} + sys-devel/gettext + >=dev-util/intltool-0.35 + >=dev-util/pkgconfig-0.9 + gnome-base/gnome-common" +# If eautoreconf: +# gnome-base/gnome-common + +pkg_setup() { + DOCS="AUTHORS ChangeLog NEWS README TODO" + G2CONF="${G2CONF} + --with-gecko=libxul-embedding + --with-search=basic + --disable-lzma" +} + +src_prepare() { + gnome2_src_prepare + + # Fix automagic lzma support, bug #266128 + epatch "${FILESDIR}/${PN}-2.26.0-automagic-lzma.patch" + + # Fix build with xulrunner-1.9.2 + epatch "${FILESDIR}/${PN}-2.28.1-system-nspr.patch" + + # Fix build with xulrunner-2.0 (we really need to get rid of this package) + epatch "${FILESDIR}/${P}-port-to-xulrunner-2.patch" + + intltoolize --force --copy --automake || die "intltoolize failed" + eautoreconf + + # strip stupid options in configure, see bug #196621 + sed -i 's|$AM_CFLAGS -pedantic -ansi|$AM_CFLAGS|' configure || die "sed failed" +} |