[seamonkey/f20] update to 2.30

Dmitry Butskoy buc at fedoraproject.org
Sat Oct 25 16:43:44 UTC 2014


commit 2ce04037db707544cbe2864290683a5f30dccd45
Author: buc <buc at grad.stu.neva.ru>
Date:   Sat Oct 25 20:49:06 2014 +0400

    update to 2.30

 firefox-32-rhbz-966424.patch                       |   23 ---
 firefox-33-build-prbool.patch                      |   11 ++
 firefox-33-mozilla-1042889.patch                   |   81 +++++++++++
 firefox-33-mozilla-858919-2.patch                  |   28 ++++
 firefox-33-mozilla-858919-3.patch                  |  144 ++++++++++++++++++++
 firefox-33-rhbz-966424.patch                       |   14 ++
 ...alldir.patch => seamonkey-2.30-installdir.patch |   17 ++-
 seamonkey.spec                                     |   34 +++--
 sources                                            |    4 +-
 9 files changed, 313 insertions(+), 43 deletions(-)
---
diff --git a/firefox-33-build-prbool.patch b/firefox-33-build-prbool.patch
new file mode 100644
index 0000000..c7424ea
--- /dev/null
+++ b/firefox-33-build-prbool.patch
@@ -0,0 +1,11 @@
+diff -up mozilla-release/security/certverifier/OCSPCache.h.old mozilla-release/security/certverifier/OCSPCache.h
+--- mozilla-release/security/certverifier/OCSPCache.h.old	2014-10-14 12:33:46.519970732 +0200
++++ mozilla-release/security/certverifier/OCSPCache.h	2014-10-14 12:34:44.418000625 +0200
+@@ -25,6 +25,7 @@
+ #ifndef mozilla_psm_OCSPCache_h
+ #define mozilla_psm_OCSPCache_h
+ 
++#include "prtypes.h"
+ #include "hasht.h"
+ #include "mozilla/Mutex.h"
+ #include "mozilla/Vector.h"
diff --git a/firefox-33-mozilla-1042889.patch b/firefox-33-mozilla-1042889.patch
new file mode 100644
index 0000000..6061b9b
--- /dev/null
+++ b/firefox-33-mozilla-1042889.patch
@@ -0,0 +1,81 @@
+diff --git a/dom/browser-element/BrowserElementChildPreload.js b/dom/browser-element/BrowserElementChildPreload.js
+--- a/dom/browser-element/BrowserElementChildPreload.js
++++ b/dom/browser-element/BrowserElementChildPreload.js
+@@ -90,16 +90,17 @@ function getErrorClass(errorCode) {
+   switch (NSPRCode) {
+     case SEC_ERROR_UNKNOWN_ISSUER:
+     case SEC_ERROR_UNTRUSTED_ISSUER:
+     case SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE:
+     case SEC_ERROR_UNTRUSTED_CERT:
+     case SSL_ERROR_BAD_CERT_DOMAIN:
+     case SEC_ERROR_EXPIRED_CERTIFICATE:
+     case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED:
++    case SEC_ERROR_CA_CERT_INVALID:
+     case MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY:
+       return Ci.nsINSSErrorsService.ERROR_CLASS_BAD_CERT;
+     default:
+       return Ci.nsINSSErrorsService.ERROR_CLASS_SSL_PROTOCOL;
+   }
+ 
+   return null;
+ }
+diff --git a/security/manager/ssl/src/NSSErrorsService.cpp b/security/manager/ssl/src/NSSErrorsService.cpp
+--- a/security/manager/ssl/src/NSSErrorsService.cpp
++++ b/security/manager/ssl/src/NSSErrorsService.cpp
+@@ -136,16 +136,17 @@ NSSErrorsService::GetErrorClass(nsresult
+     // Overridable errors.
+     case SEC_ERROR_UNKNOWN_ISSUER:
+     case SEC_ERROR_UNTRUSTED_ISSUER:
+     case SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE:
+     case SEC_ERROR_UNTRUSTED_CERT:
+     case SSL_ERROR_BAD_CERT_DOMAIN:
+     case SEC_ERROR_EXPIRED_CERTIFICATE:
+     case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED:
++    case SEC_ERROR_CA_CERT_INVALID:
+     case mozilla::pkix::MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY:
+       *aErrorClass = ERROR_CLASS_BAD_CERT;
+       break;
+     // Non-overridable errors.
+     default:
+       *aErrorClass = ERROR_CLASS_SSL_PROTOCOL;
+       break;
+   }
+diff --git a/security/manager/ssl/src/SSLServerCertVerification.cpp b/security/manager/ssl/src/SSLServerCertVerification.cpp
+--- a/security/manager/ssl/src/SSLServerCertVerification.cpp
++++ b/security/manager/ssl/src/SSLServerCertVerification.cpp
+@@ -287,16 +287,17 @@ private:
+ 
+ // A probe value of 1 means "no error".
+ uint32_t
+ MapCertErrorToProbeValue(PRErrorCode errorCode)
+ {
+   switch (errorCode)
+   {
+     case SEC_ERROR_UNKNOWN_ISSUER:                     return  2;
++    case SEC_ERROR_CA_CERT_INVALID:                    return  3;
+     case SEC_ERROR_UNTRUSTED_ISSUER:                   return  4;
+     case SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE:         return  5;
+     case SEC_ERROR_UNTRUSTED_CERT:                     return  6;
+     case SEC_ERROR_INADEQUATE_KEY_USAGE:               return  7;
+     case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED:  return  8;
+     case SSL_ERROR_BAD_CERT_DOMAIN:                    return  9;
+     case SEC_ERROR_EXPIRED_CERTIFICATE:                return 10;
+     case mozilla::pkix::MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY: return 11;
+@@ -321,16 +322,17 @@ DetermineCertOverrideErrors(CERTCertific
+   MOZ_ASSERT(errorCodeMismatch == 0);
+   MOZ_ASSERT(errorCodeExpired == 0);
+ 
+   // Assumes the error prioritization described in mozilla::pkix's
+   // BuildForward function. Also assumes that CERT_VerifyCertName was only
+   // called if CertVerifier::VerifyCert succeeded.
+   switch (defaultErrorCodeToReport) {
+     case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED:
++    case SEC_ERROR_CA_CERT_INVALID:
+     case SEC_ERROR_UNKNOWN_ISSUER:
+     case mozilla::pkix::MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY:
+     {
+       collectedErrors = nsICertOverrideService::ERROR_UNTRUSTED;
+       errorCodeTrust = defaultErrorCodeToReport;
+ 
+       SECCertTimeValidity validity = CERT_CheckCertValidTimes(cert, now, false);
+       if (validity == secCertTimeUndetermined) {
diff --git a/firefox-33-mozilla-858919-2.patch b/firefox-33-mozilla-858919-2.patch
new file mode 100644
index 0000000..ece5906
--- /dev/null
+++ b/firefox-33-mozilla-858919-2.patch
@@ -0,0 +1,28 @@
+# HG changeset patch
+# Parent 9d66436af432f057f65d16ab9f5871baca4ada78
+# User Martin Stransky <stransky at redhat.com>
+Bug 858919 - Send "alertshow" event for Web Notifications by libnotify, r=?karlt
+
+diff --git a/toolkit/system/gnome/nsAlertsIconListener.cpp b/toolkit/system/gnome/nsAlertsIconListener.cpp
+--- a/toolkit/system/gnome/nsAlertsIconListener.cpp
++++ b/toolkit/system/gnome/nsAlertsIconListener.cpp
+@@ -175,16 +175,19 @@ nsAlertsIconListener::ShowAlert(GdkPixbu
+   // different signature, so a marshaller is used instead of a C callback to
+   // get the user_data (this) in a parseable format.  |closure| is created
+   // with a floating reference, which gets sunk by g_signal_connect_closure().
+   GClosure* closure = g_closure_new_simple(sizeof(GClosure), this);
+   g_closure_set_marshal(closure, notify_closed_marshal);
+   mClosureHandler = g_signal_connect_closure(mNotification, "closed", closure, FALSE);
+   gboolean result = notify_notification_show(mNotification, nullptr);
+ 
++  if (result && mAlertListener)
++    mAlertListener->Observe(nullptr, "alertshow", mAlertCookie.get());
++
+   return result ? NS_OK : NS_ERROR_FAILURE;
+ }
+ 
+ nsresult
+ nsAlertsIconListener::StartRequest(const nsAString & aImageUrl)
+ {
+   if (mIconRequest) {
+     // Another icon request is already in flight.  Kill it.
diff --git a/firefox-33-mozilla-858919-3.patch b/firefox-33-mozilla-858919-3.patch
new file mode 100644
index 0000000..7d04cd9
--- /dev/null
+++ b/firefox-33-mozilla-858919-3.patch
@@ -0,0 +1,144 @@
+# HG changeset patch
+# Parent 531e0bc755b2335dec5aae2a10f4ba454307981d
+# User Martin Stransky <stransky at redhat.com>
+Bug 858919 - Fixes image loading for libnotify notifications. r=?karlt
+
+diff --git a/toolkit/system/gnome/nsAlertsIconListener.cpp b/toolkit/system/gnome/nsAlertsIconListener.cpp
+--- a/toolkit/system/gnome/nsAlertsIconListener.cpp
++++ b/toolkit/system/gnome/nsAlertsIconListener.cpp
+@@ -46,16 +46,31 @@ static void notify_closed_marshal(GClosu
+   NS_ABORT_IF_FALSE(n_param_values >= 1, "No object in params");
+ 
+   nsAlertsIconListener* alert =
+     static_cast<nsAlertsIconListener*>(closure->data);
+   alert->SendClosed();
+   NS_RELEASE(alert);
+ }
+ 
++static GdkPixbuf*
++GetPixbufFromImgRequest(imgIRequest* aRequest)
++{
++  nsCOMPtr<imgIContainer> image;
++  nsresult rv = aRequest->GetImage(getter_AddRefs(image));
++  if (NS_FAILED(rv)) {  
++    return nullptr;
++  }
++
++  nsCOMPtr<nsIImageToPixbuf> imgToPixbuf =
++    do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1");
++
++  return imgToPixbuf->ConvertImageToPixbuf(image);
++}
++
+ NS_IMPL_ISUPPORTS(nsAlertsIconListener, imgINotificationObserver,
+                   nsIObserver, nsISupportsWeakReference)
+ 
+ nsAlertsIconListener::nsAlertsIconListener()
+ : mLoadedFrame(false),
+   mNotification(nullptr)
+ {
+   if (!libNotifyHandle && !libNotifyNotAvail) {
+@@ -101,57 +116,55 @@ nsAlertsIconListener::Notify(imgIRequest
+   }
+ 
+   return NS_OK;
+ }
+ 
+ nsresult
+ nsAlertsIconListener::OnStopRequest(imgIRequest* aRequest)
+ {
++  NS_ASSERTION(mIconRequest == aRequest, "aRequest does not match!");
++
+   uint32_t imgStatus = imgIRequest::STATUS_ERROR;
+   nsresult rv = aRequest->GetImageStatus(&imgStatus);
+   NS_ENSURE_SUCCESS(rv, rv);
+   if (imgStatus == imgIRequest::STATUS_ERROR && !mLoadedFrame) {
+     // We have an error getting the image. Display the notification with no icon.
+     ShowAlert(nullptr);
+-  }
+ 
+-  if (mIconRequest) {
++    // Cancel any pending request
+     mIconRequest->Cancel(NS_BINDING_ABORTED);
+     mIconRequest = nullptr;
+   }
++
+   return NS_OK;
+ }
+ 
+ nsresult
+ nsAlertsIconListener::OnStopFrame(imgIRequest* aRequest)
+ {
+-  if (aRequest != mIconRequest)
+-    return NS_ERROR_FAILURE;
++  NS_ASSERTION(mIconRequest == aRequest, "aRequest does not match!");
+ 
+   if (mLoadedFrame)
+     return NS_OK; // only use one frame
+ 
+-  nsCOMPtr<imgIContainer> image;
+-  nsresult rv = aRequest->GetImage(getter_AddRefs(image));
+-  if (NS_FAILED(rv))
+-    return rv;
+-
+-  nsCOMPtr<nsIImageToPixbuf> imgToPixbuf =
+-    do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1");
+-
+-  GdkPixbuf* imagePixbuf = imgToPixbuf->ConvertImageToPixbuf(image);
+-  if (!imagePixbuf)
+-    return NS_ERROR_FAILURE;
+-
+-  ShowAlert(imagePixbuf);
+-
+-  g_object_unref(imagePixbuf);
++  GdkPixbuf* imagePixbuf = GetPixbufFromImgRequest(aRequest);
++  if (!imagePixbuf) {
++    ShowAlert(nullptr);
++  } else {
++    ShowAlert(imagePixbuf);
++    g_object_unref(imagePixbuf);
++  }
+ 
+   mLoadedFrame = true;
++
++  // Cancel any pending request (multipart image loading/decoding for instance)
++  mIconRequest->Cancel(NS_BINDING_ABORTED);
++  mIconRequest = nullptr;
++
+   return NS_OK;
+ }
+ 
+ nsresult
+ nsAlertsIconListener::ShowAlert(GdkPixbuf* aPixbuf)
+ {
+   mNotification = notify_notification_new(mAlertTitle.get(), mAlertText.get(),
+                                           nullptr, nullptr);
+@@ -196,19 +209,25 @@ nsAlertsIconListener::StartRequest(const
+   NS_NewURI(getter_AddRefs(imageUri), aImageUrl);
+   if (!imageUri)
+     return ShowAlert(nullptr);
+ 
+   nsCOMPtr<imgILoader> il(do_GetService("@mozilla.org/image/loader;1"));
+   if (!il)
+     return ShowAlert(nullptr);
+ 
+-  return il->LoadImageXPCOM(imageUri, nullptr, nullptr, nullptr, nullptr,
+-                            this, nullptr, nsIRequest::LOAD_NORMAL, nullptr,
+-                            nullptr, getter_AddRefs(mIconRequest));
++  nsresult rv = il->LoadImageXPCOM(imageUri, nullptr, nullptr, nullptr, nullptr,
++                                   this, nullptr, nsIRequest::LOAD_NORMAL, nullptr,
++                                   nullptr, getter_AddRefs(mIconRequest));
++  if (NS_FAILED(rv))
++    return rv;
++
++  mIconRequest->StartDecoding();
++
++  return NS_OK;
+ }
+ 
+ void
+ nsAlertsIconListener::SendCallback()
+ {
+   if (mAlertListener)
+     mAlertListener->Observe(nullptr, "alertclickcallback", mAlertCookie.get());
+ }
diff --git a/firefox-33-rhbz-966424.patch b/firefox-33-rhbz-966424.patch
new file mode 100644
index 0000000..7579d09
--- /dev/null
+++ b/firefox-33-rhbz-966424.patch
@@ -0,0 +1,14 @@
+diff -up firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm
+--- firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424	2014-10-14 08:12:14.358697255 +0200
++++ firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm	2014-10-14 08:17:59.962181908 +0200
+@@ -174,7 +174,9 @@ this.checkCert =
+ }
+ 
+ function isBuiltinToken(tokenName) {
+-  return tokenName == "Builtin Object Token";
++  return tokenName == "Builtin Object Token" ||
++         tokenName == "Default Trust" ||
++         tokenName == "System Trust";
+ }
+ 
+ /**
diff --git a/seamonkey-2.26-installdir.patch b/seamonkey-2.30-installdir.patch
similarity index 58%
rename from seamonkey-2.26-installdir.patch
rename to seamonkey-2.30-installdir.patch
index 2ce9e49..18210fb 100644
--- a/seamonkey-2.26-installdir.patch
+++ b/seamonkey-2.30-installdir.patch
@@ -1,7 +1,10 @@
-diff -Nrbu seamonkey-2.26/comm-release/config/baseconfig.mk seamonkey-2.26-OK/comm-release/config/baseconfig.mk
---- seamonkey-2.26/comm-release/config/baseconfig.mk	2014-04-29 08:55:06.000000000 +0400
-+++ seamonkey-2.26-OK/comm-release/config/baseconfig.mk	2014-05-06 22:24:50.327493588 +0400
-@@ -1,7 +1,7 @@
+diff -Nrbu seamonkey-2.30/comm-release/config/baseconfig.mk seamonkey-2.30-OK/comm-release/config/baseconfig.mk
+--- seamonkey-2.30/comm-release/config/baseconfig.mk	2014-10-14 10:26:59.000000000 +0400
++++ seamonkey-2.30-OK/comm-release/config/baseconfig.mk	2014-10-25 01:31:27.394515999 +0400
+@@ -2,10 +2,10 @@
+ # directly in python/mozbuild/mozbuild/base.py for gmake validation.
+ # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
+ # whether a normal build is happening or whether the check is running.
 -includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
 -idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
 -installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
@@ -13,9 +16,9 @@ diff -Nrbu seamonkey-2.26/comm-release/config/baseconfig.mk seamonkey-2.26-OK/co
  MOZILLA_SRCDIR = $(topsrcdir)/mozilla
  MOZDEPTH = $(DEPTH)/mozilla
  DIST = $(MOZDEPTH)/dist
-diff -Nrbu seamonkey-2.26/comm-release/mozilla/config/baseconfig.mk seamonkey-2.26-OK/comm-release/mozilla/config/baseconfig.mk
---- seamonkey-2.26/comm-release/mozilla/config/baseconfig.mk	2014-04-29 09:02:42.000000000 +0400
-+++ seamonkey-2.26-OK/comm-release/mozilla/config/baseconfig.mk	2014-05-06 22:26:01.343493513 +0400
+diff -Nrbu seamonkey-2.30/comm-release/mozilla/config/baseconfig.mk seamonkey-2.30-OK/comm-release/mozilla/config/baseconfig.mk
+--- seamonkey-2.30/comm-release/mozilla/config/baseconfig.mk	2014-10-14 10:36:04.000000000 +0400
++++ seamonkey-2.30-OK/comm-release/mozilla/config/baseconfig.mk	2014-10-25 01:30:53.446516035 +0400
 @@ -2,10 +2,10 @@
  # directly in python/mozbuild/mozbuild/base.py for gmake validation.
  # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
diff --git a/seamonkey.spec b/seamonkey.spec
index a372cba..51a7c48 100644
--- a/seamonkey.spec
+++ b/seamonkey.spec
@@ -6,8 +6,8 @@
 %define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
 %define cairo_version 0.5
 
-%global minimum_build_nspr_version 4.10.6
-%global minimum_build_nss_version 3.16.2
+%global minimum_build_nspr_version 4.10.3
+%global minimum_build_nss_version 3.17.1
 %global minimum_build_vpx_version 1.3.0
 
 %define build_langpacks 1
@@ -22,7 +22,7 @@
 
 Name:           seamonkey
 Summary:        Web browser, e-mail, news, IRC client, HTML editor
-Version:        2.29.1
+Version:        2.30
 Release:        1%{?dist}
 URL:            http://www.mozilla.org/projects/seamonkey/
 License:        MPLv2.0
@@ -36,7 +36,7 @@ Source0:        ftp://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/%{versi
 #
 #   Run script as  ./moz-grab-langpacks --app seamonkey %{version}
 #
-Source1:        seamonkey-langpacks-%{version}-20140926.tar.xz
+Source1:        seamonkey-langpacks-%{version}-20141025.tar.xz
 
 Source3:        seamonkey.sh.in
 Source4:        seamonkey.desktop
@@ -52,11 +52,15 @@ Source100:      seamonkey-find-requires.sh
 Patch1:         xulrunner-26.0-gcc47.patch
 Patch2:         xulrunner-24.0-jemalloc-ppc.patch
 Patch3:         xulrunner-27.0-build-arm.patch
-Patch4:         firefox-32-rhbz-966424.patch
+Patch4:         firefox-33-rhbz-966424.patch
 Patch5:         firefox-32-mozilla-858919.patch
-Patch6:         firefox-32-baseline-disable.patch
-Patch10:        seamonkey-2.29-enable-addons.patch
-Patch22:        seamonkey-2.26-installdir.patch
+Patch6:         firefox-33-mozilla-858919-2.patch
+Patch7:         firefox-33-mozilla-858919-3.patch
+Patch8:         firefox-33-mozilla-1042889.patch
+Patch9:         firefox-32-baseline-disable.patch
+Patch10:        firefox-33-build-prbool.patch
+Patch15:        seamonkey-2.29-enable-addons.patch
+Patch22:        seamonkey-2.30-installdir.patch
 Patch23:        seamonkey-2.25-elfhack.patch
 
 Buildroot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -142,14 +146,18 @@ pushd mozilla
 %patch1 -p2 -b .gcc47
 %patch2 -p2 -b .jemalloc-ppc
 %patch3 -p2 -b .build-arm
-%patch4 -p1 -b .966424
+%patch4 -p2 -b .966424
 %patch5 -p1 -b .858919
+%patch6 -p1 -b .858919-2
+%patch7 -p1 -b .858919-3
+%patch8 -p1 -b .1042889
 %ifarch %{ix86}
-%patch6 -p2 -b .baseline
+%patch9 -p2 -b .baseline
 %endif
+%patch10 -p1 -b .prbool
 popd
 
-%patch10 -p2 -b .addons
+%patch15 -p2 -b .addons
 
 %patch22 -p2 -b .installdir
 %patch23 -p2 -b .elfhack
@@ -489,6 +497,10 @@ fi
 
 
 %changelog
+* Sat Oct 25 2014 Dmitry Butskoy <Dmitry at Butskoy.name> 2.30-1
+- update to 2.30
+- apply some patches from firefox-33 package
+
 * Fri Sep 26 2014 Dmitry Butskoy <Dmitry at Butskoy.name> 2.29.1-1
 - update to 2.29.1
 
diff --git a/sources b/sources
index 6c24b45..8718319 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-2e7de6485848675857f8b8e43221caa7  seamonkey-2.29.1.source.tar.bz2
-58f05ca7afc69ced05471ccabb0a5fd5  seamonkey-langpacks-2.29.1-20140926.tar.xz
+831e91caf7036387f89b369c54250e75  seamonkey-2.30.source.tar.bz2
+bd2236d197cf50d5c0fb617d1250bc7b  seamonkey-langpacks-2.30-20141025.tar.xz


More information about the scm-commits mailing list