summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@gentoo.org>2011-03-23 14:38:59 +0000
committerNirbheek Chauhan <nirbheek@gentoo.org>2011-03-23 14:38:59 +0000
commitd4da12d2fb59bf95cb73682fb1c5bea23b40c771 (patch)
treea40bf7407afc45bae0eb959216d2d67be30f13e0 /gnome-extra
parentRe-add patch file, fixes bug 360151 (diff)
downloadgentoo-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/ChangeLog8
-rw-r--r--gnome-extra/yelp/files/yelp-2.30.2-port-to-xulrunner-2.patch242
-rw-r--r--gnome-extra/yelp/yelp-2.30.2-r2.ebuild65
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"
+}