rpms/seamonkey/FC-6 firefox-1.5-pango-cursor-position-more.patch, NONE, 1.1 firefox-1.5-pango-cursor-position.patch, NONE, 1.1 firefox-1.5-pango-justified-range.patch, NONE, 1.1 firefox-1.5-pango-printing.patch, NONE, 1.1 firefox-1.5-pango-underline.patch, NONE, 1.1 firefox-1.5-xft-rangewidth.patch, NONE, 1.1 firefox-1.5.0.10-nss-system-nspr.patch, NONE, 1.1 firefox-1.5.0.10-with-system-nss.patch, NONE, 1.1 firefox-1.5-nopangoxft.patch, 1.1, 1.2 mozilla-nspr-packages.patch, 1.1, 1.2 seamonkey.spec, 1.17, 1.18 firefox-1.1-nss-system-nspr.patch, 1.1, NONE firefox-1.5-dnd-nograb.patch, 1.1, NONE firefox-1.5-pango-ua.patch, 1.1, NONE firefox-1.5-with-system-nss.patch, 1.1, NONE mozilla-1.4.1-ppc64.patch, 1.1, NONE

Kai Engert (kengert) fedora-extras-commits at redhat.com
Thu Mar 1 19:07:22 UTC 2007


Author: kengert

Update of /cvs/extras/rpms/seamonkey/FC-6
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv26315

Modified Files:
	firefox-1.5-nopangoxft.patch mozilla-nspr-packages.patch 
	seamonkey.spec 
Added Files:
	firefox-1.5-pango-cursor-position-more.patch 
	firefox-1.5-pango-cursor-position.patch 
	firefox-1.5-pango-justified-range.patch 
	firefox-1.5-pango-printing.patch 
	firefox-1.5-pango-underline.patch 
	firefox-1.5-xft-rangewidth.patch 
	firefox-1.5.0.10-nss-system-nspr.patch 
	firefox-1.5.0.10-with-system-nss.patch 
Removed Files:
	firefox-1.1-nss-system-nspr.patch firefox-1.5-dnd-nograb.patch 
	firefox-1.5-pango-ua.patch firefox-1.5-with-system-nss.patch 
	mozilla-1.4.1-ppc64.patch 
Log Message:
* Wed Mar 01 2007 Kai Engert <kengert at redhat.com> 1.0.8-0.6.1
- Synch set of patches with those used in Firefox.


firefox-1.5-pango-cursor-position-more.patch:

