Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37725556
en ru br
ALT Linux repositórios
S:42.2-alt1
5.0: 2.26.0-alt1
4.1: 2.23.1-alt2.M41.2
4.0: 2.16.2-alt1
3.0: 2.10.0-alt1

Group :: Desktop gráfico/GNOME
RPM: yelp

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: yelp-2.30.2-xulrunner_build.patch
Download


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));
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009