--- NEW FILE firefox-1.5-pango-cursor-position-more.patch ---
diff -pruN -x '.moz*' -x .deps -x 'firefox*' -x '*.mk' -x 'config*' -x dist -x build -x toolkit -x '*o' -x '*a' -x '*html' mozilla.orig/layout/generic/nsTextFrame.cpp mozilla/layout/generic/nsTextFrame.cpp
--- mozilla.orig/layout/generic/nsTextFrame.cpp	2006-08-26 13:33:35.000000000 +0900
+++ mozilla/layout/generic/nsTextFrame.cpp	2006-12-13 20:54:32.000000000 +0900
@@ -4261,12 +4261,10 @@ nsTextFrame::GetPointFromOffset(nsPresCo
       if (tc) {
         totalLength = tc->Text()->GetLength(); // raw value which includes whitespace
       }
-      if ((hitLength == textLength) && (inOffset = mContentLength) &&
-          (mContentOffset + mContentLength == totalLength)) {
-        // no need to re-measure when at the end of the last-in-flow
-      }
+      if (hitLength > 0)
+	inRendContext->GetRangeWidth(paintBuffer.mBuffer, textLength, 0, hitLength, (PRUint32&)width);
       else
-        inRendContext->GetWidth(paintBuffer.mBuffer, hitLength, width);
+	width = 0;
     }
     if ((hitLength == textLength) && (TEXT_TRIMMED_WS & mState)) {
       //

firefox-1.5-pango-cursor-position.patch:

--- NEW FILE firefox-1.5-pango-cursor-position.patch ---
Index: mozilla/gfx/src/gtk/nsFontMetricsPango.cpp
===================================================================
RCS file: /cvsroot/mozilla/gfx/src/gtk/nsFontMetricsPango.cpp,v
retrieving revision 1.24
diff -d -u -p -6 -r1.24 nsFontMetricsPango.cpp
--- mozilla/gfx/src/gtk/nsFontMetricsPango.cpp	25 Aug 2006 01:02:34 -0000	1.24
+++ mozilla/gfx/src/gtk/nsFontMetricsPango.cpp	6 Sep 2006 07:01:49 -0000
@@ -948,13 +948,12 @@ nsFontMetricsPango::GetClusterInfo(const
 PRInt32
 nsFontMetricsPango::GetPosition(const PRUnichar *aText, PRUint32 aLength,
                                 nsPoint aPt)
 {
     int trailing = 0;
     int inx = 0;
-    gboolean found = FALSE;
     const gchar *curChar;
     PRInt32 retval = 0;
 
     float f = mDeviceContext->AppUnitsToDevUnits();
     
     PangoLayout *layout = pango_layout_new(mPangoContext);
@@ -974,28 +973,18 @@ nsFontMetricsPango::GetPosition(const PR
     }
 
     // Set up the pango layout
     pango_layout_set_text(layout, text, strlen(text));
     FixupSpaceWidths(layout, text);
     
-    found = pango_layout_xy_to_index(layout, localX, localY,
-                                     &inx, &trailing);
+    pango_layout_xy_to_index(layout, localX, localY,
+                             &inx, &trailing);
 
     // Convert the index back to the utf-16 index
     curChar = text;
 
-    // Jump to the end if it's not found.
-    if (!found) {
-        if (inx == 0)
-            retval = 0;
-        else if (trailing)
-            retval = aLength;
-
-        goto loser;
-    }
-
     for (PRUint32 curOffset=0; curOffset < aLength;
          curOffset++, curChar = g_utf8_find_next_char(curChar, NULL)) {
 
         // Check for a match before checking for a surrogate pair
         if (curChar - text == inx) {
             retval = curOffset;

firefox-1.5-pango-justified-range.patch:

--- NEW FILE firefox-1.5-pango-justified-range.patch ---
diff -pruN -x '.moz*' -x .deps -x 'thunderbird*' -x '*.mk' -x 'config*' -x dist -x build -x toolkit -x '*o' -x '*a' -x '*html' -x 'firefox*' mozilla.orig/layout/generic/nsTextFrame.cpp mozilla/layout/generic/nsTextFrame.cpp
--- mozilla.orig/layout/generic/nsTextFrame.cpp	2006-12-20 12:15:38.000000000 +0900
+++ mozilla/layout/generic/nsTextFrame.cpp	2006-12-20 21:29:39.000000000 +0900
@@ -2973,15 +2973,16 @@ nsTextFrame::RenderString(nsIRenderingCo
 
   nsIFontMetrics* lastFont = aTextStyle.mLastFont;
   PRInt32 pendingCount;
-  PRUnichar* runStart = bp;
+  PRUnichar* runStart = bp, *top = aBuffer;
   nscoord charWidth, width = 0;
   PRInt32 countSoFar = 0;
+  PRUint32 offset;
   // Save the color we want to use for the text, since calls to
   // PaintTextDecorations in this method will call SetColor() on the rendering
   // context.
   nscolor textColor;
   aRenderingContext.GetColor(textColor);
-  for (; --aLength >= 0; aBuffer++) {
+  for (offset = 0; offset < aLength; aBuffer++, offset++) {
     nsIFontMetrics* nextFont;
     nscoord glyphWidth = 0;
     PRUnichar ch = *aBuffer;
@@ -3038,7 +3039,7 @@ nsTextFrame::RenderString(nsIRenderingCo
     else if (ch == ' ') {
       glyphWidth += aTextStyle.mSpaceWidth + aTextStyle.mWordSpacing + aTextStyle.mLetterSpacing;
     }
-    else if (IS_HIGH_SURROGATE(ch) && aLength > 0 &&
+    else if (IS_HIGH_SURROGATE(ch) && (offset + 1) < aLength &&
            IS_LOW_SURROGATE(*(aBuffer+1))) {
       
       // special handling for surrogate pair
@@ -3046,7 +3047,7 @@ nsTextFrame::RenderString(nsIRenderingCo
       glyphWidth += charWidth + aTextStyle.mLetterSpacing;
       // copy the surrogate low
       *bp++ = ch;
-      --aLength;
+      offset++;
       aBuffer++;
       ch = *aBuffer;
       // put the width into the space buffer
@@ -3058,10 +3059,10 @@ nsTextFrame::RenderString(nsIRenderingCo
       glyphWidth = 0;
     }
     else {
-      aRenderingContext.GetWidth(ch, charWidth);
+      aRenderingContext.GetRangeWidth(top, aLength, offset, offset + 1, (PRUint32&)charWidth);
       glyphWidth += charWidth + aTextStyle.mLetterSpacing;
     }
-    if (justifying && (!isEndOfLine || aLength > 0)
+    if (justifying && (!isEndOfLine || (offset + 1) < aLength)
         && IsJustifiableCharacter(ch, isCJ)) {
       glyphWidth += aTextStyle.mExtraSpacePerJustifiableCharacter;
       if ((PRUint32)--aTextStyle.mNumJustifiableCharacterToRender

firefox-1.5-pango-printing.patch:

--- NEW FILE firefox-1.5-pango-printing.patch ---
--- mozilla/gfx/src/freetype/nsFreeType.h.pango-printing	2006-12-01 16:23:21.000000000 -0500
+++ mozilla/gfx/src/freetype/nsFreeType.h	2006-12-01 16:26:46.000000000 -0500
@@ -52,6 +52,7 @@
 #include FT_CACHE_H
 #include FT_CACHE_IMAGE_H
 #include FT_TRUETYPE_TABLES_H
+#include FT_TYPE1_TABLES_H
 #include "nsIFreeType2.h"
 
 typedef struct FT_FaceRec_*  FT_Face;
@@ -138,6 +139,8 @@
 
 typedef FT_ULong (*FT_Get_First_Char_t)(FT_Face, FT_UInt*);
 typedef FT_ULong (*FT_Get_Next_Char_t)(FT_Face, FT_ULong, FT_UInt*);
+typedef FT_Int   (*FT_Has_PS_Glyph_Names_t)(FT_Face);
+typedef FT_Error (*FT_Get_Glyph_Name_t)(FT_Face, FT_UInt, FT_Pointer, FT_UInt);
 
 class nsFreeTypeFace;
 
@@ -193,11 +196,13 @@
 // #endif
   FT_Get_First_Char_t       nsFT_Get_First_Char;
   FT_Get_Next_Char_t        nsFT_Get_Next_Char;
+  FT_Has_PS_Glyph_Names_t   nsFT_Has_PS_Glyph_Names;
+  FT_Get_Glyph_Name_t       nsFT_Get_Glyph_Name;
 
   // this array needs to be big enough to hold all the function pointers
   // plus one extra for the null at the end
 // #ifdef MOZ_SVG
-  static FtFuncList FtFuncs[24];
+  static FtFuncList FtFuncs[28];
 // #else
 //  static FtFuncList FtFuncs[20];
 // #endif
--- mozilla/gfx/src/freetype/nsFreeType.cpp.pango-printing	2006-12-01 16:23:21.000000000 -0500
+++ mozilla/gfx/src/freetype/nsFreeType.cpp	2006-12-01 16:26:46.000000000 -0500
@@ -123,6 +123,8 @@
 // #endif
   {"FT_Get_First_Char",       NS_FT2_OFFSET(nsFT_Get_First_Char),       PR_FALSE},
   {"FT_Get_Next_Char",        NS_FT2_OFFSET(nsFT_Get_Next_Char),        PR_FALSE},
+  {"FT_Has_PS_Glyph_Names",   NS_FT2_OFFSET(nsFT_Has_PS_Glyph_Names),   PR_FALSE},
+  {"FT_Get_Glyph_Name",       NS_FT2_OFFSET(nsFT_Get_Glyph_Name),       PR_TRUE},
   {nsnull,                    0, 0}
 };
 
@@ -388,6 +390,22 @@
 } 
 
 NS_IMETHODIMP
+nsFreeType2::HasPSGlyphNames(FT_Face face, FT_Int *result)
+{
+  // call the FreeType2 function via the function pointer
+  *result = nsFT_Has_PS_Glyph_Names(face);
+  return NS_OK;
+}
+
+NS_IMETHODIMP
+nsFreeType2::GetGlyphName(FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max)
+{
+  // call the FreeType2 function via the function pointer
+  FT_Error error = nsFT_Get_Glyph_Name(face, glyph_index, buffer, buffer_max);
+  return error ? NS_ERROR_FAILURE : NS_OK;
+}
+
+NS_IMETHODIMP
 nsFreeType2::SupportsExtFunc(PRBool *res)
 { 
   *res = gHasExtFunc;
--- mozilla/gfx/src/gtk/nsDeviceContextGTK.cpp.pango-printing	2006-12-01 16:23:10.000000000 -0500
+++ mozilla/gfx/src/gtk/nsDeviceContextGTK.cpp	2006-12-01 16:26:35.000000000 -0500
@@ -576,8 +576,10 @@
     // Create a Postscript device context 
     nsCOMPtr<nsIDeviceContextPS> dcps(do_CreateInstance(kCDeviceContextPS, &rv));
     NS_ASSERTION(NS_SUCCEEDED(rv), "Couldn't create PS Device context.");
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv)) { 
+      fprintf (stderr, "OK, failed here\n");
       return NS_ERROR_GFX_COULD_NOT_LOAD_PRINT_MODULE;
+    }
   
     rv = dcps->SetSpec(aDevice);
     if (NS_FAILED(rv)) 
--- mozilla/gfx/src/gtk/mozilla-decoder.h.pango-printing	2006-12-01 16:23:10.000000000 -0500
+++ mozilla/gfx/src/gtk/mozilla-decoder.h	2006-12-01 16:26:35.000000000 -0500
@@ -39,33 +39,15 @@
 #ifndef _MOZILLA_DECODER_H
 #define _MOZILLA_DECODER_H
 
-#include <pango/pangofc-decoder.h>
+#include <pango/pango-fontmap.h>
 
 G_BEGIN_DECLS
 
-#define MOZILLA_TYPE_DECODER (mozilla_decoder_get_type())
-#define MOZILLA_DECODER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), MOZILLA_TYPE_DECODER, MozillaDecoder))
-#define MOZILLA_IS_DECODER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), MOZILLA_TYPE_DECODER))
-
-typedef struct _MozillaDecoder      MozillaDecoder;
-typedef struct _MozillaDecoderClass MozillaDecoderClass;
-
-#define MOZILLA_DECODER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOZILLA_TYPE_DECODER, MozillaDecoderClass))
-#define MOZILLA_IS_DECODER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MOZILLA_TYPE_DECODER))
-#define MOZILLA_DECODER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOZILLA_TYPE_DECODER, MozillaDecoderClass))
-
-struct _MozillaDecoder
-{
-  PangoFcDecoder parent_instance;
-};
-
-struct _MozillaDecoderClass
-{
-  PangoFcDecoderClass parent_class;
-};
+#ifdef PSPANGO
+#define mozilla_decoders_init mozilla_decoders_init_ps
+#endif
 
-GType           mozilla_decoder_get_type (void);
-int             mozilla_decoders_init    (void);
+int             mozilla_decoders_init    (PangoFontMap *fontmap);
 
 G_END_DECLS
 
--- mozilla/gfx/src/gtk/nsFontMetricsUtils.cpp.pango-printing	2006-12-01 16:23:10.000000000 -0500
+++ mozilla/gfx/src/gtk/nsFontMetricsUtils.cpp	2006-12-01 16:26:35.000000000 -0500
@@ -143,11 +143,24 @@
 PRBool
 NS_IsPangoEnabled(void)
 {
-    char *val = PR_GetEnv("MOZ_DISABLE_PANGO");
-    if (val)
-        return FALSE;
+    static PRBool beenHere;
+    static PRBool pangoEnabled;
 
-    return TRUE;
+    if (!beenHere) {
+        beenHere = PR_TRUE;
+
+        char *val = PR_GetEnv("MOZ_DISABLE_PANGO");
+        pangoEnabled = !(val);
+
+        if (pangoEnabled) {
+            nsCOMPtr<nsIPref> prefService = do_GetService(NS_PREF_CONTRACTID);
+            if (prefService)
+                prefService->SetDefaultCharPref("general.useragent.extra.pango",
+                                                "pango-text");
+        }
+    }
+
+    return pangoEnabled;
 }
 
 #endif
--- mozilla/gfx/src/gtk/nsFontMetricsPango.h.pango-printing	2006-12-01 16:23:10.000000000 -0500
+++ mozilla/gfx/src/gtk/nsFontMetricsPango.h	2006-12-01 16:26:35.000000000 -0500
@@ -37,17 +37,53 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
+
 #include "nsIFontMetrics.h"
 #include "nsIFontEnumerator.h"
 #include "nsCRT.h"
 #include "nsIAtom.h"
 #include "nsString.h"
 #include "nsVoidArray.h"
+
+#ifdef PSPANGO
+#include "nsFontMetricsPS.h"
+#else
 #include "nsIFontMetricsGTK.h"
+#endif
 
 #include <pango/pango.h>
 
-class nsFontMetricsPango : public nsIFontMetricsGTK
+#ifdef PSPANGO
+
+#define CONTEXT_ARG_DEF
+#define CONTEXT_ARG_PASS
+#define CONTEXT_ARG_NULL
+#define CONTEXT_AND_SURFACE_ARG_DEF  , nsRenderingContextPS *aContext
+#define CONTEXT_AND_SURFACE_ARG_PASS , aContext
+
+#else
+
+#define CONTEXT_ARG_DEF              , nsRenderingContextGTK *aContext
+#define CONTEXT_ARG_PASS             , aContext
+#define CONTEXT_ARG_NULL             , NULL
+#define CONTEXT_AND_SURFACE_ARG_DEF  , nsRenderingContextGTK *aContext, nsDrawingSurfaceGTK *aSurface
+#define CONTEXT_AND_SURFACE_ARG_PASS , aContext, aSurface
+
+#endif
+
+
+#ifdef PSPANGO
+
+#define nsFontMetricsPango   nsFontMetricsPSPango
[...3488 lines suppressed...]
   PRInt32 maxCharStringLen =
-#ifdef MOZ_ENABLE_XFT
+#if defined(MOZ_ENABLE_XFT) || defined(MOZ_ENABLE_PANGO)
     FT2GlyphToType1CharString(aFace, 0, aWmode, aLenIV, nsnull);
 #else
     FT2GlyphToType1CharString(aFt2, aFace, 0, aWmode, aLenIV, nsnull);
 #endif
 
-  PRUint32 glyphID;
-
-  for (i = 0; i < len; i++) {
-#ifdef MOZ_ENABLE_XFT
-    glyphID = FT_Get_Char_Index(aFace, charIDs[i]);
+  for (i = aOffset; i < aOffset + aLen; i++) {
+#if defined(MOZ_ENABLE_XFT) || defined(MOZ_ENABLE_PANGO)
     charStringLen =
-      FT2GlyphToType1CharString(aFace, glyphID, aWmode, aLenIV, nsnull);
+      FT2GlyphToType1CharString(aFace, glyphs.ValueAt(i), aWmode, aLenIV,
+                                nsnull);
 #else
-    aFt2->GetCharIndex(aFace, charIDs[i], &glyphID);
     charStringLen =
-      FT2GlyphToType1CharString(aFt2, aFace, glyphID, aWmode, aLenIV, nsnull);
+      FT2GlyphToType1CharString(aFt2, aFace, glyphs.ValueAt(i), aWmode, aLenIV,
+                                nsnull);
 #endif
 
     if (charStringLen > maxCharStringLen)
@@ -666,7 +784,7 @@
                                    len + 1).get()); 
 
   // output the notdef glyph
-#ifdef MOZ_ENABLE_XFT
+#if defined(MOZ_ENABLE_XFT) || defined(MOZ_ENABLE_PANGO)
   charStringLen = FT2GlyphToType1CharString(aFace, 0, aWmode, aLenIV,
                                             charString.get());
 #else
@@ -676,22 +794,20 @@
 
   // enclose charString with  "/.notdef RD .....  ND" 
   charStringOut(aFile, &pos, &key, NS_REINTERPRET_CAST(const char*, charString.get()),
-                charStringLen, 0); 
+                charStringLen, "/.notdef");
 
 
   // output the charstrings for each glyph in this sub font
-  for (i = 0; i < len; i++) {
-#ifdef MOZ_ENABLE_XFT
-    glyphID = FT_Get_Char_Index(aFace, charIDs[i]);
-    charStringLen = FT2GlyphToType1CharString(aFace, glyphID, aWmode,
+  for (i = aOffset; i < aOffset + aLen; i++) {
+#if defined(MOZ_ENABLE_XFT) || defined(MOZ_ENABLE_PANGO)
+    charStringLen = FT2GlyphToType1CharString(aFace, glyphs.ValueAt(i), aWmode,
                                               aLenIV, charString.get());
 #else
-    aFt2->GetCharIndex(aFace, charIDs[i], &glyphID);
-    charStringLen = FT2GlyphToType1CharString(aFt2, aFace, glyphID, aWmode,
-                                              aLenIV, charString.get());
+    charStringLen = FT2GlyphToType1CharString(aFt2, aFace, glyphs.ValueAt(i),
+                                              aWmode, aLenIV, charString.get());
 #endif
     charStringOut(aFile, &pos, &key, NS_REINTERPRET_CAST(const char*, charString.get()),
-                  charStringLen, charIDs[i]);
+                  charStringLen, glyphnames.CStringAt(i - aOffset)->get());
   }
 
   // wrap up the encrypted part of the font definition
@@ -753,15 +869,12 @@
 
 /* static */ 
 void charStringOut(FILE* aFile,  PRUint32* aPos, PRUint16* aKey, 
-                   const char *aStr, PRUint32 aLen, PRUnichar aId)
+                   const char *aStr, PRUint32 aLen, const char *aGlyphName)
 {
     // use a local buffer instead of nsPrintfCString to avoid alloc.
     char buf[30];
     int oLen;
-    if (aId == 0)
-      oLen = PR_snprintf(buf, 30, "/.notdef %d RD ", aLen); 
-    else 
-      oLen = PR_snprintf(buf, 30, "/uni%04X %d RD ", aId, aLen); 
+    oLen = PR_snprintf(buf, 30, "%s %d RD ", aGlyphName, aLen);
 
     if (oLen >= 30) {
       NS_WARNING("buffer size exceeded. charstring will be truncated");
--- mozilla/gfx/src/ps/nsDeviceContextPS.cpp.pango-printing	2006-12-01 16:23:16.000000000 -0500
+++ mozilla/gfx/src/ps/nsDeviceContextPS.cpp	2006-12-01 16:26:27.000000000 -0500
@@ -58,12 +58,15 @@
 #include "nsIPref.h"
 #include "nsString.h"
 #include "nsFontMetricsPS.h"
+#ifdef MOZ_ENABLE_PANGO
+#include "nsFontMetricsPango.h"
+#endif
 #include "nsPostScriptObj.h"
 #include "nspr.h"
 #include "nsILanguageAtomService.h"
 #include "nsPrintJobPS.h"
 #include "nsPrintJobFactoryPS.h"
-#if defined(MOZ_ENABLE_FREETYPE2) || defined(MOZ_ENABLE_XFT)
+#if defined(MOZ_ENABLE_FREETYPE2) || defined(MOZ_ENABLE_XFT) || defined(MOZ_ENABLE_PANGO)
 #include "nsType1.h"
 #endif
 
@@ -223,7 +226,7 @@
  
   nsresult rv;
   nsCOMPtr<nsIPref> pref(do_GetService(NS_PREF_CONTRACTID, &rv));
-#ifdef MOZ_ENABLE_XFT
+#if defined(MOZ_ENABLE_XFT) || defined(MOZ_ENABLE_PANGO)
   if (NS_SUCCEEDED(rv)) {
       rv = pref->GetBoolPref("font.FreeType2.printing", &mFTPEnable);
       if (NS_FAILED(rv))
@@ -469,7 +472,7 @@
       NS_ASSERTION(submitFP, "No print job submission handle");
 
       // Start writing the print job to the job handler
-#if defined(MOZ_ENABLE_FREETYPE2) || defined(MOZ_ENABLE_XFT)
+#if defined(MOZ_ENABLE_FREETYPE2) || defined(MOZ_ENABLE_XFT) || defined(MOZ_ENABLE_PANGO)
       mPSObj->write_prolog(submitFP, mFTPEnable);
 #else 
       mPSObj->write_prolog(submitFP);
@@ -550,15 +553,52 @@
   virtual nsresult CreateFontMetricsInstance(nsIFontMetrics** aResult);
 };
 
+#if defined(MOZ_ENABLE_PANGO)
+PRBool
+NS_IsPangoEnabled(void)
+{
+    static PRBool beenHere;
+    static PRBool pangoEnabled;
+
+    if (!beenHere) {
+        beenHere = PR_TRUE;
+
+        char *val = PR_GetEnv("MOZ_DISABLE_PANGO");
+        pangoEnabled = !(val);
+
+        if (pangoEnabled) {
+            nsCOMPtr<nsIPref> prefService = do_GetService(NS_PREF_CONTRACTID);
+            if (prefService)
+                prefService->SetDefaultCharPref("general.useragent.extra.pango",
+                                                "pango-text");
+        }
+    }
+
+    return pangoEnabled;
+}
+#endif
 
 nsresult nsFontCachePS::CreateFontMetricsInstance(nsIFontMetrics** aResult)
 {
   NS_PRECONDITION(aResult, "null out param");
-  nsIFontMetrics *fm = new nsFontMetricsPS();
-  if (!fm)
-    return NS_ERROR_OUT_OF_MEMORY;
-  NS_ADDREF(fm);
-  *aResult = fm;
+#ifdef MOZ_ENABLE_PANGO
+  if (NS_IsPangoEnabled())
+  {
+    nsIFontMetrics *fm = new nsFontMetricsPSPango();
+    if (!fm)
+      return NS_ERROR_OUT_OF_MEMORY;
+    NS_ADDREF(fm);
+    *aResult = fm;
+  }
+  else
+#endif
+  {
+    nsIFontMetrics *fm = new nsFontMetricsPS();
+    if (!fm)
+      return NS_ERROR_OUT_OF_MEMORY;
+    NS_ADDREF(fm);
+    *aResult = fm;
+  }
   return NS_OK;
 }
 
Index: mozilla/config/system-headers
===================================================================
--- mozilla/config/system-headers	2006-10-26 12:21:39.000000000 -0400
+++ mozilla/config/system-headers	2006-10-26 12:23:29.000000000 -0400
@@ -180,6 +180,7 @@
 freetype/ftoutln.h
 freetype/ttnameid.h
 freetype/tttables.h
+freetype/t1tables.h
 fribidi/fribidi.h
 FSp_fopen.h
 fstream.h
@@ -484,6 +485,7 @@
 pango/pangofc-fontmap.h
 pango/pango-fontmap.h
 pango/pango.h
+pango/pangoft2.h
 pango/pangoxft.h
 pango/pangox.h
 pango-types.h

firefox-1.5-pango-underline.patch:

--- NEW FILE firefox-1.5-pango-underline.patch ---
diff -pruN -x '.moz*' -x .deps -x 'thunderbird*' -x '*.mk' -x 'config*' -x dist -x build -x toolkit -x '*o' -x '*a' -x '*html' mozilla.orig/layout/generic/nsTextFrame.cpp mozilla/layout/generic/nsTextFrame.cpp
--- mozilla.orig/layout/generic/nsTextFrame.cpp	2006-12-20 12:53:26.000000000 +0900
+++ mozilla/layout/generic/nsTextFrame.cpp	2006-12-20 15:43:14.000000000 +0900
@@ -2097,11 +2097,11 @@ nsTextFrame::PaintTextDecorations(nsIRen
     nsRect rect = GetRect();
     while(aDetails){
       const nscoord* sp= aSpacing;
-      PRInt32 startOffset = 0;
-      PRInt32 textWidth = 0;
-      PRInt32 start = PR_MAX(0,(aDetails->mStart - (PRInt32)aIndex));
-      PRInt32 end = PR_MIN((PRInt32)aLength,(aDetails->mEnd - (PRInt32)aIndex));
-      PRInt32 i;
+      PRUint32 startOffset = 0;
+      PRUint32 textWidth = 0;
+      PRUint32 start = PR_MAX(0,(aDetails->mStart - (PRInt32)aIndex));
+      PRUint32 end = PR_MIN((PRInt32)aLength,(aDetails->mEnd - (PRInt32)aIndex));
+      PRUint32 i;
       if ((start < end) && ((aLength - start) > 0))
       {
         //aDetails allready processed to have offsets from frame start not content offsets
@@ -2117,7 +2117,7 @@ nsTextFrame::PaintTextDecorations(nsIRen
                 }
               }
               else
-                aRenderingContext.GetWidth(aText, start, startOffset);
+                aRenderingContext.GetRangeWidth(aText, aLength, 0, start, startOffset);
             }
             if (sp){
               for (i = start; i < end;i ++){
@@ -2125,8 +2125,7 @@ nsTextFrame::PaintTextDecorations(nsIRen
               }
             }
             else
-              aRenderingContext.GetWidth(aText + start,
-                                           PRUint32(end - start), textWidth);
+              aRenderingContext.GetRangeWidth(aText, aLength, start, end, textWidth);
   
           }
           nscoord offset, size;

firefox-1.5-xft-rangewidth.patch:

--- NEW FILE firefox-1.5-xft-rangewidth.patch ---
diff -pruN -x '.moz*' -x .libs -x .deps -x dist -x 'config*' -x 'firefox*' -x '*a' -x '*so' -x '*o' -x build -x '*html' mozilla.orig/gfx/src/gtk/nsFontMetricsXft.cpp mozilla/gfx/src/gtk/nsFontMetricsXft.cpp
--- mozilla.orig/gfx/src/gtk/nsFontMetricsXft.cpp	2006-04-25 08:58:36.000000000 +0900
+++ mozilla/gfx/src/gtk/nsFontMetricsXft.cpp	2007-02-08 01:50:05.000000000 +0900
@@ -227,10 +227,14 @@ static nsresult EnumFontsXft     (nsIAto
 
 static        void ConvertCharToUCS4    (const char *aString,
                                          PRUint32 aLength,
+                                         PRUint32 aStart,
+                                         PRUint32 aEnd,
                                          nsAutoFcChar32Buffer &aOutBuffer,
                                          PRUint32 *aOutLen);
 static        void ConvertUnicharToUCS4 (const PRUnichar *aString,
                                          PRUint32 aLength,
+                                         PRUint32 aStart,
+                                         PRUint32 aEnd,
                                          nsAutoFcChar32Buffer &aOutBuffer,
                                          PRUint32 *aOutLen);
 static    nsresult ConvertUCS4ToCustom  (FcChar32 *aSrc, PRUint32 aSrcLen,
@@ -507,7 +511,7 @@ nsFontMetricsXft::GetWidth(const PRUnich
         return NS_OK;
     }
 
-    gint rawWidth = RawGetWidth(aString, aLength);
+    gint rawWidth = RawGetWidth(aString, aLength, 0, aLength);
 
     float f;
     f = mDeviceContext->DevUnitsToAppUnits();
@@ -533,7 +537,7 @@ nsFontMetricsXft::GetTextDimensions(cons
         return NS_OK;
 
     nsresult rv;
-    rv = EnumerateGlyphs(aString, aLength,
+    rv = EnumerateGlyphs(aString, aLength, 0, aLength,
                          &nsFontMetricsXft::TextDimensionsCallback,
                          &aDimensions);
 
@@ -608,7 +612,7 @@ nsFontMetricsXft::DrawString(const char 
     nsAutoDrawSpecBuffer drawBuffer(data.draw, &data.color);
     data.drawBuffer = &drawBuffer;
 
-    return EnumerateGlyphs(aString, aLength,
+    return EnumerateGlyphs(aString, aLength, 0, aLength,
                            &nsFontMetricsXft::DrawStringCallback, &data);
 }
 
@@ -638,7 +642,7 @@ nsFontMetricsXft::DrawString(const PRUni
     nsAutoDrawSpecBuffer drawBuffer(data.draw, &data.color);
     data.drawBuffer = &drawBuffer;
 
-    return EnumerateGlyphs(aString, aLength,
+    return EnumerateGlyphs(aString, aLength, 0, aLength,
                            &nsFontMetricsXft::DrawStringCallback, &data);
 }
 
@@ -662,7 +666,7 @@ nsFontMetricsXft::GetBoundingMetrics(con
     data.firstTime = PR_TRUE; 
 
     nsresult rv;
-    rv = EnumerateGlyphs(aString, aLength,
+    rv = EnumerateGlyphs(aString, aLength, 0, aLength,
                          &nsFontMetricsXft::BoundingMetricsCallback, &data);
     NS_ENSURE_SUCCESS(rv, rv);
 
@@ -700,7 +704,7 @@ nsFontMetricsXft::GetBoundingMetrics(con
     data.firstTime = PR_TRUE; 
 
     nsresult rv;
-    rv = EnumerateGlyphs(aString, aLength,
+    rv = EnumerateGlyphs(aString, aLength, 0, aLength,
                          &nsFontMetricsXft::BoundingMetricsCallback, &data);
     NS_ENSURE_SUCCESS(rv, rv);
 
@@ -758,7 +762,17 @@ nsFontMetricsXft::GetRangeWidth(const PR
                                 PRUint32 aEnd,
                                 PRUint32 &aWidth)
 {
-    return NS_ERROR_NOT_IMPLEMENTED;
+    if (!aLength) {
+        aWidth = 0;
+        return NS_OK;
+    }
+
+    gint rawWidth = RawGetWidth(aText, aLength, aStart, aEnd);
+    float f = mDeviceContext->DevUnitsToAppUnits();
+
+    aWidth = NSToCoordRound(rawWidth * f);
+
+    return NS_OK;
 }
 
 nsresult
@@ -768,7 +782,17 @@ nsFontMetricsXft::GetRangeWidth(const ch
                                 PRUint32 aEnd,
                                 PRUint32 &aWidth)
 {
-    return NS_ERROR_NOT_IMPLEMENTED;
+    if (!aLength) {
+        aWidth = 0;
+        return NS_OK;
+    }
+
+    gint rawWidth = RawGetWidth(aText, aLength, aStart, aEnd);
+    float f = mDeviceContext->DevUnitsToAppUnits();
+
+    aWidth = NSToCoordRound(rawWidth * f);
+
+    return NS_OK;
 }
 
 PRUint32
@@ -850,12 +874,12 @@ nsFontMetricsXft::CacheFontMetrics(void)
     // mSpaceWidth (width of a space)
     gint rawWidth;
     PRUnichar unispace(' ');
-    rawWidth = RawGetWidth(&unispace, 1);
+    rawWidth = RawGetWidth(&unispace, 1, 0, 1);
     mSpaceWidth = NSToCoordRound(rawWidth * f);
 
     // mAveCharWidth (width of an 'average' char)
     PRUnichar xUnichar('x');
-    rawWidth = RawGetWidth(&xUnichar, 1);
+    rawWidth = RawGetWidth(&xUnichar, 1, 0, 1);
     mAveCharWidth = NSToCoordRound(rawWidth * f);
 
     // mXHeight (height of an 'x' character)
@@ -1226,12 +1250,27 @@ nsFontMetricsXft::DoMatch(PRBool aMatchA
 }
 
 gint
-nsFontMetricsXft::RawGetWidth(const PRUnichar* aString, PRUint32 aLength)
+nsFontMetricsXft::RawGetWidth(const PRUnichar* aString, PRUint32 aLength, PRUint32 aStart, PRUint32 aEnd)
+{
+    nscoord width = 0;
+    nsresult rv;
+
+    rv = EnumerateGlyphs(aString, aLength, aStart, aEnd,
+                         &nsFontMetricsXft::GetWidthCallback, &width);
+
+    if (NS_FAILED(rv))
+        width = 0;
+
+    return width;
+}
+
+gint
+nsFontMetricsXft::RawGetWidth(const char* aString, PRUint32 aLength, PRUint32 aStart, PRUint32 aEnd)
 {
     nscoord width = 0;
     nsresult rv;
 
-    rv = EnumerateGlyphs(aString, aLength,
+    rv = EnumerateGlyphs(aString, aLength, aStart, aEnd,
                          &nsFontMetricsXft::GetWidthCallback, &width);
 
     if (NS_FAILED(rv))
@@ -1457,6 +1496,8 @@ nsFontMetricsXft::EnumerateXftGlyphs(con
 nsresult
 nsFontMetricsXft::EnumerateGlyphs(const PRUnichar *aString,
                                   PRUint32 aLen,
+                                  PRUint32 aStart,
+                                  PRUint32 aEnd,
                                   GlyphEnumeratorCallback aCallback,
                                   void *aCallbackData)
 {
@@ -1465,7 +1506,7 @@ nsFontMetricsXft::EnumerateGlyphs(const 
 
     NS_ENSURE_TRUE(aLen, NS_OK); 
 
-    ConvertUnicharToUCS4(aString, aLen, charBuffer, &len);
+    ConvertUnicharToUCS4(aString, aLen, aStart, aEnd, charBuffer, &len);
     if (!len)
         return NS_ERROR_OUT_OF_MEMORY;
 
@@ -1475,6 +1516,8 @@ nsFontMetricsXft::EnumerateGlyphs(const 
 nsresult
 nsFontMetricsXft::EnumerateGlyphs(const char *aString,
                                   PRUint32 aLen,
+                                  PRUint32 aStart,
+                                  PRUint32 aEnd,
                                   GlyphEnumeratorCallback aCallback,
                                   void *aCallbackData)
 {
@@ -1484,7 +1527,7 @@ nsFontMetricsXft::EnumerateGlyphs(const 
     NS_ENSURE_TRUE(aLen, NS_OK); 
 
     // Convert the incoming string into an array of UCS4 chars
-    ConvertCharToUCS4(aString, aLen, charBuffer, &len);
+    ConvertCharToUCS4(aString, aLen, aStart, aEnd, charBuffer, &len);
     if (!len)
         return NS_ERROR_OUT_OF_MEMORY;
 
@@ -2343,7 +2386,7 @@ EnumFontsXft(nsIAtom* aLangGroup, const 
 
 /* static */
 void
-ConvertCharToUCS4(const char *aString, PRUint32 aLength, 
+ConvertCharToUCS4(const char *aString, PRUint32 aLength, PRUint32 aStart, PRUint32 aEnd,
                   nsAutoFcChar32Buffer &aOutBuffer, PRUint32 *aOutLen)
 {
     *aOutLen = 0;
@@ -2352,19 +2395,21 @@ ConvertCharToUCS4(const char *aString, P
     if (!aOutBuffer.EnsureElemCapacity(aLength))
         return;
     outBuffer  = aOutBuffer.get();
+    if (aEnd > aLength)
+        aEnd = aLength;
     
-    for (PRUint32 i = 0; i < aLength; ++i) {
-        outBuffer[i] = PRUint8(aString[i]); // to convert char >= 0x80 correctly
+    for (PRUint32 i = aStart; i < aLength && i < aEnd; ++i) {
+        outBuffer[i - aStart] = PRUint8(aString[i]); // to convert char >= 0x80 correctly
     }
 
-    *aOutLen = aLength;
+    *aOutLen = aEnd - aStart;
 }
 
 // Convert the incoming string into an array of UCS4 chars
   
 /* static */
 void
-ConvertUnicharToUCS4(const PRUnichar *aString, PRUint32 aLength,
+ConvertUnicharToUCS4(const PRUnichar *aString, PRUint32 aLength, PRUint32 aStart, PRUint32 aEnd,
                      nsAutoFcChar32Buffer &aOutBuffer, PRUint32 *aOutLen)
 {
     *aOutLen = 0;
@@ -2378,7 +2423,7 @@ ConvertUnicharToUCS4(const PRUnichar *aS
 
     // Walk the passed in string looking for surrogates to convert to
     // their full ucs4 representation.
-    for (PRUint32 i = 0; i < aLength; ++i) {
+    for (PRUint32 i = aStart; i < aLength && i < aEnd; ++i) {
         PRUnichar c = aString[i];
 
         // Optimized for the non-surrogate case
@@ -2693,12 +2738,12 @@ ConvertUCS4ToCustom(FcChar32 *aSrc,  PRU
 #endif
         // Convert 16bit  custom font codes to UCS4
         ConvertUnicharToUCS4(NS_REINTERPRET_CAST(PRUnichar *, med),
-                             medLen >> 1, aResult, &aDestLen);
+                             medLen >> 1, 0, medLen >> 1, aResult, &aDestLen);
         rv = aDestLen ? rv : NS_ERROR_OUT_OF_MEMORY;
     }
     else {
         // Convert 8bit custom font codes to UCS4
-        ConvertCharToUCS4(med, medLen, aResult, &aDestLen);
+        ConvertCharToUCS4(med, medLen, 0, medLen, aResult, &aDestLen);
         rv = aDestLen ? rv : NS_ERROR_OUT_OF_MEMORY;
     }
 
diff -pruN -x '.moz*' -x .libs -x .deps -x dist -x 'config*' -x 'firefox*' -x '*a' -x '*so' -x '*o' -x build -x '*html' mozilla.orig/gfx/src/gtk/nsFontMetricsXft.h mozilla/gfx/src/gtk/nsFontMetricsXft.h
--- mozilla.orig/gfx/src/gtk/nsFontMetricsXft.h	2005-05-03 05:48:30.000000000 +0900
+++ mozilla/gfx/src/gtk/nsFontMetricsXft.h	2007-02-08 01:38:27.000000000 +0900
@@ -259,7 +259,13 @@ private:
     void        DoMatch            (PRBool aMatchAll);
 
     gint        RawGetWidth        (const PRUnichar* aString,
-                                    PRUint32         aLength);
+                                    PRUint32         aLength,
+                                    PRUint32         aStart,
+                                    PRUint32         aEnd);
+    gint        RawGetWidth        (const char* aString,
+                                    PRUint32    aLength,
+                                    PRUint32    aStart,
+                                    PRUint32    aEnd);
     nsresult    SetupMiniFont      (void);
     nsresult    DrawUnknownGlyph   (FcChar32   aChar,
                                     nscoord    aX,
@@ -272,10 +278,14 @@ private:
                                     void     *aCallbackData);
     nsresult    EnumerateGlyphs    (const char *aString,
                                     PRUint32  aLen,
+                                    PRUint32  aStart,
+                                    PRUint32  aEnd,
                                     GlyphEnumeratorCallback aCallback,
                                     void     *aCallbackData);
     nsresult    EnumerateGlyphs    (const PRUnichar *aString,
                                     PRUint32  aLen,
+                                    PRUint32  aStart,
+                                    PRUint32  aEnd,
                                     GlyphEnumeratorCallback aCallback,
                                     void     *aCallbackData);
     void        PrepareToDraw      (nsRenderingContextGTK *aContext,

firefox-1.5.0.10-nss-system-nspr.patch:

--- NEW FILE firefox-1.5.0.10-nss-system-nspr.patch ---
--- mozilla/security/coreconf/location.mk.old	2007-02-13 21:41:48.000000000 +0100
+++ mozilla/security/coreconf/location.mk	2007-02-15 16:52:03.000000000 +0100
@@ -61,6 +61,8 @@
 
 DIST          = $(SOURCE_PREFIX)/$(PLATFORM)
 
+NSPR_LIBDIR   = $(DIST)/lib
+
 ifdef BUILD_DEBUG_GC
     DEFINES += -DDEBUG_GC
 endif
--- mozilla/security/manager/Makefile.in.old	2007-02-13 21:43:11.000000000 +0100
+++ mozilla/security/manager/Makefile.in	2007-02-16 13:58:31.000000000 +0100
@@ -115,12 +115,23 @@
 FREEBL_64FPU_CHK = libfreebl_64fpu_3.chk
 endif
  
+ABS_DIST := $(shell cd $(DIST) && pwd)
+ifeq ($(OS_ARCH),WINNT)
+ABS_DIST := $(shell cygpath -w $(ABS_DIST) | sed -e 's|\\\\|/|g')
+endif
+NSPR_LIBDIR = $(firstword $(filter -L%,$(NSPR_LIBS)))
+ifneq (,$(strip $(NSPR_LIBDIR)))
+NSPR_LIBDIR := $(subst -L,,$(subst -L$(DIST),-L$(ABS_DIST),$(NSPR_LIBDIR)))
+else
+NSPR_LIBDIR = $(ABS_DIST)/lib
+endif
 # NSS makefiles are not safe for parallel execution.
 DEFAULT_GMAKE_FLAGS = MAKE="$(MAKE) -j1" -j1
 DEFAULT_GMAKE_FLAGS += CC="$(CC)"
-DEFAULT_GMAKE_FLAGS += MOZILLA_INCLUDES="-I$(MOZ_BUILD_ROOT)/dist/include/nspr -I$(MOZ_BUILD_ROOT)/dist/include/dbm"
-DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(MOZ_BUILD_ROOT)/dist
-DEFAULT_GMAKE_FLAGS += DIST=$(MOZ_BUILD_ROOT)/dist
+DEFAULT_GMAKE_FLAGS += MOZILLA_INCLUDES="$(subst -I$(DIST),-I$(ABS_DIST),$(NSPR_CFLAGS) -I$(DIST)/include/dbm)"
+DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(ABS_DIST)
+DEFAULT_GMAKE_FLAGS += DIST=$(ABS_DIST)
+DEFAULT_GMAKE_FLAGS += NSPR_LIBDIR=$(NSPR_LIBDIR)
 DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1
 DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1
 ABS_topsrcdir   := $(shell cd $(topsrcdir); pwd)

firefox-1.5.0.10-with-system-nss.patch:

--- NEW FILE firefox-1.5.0.10-with-system-nss.patch ---
--- mozilla/configure.in.ccc	2006-08-31 17:37:23.000000000 +0200
+++ mozilla/configure.in	2007-02-22 14:42:15.000000000 +0100
@@ -86,6 +86,7 @@
 MOZPNG=10207
 MOZZLIB=1.2.3
 NSPR_VERSION=4
+NSS_VERSION=3
 
 dnl Set the minimum version of toolkit libs used by mozilla
 dnl ========================================================
@@ -3537,6 +3538,19 @@
     fi
 fi
 
+dnl ========================================================
+dnl = If NSS was not detected in the system, 
+dnl = use the one in the source tree (mozilla/security/nss)
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-nss,
+[  --with-system-nss      Use system installed NSS],
+    _USE_SYSTEM_NSS=1 )
+
+if test -n "$_USE_SYSTEM_NSS"; then
+    AM_PATH_NSS(3.0.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
+fi
+
 if test -z "$SKIP_LIBRARY_CHECKS"; then
 dnl system JPEG support
 dnl ========================================================
@@ -6783,6 +6797,10 @@
 AC_SUBST(NSPR_LIBS)
 AC_SUBST(MOZ_NATIVE_NSPR)
 
+AC_SUBST(NSS_CFLAGS)
+AC_SUBST(NSS_LIBS)
+AC_SUBST(MOZ_NATIVE_NSS)
+
 AC_SUBST(CFLAGS)
 AC_SUBST(CXXFLAGS)
 AC_SUBST(CPPFLAGS)
--- mozilla/config/autoconf.mk.in.ccc	2006-04-21 22:50:30.000000000 +0200
+++ mozilla/config/autoconf.mk.in	2007-02-22 14:42:14.000000000 +0100
@@ -231,6 +231,7 @@
 MOZ_INSURE_EXCLUDE_DIRS = @MOZ_INSURE_EXCLUDE_DIRS@
 
 MOZ_NATIVE_NSPR = @MOZ_NATIVE_NSPR@
+MOZ_NATIVE_NSS = @MOZ_NATIVE_NSS@
 
 CROSS_COMPILE   = @CROSS_COMPILE@
 
@@ -386,6 +387,48 @@
 NSPR_CFLAGS	= @NSPR_CFLAGS@
 NSPR_LIBS	= @NSPR_LIBS@
 
+NSS_CONFIG	= @NSS_CONFIG@
+NSS_CFLAGS	= @NSS_CFLAGS@
+NSS_LIBS	= @NSS_LIBS@
+
+ifdef MOZ_NATIVE_NSS
+NSS_DEP_LIBS	= \
+	$(NULL)
+NSS_LIBS += \
+	-lcrmf \
+	$(NULL)
+else
+NSS_DEP_LIBS	= \
+	$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
+	$(DIST)/lib/$(DLL_PREFIX)smime3$(DLL_SUFFIX) \
+	$(DIST)/lib/$(DLL_PREFIX)ssl3$(DLL_SUFFIX) \
+	$(DIST)/lib/$(DLL_PREFIX)nss3$(DLL_SUFFIX) \
+	$(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX) \
+	$(NULL)
+NSS_LIBS = \
+	$(LIBS_DIR) \
+	$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
+	-lsmime3 \
+	-lssl3 \
+	-lnss3 \
+	-lsoftokn3 \
+	$(NULL)
+endif
+
+ifneq (,$(filter OS2 WINNT WINCE, $(OS_ARCH)))
+ifndef GNU_CC
+ifndef MOZ_NATIVE_NSS
+NSS_LIBS	= \
+	$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
+	$(DIST)/lib/$(LIB_PREFIX)smime3.$(IMPORT_LIB_SUFFIX) \
+	$(DIST)/lib/$(LIB_PREFIX)ssl3.$(IMPORT_LIB_SUFFIX) \
+	$(DIST)/lib/$(LIB_PREFIX)nss3.$(IMPORT_LIB_SUFFIX) \
+	$(DIST)/lib/$(LIB_PREFIX)softokn3.$(IMPORT_LIB_SUFFIX) \
+	$(NULL)
+endif
+endif
+endif
+
 LDAP_CFLAGS	= @LDAP_CFLAGS@
 LDAP_LIBS	= @LDAP_LIBS@
 XPCOM_GLUE_LDOPTS = @XPCOM_GLUE_LDOPTS@
--- mozilla/config/config.mk.ccc	2006-04-06 18:28:13.000000000 +0200
+++ mozilla/config/config.mk	2007-02-22 14:42:14.000000000 +0100
@@ -138,39 +138,6 @@
 FINAL_LINK_COMPS = $(DEPTH)/config/final-link-comps
 FINAL_LINK_COMP_NAMES = $(DEPTH)/config/final-link-comp-names
 
-# 
-# NSS libs needed for final link in static build
-# 
-
-NSS_LIBS	= \
-	$(LIBS_DIR) \
-	$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
-	-lsmime3 \
-	-lssl3 \
-	-lnss3 \
-	-lsoftokn3 \
-	$(NULL)
-
-ifneq (,$(filter OS2 WINNT WINCE, $(OS_ARCH)))
-ifndef GNU_CC
-NSS_LIBS	= \
-	$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
-	$(DIST)/lib/$(LIB_PREFIX)smime3.$(IMPORT_LIB_SUFFIX) \
-	$(DIST)/lib/$(LIB_PREFIX)ssl3.$(IMPORT_LIB_SUFFIX) \
-	$(DIST)/lib/$(LIB_PREFIX)nss3.$(IMPORT_LIB_SUFFIX) \
-	$(DIST)/lib/$(LIB_PREFIX)softokn3.$(IMPORT_LIB_SUFFIX) \
-	$(NULL)
-endif
-endif
-
-NSS_DEP_LIBS	= \
-	$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
-	$(DIST)/lib/$(DLL_PREFIX)smime3$(DLL_SUFFIX) \
-	$(DIST)/lib/$(DLL_PREFIX)ssl3$(DLL_SUFFIX) \
-	$(DIST)/lib/$(DLL_PREFIX)nss3$(DLL_SUFFIX) \
-	$(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX) \
-	$(NULL)
-
 MOZ_UNICHARUTIL_LIBS = $(DIST)/lib/$(LIB_PREFIX)unicharutil_s.$(LIB_SUFFIX)
 MOZ_REGISTRY_LIBS          = $(DIST)/lib/$(LIB_PREFIX)mozreg_s.$(LIB_SUFFIX)
 MOZ_WIDGET_SUPPORT_LIBS    = $(DIST)/lib/$(LIB_PREFIX)widgetsupport_s.$(LIB_SUFFIX)
--- mozilla/aclocal.m4.ccc	2004-05-13 05:12:47.000000000 +0200
+++ mozilla/aclocal.m4	2007-02-22 14:42:14.000000000 +0100
@@ -8,6 +8,7 @@
 builtin(include, build/autoconf/libIDL.m4)dnl
 builtin(include, build/autoconf/libIDL-2.m4)dnl
 builtin(include, build/autoconf/nspr.m4)dnl
+builtin(include, build/autoconf/nss.m4)dnl
 builtin(include, build/autoconf/libart.m4)dnl
 builtin(include, build/autoconf/pkg.m4)dnl
 builtin(include, build/autoconf/freetype2.m4)dnl
--- /dev/null	2007-02-21 10:09:45.647705500 +0100
+++ mozilla/build/autoconf/nss.m4	2007-02-22 14:42:15.000000000 +0100
@@ -0,0 +1,67 @@
+# -*- tab-width: 4; -*-
+# Configure paths for NSS
+# Public domain - Chris Seawood <cls at seawood.org> 2001-04-05
+# Based upon gtk.m4 (also PD) by Owen Taylor
+
+dnl AM_PATH_NSS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for NSS, and define NSS_CFLAGS and NSS_LIBS
+AC_DEFUN(AM_PATH_NSS,
+[dnl
+
+AC_ARG_WITH(nss-prefix,
+	[  --with-nss-prefix=PFX  Prefix where NSS is installed],
+	nss_config_prefix="$withval",
+	nss_config_prefix="")
+
+AC_ARG_WITH(nss-exec-prefix,
+	[  --with-nss-exec-prefix=PFX
+                          Exec prefix where NSS is installed],
+	nss_config_exec_prefix="$withval",
+	nss_config_exec_prefix="")
+
+	if test -n "$nss_config_exec_prefix"; then
+		nss_config_args="$nss_config_args --exec-prefix=$nss_config_exec_prefix"
+		if test -z "$NSS_CONFIG"; then
+			NSS_CONFIG=$nss_config_exec_prefix/bin/nss-config
+		fi
+	fi
+	if test -n "$nss_config_prefix"; then
+		nss_config_args="$nss_config_args --prefix=$nss_config_prefix"
+		if test -z "$NSS_CONFIG"; then
+			NSS_CONFIG=$nss_config_prefix/bin/nss-config
+		fi
+	fi
+
+	unset ac_cv_path_NSS_CONFIG
+	AC_PATH_PROG(NSS_CONFIG, nss-config, no)
+	min_nss_version=ifelse([$1], ,3.0.0,$1)
+	AC_MSG_CHECKING(for NSS - version >= $min_nss_version (skipping))
+
+	no_nss=""
+	if test "$NSS_CONFIG" = "no"; then
+		no_nss="yes"
+	else
+		NSS_CFLAGS=`$NSS_CONFIG $nss_config_args --cflags`
+		NSS_LIBS=`$NSS_CONFIG $nss_config_args --libs`
+
+		dnl Skip version check for now
+		nss_config_major_version=`$NSS_CONFIG $nss_config_args --version | \
+			sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+		nss_config_minor_version=`$NSS_CONFIG $nss_config_args --version | \
+			sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+		nss_config_micro_version=`$NSS_CONFIG $nss_config_args --version | \
+			sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+	fi
+
+	if test -z "$no_nss"; then
+		AC_MSG_RESULT(yes)
+		ifelse([$2], , :, [$2])     
+	else
+		AC_MSG_RESULT(no)
+	fi
+
+
+	AC_SUBST(NSS_CFLAGS)
+	AC_SUBST(NSS_LIBS)
+
+])
--- mozilla/configure.ccc	2006-08-31 17:37:23.000000000 +0200
+++ mozilla/configure	2007-02-22 14:42:15.000000000 +0100
@@ -44,6 +44,13 @@
   --with-nspr-exec-prefix=PFX
                           Exec prefix where NSPR is installed"
 ac_help="$ac_help
+  --with-system-nss      Use system installed NSS"
+ac_help="$ac_help
+  --with-nss-prefix=PFX  Prefix where NSS is installed"
+ac_help="$ac_help
+  --with-nss-exec-prefix=PFX
+                          Exec prefix where NSS is installed"
+ac_help="$ac_help
   --with-system-jpeg[=PFX]
                           Use system libjpeg [installed at prefix PFX]"
 ac_help="$ac_help
@@ -1023,6 +1030,7 @@
 MOZPNG=10207
 MOZZLIB=1.2.3
 NSPR_VERSION=4
+NSS_VERSION=3
 
 GLIB_VERSION=1.2.0
 GTK_VERSION=1.2.0
@@ -11399,6 +11407,123 @@
     fi
 fi
 
+
+# Check whether --with-system-nss or --without-system-nss was given.
+if test "${with_system_nss+set}" = set; then
+  withval="$with_system_nss"
+  if test "$withval" = "yes"; then
+    _USE_SYSTEM_NSS=1 
+  elif test "$withval" = "no"; then
+    :
+  else
+    { echo "configure: error: Option, system-nss, does not take an argument ($withval)." 1>&2; exit 1; }
+  fi
+fi
+
+
+if test -n "$_USE_SYSTEM_NSS"; then
+    
+# Check whether --with-nss-prefix or --without-nss-prefix was given.
+if test "${with_nss_prefix+set}" = set; then
+  withval="$with_nss_prefix"
+  nss_config_prefix="$withval"
+else
+  nss_config_prefix=""
+fi
+
+
+# Check whether --with-nss-exec-prefix or --without-nss-exec-prefix was given.
+if test "${with_nss_exec_prefix+set}" = set; then
+  withval="$with_nss_exec_prefix"
+  nss_config_exec_prefix="$withval"
+else
+  nss_config_exec_prefix=""
+fi
+
+
+	if test -n "$nss_config_exec_prefix"; then
+		nss_config_args="$nss_config_args --exec-prefix=$nss_config_exec_prefix"
+		if test -z "$NSS_CONFIG"; then
+			NSS_CONFIG=$nss_config_exec_prefix/bin/nss-config
+		fi
+	fi
+	if test -n "$nss_config_prefix"; then
+		nss_config_args="$nss_config_args --prefix=$nss_config_prefix"
+		if test -z "$NSS_CONFIG"; then
+			NSS_CONFIG=$nss_config_prefix/bin/nss-config
+		fi
+	fi
+
+	unset ac_cv_path_NSS_CONFIG
+	# Extract the first word of "nss-config", so it can be a program name with args.
+set dummy nss-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:11363: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_NSS_CONFIG'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$NSS_CONFIG" in
+  /*)
+  ac_cv_path_NSS_CONFIG="$NSS_CONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_NSS_CONFIG="$NSS_CONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_NSS_CONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_NSS_CONFIG" && ac_cv_path_NSS_CONFIG="no"
+  ;;
+esac
+fi
+NSS_CONFIG="$ac_cv_path_NSS_CONFIG"
+if test -n "$NSS_CONFIG"; then
+  echo "$ac_t""$NSS_CONFIG" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+	min_nss_version=3.0.0
+	echo $ac_n "checking for NSS - version >= $min_nss_version (skipping)""... $ac_c" 1>&6
+echo "configure:11398: checking for NSS - version >= $min_nss_version (skipping)" >&5
+
+	no_nss=""
+	if test "$NSS_CONFIG" = "no"; then
+		no_nss="yes"
+	else
+		NSS_CFLAGS=`$NSS_CONFIG $nss_config_args --cflags`
+		NSS_LIBS=`$NSS_CONFIG $nss_config_args --libs`
+
+				nss_config_major_version=`$NSS_CONFIG $nss_config_args --version | \
+			sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+		nss_config_minor_version=`$NSS_CONFIG $nss_config_args --version | \
+			sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+		nss_config_micro_version=`$NSS_CONFIG $nss_config_args --version | \
+			sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+	fi
+
+	if test -z "$no_nss"; then
+		echo "$ac_t""yes" 1>&6
+		MOZ_NATIVE_NSS=1     
+	else
+		echo "$ac_t""no" 1>&6
+	fi
+
+
+	
+	
+
+
+fi
+
 if test -z "$SKIP_LIBRARY_CHECKS"; then
 # Check whether --with-system-jpeg or --without-system-jpeg was given.
 if test "${with_system_jpeg+set}" = set; then
@@ -19598,6 +19723,9 @@
 s%@NSPR_CONFIG@%$NSPR_CONFIG%g
 s%@NSPR_CFLAGS@%$NSPR_CFLAGS%g
 s%@NSPR_LIBS@%$NSPR_LIBS%g
+s%@NSS_CONFIG@%$NSS_CONFIG%g
+s%@NSS_CFLAGS@%$NSS_CFLAGS%g
+s%@NSS_LIBS@%$NSS_LIBS%g
 s%@GTK_CONFIG@%$GTK_CONFIG%g
 s%@GTK_CFLAGS@%$GTK_CFLAGS%g
 s%@GTK_LIBS@%$GTK_LIBS%g
@@ -19879,6 +20007,7 @@
 s%@MOZ_PNG_CFLAGS@%$MOZ_PNG_CFLAGS%g
 s%@MOZ_PNG_LIBS@%$MOZ_PNG_LIBS%g
 s%@MOZ_NATIVE_NSPR@%$MOZ_NATIVE_NSPR%g
+s%@MOZ_NATIVE_NSS@%$MOZ_NATIVE_NSS%g
 s%@COMPILE_CFLAGS@%$COMPILE_CFLAGS%g
 s%@COMPILE_CXXFLAGS@%$COMPILE_CXXFLAGS%g
 s%@CROSS_COMPILE@%$CROSS_COMPILE%g
--- mozilla/security/manager/ssl/src/nsNSSComponent.cpp.ccc	2005-08-26 08:41:50.000000000 +0200
+++ mozilla/security/manager/ssl/src/nsNSSComponent.cpp	2007-02-22 14:42:15.000000000 +0100
@@ -488,14 +488,6 @@
 }
 
 
-#ifdef XP_MAC
-#ifdef DEBUG
-#define LOADABLE_CERTS_MODULE NS_LITERAL_CSTRING("NSSckbiDebug.shlb")
-#else
-#define LOADABLE_CERTS_MODULE NS_LITERAL_CSTRING("NSSckbi.shlb")
-#endif /*DEBUG*/ 
-#endif /*XP_MAC*/
-
 static void setOCSPOptions(nsIPrefBranch * pref);
 
 NS_IMETHODIMP
@@ -689,40 +681,40 @@
 
     const char *possible_ckbi_locations[] = {
       NS_GRE_DIR,
-      NS_XPCOM_CURRENT_PROCESS_DIR
+      NS_XPCOM_CURRENT_PROCESS_DIR,
+      0
     };
-    
+
     for (size_t il = 0; il < sizeof(possible_ckbi_locations)/sizeof(const char*); ++il) {
       nsCOMPtr<nsILocalFile> mozFile;
-      directoryService->Get( possible_ckbi_locations[il],
-                             NS_GET_IID(nsILocalFile), 
-                             getter_AddRefs(mozFile));
+      char *fullModuleName = nsnull;
+
+      if (!possible_ckbi_locations[il])
+      {
+        fullModuleName = PR_GetLibraryName(nsnull, "nssckbi");
+      }
+      else
+      {
+        directoryService->Get( possible_ckbi_locations[il],
+                               NS_GET_IID(nsILocalFile), 
+                               getter_AddRefs(mozFile));
     
-      if (!mozFile) {
-        continue;
+        if (!mozFile) {
+          continue;
+        }
+
+        nsCAutoString processDir;
+        mozFile->GetNativePath(processDir);
+        fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
       }
 
-      char *fullModuleName = nsnull;
-#ifdef XP_MAC
-      nsCAutoString nativePath;
-      mozFile->AppendNative(NS_LITERAL_CSTRING("Essential Files"));
-      mozFile->AppendNative(LOADABLE_CERTS_MODULE);
-      mozFile->GetNativePath(nativePath);    
-      fullModuleName = (char *) nativePath.get();
-#else
-      nsCAutoString processDir;
-      mozFile->GetNativePath(processDir);
-      fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
-#endif
       /* If a module exists with the same name, delete it. */
       NS_ConvertUCS2toUTF8 modNameUTF8(modName);
       int modType;
       SECMOD_DeleteModule(NS_CONST_CAST(char*, modNameUTF8.get()), &modType);
       SECStatus rv_add = 
         SECMOD_AddNewModule(NS_CONST_CAST(char*, modNameUTF8.get()), fullModuleName, 0, 0);
-#ifndef XP_MAC
-      PR_Free(fullModuleName); // allocated by NSPR
-#endif
+      PR_FreeLibraryName(fullModuleName); // allocated by NSPR
       if (SECSuccess == rv_add) {
         // found a module, no need to try other directories
         break;
--- mozilla/security/manager/ssl/src/Makefile.in.ccc	2005-08-03 07:24:18.000000000 +0200
+++ mozilla/security/manager/ssl/src/Makefile.in	2007-02-22 14:42:15.000000000 +0100
@@ -123,8 +123,13 @@
 
 # Use local includes because they are inserted before INCLUDES
 # so that Mozilla's nss.h is used, not glibc's
+ifdef MOZ_NATIVE_NSS
+LOCAL_INCLUDES += $(NSS_CFLAGS) \
+                  $(NULL)
+else
 LOCAL_INCLUDES += -I$(DIST)/public/nss \
                   $(NULL)
+endif
 
 EXTRA_DSO_LDOPTS += \
 		$(MOZ_UNICHARUTIL_LIBS) \
--- mozilla/security/manager/Makefile.in.ccc	2007-02-22 14:42:14.000000000 +0100
+++ mozilla/security/manager/Makefile.in	2007-02-22 14:45:44.000000000 +0100
@@ -46,6 +46,8 @@
 MODULE = psm
 
 PACKAGE_FILE = psm.pkg
+
+ifndef MOZ_NATIVE_NSS
 PACKAGE_VARS += \
 	NSS3_LIB \
 	SMIME3_LIB \
@@ -60,6 +62,7 @@
 	$(NULL)
 
 LOADABLE_ROOT_MODULE = $(DLL_PREFIX)nssckbi$(DLL_SUFFIX)
+endif
 
 NSS3_LIB = $(DLL_PREFIX)nss3$(DLL_SUFFIX)
 SMIME3_LIB = $(DLL_PREFIX)smime3$(DLL_SUFFIX)
@@ -200,6 +203,7 @@
 export:: .nss.cleaned
 
 .nss.cleaned: .nss.checkout
+ifndef MOZ_NATIVE_NSS
 	$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
 	$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
 ifndef SKIP_CHK
@@ -207,9 +211,12 @@
 	$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
 endif
 	touch $@
+endif
 
 .nss.checkout:
+ifndef MOZ_NATIVE_NSS
 	touch $(srcdir)/$@
+endif
 
 dependclean export packages chrome::
 	$(MAKE) -C boot $@
@@ -220,12 +227,15 @@
 endif
 
 libs::
+ifndef MOZ_NATIVE_NSS
 	$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS)
+endif
 ifeq ($(OS_ARCH),WINNT)
 	cd $(DIST)/lib; cp -f $(LIB_PREFIX)dbm$(MOZ_BITS).$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
 else
 	cd $(DIST)/lib; cp -f $(LIB_PREFIX)mozdbm_s.$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX); $(RANLIB) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
 endif
+ifndef MOZ_NATIVE_NSS
 	$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS)
 ifndef SKIP_CHK
 	$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
@@ -307,6 +317,7 @@
 	$(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_64FPU_LIB) $(DIST)/bin
 endif
 endif
+endif
 	$(MAKE) -C boot $@
 	$(MAKE) -C ssl $@
 	$(MAKE) -C locales $@
@@ -315,6 +326,7 @@
 endif
 
 install::
+ifndef MOZ_NATIVE_NSS
 	$(SYSINSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DESTDIR)$(mozappdir)
 ifndef SKIP_CHK
 	$(SYSINSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DESTDIR)$(mozappdir)
@@ -351,6 +363,7 @@
 	$(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_64INT_LIB) $(DESTDIR)$(mozappdir)
 	$(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_64FPU_LIB) $(DESTDIR)$(mozappdir)
 endif
+endif
 	$(MAKE) -C boot $@
 	$(MAKE) -C ssl $@
 	$(MAKE) -C locales $@
@@ -365,15 +378,18 @@
 ifdef MOZ_XUL
 	$(MAKE) -C pki $@
 endif
+ifndef MOZ_NATIVE_NSS
 	$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
 	$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
 ifndef SKIP_CHK
 	$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
 	$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
 endif
+endif
 
 echo-requires-recursive::
 	$(MAKE) -C boot $@
 	$(MAKE) -C ssl $@
 	$(MAKE) -C pki $@
 	$(MAKE) -C locales $@
+

firefox-1.5-nopangoxft.patch:

Index: firefox-1.5-nopangoxft.patch
===================================================================
RCS file: /cvs/extras/rpms/seamonkey/FC-6/firefox-1.5-nopangoxft.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- firefox-1.5-nopangoxft.patch	7 Sep 2006 02:51:24 -0000	1.1
+++ firefox-1.5-nopangoxft.patch	1 Mar 2007 19:06:48 -0000	1.2
@@ -12,15 +12,7 @@
  
  #include "nsString.h"
  #include "nsIPersistentProperties2.h"
-@@ -54,6 +53,7 @@
- #include "nsCompressedCharMap.h"
- 
- #undef DEBUG_CUSTOM_ENCODER
-+#define DEBUG_CUSTOM_ENCODER 1
- 
- G_DEFINE_TYPE (MozillaDecoder, mozilla_decoder, PANGO_TYPE_FC_DECODER)
- 
-@@ -145,6 +145,13 @@ mozilla_decoders_init(void)
+@@ -145,6 +144,13 @@ mozilla_decoders_init(void)
      if (initialized)
          return 0;
  
@@ -34,7 +26,7 @@
      encoder_hash = g_hash_table_new(g_str_hash, g_str_equal);
      cmap_hash = g_hash_table_new(g_str_hash, g_str_equal);
      wide_hash = g_hash_table_new(g_str_hash, g_str_equal);
-@@ -208,7 +215,7 @@ mozilla_decoders_init(void)
+@@ -208,7 +214,7 @@ mozilla_decoders_init(void)
          }
      }
  

mozilla-nspr-packages.patch:

Index: mozilla-nspr-packages.patch
===================================================================
RCS file: /cvs/extras/rpms/seamonkey/FC-6/mozilla-nspr-packages.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mozilla-nspr-packages.patch	10 Apr 2006 21:58:25 -0000	1.1
+++ mozilla-nspr-packages.patch	1 Mar 2007 19:06:48 -0000	1.2
@@ -1,5 +1,10 @@
---- mozilla/xpinstall/packager/packages-unix.smp5	2005-12-22 16:29:39.000000000 +0100
-+++ mozilla/xpinstall/packager/packages-unix	2006-01-21 09:03:04.000000000 +0100
+Index: mozilla/xpinstall/packager/packages-unix
+===================================================================
+RCS file: /cvsroot/mozilla/xpinstall/packager/packages-unix,v
+retrieving revision 1.311.4.4.4.2
+diff -u -r1.311.4.4.4.2 packages-unix
+--- mozilla/xpinstall/packager/packages-unix	19 Dec 2006 22:07:38 -0000	1.311.4.4.4.2
++++ mozilla/xpinstall/packager/packages-unix	1 Mar 2007 16:38:10 -0000
 @@ -45,9 +45,6 @@
  
  [xpcom]
@@ -10,7 +15,7 @@
  bin/cpu/sparcv8plus/libnspr_flt4.so
  bin/libxpcom.so
  bin/libxpcom_core.so
-@@ -463,18 +460,13 @@
+@@ -463,30 +460,12 @@
  bin/components/talkback/*
  
  [psm]
@@ -23,13 +28,25 @@
  bin/components/pippki.xpt
 -bin/libnss3.so
 -bin/libsmime3.so
- bin/libsoftokn3.chk
+-bin/libsoftokn3.chk
 -bin/libsoftokn3.so
+-bin/libfreebl3.chk
+-bin/libfreebl3.so
+-bin/libfreebl_32fpu_3.chk
+-bin/libfreebl_32fpu_3.so
+-bin/libfreebl_32int_3.chk
+-bin/libfreebl_32int_3.so
+-bin/libfreebl_32int64_3.chk
+-bin/libfreebl_32int64_3.so
+-bin/libfreebl_64fpu_3.chk
+-bin/libfreebl_64fpu_3.so
+-bin/libfreebl_64int_3.chk
+-bin/libfreebl_64int_3.so
 -bin/libssl3.so
  bin/chrome/pipnss.jar
  bin/chrome/pippki.jar
- ; These are required for solaris 32-bit builds
-@@ -499,5 +491,17 @@
+ 
+@@ -506,5 +485,30 @@
  bin/components/spellchecker.xpt
  bin/components/myspell/*
  
@@ -42,7 +59,20 @@
 +bin/libnssckbi.so
 +bin/libnss3.so
 +bin/libsmime3.so
++bin/libsoftokn3.chk
 +bin/libsoftokn3.so
++bin/libfreebl3.chk
++bin/libfreebl3.so
++bin/libfreebl_32fpu_3.chk
++bin/libfreebl_32fpu_3.so
++bin/libfreebl_32int_3.chk
++bin/libfreebl_32int_3.so
++bin/libfreebl_32int64_3.chk
++bin/libfreebl_32int64_3.so
++bin/libfreebl_64fpu_3.chk
++bin/libfreebl_64fpu_3.so
++bin/libfreebl_64int_3.chk
++bin/libfreebl_64int_3.so
 +bin/libssl3.so
 +
  [reporter]


Index: seamonkey.spec
===================================================================
RCS file: /cvs/extras/rpms/seamonkey/FC-6/seamonkey.spec,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- seamonkey.spec	28 Feb 2007 13:21:02 -0000	1.17
+++ seamonkey.spec	1 Mar 2007 19:06:48 -0000	1.18
@@ -11,7 +11,7 @@
 Name:           seamonkey
 Summary:        Web browser, e-mail, news, IRC client, HTML editor
 Version:        1.0.8
-Release:        0.6.0%{?dist}
+Release:        0.6.1%{?dist}
 URL:            http://www.mozilla.org/projects/seamonkey/
 License:        MPL
 Group:          Applications/Internet
@@ -31,21 +31,27 @@
 Source100:      find-external-requires
 
 Patch1:         firefox-1.0-prdtoa.patch
-Patch3:         firefox-1.1-nss-system-nspr.patch
-Patch4:         firefox-1.5-with-system-nss.patch
+Patch3:         firefox-1.5.0.10-nss-system-nspr.patch
+Patch4:         firefox-1.5.0.10-with-system-nss.patch
 Patch5:         firefox-1.1-visibility.patch
 Patch6:         seamonkey-1.0.1-dumpstack.patch
 Patch21:        firefox-0.7.3-default-plugin-less-annoying.patch
 Patch22:        firefox-0.7.3-psfonts.patch
 Patch42:        firefox-1.1-uriloader.patch
+
+# font system fixes
 Patch81:        firefox-1.5-nopangoxft.patch
 Patch82:        firefox-1.5-pango-mathml.patch
-Patch91 :       firefox-1.5-pango-ua.patch
+Patch83:        firefox-1.5-pango-cursor-position.patch
+Patch84:        firefox-1.5-pango-printing.patch
+Patch85:        firefox-1.5-pango-cursor-position-more.patch
+Patch86:        firefox-1.5-pango-justified-range.patch
+Patch87:        firefox-1.5-pango-underline.patch
+Patch88:        firefox-1.5-xft-rangewidth.patch
+
 Patch101:       thunderbird-0.7.3-gnome-uriloader.patch
-Patch103:       firefox-1.5-dnd-nograb.patch
 Patch220:       seamonkey-fedora-home-page.patch
 Patch225:       mozilla-nspr-packages.patch
-Patch227:       mozilla-1.4.1-ppc64.patch
 Patch301:       mozilla-1.7.3-gnome-vfs-default-app.patch
 Patch304:       mozilla-1.7.5-g-application-name.patch
 
@@ -129,12 +135,15 @@
 %patch42 -p0
 %patch81 -p1
 %patch82 -p1
-%patch91 -p0
+%patch83 -p1
+%patch84 -p1
+%patch85 -p1
+%patch86 -p1
+%patch87 -p1
+%patch88 -p1
 %patch101 -p1 -b .gnome-uriloader
-%patch103 -p1
 %patch220 -p1
 %patch225 -p1
-%patch227 -p1
 %patch301 -p1
 %patch304 -p0
 
@@ -435,8 +444,9 @@
 
 
 %changelog
-* Wed Feb 28 2007 Kai Engert <kengert at redhat.com> 1.0.8-0.6.0
+* Wed Mar 01 2007 Kai Engert <kengert at redhat.com> 1.0.8-0.6.1
 - SeaMonkey 1.0.8
+- Synch set of patches with those used in Firefox.
 * Wed Feb 07 2007 Kai Engert <kengert at redhat.com> 1.0.7-0.6.1
 - Fix the DND implementation to not grab, so it works with new GTK+.
 - Fix upgrade path from FC-5 by obsoleting the seamonkey subset 


--- firefox-1.1-nss-system-nspr.patch DELETED ---


--- firefox-1.5-dnd-nograb.patch DELETED ---


--- firefox-1.5-pango-ua.patch DELETED ---


--- firefox-1.5-with-system-nss.patch DELETED ---


--- mozilla-1.4.1-ppc64.patch DELETED ---




More information about the scm-commits mailing list