1
0
OBS User unknown 2009-07-21 10:08:52 +00:00 committed by Git OBS Bridge
parent c8a9ee5e33
commit aa0e40792e
46 changed files with 707 additions and 3632 deletions

2
.gitattributes vendored
View File

@ -21,5 +21,3 @@
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
## Specific LFS patterns
mailredirect-0.7.5.xpi filter=lfs diff=lfs merge=lfs -text

View File

@ -1,3 +1,18 @@
-------------------------------------------------------------------
Fri Jul 17 13:48:02 CEST 2009 - wr@rosenauer.org
- major update to 3.0b3
- update enigmail to 0.96pre
- created enigmail subpackage and install to system wide location
for Thunderbird and SeaMonkey
- define MOZ_APP_LAUNCHER for session management (bmo#453689)
(mozilla-app-launcher.patch and mozilla.sh.in)
- move opensuse.js prefs to all-opensuse.js prefs to be able
to override prefs in all-thunderbird.js
- move intl.locale.matchOS to all-opensuse.js
- added mozilla-jemalloc_deepbind.patch to fix various possible
crashes (bnc#503151, bmo#493541)
-------------------------------------------------------------------
Fri Jun 19 10:35:46 CEST 2009 - coolo@novell.com

View File

@ -1,8 +1,11 @@
[Desktop Entry]
Encoding=UTF-8
Name=Thunderbird
GenericName=Mail/News Client
Comment=Mail/News Client
TryExec=thunderbird
Exec=thunderbird
Icon=thunderbird
Terminal=false
Type=Application
StartupNotify=true

File diff suppressed because it is too large Load Diff

View File

@ -1,156 +0,0 @@
From: Wolfgang Rosenauer <stark@suse.de / wr@rosenauer.org>
Subject: Fix compiler warnings which disturb autobuild
References:
### autobuild
... testing for serious compiler warnings
Program is using uninitialized variables. Note the difference between "is used"
and "may be used". Please investigate and fix.
Problematic file(s) and their linenumbers:
nsUnicodeToJamoTTF.cpp: 855
nsObjectFrame.cpp: 1933
###
### autobuild
... testing for serious compiler warnings
Program returns random data in a function. Please fix.
Problematic file(s) and their linenumbers:
nsWebShell.cpp: 562
Program is using uninitialized variables. Note the difference between "is used" and "may be used".
Please investigate and fix.
Problematic file(s) and their linenumbers:
nsFrame.cpp: 3536
###
### autobuild
I: Program causes undefined operation
(likely same variable used twiceand post/pre incremented in the same expression).
e.g. x = x++; Split it in two operations.
E: MozillaThunderbird sequence-point nsMailboxService.cpp: 231
###
--- gfx/src/gtk/nsFontMetricsUtils.cpp.old 2005-03-24 07:27:33.000000000 +0100
+++ gfx/src/gtk/nsFontMetricsUtils.cpp 2005-03-24 07:28:26.000000000 +0100
@@ -75,6 +75,7 @@ NS_FontMetricsGetHints(void)
#ifdef MOZ_ENABLE_COREXFONTS
return nsFontMetricsGTK::GetHints();
#endif
+ return 1;
}
nsresult
@@ -95,6 +96,7 @@ NS_FontMetricsFamilyExists(nsIDeviceCont
#ifdef MOZ_ENABLE_COREXFONTS
return nsFontMetricsGTK::FamilyExists(aDevice, aName);
#endif
+ return 1;
}
#ifdef MOZ_ENABLE_XFT
Index: intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp
===================================================================
RCS file: /cvsroot/mozilla/intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp,v
retrieving revision 1.10
diff -u -p -6 -r1.10 nsUnicodeToJamoTTF.cpp
--- intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp 19 Feb 2005 07:27:54 -0000 1.10
+++ intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp 7 Jun 2005 07:21:10 -0000
@@ -842,12 +842,13 @@ PRInt16 JamoSrchReplace (const JamoNormM
// we don't need a separate range check here because the one in
// for-loop is sufficient.
for (PRInt32 i = start; i <= end - clusterLen; i++)
{
const JamoNormMap *match;
JamoNormMap key;
+ key.liga = 0;
// cluster array is made up of PRUint8's to save memory
// and we have to subtract aOffset from the input before looking it up.
key.seq[0] = aIn[i] - aOffset;
key.seq[1] = aIn[i + 1] - aOffset;
key.seq[2] = clusterLen == 3 ? (aIn[i + 2] - aOffset) : 0;
Index: layout/generic/nsObjectFrame.cpp
===================================================================
RCS file: /cvsroot/mozilla/layout/generic/nsObjectFrame.cpp,v
retrieving revision 1.505
diff -u -p -6 -r1.505 nsObjectFrame.cpp
--- layout/generic/nsObjectFrame.cpp 6 May 2005 03:14:31 -0000 1.505
+++ layout/generic/nsObjectFrame.cpp 7 Jun 2005 07:23:27 -0000
@@ -1850,12 +1850,13 @@ nsObjectFrame::Paint(nsPresContext*
// now we need to setup the correct location for printing
nsresult rv;
nsPluginWindow window;
nsPoint origin;
float t2p;
window.window = nsnull;
+ window.ws_info = nsnull;
// prepare embedded mode printing struct
nsPluginPrint npprint;
npprint.mode = nsPluginMode_Embedded;
// we need to find out if we are windowless or not
Index: docshell/base/nsWebShell.cpp
===================================================================
RCS file: /cvsroot/mozilla/docshell/base/nsWebShell.cpp,v
retrieving revision 1.656.2.1
diff -u -p -6 -r1.656.2.1 nsWebShell.cpp
--- docshell/base/nsWebShell.cpp 16 Sep 2005 19:11:52 -0000 1.656.2.1
+++ docshell/base/nsWebShell.cpp 22 Sep 2005 06:30:30 -0000
@@ -556,12 +556,13 @@ nsWebShell::OnLinkClickSync(nsIContent *
// XXX TODO Should be similar to the HTML IMG ALT attribute handling
// in NS 4.x
default:
NS_ABORT_IF_FALSE(0,"unexpected link verb");
return NS_ERROR_UNEXPECTED;
}
+ return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsWebShell::OnOverLink(nsIContent* aContent,
nsIURI* aURI,
const PRUnichar* aTargetSpec)
Index: layout/generic/nsFrame.cpp
===================================================================
RCS file: /cvsroot/mozilla/layout/generic/nsFrame.cpp,v
retrieving revision 3.574.2.4
diff -u -p -6 -r3.574.2.4 nsFrame.cpp
--- layout/generic/nsFrame.cpp 20 Sep 2005 06:32:09 -0000 3.574.2.4
+++ layout/generic/nsFrame.cpp 22 Sep 2005 06:31:42 -0000
@@ -3528,13 +3528,13 @@ nsresult
nsFrame::PeekOffsetParagraph(nsPresContext* aPresContext,
nsPeekOffsetStruct *aPos)
{
#ifdef DEBUG_paragraph
printf("Selecting paragraph\n");
#endif
- nsIFrame* blockFrame;
+ nsIFrame* blockFrame = NULL;
nsCOMPtr<nsILineIterator> iter (getter_AddRefs(GetBlockFrameAndLineIter(this, &blockFrame)));
if (!blockFrame || !iter)
return NS_ERROR_UNEXPECTED;
PRInt32 thisLine;
nsresult result = iter->FindLineContaining(this, &thisLine);
Index: mailnews/local/src/nsMailboxService.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/local/src/nsMailboxService.cpp,v
retrieving revision 1.114.8.7
diff -u -p -6 -r1.114.8.7 nsMailboxService.cpp
--- mailnews/local/src/nsMailboxService.cpp 30 Aug 2006 22:18:29 -0000 1.114.8.7
+++ mailnews/local/src/nsMailboxService.cpp 11 Sep 2008 11:09:24 -0000
@@ -225,13 +225,13 @@ nsresult nsMailboxService::FetchMessage(
}
else
{
// this happens with forward inline of message/rfc822 attachment
// opened in a stand-alone msg window.
- PRInt32 typeIndex = typeIndex = uriString.Find("&type=application/x-message-display");
+ PRInt32 typeIndex = uriString.Find("&type=application/x-message-display");
if (typeIndex != kNotFound)
{
uriString.Cut(typeIndex, sizeof("&type=application/x-message-display") - 1);
rv = NS_NewURI(getter_AddRefs(url), uriString.get());
mailboxurl = do_QueryInterface(url);
}

View File

@ -1,7 +1,5 @@
#! /bin/sh
# Copyright (c) 2001 SuSE GmbH Nuernberg, Germany. All rights reserved.
# 2002-2004 SuSE Linux AG, Nuernberg, Germany
# 2005 SUSE LINUX Products GmbH, Nuernberg, Germany
# Copyright (c) 2008 Wolfgang Rosenauer. All rights reserved.
#
# check if we are started as root
@ -12,10 +10,8 @@ if test "$UID" != 0 -a "$USER" != root; then
fi
PREFIX="%PROGDIR"
MOZ_APP="%APPNAME"
# MySPELL
# dictionaries
MYSPELL=/usr/share/myspell
MOZ_SPELL=$PREFIX/dictionaries
if [ -d $MOZ_SPELL ] ; then

View File

@ -1,28 +0,0 @@
--- modules/libpref/src/init/all.js.orig 2004-01-23 11:22:44.000000000 +0100
+++ modules/libpref/src/init/all.js 2004-01-23 11:24:10.000000000 +0100
@@ -1819,8 +1819,10 @@
pref("print.postscript.nativefont.ar", "");
pref("print.postscript.nativefont.el", "");
pref("print.postscript.nativefont.he", "");
-pref("print.postscript.nativefont.ja", "");
-pref("print.postscript.nativefont.ko", "");
+pref("print.postscript.nativefont.ja", "UTF-8");
+pref("print.postscript.nativefont.ja", "Ryumin-Light-UniJIS-UTF8-H");
+pref("print.postscript.nativefont.ko", "UTF-8");
+pref("print.postscript.nativefont.ko", "Baekmuk-Gulim-UniKS-UTF8-H");
pref("print.postscript.nativefont.th", "");
pref("print.postscript.nativefont.tr", "");
pref("print.postscript.nativefont.x-baltic", "");
@@ -1829,8 +1831,10 @@
pref("print.postscript.nativefont.x-unicode", "");
pref("print.postscript.nativefont.x-user-def", "");
pref("print.postscript.nativefont.x-western", "");
-pref("print.postscript.nativefont.zh-CN", "");
-pref("print.postscript.nativefont.zh-TW", "");
+pref("print.postscript.nativefont.zh-CN", "UTF-8");
+pref("print.postscript.nativefont.zh-CN", "GB-Song-Medium-UniGB-UTF8-H");
+pref("print.postscript.nativefont.zh-TW", "UTF-8");
+pref("print.postscript.nativefont.zh-TW", "B5-Song-Medium-UniCNS-UTF8-H");
pref("print.postscript.nativefont.zh-HK", "");
# XP_UNIX

35
create-tar.sh Normal file
View File

@ -0,0 +1,35 @@
#!/bin/bash
RELEASE_TAG="THUNDERBIRD_3_0b3_RELEASE"
VERSION="3.0b3"
# mozilla
hg clone http://hg.mozilla.org/comm-central thunderbird
pushd thunderbird
hg update -r $RELEASE_TAG
python client.py checkout --skip-chatzilla --skip-venkman
popd
tar cjf thunderbird-$VERSION-source.tar.bz2 --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS thunderbird
# l10n
# http://l10n.mozilla.org/dashboard/?tree=tb30x -> shipped-locales
if [ -e shipped-locales ]; then
SHIPPED_LOCALES=shipped-locales
else
SHIPPED_LOCALES=thunderbird/mail/locales/shipped-locales
fi
test ! -d l10n && mkdir l10n
for locale in $(awk '{ print $1; }' $SHIPPED_LOCALES); do
case $locale in
ja-JP-mac|en-US)
;;
*)
hg clone http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/$locale l10n/$locale
hg -R l10n/$locale up -C -r $RELEASE_TAG
;;
esac
done
tar cjf l10n-$VERSION.tar.bz2 \
--exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=browser --exclude=calendar \
--exclude=suite \
l10n

View File

@ -1,889 +0,0 @@
From: Wolfgang Rosenauer <stark@suse.de>, Arne John Glenstrup <panic@itu.dk>
Subject: get paper sizes from CUPS
References:
https://bugzilla.novell.com/show_bug.cgi?id=65482
https://bugzilla.mozilla.org/show_bug.cgi?id=324060
================================================================================
--- gfx/src/gtk/nsDeviceContextSpecG.cpp
+++ gfx/src/gtk/nsDeviceContextSpecG.cpp
@@ -66,6 +66,7 @@
#ifdef USE_POSTSCRIPT
#include "nsPSPrinters.h"
#include "nsPaperPS.h" /* Paper size list */
+#include "nsPaperFactoryPS.h" /* Paper size list factory */
#endif /* USE_POSTSCRIPT */
/* Ensure that the result is always equal to either PR_TRUE or PR_FALSE */
@@ -1210,34 +1211,38 @@
#ifdef SET_PRINTER_FEATURES_VIA_PREFS
printerFeatures.SetCanChangePaperSize(PR_TRUE);
#endif /* SET_PRINTER_FEATURES_VIA_PREFS */
- nsXPIDLCString papername;
- if (NS_SUCCEEDED(CopyPrinterCharPref(pPrefs, "postscript", printerName, "paper_size", getter_Copies(papername)))) {
- nsPaperSizePS paper;
-
- if (paper.Find(papername)) {
- DO_PR_DEBUG_LOG(("setting default paper size to '%s' (%g mm/%g mm)\n",
- paper.Name(), paper.Width_mm(), paper.Height_mm()));
- aPrintSettings->SetPaperSizeUnit(paper.IsMetric() ?
- (int)nsIPrintSettings::kPaperSizeMillimeters :
- (int)nsIPrintSettings::kPaperSizeInches);
- aPrintSettings->SetPaperWidth(paper.Width_mm());
- aPrintSettings->SetPaperHeight(paper.Height_mm());
- aPrintSettings->SetPaperName(NS_ConvertASCIItoUCS2(paper.Name()).get());
- }
- else {
- DO_PR_DEBUG_LOG(("Unknown paper size '%s' given.\n", papername.get()));
+ {
+ nsIPaperSizePS* paper;
+ nsresult rv;
+ rv = nsPaperFactoryPS::CreatePaper
+ (fullPrinterName.get(), printerName.get(), paper);
+ if (NS_FAILED(rv)) return rv;
+ paper->FindDefault();
+
+ nsXPIDLCString papername;
+ if (NS_SUCCEEDED(CopyPrinterCharPref(pPrefs, "postscript", fullPrinterName, "print_paper_name", getter_Copies(papername)))) {
+ if (!paper->Find(papername)) {
+ DO_PR_DEBUG_LOG(("Unknown paper size '%s' given.\n", papername.get()));
+ }
}
+ DO_PR_DEBUG_LOG(("setting default paper size to '%s' (%g mm/%g mm)\n",
+ paper->Name(), paper->Width_mm(), paper->Height_mm()));
+ aPrintSettings->SetPaperSizeUnit(nsIPrintSettings::kPaperSizeMillimeters);
+ aPrintSettings->SetPaperWidth(paper->Width_mm());
+ aPrintSettings->SetPaperHeight(paper->Height_mm());
+ aPrintSettings->SetPaperName(NS_ConvertASCIItoUTF16(paper->Name()).get());
#ifdef SET_PRINTER_FEATURES_VIA_PREFS
- paper.First();
+ paper->First();
int count = 0;
- while (!paper.AtEnd())
+ while (!paper->AtEnd())
{
- printerFeatures.SetPaperRecord(count++, paper.Name(),
- (int)paper.Width_mm(), (int)paper.Height_mm(), !paper.IsMetric());
- paper.Next();
+ printerFeatures.SetPaperRecord(count++, paper->Name(),
+ (int)paper->Width_mm(), (int)paper->Height_mm(), !paper->IsMetric());
+ paper->Next();
}
printerFeatures.SetNumPaperSizeRecords(count);
#endif /* SET_PRINTER_FEATURES_VIA_PREFS */
+ delete(paper);
}
PRBool hasSpoolerCmd = (nsPSPrinterList::kTypePS ==
--- gfx/src/ps/nsPrintJobPS.cpp
+++ gfx/src/ps/nsPrintJobPS.cpp
@@ -364,6 +364,10 @@
const char *slash = strchr(printerName, '/');
mPrinterName = slash ? slash + 1 : printerName;
mJobTitle.SetIsVoid(PR_TRUE);
+ /* Paper name */
+ const char* paperName = nsnull;
+ aSpec->GetPaperName(&paperName);
+ mPaperName = paperName;
return NS_OK;
}
@@ -445,6 +449,11 @@
mNumCopies.get(),
dest->num_options,
&dest->options);
+ if (!mPaperName.IsEmpty())
+ dest->num_options = (mCups.mCupsAddOption)("media",
+ mPaperName.get(),
+ dest->num_options,
+ &dest->options);
const char *title = mJobTitle.IsVoid() ?
"Untitled Document" : mJobTitle.get();
result = (mCups.mCupsPrintFile)(printer.CStringAt(0)->get(),
--- gfx/src/ps/nsPrintJobPS.h
+++ gfx/src/ps/nsPrintJobPS.h
@@ -179,6 +179,7 @@
nsCUPSShim mCups;
nsCString mPrinterName;
nsCString mNumCopies;
+ nsCString mPaperName;
nsCString mJobTitle; // IsVoid() if no title
};
#endif /* VMS */
--- gfx/src/psshared/Makefile.in
+++ gfx/src/psshared/Makefile.in
@@ -57,13 +57,16 @@
EXPORTS = nsCUPSShim.h \
nsPaperPS.h \
+ nsIPaperPS.h \
nsPSPrinters.h\
psSharedCore.h \
+ nsPaperFactoryPS.h \
$(NULL)
CPPSRCS = nsCUPSShim.cpp \
nsPaperPS.cpp \
nsPSPrinters.cpp \
+ nsPaperFactoryPS.cpp \
$(NULL)
EXTRA_DSO_LDOPTS = \
--- gfx/src/psshared/nsCUPSShim.cpp
+++ gfx/src/psshared/nsCUPSShim.cpp
@@ -45,13 +45,18 @@
// List of symbols to find in libcups. Must match symAddr[] defined in Init().
// Making this an array of arrays instead of pointers allows storing the
// whole thing in read-only memory.
-static const char gSymName[][sizeof("cupsPrintFile")] = {
+static const char gSymName[][sizeof("ppdMarkDefaults")] = {
{ "cupsAddOption" },
{ "cupsFreeDests" },
{ "cupsGetDest" },
{ "cupsGetDests" },
{ "cupsPrintFile" },
{ "cupsTempFd" },
+ { "cupsGetPPD" },
+ { "ppdOpenFile" },
+ { "ppdClose" },
+ { "ppdMarkDefaults" },
+ { "ppdIsMarked" },
};
static const int gSymNameCt = sizeof(gSymName) / sizeof(gSymName[0]);
@@ -71,6 +76,11 @@
(void **)&mCupsGetDests,
(void **)&mCupsPrintFile,
(void **)&mCupsTempFd,
+ (void **)&mCupsGetPPD,
+ (void **)&mPpdOpenFile,
+ (void **)&mPpdClose,
+ (void **)&mPpdMarkDefaults,
+ (void **)&mPpdIsMarked,
};
for (int i = gSymNameCt; i--; ) {
--- gfx/src/psshared/nsCUPSShim.h
+++ gfx/src/psshared/nsCUPSShim.h
@@ -62,6 +62,82 @@
cups_option_t *options; /* Options */
} cups_dest_t;
+typedef enum /**** Colorspaces ****/
+{
+ PPD_CS_CMYK = -4, /* CMYK colorspace */
+ PPD_CS_CMY, /* CMY colorspace */
+ PPD_CS_GRAY = 1, /* Grayscale colorspace */
+ PPD_CS_RGB = 3, /* RGB colorspace */
+ PPD_CS_RGBK, /* RGBK (K = gray) colorspace */
+ PPD_CS_N /* DeviceN colorspace */
+} ppd_cs_t;
+
+typedef struct /**** Page Sizes ****/
+{
+ int marked; /* Page size selected? */
+ char name[41];
+ /* Media size option */
+ float width, /* Width of media in points */
+ length, /* Length of media in points */
+ left, /* Left printable margin in points */
+ bottom, /* Bottom printable margin in points */
+ right, /* Right printable margin in points */
+ top; /* Top printable margin in points */
+} ppd_size_t;
+
+typedef struct /**** Files ****/
+{
+ int language_level, /* Language level of device */
+ color_device, /* 1 = color device, 0 = grayscale */
+ variable_sizes, /* 1 = supports variable sizes, 0 = doesn't */
+ accurate_screens, /* 1 = supports accurate screens, 0 = not */
+ contone_only, /* 1 = continuous tone only, 0 = not */
+ landscape, /* -90 or 90 */
+ model_number, /* Device-specific model number */
+ manual_copies, /* 1 = Copies done manually, 0 = hardware */
+ throughput; /* Pages per minute */
+ ppd_cs_t colorspace; /* Default colorspace */
+ char *patches; /* Patch commands to be sent to printer */
+ int num_emulations; /* Number of emulations supported */
+ void *emulations; /* Emulations and the code to invoke them */
+ char *jcl_begin, /* Start JCL commands */
+ *jcl_ps, /* Enter PostScript interpreter */
+ *jcl_end, /* End JCL commands */
+ *lang_encoding, /* Language encoding */
+ *lang_version, /* Language version (English, Spanish, etc.) */
+ *modelname, /* Model name (general) */
+ *ttrasterizer, /* Truetype rasterizer */
+ *manufacturer, /* Manufacturer name */
+ *product, /* Product name (from PS RIP/interpreter) */
+ *nickname, /* Nickname (specific) */
+ *shortnickname; /* Short version of nickname */
+ int num_groups; /* Number of UI groups */
+ void *groups; /* UI groups */
+ int num_sizes; /* Number of page sizes */
+ ppd_size_t *sizes; /* Page sizes */
+ float custom_min[2], /* Minimum variable page size */
+ custom_max[2], /* Maximum variable page size */
+ custom_margins[4];/* Margins around page */
+ int num_consts; /* Number of UI/Non-UI constraints */
+ void *consts; /* UI/Non-UI constraints */
+ int num_fonts; /* Number of pre-loaded fonts */
+ char **fonts; /* Pre-loaded fonts */
+ int num_profiles; /* Number of sRGB color profiles */
+ void *profiles; /* sRGB color profiles */
+ int num_filters; /* Number of filters */
+ char **filters; /* Filter strings... */
+
+ /**** New in CUPS 1.1 ****/
+ int flip_duplex; /* 1 = Flip page for back sides */
+
+ /**** New in CUPS 1.1.19 ****/
+ char *protocols, /* Protocols (BCP, TBCP) string */
+ *pcfilename; /* PCFileName string */
+ int num_attrs, /* Number of attributes */
+ cur_attr; /* Current attribute */
+ void **attrs; /* Attributes */
+} ppd_file_t;
+
typedef cups_dest_t* (PR_CALLBACK *CupsGetDestType)(const char *printer,
const char *instance,
int num_dests,
@@ -80,6 +156,11 @@
const char *value,
int num_options,
cups_option_t **options);
+typedef const char* (PR_CALLBACK *CupsGetPPDType) (const char* name);
+typedef ppd_file_t* (PR_CALLBACK *PPDOpenFileType) (const char* filename);
+typedef void (PR_CALLBACK *PPDCloseType) (ppd_file_t* ppd);
+typedef void (PR_CALLBACK *PPDMarkDefaultsType) (ppd_file_t* ppd);
+typedef int (PR_CALLBACK *PPDIsMarkedType) (ppd_file_t* ppd, const char* pname, const char* pname_clear);
struct PRLibrary;
@@ -113,6 +194,11 @@
CupsGetDestsType mCupsGetDests;
CupsPrintFileType mCupsPrintFile;
CupsTempFdType mCupsTempFd;
+ CupsGetPPDType mCupsGetPPD;
+ PPDOpenFileType mPpdOpenFile;
+ PPDCloseType mPpdClose;
+ PPDMarkDefaultsType mPpdMarkDefaults;
+ PPDIsMarkedType mPpdIsMarked;
private:
PRLibrary *mCupsLib;
--- gfx/src/psshared/nsIPaperPS.h
+++ gfx/src/psshared/nsIPaperPS.h
@@ -0,0 +1,102 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ex: set tabstop=8 softtabstop=4 shiftwidth=4 expandtab: */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Contributor(s):
+ * Arne John Glenstrup <panic@itu.dk>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+
+#ifndef _NSIPAPERPS_H_
+#define _NSIPAPERPS_H_
+
+#include "prtypes.h"
+#include "psSharedCore.h"
+
+class nsIPaperSizePS {
+ public:
+ /** ---------------------------------------------------
+ * Virtual destructor.
+ */
+ virtual ~nsIPaperSizePS();
+
+ /* Allow the paper factory to create instances */
+ friend class nsPaperFactoryPS;
+
+ /** ---------------------------------------------------
+ * @return PR_TRUE if the cursor points past the last item.
+ */
+ virtual PRBool AtEnd() = 0;
+
+ /** ---------------------------------------------------
+ * Position the cursor at the beginning of the paper size list.
+ * @return VOID
+ */
+ virtual void First() = 0;
+
+ /** ---------------------------------------------------
+ * Advance the cursor to the next item.
+ * @return VOID
+ */
+ virtual void Next() = 0;
+
+ /** ---------------------------------------------------
+ * Point the cursor to the entry with the given paper name.
+ * @return PR_TRUE if pointing to a valid entry.
+ */
+ virtual PRBool Find(const char *aName) = 0;
+
+ /** ---------------------------------------------------
+ * Point the cursor to a default entry if available.
+ * Otherwise it's equivalent to First().
+ * @return PR_TRUE if pointing to a valid entry.
+ */
+ virtual PRBool FindDefault() = 0;
+
+ /** ---------------------------------------------------
+ * @return a pointer to the name of the current paper size
+ */
+ virtual const char *Name() = 0;
+
+ /** ---------------------------------------------------
+ * @return the width of the page in millimeters
+ */
+ virtual float Width_mm() = 0;
+
+ /** ---------------------------------------------------
+ * @return the height of the page in millimeters
+ */
+ virtual float Height_mm() = 0;
+
+ /** ---------------------------------------------------
+ * @return PR_TRUE if the paper should be presented to
+ * the user in metric units.
+ */
+ virtual PRBool IsMetric() { return PR_TRUE; };
+};
+
+#endif /* _NSIPAPERPS_H_ */
--- gfx/src/psshared/nsPSPrinters.h
+++ gfx/src/psshared/nsPSPrinters.h
@@ -44,6 +44,7 @@
#include "prtypes.h"
#include "nsCUPSShim.h"
#include "psSharedCore.h"
+#include "nsCOMPtr.h"
class nsIPrefService;
class nsIPrefBranch;
--- gfx/src/psshared/nsPaperFactoryPS.cpp
+++ gfx/src/psshared/nsPaperFactoryPS.cpp
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ex: set tabstop=8 softtabstop=4 shiftwidth=4 expandtab: */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Kenneth Herron <kherron@fastmail.us>.
+ * Portions created by the Initial Developer are Copyright (C) 2004
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Arne John Glenstrup <panic@itu.dk>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+
+#include "nsDebug.h"
+#include "nsPaperFactoryPS.h"
+#include "nsIPaperPS.h"
+#include "nsPaperPS.h"
+#include "nsPSPrinters.h"
+
+nsresult
+nsPaperFactoryPS::CreatePaper(const char* fullPrinterName,
+ const char* printerName,
+ nsIPaperSizePS* &aPaper)
+{
+ nsIPaperSizePS *newPZ;
+
+ if (nsPSPrinterList::kTypeCUPS == nsPSPrinterList::GetPrinterType
+ (nsDependentCString(fullPrinterName)))
+ newPZ = new nsPaperSizeCUPS(fullPrinterName, printerName);
+ else
+ newPZ = new nsPaperSizePS();
+
+ if (!newPZ)
+ return NS_ERROR_OUT_OF_MEMORY;
+
+ aPaper = newPZ;
+ return NS_OK;
+}
--- gfx/src/psshared/nsPaperFactoryPS.h
+++ gfx/src/psshared/nsPaperFactoryPS.h
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ex: set tabstop=8 softtabstop=4 shiftwidth=4 expandtab: */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Contributor(s):
+ * Arne John Glenstrup <panic@itu.dk>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#ifndef nsPaperFactoryPS_h__
+#define nsPaperFactoryPS_h__
+
+#include "nscore.h"
+#include "nsIPaperPS.h"
+
+/* Factory class for the paper sizes. This class determines
+ * which paper size class should handle a request, and constructs
+ * an object of the appropriate class.
+ */
+
+class NS_PSSHARED nsPaperFactoryPS
+{
+public:
+ /**
+ * Construct a paper size object for the given device context spec.
+ * On success, the paper size object is owned by the caller and should
+ * be destroyed when no longer needed.
+ *
+ * @param fullPrinterName Fully qualified name, e.g., "CUPS/myprinter"
+ * @param printerName Stripped name, e.g., "myprinter"
+ * @param aPaper If NS_OK is returned, this will be filled
+ * in with a pointer to a paper size object.
+ * @return NS_OK or a suitable error value.
+ */
+ static nsresult CreatePaper(const char* fullPrinterName,
+ const char* printerName,
+ nsIPaperSizePS* &aPaper);
+};
+
+
+#endif /* nsPaperFactoryPS_h__ */
--- gfx/src/psshared/nsPaperPS.h
+++ gfx/src/psshared/nsPaperPS.h
@@ -40,9 +40,9 @@
#ifndef _PAPERPS_H_
#define _PAPERPS_H_
-#include "prtypes.h"
+#include "nsIPaperPS.h"
#include "nsDebug.h"
-#include "psSharedCore.h"
+#include "nsCUPSShim.h"
struct nsPaperSizePS_ {
const char *name;
@@ -51,13 +51,13 @@
PRBool isMetric; // Present to the user in metric, if possible
};
-class NS_PSSHARED nsPaperSizePS {
+class NS_PSSHARED nsPaperSizePS : public nsIPaperSizePS {
public:
/** ---------------------------------------------------
* Constructor
*/
- nsPaperSizePS() { mCurrent = 0; }
-
+ nsPaperSizePS();
+
/** ---------------------------------------------------
* @return PR_TRUE if the cursor points past the last item.
*/
@@ -85,6 +85,12 @@
PRBool Find(const char *aName);
/** ---------------------------------------------------
+ * Position the cursor at the beginning of the paper size list.
+ * @return PR_TRUE
+ */
+ PRBool FindDefault() { mCurrent = 0; return PR_TRUE; }
+
+ /** ---------------------------------------------------
* @return a pointer to the name of the current paper size
*/
const char *Name() {
@@ -117,11 +123,83 @@
return mList[mCurrent].isMetric;
}
- private:
+ protected:
unsigned int mCurrent;
// the class visibility should export these, but it doesn't
static NS_PSSHARED_STATIC_MEMBER_(const nsPaperSizePS_) mList[];
- static NS_PSSHARED_STATIC_MEMBER_(const unsigned int) mCount;
+ unsigned int mCount;
+};
+
+class NS_PSSHARED nsPaperSizeCUPS : public nsPaperSizePS {
+ public:
+ /** ---------------------------------------------------
+ * Constructor for a specific CUPS printer.
+ * @param fullPrinterName Fully qualified name, e.g., "CUPS/myprinter"
+ * @param printerName Stripped name, e.g., "myprinter"
+ */
+ nsPaperSizeCUPS(const char* fullPrinterName, const char* printerName);
+
+ /** ---------------------------------------------------
+ * Destructor.
+ */
+ ~nsPaperSizeCUPS();
+
+ /** ---------------------------------------------------
+ * Position the cursor at the beginning of the paper size list.
+ * @return VOID
+ */
+ void First() {
+ nsPaperSizePS::First();
+ SkipZeroSizes();
+ }
+
+ /** ---------------------------------------------------
+ * Advance the cursor to the next item.
+ * @return VOID
+ */
+ void Next() {
+ nsPaperSizePS::Next();
+ SkipZeroSizes();
+ }
+
+ /** ---------------------------------------------------
+ * Point the cursor to the entry with the given paper name.
+ * @return PR_TRUE if pointing to a valid entry.
+ */
+ PRBool Find(const char *aName);
+
+ /** ---------------------------------------------------
+ * Point the cursor to the CUPS default entry for paper size.
+ * @return PR_TRUE if pointing to a valid entry.
+ */
+ PRBool FindDefault();
+
+ /** ---------------------------------------------------
+ * @return a pointer to the name of the current paper size
+ */
+ const char *Name();
+
+ /** ---------------------------------------------------
+ * @return the width of the page in millimeters
+ */
+ float Width_mm();
+
+ /** ---------------------------------------------------
+ * @return the height of the page in millimeters
+ */
+ float Height_mm();
+
+ /** ---------------------------------------------------
+ * @return PR_TRUE if the paper should be presented to
+ * the user in metric units.
+ */
+ PRBool IsMetric();
+
+ private:
+ void SkipZeroSizes();
+ PRBool mUsingCups;
+ static NS_PSSHARED_STATIC_MEMBER_(nsCUPSShim) mCups;
+ ppd_file_t* mPPD;
};
#endif
--- gfx/src/xlib/nsDeviceContextSpecXlib.cpp
+++ gfx/src/xlib/nsDeviceContextSpecXlib.cpp
@@ -1212,7 +1212,11 @@
#endif /* SET_PRINTER_FEATURES_VIA_PREFS */
nsXPIDLCString papername;
if (NS_SUCCEEDED(CopyPrinterCharPref(pPrefs, "postscript", printerName, "paper_size", getter_Copies(papername)))) {
- nsPaperSizePS paper;
+ nsIPaperSizePS* paper;
+ nsresult rv;
+ rv = nsPaperFactoryPS::CreatePaper
+ (fullPrinterName.get(), printerName.get(), paper);
+ if (NS_FAILED(rv)) return rv;
if (paper.Find(papername)) {
DO_PR_DEBUG_LOG(("setting default paper size to '%s' (%g mm/%g mm)\n",
@@ -1238,6 +1242,7 @@
}
printerFeatures.SetNumPaperSizeRecords(count);
#endif /* SET_PRINTER_FEATURES_VIA_PREFS */
+ delete(paper);
}
PRBool hasSpoolerCmd = (nsPSPrinterList::kTypePS ==
Index: gfx/src/psshared/nsPaperPS.cpp
===================================================================
RCS file: /cvsroot/mozilla/gfx/src/psshared/nsPaperPS.cpp,v
retrieving revision 1.1.20.1
diff -u -p -6 -r1.1.20.1 nsPaperPS.cpp
--- gfx/src/psshared/nsPaperPS.cpp 3 Dec 2006 17:59:29 -0000 1.1.20.1
+++ gfx/src/psshared/nsPaperPS.cpp 31 Oct 2007 14:28:58 -0000
@@ -19,12 +19,14 @@
* The Initial Developer of the Original Code is
* Kenneth Herron <kherron@newsguy.com>.
* Portions created by the Initial Developer are Copyright (C) 2004
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
+ * Arne John Glenstrup <panic@itu.dk>
+ * Wolfgang Rosenauer <wr@rosenauer.org>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
@@ -34,15 +36,32 @@
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
-
+#ifdef MOZ_LOGGING
+#define FORCE_PR_LOG 1 /* Allow logging in the release build */
+#endif /* MOZ_LOGGING */
+#include "prlog.h"
+#include "prio.h"
+
#include "nsPaperPS.h"
#include "plstr.h"
+#include "nsPSPrinters.h"
+#include <math.h>
+
+#ifdef PR_LOGGING
+static PRLogModuleInfo *PaperSizePSLM = PR_NewLogModule("PaperSizePS");
+#endif /* PR_LOGGING */
+/* Macro to make lines shorter */
+#define DO_PR_DEBUG_LOG(x) PR_LOG(PaperSizePSLM, PR_LOG_DEBUG, x)
+
+#define MM_PER_PT (25.4 / 72.0)
+#define HALF_INCH_PT 36.0
+#define EPSILON 0.125
#define COUNTOF(x) (sizeof(x) / sizeof((x)[0]))
const nsPaperSizePS_ nsPaperSizePS::mList[] =
{
#define SIZE_MM(x) (x)
@@ -55,19 +74,153 @@ const nsPaperSizePS_ nsPaperSizePS::mLis
{ "Tabloid", SIZE_INCH(11), SIZE_INCH(17), PR_FALSE },
{ "Executive", SIZE_INCH(7.5), SIZE_INCH(10), PR_FALSE },
#undef SIZE_INCH
#undef SIZE_MM
};
-const unsigned int nsPaperSizePS::mCount = COUNTOF(mList);
+nsCUPSShim nsPaperSizeCUPS::mCups;
+
+/* ~nsIPaperSizePS() is virtual, so must implement a destructor. */
+nsIPaperSizePS::~nsIPaperSizePS () { }
+
+nsPaperSizePS::nsPaperSizePS() {
+ mCount = COUNTOF(mList);
+ mCurrent = 0;
+}
PRBool
nsPaperSizePS::Find(const char *aName)
{
for (int i = mCount; i--; ) {
if (!PL_strcasecmp(aName, mList[i].name)) {
mCurrent = i;
return PR_TRUE;
}
}
return PR_FALSE;
}
+
+nsPaperSizeCUPS::nsPaperSizeCUPS(const char* fullPrinterName,
+ const char* printerName) {
+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::nsPaperSizeCUPS('%s', '%s')\n",
+ fullPrinterName, printerName));
+ /* Don't use CUPS before we are sure we have access to the PPD */
+ mUsingCups = false;
+ mPPD = nsnull;
+ mCount = COUNTOF(mList);
+ mCurrent = 0;
+ if (!fullPrinterName || !printerName ||
+ nsPSPrinterList::kTypeCUPS !=
+ nsPSPrinterList::GetPrinterType(nsDependentCString(fullPrinterName)))
+ return;
+ if (!mCups.IsInitialized()) { mCups.Init(); }
+ if (!mCups.IsInitialized()) {
+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::nsPaperSizeCUPS: CUPS unavailable\n"));
+ return;
+ }
+ const char* ppdFileName = mCups.mCupsGetPPD(printerName);
+ if (!ppdFileName) {
+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::nsPaperSizeCUPS: "
+ "cannot get PPD file name for printer '%s'\n",
+ printerName));
+ return;
+ }
+ mPPD = mCups.mPpdOpenFile(ppdFileName);
+ // Remove the PPD file returned (it is a temporary file)
+ // as soon as we've opened it
+ if (ppdFileName) PR_Delete(ppdFileName);
+
+ if (!mPPD) {
+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::nsPaperSizeCUPS: "
+ "cannot open PPD file '%s'\n",
+ ppdFileName));
+ return;
+ }
+ mCount = mPPD->num_sizes;
+ mUsingCups = true;
+}
+
+nsPaperSizeCUPS::~nsPaperSizeCUPS() {
+ if (mPPD) mCups.mPpdClose(mPPD);
+}
+
+void
+nsPaperSizeCUPS::SkipZeroSizes() {
+ if (!mUsingCups) return;
+ while (mCurrent < mCount
+ && (mPPD->sizes[mCurrent].width == 0.0f ||
+ mPPD->sizes[mCurrent].length == 0.0f)) {
+ mCurrent++;
+ }
+}
+
+PRBool
+nsPaperSizeCUPS::Find(const char* aName) {
+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::Find ('%s') ", aName));
+ if (!mUsingCups) return nsPaperSizePS::Find(aName);
+ for (int i = mCount; i--; ) {
+ if (!PL_strcasecmp(aName, mPPD->sizes[i].name)) {
+ DO_PR_DEBUG_LOG
+ (("found paper '%s' (%gx%gmm)\n",
+ aName,
+ round(mPPD->sizes[i].width * MM_PER_PT),
+ round(mPPD->sizes[i].length * MM_PER_PT)));
+ mCurrent = i;
+ return PR_TRUE;
+ }
+ }
+ DO_PR_DEBUG_LOG(("did not find paper '%s'\n", aName));
+ return PR_FALSE;
+}
+
+PRBool
+nsPaperSizeCUPS::FindDefault() {
+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::FindDefault"));
+ if (!mUsingCups) return nsPaperSizePS::FindDefault();
+ mCups.mPpdMarkDefaults(mPPD);
+ for (int i = mCount; i--; ) {
+ if (mCups.mPpdIsMarked(mPPD, "PageSize", mPPD->sizes[i].name )) {
+ DO_PR_DEBUG_LOG
+ (("found default paper '%s' (%gx%gmm)\n",
+ mPPD->sizes[i].name,
+ round(mPPD->sizes[i].width * MM_PER_PT),
+ round(mPPD->sizes[i].length * MM_PER_PT)));
+ mCurrent = i;
+ return PR_TRUE;
+ }
+ }
+ mCurrent = 0;
+ DO_PR_DEBUG_LOG(("no default paper found, therefore set the first\n"));
+ return PR_TRUE;
+}
+
+const char*
+nsPaperSizeCUPS::Name() {
+ if (!mUsingCups) return nsPaperSizePS::Name();
+ NS_PRECONDITION(!AtEnd(), "Invalid current item");
+ return mPPD->sizes[mCurrent].name;
+}
+
+float
+nsPaperSizeCUPS::Width_mm() {
+ if (!mUsingCups) return nsPaperSizePS::Width_mm();
+ NS_PRECONDITION(!AtEnd(), "Invalid current item");
+ return round(mPPD->sizes[mCurrent].width * MM_PER_PT);
+}
+
+float
+nsPaperSizeCUPS::Height_mm() {
+ if (!mUsingCups) return nsPaperSizePS::Height_mm();
+ NS_PRECONDITION(!AtEnd(), "Invalid current item");
+ return round(mPPD->sizes[mCurrent].length * MM_PER_PT);
+}
+
+PRBool
+nsPaperSizeCUPS::IsMetric() {
+ if (!mUsingCups) return nsPaperSizePS::IsMetric();
+ NS_PRECONDITION(!AtEnd(), "Invalid current item");
+ /* Educated guess: unless sizes are integral number */
+ /* of half inches, present them to the user in metric. */
+ return
+ fabs(fmod(mPPD->sizes[mCurrent].width, HALF_INCH_PT)) > EPSILON ||
+ fabs(fmod(mPPD->sizes[mCurrent].length, HALF_INCH_PT)) > EPSILON;
+}

View File

@ -1,34 +0,0 @@
--- ipc/src/Makefile.in.orig 2005-06-14 09:19:56.000000000 +0200
+++ enigmail/ipc/src/Makefile.in 2005-06-14 09:20:09.000000000 +0200
@@ -74,6 +74,7 @@ EXPORTS = \
LOCAL_INCLUDES = \
-I$(srcdir)/../build \
+ -fPIC \
$(NULL)
CPPSRCS = \
--- enigmail/build/Makefile.in.orig 2005-10-04 20:12:03.000000000 +0200
+++ enigmail/build/Makefile.in 2005-10-04 20:12:35.000000000 +0200
@@ -51,9 +51,10 @@
LIBRARY_NAME = enigmime
SHORT_LIBNAME = enigmime
-MODULE_NAME = EnigModule
+#MODULE_NAME = EnigModule
IS_COMPONENT = 1
+FORCE_SHARED_LIB = 1
ifdef USE_XPCOM_GLUE
# Ensure that the xpcom classes that we build
--- enigmail/src/Makefile.in.orig 2006-01-11 20:54:23.000000000 +0100
+++ enigmail/src/Makefile.in 2006-01-11 20:54:43.000000000 +0100
@@ -94,6 +94,7 @@
LOCAL_INCLUDES = \
-I$(srcdir)/../build \
-I$(srcdir)/../../../mime/src \
+ -fPIC \
$(NULL)
CPPSRCS = \

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ab763fdbde5bd249a1e40309d656fa5cdbc0e614fbc59f1a2704f80dd084ee3b
size 852073

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ce63e22bf581d5152f9aaa3f0049a68d5c3027e8f21f8850c3b515da7895d0b5
size 759314

View File

@ -1,17 +0,0 @@
content enigmail jar:chrome/enigmail.jar!/content/enigmail/
locale enigmail en-US jar:chrome/enigmail.jar!/locale/en-US/enigmail/
skin enigmail classic jar:chrome/enigmail-skin-tbird.jar!/skin/classic/enigmail/
overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://enigmail/content/enigmailCheckLanguage.xul
overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://enigmail/content/enigmailMsgComposeOverlay.xul
overlay chrome://messenger/content/mailWindowOverlay.xul chrome://enigmail/content/enigmailCheckLanguage.xul
overlay chrome://messenger/content/mailWindowOverlay.xul chrome://enigmail/content/enigmailMessengerOverlay.xul
overlay chrome://messenger/content/msgHdrViewOverlay.xul chrome://enigmail/content/enigmailMsgHdrViewOverlay.xul
overlay chrome://messenger/content/msgPrintEngine.xul chrome://enigmail/content/enigmailMsgPrintOverlay.xul
overlay chrome://messenger/content/am-identity-edit.xul chrome://enigmail/content/enigmailAmIdEditOverlay.xul
overlay chrome://messenger/content/am-identity-edit.xul chrome://enigmail/content/enigmailEditIdentity.xul
overlay chrome://messenger/content/addressbook/addressbook.xul chrome://enigmail/content/enigmailAbCardViewOverlay.xul
overlay chrome://messenger/content/addressbook/abContactsPanel.xul chrome://enigmail/content/enigmailAbContactsPanel.xul
overlay chrome://global/content/customizeToolbar.xul chrome://enigmail/content/enigmailCustToolOverlay.xul
overlay chrome://communicator/content/pref/preftree.xul chrome://enigmail/content/enigmailPrefsOverlay.xul
overlay chrome://enigmail/content/am-enigprefs.xul chrome://enigmail/content/enigmailEditIdentity.xul
overlay chrome://enigmail/content/am-enigprefs-edit.xul chrome://enigmail/content/enigmailEditIdentity.xul

23
find-external-requires.sh Normal file
View File

@ -0,0 +1,23 @@
#!/bin/sh
# Finds requirements provided outside of the current file set
filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
provides=`echo "$filelist" | /usr/lib/rpm/find-provides`
{
for f in $filelist ; do
echo $f | /usr/lib/rpm/find-requires | while read req ; do
found=0
for p in $provides ; do
if [ "$req" = "$p" ]; then
found=1
fi
done
if [ "$found" = "0" ]; then
echo $req
fi
done
done
} | sort -u

View File

@ -1,90 +0,0 @@
--- layout/base/nsCSSRendering.cpp.orig 2006-10-25 23:59:19.000000000 +0200
+++ layout/base/nsCSSRendering.cpp 2006-10-26 00:00:04.000000000 +0200
@@ -1000,14 +1000,14 @@
FillOrInvertRect(aContext, dashRect.x, borderOutside.y,dashRect.width, dashRect.height-adjust,isInvert);
FillOrInvertRect(aContext,dashRect.x,(borderOutside.YMost()-(dashRect.height-adjust)),dashRect.width, dashRect.height-adjust,isInvert);
currRect.y += (dashRect.height-adjust);
- temp = temp-= (dashRect.height-adjust);
+ temp -= (dashRect.height-adjust);
} else {
adjust = (temp%dashRect.width)/2; // adjust a tad longer
// draw in the left and right
FillOrInvertRect(aContext, dashRect.x, borderOutside.y,dashRect.width, dashRect.height+adjust,isInvert);
FillOrInvertRect(aContext, dashRect.x,(borderOutside.YMost()-(dashRect.height+adjust)),dashRect.width, dashRect.height+adjust,isInvert);
currRect.y += (dashRect.height+adjust);
- temp = temp-= (dashRect.height+adjust);
+ temp -= (dashRect.height+adjust);
}
if( temp > ywidth)
@@ -1066,14 +1066,14 @@
FillOrInvertRect(aContext, borderOutside.x,dashRect.y,dashRect.width-adjust,dashRect.height,isInvert);
FillOrInvertRect(aContext, (borderOutside.XMost()-(dashRect.width-adjust)),dashRect.y,dashRect.width-adjust,dashRect.height,isInvert);
currRect.x += (dashRect.width-adjust);
- temp = temp-= (dashRect.width-adjust);
+ temp -= (dashRect.width-adjust);
} else {
adjust = (temp%dashRect.width)/2;
// draw in the left and right
FillOrInvertRect(aContext, borderOutside.x,dashRect.y,dashRect.width+adjust,dashRect.height,isInvert);
FillOrInvertRect(aContext, (borderOutside.XMost()-(dashRect.width+adjust)),dashRect.y,dashRect.width+adjust,dashRect.height,isInvert);
currRect.x += (dashRect.width+adjust);
- temp = temp-= (dashRect.width+adjust);
+ temp -= (dashRect.width+adjust);
}
--- layout/xul/base/src/nsBox.cpp.orig 2006-10-26 00:00:26.000000000 +0200
+++ layout/xul/base/src/nsBox.cpp 2006-10-26 00:01:30.000000000 +0200
@@ -863,7 +863,7 @@
while (box) {
nsRect* overflowArea = box->GetOverflowAreaProperty();
nsRect bounds = overflowArea ? *overflowArea + box->GetPosition() :
- bounds = box->GetRect();
+ box->GetRect();
rect.UnionRect(rect, bounds);
box->GetNextBox(&box);
--- intl/unicharutil/src/nsEntityConverter.cpp.orig 2005-04-02 20:44:00.000000000 +0200
+++ intl/unicharutil/src/nsEntityConverter.cpp 2006-10-26 00:07:24.000000000 +0200
@@ -236,7 +236,8 @@
if (IS_HIGH_SURROGATE(inString[i]) &&
i + 2 < len &&
IS_LOW_SURROGATE(inString[i + 1])) {
- key.AppendInt(SURROGATE_TO_UCS4(inString[i], inString[++i]), 10);
+ key.AppendInt(SURROGATE_TO_UCS4(inString[i], inString[i + 1]), 10);
+ ++i;
}
else {
key.AppendInt(inString[i],10);
--- content/events/src/nsEventStateManager.cpp.orig 2006-08-06 00:19:17.000000000 +0200
+++ content/events/src/nsEventStateManager.cpp 2006-10-26 00:11:16.000000000 +0200
@@ -4301,7 +4301,7 @@
do_QueryInterface(GetDocumentOuterWindow(mDocument));
if (newWindow) {
nsIFocusController *newFocusController =
- newFocusController = newWindow->GetRootFocusController();
+ newWindow->GetRootFocusController();
nsCOMPtr<nsPIDOMWindow> oldWindow =
do_QueryInterface(GetDocumentOuterWindow(gLastFocusedDocument));
if (oldWindow) {
--- netwerk/cache/src/nsDiskCacheMap.h.orig 2006-02-04 23:01:22.000000000 +0100
+++ netwerk/cache/src/nsDiskCacheMap.h 2006-10-26 00:15:09.000000000 +0200
@@ -168,7 +168,7 @@
// set blockCount
NS_ASSERTION( (blockCount>=1) && (blockCount<=4),"invalid block count");
- blockCount = --blockCount;
+ --blockCount;
mDataLocation |= (blockCount << eExtraBlocksOffset) & eExtraBlocksMask;
mDataLocation |= eLocationInitializedMask;
@@ -236,7 +236,7 @@
// set blockCount
NS_ASSERTION( (blockCount>=1) && (blockCount<=4),"invalid block count");
- blockCount = --blockCount;
+ --blockCount;
mMetaLocation |= (blockCount << eExtraBlocksOffset) & eExtraBlocksMask;
mMetaLocation |= eLocationInitializedMask;

View File

@ -1,50 +0,0 @@
Index: mail/base/content/mailWindowOverlay.js
===================================================================
RCS file: /cvsroot/mozilla/mail/base/content/mailWindowOverlay.js,v
retrieving revision 1.95.2.55
diff -u -p -6 -r1.95.2.55 mailWindowOverlay.js
--- mail/base/content/mailWindowOverlay.js 12 Feb 2007 21:07:34 -0000 1.95.2.55
+++ mail/base/content/mailWindowOverlay.js 15 Feb 2007 19:46:05 -0000
@@ -1064,12 +1064,19 @@ function MsgNewMessage(event)
if (event && event.shiftKey)
ComposeMessage(msgComposeType.New, msgComposeFormat.OppositeOfDefault, loadedFolder, messageArray);
else
ComposeMessage(msgComposeType.New, msgComposeFormat.Default, loadedFolder, messageArray);
}
+function MsgNewHtmlMessage()
+{
+ var loadedFolder = GetFirstSelectedMsgFolder();
+ var messageArray = GetSelectedMessages();
+ ComposeMessage(msgComposeType.New, msgComposeFormat.HTML, loadedFolder, messageArray);
+}
+
function MsgReplyMessage(event)
{
var loadedFolder = GetLoadedMsgFolder();
if (loadedFolder)
{
var server = loadedFolder.server;
Index: mail/base/content/mailWindowOverlay.xul
===================================================================
RCS file: /cvsroot/mozilla/mail/base/content/mailWindowOverlay.xul,v
retrieving revision 1.116.2.72
diff -u -p -6 -r1.116.2.72 mailWindowOverlay.xul
--- mail/base/content/mailWindowOverlay.xul 10 Feb 2007 22:56:29 -0000 1.116.2.72
+++ mail/base/content/mailWindowOverlay.xul 15 Feb 2007 19:46:55 -0000
@@ -1511,12 +1511,15 @@
<menu id="messageMenu" label="&msgMenu.label;" accesskey="&msgMenu.accesskey;">
<menupopup id="messageMenuPopup" onpopupshowing="InitMessageMenu();">
<menuitem id="newMsgCmd" label="&newMsgCmd.label;"
accesskey="&newMsgCmd.accesskey;"
key="key_newMessage2"
oncommand="MsgNewMessage(null);"/>
+ <menuitem id="newHtmlMsgCmd" label="New HTML Message"
+ accesskey="H"
+ oncommand="MsgNewHtmlMessage();"/>
<menuitem id="replyMainMenu" label="&replyMsgCmd.label;"
accesskey="&replyMsgCmd.accesskey;"
key="key_reply"
command="cmd_reply"/>
<menuitem id="replySenderMainMenu" label="&replySenderCmd.label;"
accesskey="&replySenderCmd.accesskey;"

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f1f70948b2f30e2ab6f6811ae3884489cd7cb15ee1846c341144c559604a0d3e
size 11051307

3
l10n-3.0b3.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1dcd305aea953c69c5f1765653796507e02195e90099f03acd6ec0b97f34dcdd
size 15431608

View File

@ -1,130 +0,0 @@
Index: mailnews/mailnews.js
===================================================================
RCS file: /cvsroot/mozilla/mailnews/mailnews.js,v
retrieving revision 3.249
diff -u -r3.249 mailnews.js
--- mailnews/mailnews.js 9 Aug 2005 00:36:31 -0000 3.249
+++ mailnews/mailnews.js 15 Aug 2005 01:12:06 -0000
@@ -196,6 +196,7 @@
pref("mailnews.reply_header_locale", "");
pref("mailnews.reply_header_authorwrote", "chrome://messenger/locale/messengercompose/composeMsgs.properties");
pref("mailnews.reply_header_ondate", "chrome://messenger/locale/messengercompose/composeMsgs.properties");
+pref("mailnews.clobber_list_reply", false);
// separator to separate between date and author
pref("mailnews.reply_header_separator", ", ");
--- mailnews/compose/src/nsMsgCompose.cpp.old 2007-01-10 10:03:52.000000000 +0100
+++ mailnews/compose/src/nsMsgCompose.cpp 2007-01-10 10:09:45.000000000 +0100
@@ -2221,6 +2221,7 @@ NS_IMETHODIMP QuotingOutputStreamListene
nsAutoString listPost;
nsXPIDLCString outCString;
PRBool needToRemoveDup = PR_FALSE;
+ PRBool clobberListReply = PR_FALSE;
if (!mMimeConverter)
{
mMimeConverter = do_GetService(NS_MIME_CONVERTER_CONTRACTID, &rv);
@@ -2229,6 +2230,70 @@ NS_IMETHODIMP QuotingOutputStreamListene
nsXPIDLCString charset;
compFields->GetCharacterSet(getter_Copies(charset));
+ nsCOMPtr<nsIPrefBranch> prefBranch (do_GetService(NS_PREFSERVICE_CONTRACTID));
+ if (prefBranch)
+ prefBranch->GetBoolPref("mailnews.clobber_list_reply", &clobberListReply);
+
+ mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, replyTo, charset);
+
+ mHeaders->ExtractHeader(HEADER_MAIL_REPLY_TO, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, mailReplyTo, charset);
+
+ if (clobberListReply) {
+ /* the 'Al fix'. Try to fake up Mail-Reply-To: and
+ * Mail-Followup-To: headers if we don't have any, and if it looks
+ * like it came via a mailing list.
+ *
+ * Currently only supports List-Post header.
+ */
+
+ mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset);
+
+ if (mailFollowupTo.IsEmpty()) {
+ nsAutoString mailingList;
+
+ mHeaders->ExtractHeader(HEADER_LIST_POST, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ {
+ mMimeConverter->DecodeMimeHeader(outCString, mailingList, charset);
+ /* s/<mailto:(.*)>/$1/; */
+ if (StringBeginsWith(mailingList, NS_LITERAL_STRING("<mailto:")) &&
+ StringEndsWith(mailingList, NS_LITERAL_STRING(">"))) {
+
+ mailingList = Substring(mailingList, 8, mailingList.Length() - 9);
+ }
+ }
+
+ mailFollowupTo = mailingList;
+ }
+
+ if (mailReplyTo.IsEmpty()) {
+ nsAutoString from;
+ nsAutoString xReplyTo;
+
+ mHeaders->ExtractHeader(HEADER_FROM, PR_FALSE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, from, charset);
+
+ mHeaders->ExtractHeader(HEADER_X_REPLY_TO, PR_FALSE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, xReplyTo, charset);
+
+ if (replyTo == mailFollowupTo) {
+ if (!xReplyTo.IsEmpty())
+ mailReplyTo = xReplyTo;
+ else
+ mailReplyTo = from;
+ }
+ }
+ }
+
+
if (type == nsIMsgCompType::ReplyAll)
{
mHeaders->ExtractHeader(HEADER_TO, PR_TRUE, getter_Copies(outCString));
@@ -2252,10 +2317,10 @@ NS_IMETHODIMP QuotingOutputStreamListene
compFields->SetBcc(bcc);
}
- mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString));
- if (outCString)
- {
- mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset);
+ if (!clobberListReply) { // else we've already looked this up earlier
+ mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString));
+ if (outCString)
+ mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset);
}
if (! mailFollowupTo.IsEmpty())
@@ -2296,18 +2361,6 @@ NS_IMETHODIMP QuotingOutputStreamListene
}
}
- mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString));
- if (outCString)
- {
- mMimeConverter->DecodeMimeHeader(outCString, replyTo, charset);
- }
-
- mHeaders->ExtractHeader(HEADER_MAIL_REPLY_TO, PR_TRUE, getter_Copies(outCString));
- if (outCString)
- {
- mMimeConverter->DecodeMimeHeader(outCString, mailReplyTo, charset);
- }
-
mHeaders->ExtractHeader(HEADER_NEWSGROUPS, PR_FALSE, getter_Copies(outCString));
if (outCString)
{

View File

@ -1,11 +0,0 @@
--- modules/libpref/src/init/all.js.orig 2004-10-15 14:50:11.740865580 +0200
+++ modules/libpref/src/init/all.js 2004-10-15 14:50:34.371625152 +0200
@@ -653,7 +653,7 @@
pref("intl.charset.detector", "chrome://navigator/locale/navigator.properties");
pref("intl.charset.default", "chrome://navigator-platform/locale/navigator.properties");
pref("intl.content.langcode", "chrome://communicator-region/locale/region.properties");
-pref("intl.locale.matchOS", false);
+pref("intl.locale.matchOS", true);
// fallback charset list for Unicode conversion (converting from Unicode)
// currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes)
// for ISO-8859-1

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:08815def52275fc8b9c998b9ee0b1a56abae3092c646302a984ac4832b5c412b
size 105913

View File

@ -1,11 +0,0 @@
--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4.orig 2003-10-31 10:06:36.000000000 +0000
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4 2003-10-31 10:07:06.000000000 +0000
@@ -36,7 +36,7 @@
LOCALSZ=2 # gp, ra
FRAMESZ=(((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
-define(STUB_NAME, `Stub'$1`__14nsXPTCStubBase')
+define(STUB_NAME, ```_ZN14nsXPTCStubBase'len(Stub'$1`)Stub'$1`Ev'')
define(STUB_ENTRY,
` .globl 'STUB_NAME($1)`

View File

@ -1,20 +0,0 @@
--- gfx/src/x11shared/nsFT2FontCatalog.cpp
+++ gfx/src/x11shared/nsFT2FontCatalog.cpp
@@ -49,6 +49,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <time.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <dirent.h>
@@ -92,9 +93,6 @@
// Called to get the TrueType font summary from the disk font catalog.
//
-// Solaris is missing a prototype for ctime
-extern "C" {char *ctime(const time_t *timep);}
-
#include <ft2build.h>
#include FT_GLYPH_H
#include FT_FREETYPE_H

View File

@ -0,0 +1,70 @@
From: mozilla-central
Subject: make it possible to define MOZILLA_APP_LAUNCHER to control which
app should be used for session management
References:
https://bugzilla.mozilla.org/show_bug.cgi?id=453689
--- mozilla-1.9.1/toolkit/xre/nsNativeAppSupportUnix.cpp 2009-04-27 09:23:29.000000000 +0200
+++ mozilla-central/toolkit/xre/nsNativeAppSupportUnix.cpp 2009-07-07 12:55:10.000000000 +0200
@@ -155,31 +155,37 @@ gboolean save_yourself_cb(GnomeClient *c
interact_cb, nsnull);
return TRUE;
}
-
- // Tell GNOME the command for restarting us so that we can be part of XSMP session restore
- NS_ASSERTION(gDirServiceProvider, "gDirServiceProvider is NULL! This shouldn't happen!");
- nsCOMPtr<nsIFile> executablePath;
- nsresult rv;
-
- PRBool dummy;
- rv = gDirServiceProvider->GetFile(XRE_EXECUTABLE_FILE, &dummy, getter_AddRefs(executablePath));
-
- if (NS_SUCCEEDED(rv)) {
- nsCAutoString path;
- char* argv[1];
-
- // Strip off the -bin suffix to get the shell script we should run; this is what Breakpad does
- nsCAutoString leafName;
- rv = executablePath->GetNativeLeafName(leafName);
- if (NS_SUCCEEDED(rv) && StringEndsWith(leafName, NS_LITERAL_CSTRING("-bin"))) {
- leafName.SetLength(leafName.Length() - strlen("-bin"));
- executablePath->SetNativeLeafName(leafName);
+
+ // Is there a request to suppress default binary launcher?
+ char* argv1 = getenv("MOZ_APP_LAUNCHER");
+
+ if(!argv1) {
+ // Tell GNOME the command for restarting us so that we can be part of XSMP session restore
+ NS_ASSERTION(gDirServiceProvider, "gDirServiceProvider is NULL! This shouldn't happen!");
+ nsCOMPtr<nsIFile> executablePath;
+ nsresult rv;
+
+ PRBool dummy;
+ rv = gDirServiceProvider->GetFile(XRE_EXECUTABLE_FILE, &dummy, getter_AddRefs(executablePath));
+
+ if (NS_SUCCEEDED(rv)) {
+ nsCAutoString path;
+
+ // Strip off the -bin suffix to get the shell script we should run; this is what Breakpad does
+ nsCAutoString leafName;
+ rv = executablePath->GetNativeLeafName(leafName);
+ if (NS_SUCCEEDED(rv) && StringEndsWith(leafName, NS_LITERAL_CSTRING("-bin"))) {
+ leafName.SetLength(leafName.Length() - strlen("-bin"));
+ executablePath->SetNativeLeafName(leafName);
+ }
+
+ executablePath->GetNativePath(path);
+ argv1 = (char*)(path.get());
}
+ }
- executablePath->GetNativePath(path);
- argv[0] = (char*)(path.get());
-
- gnome_client_set_restart_command(client, 1, argv);
+ if(argv1) {
+ gnome_client_set_restart_command(client, 1, &argv1);
}
return TRUE;

View File

@ -1,109 +0,0 @@
References:
https://bugzilla.mozilla.org/show_bug.cgi?id=403675
https://bugzilla.mozilla.org/show_bug.cgi?id=386362
Index: modules/libpr0n/encoders/png/nsPNGEncoder.h
===================================================================
RCS file: /cvsroot/mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.h,v
retrieving revision 1.1.18.1
diff -u -p -6 -r1.1.18.1 nsPNGEncoder.h
--- modules/libpr0n/encoders/png/nsPNGEncoder.h 20 May 2006 17:20:49 -0000 1.1.18.1
+++ modules/libpr0n/encoders/png/nsPNGEncoder.h 13 Nov 2007 22:07:36 -0000
@@ -35,14 +35,16 @@
*
* ***** END LICENSE BLOCK ***** */
#include "imgIEncoder.h"
#ifdef MOZILLA_1_8_BRANCH
#define imgIEncoder imgIEncoder_MOZILLA_1_8_BRANCH
+#ifndef NS_DECL_IMGIENCODER
#define NS_DECL_IMGIENCODER NS_DECL_IMGIENCODER_MOZILLA_1_8_BRANCH
#endif
+#endif
#include <png.h>
#define NS_PNGENCODER_CID \
{ /* 38d1592e-b81e-432b-86f8-471878bbfe07 */ \
0x38d1592e, \
@@ -60,12 +62,20 @@ public:
NS_DECL_ISUPPORTS
NS_DECL_IMGIENCODER
NS_DECL_NSIINPUTSTREAM
nsPNGEncoder();
+ NS_IMETHOD InitFromData(const PRUint8* aData,
+ PRUint32 aLength, // (unused, req'd by JS)
+ PRUint32 aWidth,
+ PRUint32 aHeight,
+ PRUint32 aStride,
+ PRUint32 aInputFormat,
+ const nsAString& aOutputOptions);
+
private:
~nsPNGEncoder();
protected:
void ConvertHostARGBRow(const PRUint8* aSrc, PRUint8* aDest,
PRUint32 aPixelWidth, PRBool aUseTransparency);
Index: modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h
===================================================================
RCS file: /cvsroot/mozilla/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h,v
retrieving revision 1.1.14.1
diff -u -p -6 -r1.1.14.1 nsJPEGEncoder.h
--- modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h 20 May 2006 17:20:48 -0000 1.1.14.1
+++ modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h 13 Nov 2007 22:07:57 -0000
@@ -36,14 +36,16 @@
*
* ***** END LICENSE BLOCK ***** */
#include "imgIEncoder.h"
#ifdef MOZILLA_1_8_BRANCH
#define imgIEncoder imgIEncoder_MOZILLA_1_8_BRANCH
+#ifndef NS_DECL_IMGIENCODER
#define NS_DECL_IMGIENCODER NS_DECL_IMGIENCODER_MOZILLA_1_8_BRANCH
#endif
+#endif
// needed for JPEG library
#include <stdio.h>
extern "C" {
#include "jpeglib.h"
@@ -66,12 +68,20 @@ public:
NS_DECL_ISUPPORTS
NS_DECL_IMGIENCODER
NS_DECL_NSIINPUTSTREAM
nsJPEGEncoder();
+ NS_IMETHOD InitFromData(const PRUint8* aData,
+ PRUint32 aLength, // (unused, req'd by JS)
+ PRUint32 aWidth,
+ PRUint32 aHeight,
+ PRUint32 aStride,
+ PRUint32 aInputFormat,
+ const nsAString& aOutputOptions);
+
private:
~nsJPEGEncoder();
protected:
void ConvertHostARGBRow(const PRUint8* aSrc, PRUint8* aDest,
Index: modules/libpr0n/public/imgIEncoder.idl
===================================================================
RCS file: /cvsroot/mozilla/modules/libpr0n/public/imgIEncoder.idl,v
retrieving revision 1.1.10.3
diff -u -p -r1.1.10.3 imgIEncoder.idl
--- modules/libpr0n/public/imgIEncoder.idl 20 May 2006 17:20:49 -0000 1.1.10.3
+++ modules/libpr0n/public/imgIEncoder.idl 14 Nov 2007 10:41:40 -0000
@@ -96,6 +96,6 @@ interface nsIFile;
[scriptable, uuid(CCC5B3AD-3E67-4e3d-97E1-B06B2E96FEF8)]
interface imgIEncoder : nsISupports
{
- void encodeClipboardImage(in nsIClipboardImage aClipboardImage, out nsIFile aImageFile);
+ /* void encodeClipboardImage(in nsIClipboardImage aClipboardImage, out nsIFile aImageFile); */
};

View File

@ -1,22 +0,0 @@
Index: ./toolkit/xre/nsAppRunner.cpp
===================================================================
RCS file: /cvsroot/mozilla/toolkit/xre/nsAppRunner.cpp,v
retrieving revision 1.215
diff -u -p -6 -r1.215 nsAppRunner.cpp
--- ./toolkit/xre/nsAppRunner.cpp 17 Nov 2008 14:36:43 -0000 1.215
+++ ./toolkit/xre/nsAppRunner.cpp 27 Apr 2009 18:24:19 -0000
@@ -1456,13 +1456,13 @@ XRE_GetBinaryPath(const char* argv0, nsI
rv = NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE,
getter_AddRefs(lf));
if (NS_FAILED(rv))
return rv;
-#elif
+#else
#error Oops, you need platform-specific code here
#endif
NS_ADDREF(*aResult = lf);
return NS_OK;
}

View File

@ -0,0 +1,47 @@
From: Karl Tomlinson <mozbugz@karlt.net>
Subject: jemalloc integration cause crashes when libraries or plugins dlopen with RTLD_DEEPBIND
References:
https://bugzilla.mozilla.org/show_bug.cgi?id=493541
https://bugzilla.novell.com/show_bug.cgi?id=503151
diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c
--- a/memory/jemalloc/jemalloc.c
+++ b/memory/jemalloc/jemalloc.c
@@ -7225,8 +7225,37 @@ jemalloc_darwin_init(void)
* default zone.
*/
assert(malloc_num_zones > 1);
memmove(&malloc_zones[1], &malloc_zones[0],
sizeof(malloc_zone_t *) * (malloc_num_zones - 1));
malloc_zones[0] = &zone;
}
#endif
+
+#ifdef HAVE_LIBDL
+# include <dlfcn.h>
+/*
+ * glibc provides the RTLD_DEEPBIND flag for dlopen which can make it possible
+ * to inconsistently reference libc's malloc(3)-compatible functions
+ * (bug 493541).
+ *
+ * XXX On systems that support RTLD_GROUP or DF_1_GROUP, do their
+ * implementations permit similar inconsistencies? Should STV_SINGLETON
+ * visibility be used for interposition where available?
+ */
+# ifdef RTLD_DEEPBIND
+# if defined(__GLIBC__) && !defined(__UCLIBC__)
+
+/*
+ * These interpose hooks in glibc. They are actually passed an extra
+ * argument for the caller return address, which will be ignored.
+ */
+void (*__free_hook)(void *ptr) = free;
+void *(*__malloc_hook)(size_t size) = malloc;
+void *(*__realloc_hook)(void *ptr, size_t size) = realloc;
+void *(*__memalign_hook)(size_t alignment, size_t size) = memalign;
+
+# elif !defined(malloc)
+# error "Interposing malloc is unsafe on this system without libc malloc hooks."
+# endif
+# endif
+#endif

View File

@ -81,19 +81,6 @@ diff -up mozilla/dbm/include/mcom_db.h.old mozilla/dbm/include/mcom_db.h
#endif
#include <fcntl.h>
diff -up mozilla/js/src/jsfile.c.old mozilla/js/src/jsfile.c
--- mozilla/js/src/jsfile.c.old 2006-07-26 20:55:08.000000000 +0200
+++ mozilla/js/src/jsfile.c 2007-09-25 18:22:52.000000000 +0200
@@ -105,7 +105,8 @@
#define utfstring "binary"
#define unicodestring "unicode"
-#define MAX_PATH_LENGTH 1024
+#include <limits.h>
+#define MAX_PATH_LENGTH PATH_MAX
#define MODE_SIZE 256
#define NUMBER_SIZE 32
#define MAX_LINE_LENGTH 256
diff -up mozilla/xpcom/typelib/xpidl/xpidl_java.c.old mozilla/xpcom/typelib/xpidl/xpidl_java.c
--- mozilla/xpcom/typelib/xpidl/xpidl_java.c.old 2007-09-25 18:38:52.000000000 +0200
+++ mozilla/xpcom/typelib/xpidl/xpidl_java.c 2007-09-25 18:39:17.000000000 +0200

View File

@ -1,190 +1,14 @@
? .mozconfig.mk
? .mozconfig.out
Index: configure
===================================================================
RCS file: /cvsroot/mozilla/configure,v
retrieving revision 1.1492.2.130
diff -u -p -6 -r1.1492.2.130 configure
--- configure 19 Oct 2008 16:21:23 -0000 1.1492.2.130
+++ configure 21 Nov 2008 09:52:32 -0000
@@ -19337,12 +19337,115 @@ echo "configure:19307: checking CAIRO_LI
fi
+
+
+ succeeded=no
+
+ if test -z "$PKG_CONFIG"; then
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:19352: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$PKG_CONFIG" in
+ /*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_PKG_CONFIG="$PKG_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_PKG_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+ ;;
+esac
+fi
+PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+if test -n "$PKG_CONFIG"; then
+ echo "$ac_t""$PKG_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ fi
+
+ if test "$PKG_CONFIG" = "no" ; then
+ echo "*** The pkg-config script could not be found. Make sure it is"
+ echo "*** in your path, or set the PKG_CONFIG environment variable"
+ echo "*** to the full path to pkg-config."
+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+ else
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ echo $ac_n "checking for nss-shared-helper""... $ac_c" 1>&6
+echo "configure:19396: checking for nss-shared-helper" >&5
+
+ if $PKG_CONFIG --exists "nss-shared-helper" ; then
+ echo "$ac_t""yes" 1>&6
+ succeeded=yes
+
+ echo $ac_n "checking NSSHELPER_CFLAGS""... $ac_c" 1>&6
+echo "configure:19403: checking NSSHELPER_CFLAGS" >&5
+ NSSHELPER_CFLAGS=`$PKG_CONFIG --cflags "nss-shared-helper"`
+ echo "$ac_t""$NSSHELPER_CFLAGS" 1>&6
+
+ echo $ac_n "checking NSSHELPER_LIBS""... $ac_c" 1>&6
+echo "configure:19408: checking NSSHELPER_LIBS" >&5
+ ## don't use --libs since that can do evil things like add
+ ## -Wl,--export-dynamic
+ NSSHELPER_LIBS="`$PKG_CONFIG --libs-only-L \"nss-shared-helper\"` `$PKG_CONFIG --libs-only-l \"nss-shared-helper\"`"
+ echo "$ac_t""$NSSHELPER_LIBS" 1>&6
+ else
+ NSSHELPER_CFLAGS=""
+ NSSHELPER_LIBS=""
+ ## If we have a custom action on failure, don't print errors, but
+ ## do set a variable so people can do so.
+ NSSHELPER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "nss-shared-helper"`
+
+ fi
+
+
+
+ else
+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
+ fi
+ fi
+
+ if test $succeeded = yes; then
+ MOZ_ENABLE_NSSHELPER=1
+ else
+ MOZ_ENABLE_NSSHELPER=
+ fi
+
+
+if test "$MOZ_ENABLE_NSSHELPER"; then
+ cat >> confdefs.h <<\EOF
+#define MOZ_ENABLE_NSSHELPER 1
+EOF
+
+fi
+
+
+
+
# Check whether --enable-xul or --disable-xul was given.
if test "${enable_xul+set}" = set; then
enableval="$enable_xul"
if test "$enableval" = "no"; then
MOZ_XUL=
elif test "$enableval" = "yes"; then
@@ -20583,12 +20686,15 @@ s%@ATSUI_FONT_FEATURE@%$ATSUI_FONT_FEATU
s%@PNG_FUNCTIONS_FEATURE@%$PNG_FUNCTIONS_FEATURE%g
s%@CAIRO_CFLAGS@%$CAIRO_CFLAGS%g
s%@CAIRO_LIBS@%$CAIRO_LIBS%g
s%@MOZ_TREE_CAIRO@%$MOZ_TREE_CAIRO%g
s%@MOZ_CAIRO_CFLAGS@%$MOZ_CAIRO_CFLAGS%g
s%@MOZ_CAIRO_LIBS@%$MOZ_CAIRO_LIBS%g
+s%@NSSHELPER_CFLAGS@%$NSSHELPER_CFLAGS%g
+s%@NSSHELPER_LIBS@%$NSSHELPER_LIBS%g
+s%@MOZ_ENABLE_NSSHELPER@%$MOZ_ENABLE_NSSHELPER%g
s%@MOZ_XUL@%$MOZ_XUL%g
s%@MOZ_PYTHON@%$MOZ_PYTHON%g
s%@MOZ_PYTHON_PREFIX@%$MOZ_PYTHON_PREFIX%g
s%@MOZ_PYTHON_INCLUDES@%$MOZ_PYTHON_INCLUDES%g
s%@MOZ_PYTHON_LIBS@%$MOZ_PYTHON_LIBS%g
s%@MOZ_PYTHON_VER@%$MOZ_PYTHON_VER%g
Index: configure.in
===================================================================
RCS file: /cvsroot/mozilla/configure.in,v
retrieving revision 1.1503.2.112
diff -u -p -6 -r1.1503.2.112 configure.in
--- configure.in 19 Oct 2008 16:14:06 -0000 1.1503.2.112
+++ configure.in 21 Nov 2008 09:52:34 -0000
@@ -6808,12 +6808,27 @@ fi
AC_SUBST(MOZ_TREE_CAIRO)
AC_SUBST(MOZ_CAIRO_CFLAGS)
AC_SUBST(MOZ_CAIRO_LIBS)
dnl ========================================================
+dnl Check for nss-shared-helper
+dnl ========================================================
+
+PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper,
+ [MOZ_ENABLE_NSSHELPER=1],
+ [MOZ_ENABLE_NSSHELPER=])
+
+if test "$MOZ_ENABLE_NSSHELPER"; then
+ AC_DEFINE(MOZ_ENABLE_NSSHELPER)
+fi
+AC_SUBST(MOZ_ENABLE_NSSHELPER)
+AC_SUBST(NSSHELPER_CFLAGS)
+AC_SUBST(NSSHELPER_LIBS)
+
+dnl ========================================================
dnl disable xul
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(xul,
[ --disable-xul Disable XUL],
MOZ_XUL= )
if test "$MOZ_XUL"; then
Index: config/autoconf.mk.in
===================================================================
RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v
retrieving revision 3.363.2.20
diff -u -p -6 -r3.363.2.20 autoconf.mk.in
--- config/autoconf.mk.in 14 Sep 2006 18:07:03 -0000 3.363.2.20
+++ config/autoconf.mk.in 21 Nov 2008 09:52:35 -0000
@@ -492,12 +492,16 @@ GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GLIB_GMODULE_LIBS = @GLIB_GMODULE_LIBS@
LIBIDL_CFLAGS = @LIBIDL_CFLAGS@
From: Hans Petter Jansson <hpj@copyleft.no>
Wolfgang Rosenauer <wr@rosenauer.org>
Subject: use libnsssharedhelper if available at compile time
(can be disabled by exporting MOZ_XRE_NO_NSSHELPER=1)
References:
diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in
--- a/config/autoconf.mk.in
+++ b/config/autoconf.mk.in
@@ -535,6 +535,10 @@ LIBIDL_LIBS = @LIBIDL_LIBS@
LIBIDL_LIBS = @LIBIDL_LIBS@
STATIC_LIBIDL = @STATIC_LIBIDL@
@ -195,44 +19,35 @@ diff -u -p -6 -r3.363.2.20 autoconf.mk.in
MOZ_NATIVE_MAKEDEPEND = @SYSTEM_MAKEDEPEND@
# Used for LD_LIBRARY_PATH
LIBS_PATH = @LIBS_PATH@
diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
@@ -7613,6 +7613,21 @@ dnl ====================================
MOZ_AUTO_DEPS = @MOZ_AUTO_DEPS@
Index: mail/app/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/mail/app/Makefile.in,v
retrieving revision 1.46.2.10
diff -u -p -6 -r1.46.2.10 Makefile.in
--- mail/app/Makefile.in 22 Oct 2008 21:04:53 -0000 1.46.2.10
+++ mail/app/Makefile.in 21 Nov 2008 09:52:45 -0000
@@ -100,12 +100,16 @@ endif
endif
ifdef MOZ_JPROF
LIBS += -ljprof
endif
+ifdef MOZ_ENABLE_NSSHELPER
+LIBS += $(NSSHELPER_LIBS)
+endif
QCMS_LIBS='$(DEPTH)/gfx/qcms/$(LIB_PREFIX)mozqcms.$(LIB_SUFFIX)'
AC_SUBST(QCMS_LIBS)
+
ifndef MOZ_WINCONSOLE
ifdef MOZ_DEBUG
MOZ_WINCONSOLE = 1
else
MOZ_WINCONSOLE = 0
endif
Index: security/manager/ssl/src/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/security/manager/ssl/src/Makefile.in,v
retrieving revision 1.67.2.5
diff -u -p -6 -r1.67.2.5 Makefile.in
--- security/manager/ssl/src/Makefile.in 4 Jun 2008 20:42:03 -0000 1.67.2.5
+++ security/manager/ssl/src/Makefile.in 21 Nov 2008 09:52:50 -0000
@@ -128,17 +128,18 @@ REQUIRES = nspr \
EXTRA_DEPS = $(NSS_DEP_LIBS)
+dnl ========================================================
+dnl Check for nss-shared-helper
+dnl ========================================================
+
+ PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper,
+ [MOZ_ENABLE_NSSHELPER=1],
+ [MOZ_ENABLE_NSSHELPER=])
+
+if test "$MOZ_ENABLE_NSSHELPER"; then
+ AC_DEFINE(MOZ_ENABLE_NSSHELPER)
+fi
+AC_SUBST(MOZ_ENABLE_NSSHELPER)
+AC_SUBST(NSSHELPER_CFLAGS)
+AC_SUBST(NSSHELPER_LIBS)
DEFINES += -DNSS_ENABLE_ECC
dnl ========================================================
dnl disable xul
diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in
--- a/security/manager/ssl/src/Makefile.in
+++ b/security/manager/ssl/src/Makefile.in
@@ -137,12 +137,13 @@ DEFINES += -DNSS_ENABLE_ECC
# Use local includes because they are inserted before INCLUDES
# so that Mozilla's nss.h is used, not glibc's
@ -247,39 +62,24 @@ diff -u -p -6 -r1.67.2.5 Makefile.in
$(NSS_LIBS) \
$(NULL)
include $(topsrcdir)/config/rules.mk
Index: security/manager/ssl/src/nsNSSComponent.cpp
===================================================================
RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsNSSComponent.cpp,v
retrieving revision 1.126.2.9
diff -u -p -6 -r1.126.2.9 nsNSSComponent.cpp
--- security/manager/ssl/src/nsNSSComponent.cpp 30 Jun 2008 22:54:11 -0000 1.126.2.9
+++ security/manager/ssl/src/nsNSSComponent.cpp 21 Nov 2008 09:52:51 -0000
@@ -41,12 +41,19 @@
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/src/nsNSSComponent.cpp
--- a/security/manager/ssl/src/nsNSSComponent.cpp
+++ b/security/manager/ssl/src/nsNSSComponent.cpp
@@ -43,6 +43,13 @@
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
+
+#ifdef MOZ_ENABLE_NSSHELPER
+#pragma GCC visibility push(default)
+#include <nss-shared-helper.h>
+#pragma GCC visibility pop
+#include "prenv.h"
+#endif
+
#include "nsNSSComponent.h"
#include "nsNSSCallbacks.h"
#include "nsNSSIOLayer.h"
#include "nsSSLThread.h"
#include "nsCertVerificationThread.h"
#include "nsNSSEvent.h"
@@ -1422,13 +1429,27 @@ nsNSSComponent::InitializeNSS(PRBool sho
// If we could assume i18n will not change between profiles, one call per application
// run were sufficient. As I can't predict what happens in the future, let's repeat
// this call for every re-init of NSS.
@@ -1602,7 +1609,21 @@ nsNSSComponent::InitializeNSS(PRBool sho
ConfigureInternalPKCS11Token();
@ -289,7 +89,7 @@ diff -u -p -6 -r1.126.2.9 nsNSSComponent.cpp
+ if (PR_GetEnv("MOZ_TB_NO_NSSHELPER")) {
+ init_rv = ::NSS_InitReadWrite(profileStr.get());
+ } else {
+ init_rv = ::nsshelp_open_db("thunderbird", profileStr.get(), 0);
+ init_rv = ::nsshelp_open_db ("Thunderbird", profileStr.get(), 0);
+
+ if (init_rv != SECSuccess) {
+ PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get()));
@ -302,6 +102,15 @@ diff -u -p -6 -r1.126.2.9 nsNSSComponent.cpp
if (init_rv != SECSuccess) {
PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS r/w in %s\n", profileStr.get()));
diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
--- a/toolkit/library/Makefile.in
+++ b/toolkit/library/Makefile.in
@@ -194,7 +194,7 @@ endif
if (supress_warning_preference) {
which_nss_problem = problem_none;
DEFINES += -DIMPL_XREAPI
-EXTRA_DSO_LDOPTS += $(NSPR_LIBS)
+EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(NSSHELPER_LIBS)
ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
CXXFLAGS += $(TK_CFLAGS)

View File

@ -1,304 +0,0 @@
Index: config/autoconf.mk.in
===================================================================
RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v
retrieving revision 3.363.2.20
diff -u -p -6 -r3.363.2.20 autoconf.mk.in
--- config/autoconf.mk.in 14 Sep 2006 18:07:03 -0000 3.363.2.20
+++ config/autoconf.mk.in 29 Dec 2008 13:52:18 -0000
@@ -187,12 +187,16 @@ MOZ_XUL = @MOZ_XUL@
NECKO_PROTOCOLS = @NECKO_PROTOCOLS@
NECKO_DISK_CACHE = @NECKO_DISK_CACHE@
NECKO_SMALL_BUFFERS = @NECKO_SMALL_BUFFERS@
NECKO_COOKIES = @NECKO_COOKIES@
+MOZ_NATIVE_MYSPELL = @SYSTEM_MYSPELL@
+MOZ_MYSPELL_LIBS = @MOZ_MYSPELL_LIBS@
+MOZ_MYSPELL_CFLAGS = @MOZ_MYSPELL_CFLAGS@
+
MOZ_NATIVE_ZLIB = @SYSTEM_ZLIB@
MOZ_NATIVE_JPEG = @SYSTEM_JPEG@
MOZ_NATIVE_PNG = @SYSTEM_PNG@
MOZ_TREE_CAIRO = @MOZ_TREE_CAIRO@
MOZ_UPDATE_XTERM = @MOZ_UPDATE_XTERM@
Index: extensions/spellcheck/myspell/src/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/extensions/spellcheck/myspell/src/Attic/Makefile.in,v
retrieving revision 1.11.4.1
diff -u -p -6 -r1.11.4.1 Makefile.in
--- extensions/spellcheck/myspell/src/Makefile.in 29 Jun 2006 21:23:45 -0000 1.11.4.1
+++ extensions/spellcheck/myspell/src/Makefile.in 29 Dec 2008 13:52:22 -0000
@@ -57,28 +57,36 @@ REQUIRES = xpcom \
uconv \
unicharutil \
spellchecker \
xulapp \
$(NULL)
-CPPSRCS = affentry.cpp \
- affixmgr.cpp \
- hashmgr.cpp \
- suggestmgr.cpp \
- csutil.cpp \
- myspell.cpp \
- mozMySpell.cpp \
- mozMySpellFactory.cpp \
+CPPSRCS = mozMySpell.cpp \
+ mozMySpellFactory.cpp \
$(NULL)
+ifndef MOZ_NATIVE_MYSPELL
+CPPSRCS += affentry.cpp \
+ affixmgr.cpp \
+ hashmgr.cpp \
+ suggestmgr.cpp \
+ csutil.cpp \
+ myspell.cpp \
+ $(NULL)
+endif
ifdef MOZ_XUL_APP
CPPSRCS += mozMySpellDirProvider.cpp
endif
EXTRA_DSO_LDOPTS = \
$(LIBS_DIR) \
$(XPCOM_LIBS) \
$(NSPR_LIBS) \
$(MOZ_UNICHARUTIL_LIBS) \
+ $(MOZ_MYSPELL_LIBS) \
$(NULL)
include $(topsrcdir)/config/rules.mk
+
+ifdef MOZ_NATIVE_MYSPELL
+CXXFLAGS += $(MOZ_MYSPELL_CFLAGS)
+endif
Index: extensions/spellcheck/myspell/src/mozMySpell.h
===================================================================
RCS file: /cvsroot/mozilla/extensions/spellcheck/myspell/src/Attic/mozMySpell.h,v
retrieving revision 1.3.12.3
diff -u -p -6 -r1.3.12.3 mozMySpell.h
--- extensions/spellcheck/myspell/src/mozMySpell.h 29 Jun 2006 21:46:59 -0000 1.3.12.3
+++ extensions/spellcheck/myspell/src/mozMySpell.h 29 Dec 2008 13:52:22 -0000
@@ -53,13 +53,17 @@
* (the home page for ispell)
*
* ***** END LICENSE BLOCK ***** */
#ifndef mozMySpell_h__
#define mozMySpell_h__
+#ifdef MOZ_NATIVE_MYSPELL
+#include "hunspell.hxx"
+#else
#include "myspell.hxx"
+#endif
#include "mozISpellCheckingEngine.h"
#include "mozIPersonalDictionary.h"
#include "nsString.h"
#include "nsCOMPtr.h"
#include "nsIObserver.h"
#include "nsIUnicodeEncoder.h"
Index: config/system-headers
===================================================================
RCS file: /cvsroot/mozilla/config/system-headers,v
retrieving revision 3.4.4.4
diff -u -p -6 -r3.4.4.4 system-headers
--- config/system-headers 8 Nov 2007 09:03:24 -0000 3.4.4.4
+++ config/system-headers 29 Dec 2008 15:11:37 -0000
@@ -929,6 +929,7 @@ pk11sdr.h
#if MOZ_NATIVE_PNG==1
png.h
#endif
#if MOZ_NATIVE_ZLIB==1
zlib.h
#endif
+hunspell/hunspell.hxx
Index: configure.in
===================================================================
RCS file: /cvsroot/mozilla/configure.in,v
retrieving revision 1.1503.2.112
diff -u -p -r1.1503.2.112 configure.in
--- configure.in 19 Oct 2008 16:14:06 -0000 1.1503.2.112
+++ configure.in 29 Dec 2008 15:44:08 -0000
@@ -3916,6 +3916,24 @@ fi
fi # SKIP_LIBRARY_CHECKS
+dnl system MySpell Support
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(system-myspell,
+[ --enable-system-myspell Use system myspell (located with pkgconfig)],
+ SYSTEM_MYSPELL=1 )
+
+if test -n "$SYSTEM_MYSPELL"; then
+ PKG_CHECK_MODULES(MOZ_MYSPELL, hunspell)
+ MOZ_MYSPELL_CFLAGS="$MOZ_MYSPELL_CFLAGS -DMySpell=Hunspell"
+fi
+
+if test "$SYSTEM_MYSPELL" = 1; then
+ AC_DEFINE(MOZ_NATIVE_MYSPELL)
+fi
+AC_SUBST(SYSTEM_MYSPELL)
+AC_SUBST(MOZ_MYSPELL_LIBS)
+AC_SUBST(MOZ_MYSPELL_CFLAGS)
+
dnl ========================================================
dnl Java SDK support
dnl ========================================================
Index: configure
===================================================================
RCS file: /cvsroot/mozilla/configure,v
retrieving revision 1.1492.2.130
diff -u -p -r1.1492.2.130 configure
--- configure 19 Oct 2008 16:21:23 -0000 1.1492.2.130
+++ configure 29 Dec 2008 15:44:16 -0000
@@ -60,6 +60,8 @@ ac_help="$ac_help
--with-system-png[=PFX]
Use system libpng [installed at prefix PFX]"
ac_help="$ac_help
+ --enable-system-myspell Use system myspell (located with pkgconfig)"
+ac_help="$ac_help
--with-java-include-path=dir Location of Java SDK headers"
ac_help="$ac_help
--with-java-bin-path=dir Location of Java binaries (java, javac, jar)"
@@ -12185,6 +12187,124 @@ fi
fi # SKIP_LIBRARY_CHECKS
+# Check whether --enable-system-myspell or --disable-system-myspell was given.
+if test "${enable_system_myspell+set}" = set; then
+ enableval="$enable_system_myspell"
+ if test "$enableval" = "yes"; then
+ SYSTEM_MYSPELL=1
+ elif test "$enableval" = "no"; then
+ :
+ else
+ { echo "configure: error: Option, system-myspell, does not take an argument ($enableval)." 1>&2; exit 1; }
+ fi
+fi
+
+
+if test -n "$SYSTEM_MYSPELL"; then
+
+ succeeded=no
+
+ if test -z "$PKG_CONFIG"; then
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:12212: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$PKG_CONFIG" in
+ /*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_PKG_CONFIG="$PKG_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_PKG_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+ ;;
+esac
+fi
+PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+if test -n "$PKG_CONFIG"; then
+ echo "$ac_t""$PKG_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ fi
+
+ if test "$PKG_CONFIG" = "no" ; then
+ echo "*** The pkg-config script could not be found. Make sure it is"
+ echo "*** in your path, or set the PKG_CONFIG environment variable"
+ echo "*** to the full path to pkg-config."
+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+ else
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ echo $ac_n "checking for hunspell""... $ac_c" 1>&6
+echo "configure:12256: checking for hunspell" >&5
+
+ if $PKG_CONFIG --exists "hunspell" ; then
+ echo "$ac_t""yes" 1>&6
+ succeeded=yes
+
+ echo $ac_n "checking MOZ_MYSPELL_CFLAGS""... $ac_c" 1>&6
+echo "configure:12263: checking MOZ_MYSPELL_CFLAGS" >&5
+ MOZ_MYSPELL_CFLAGS=`$PKG_CONFIG --cflags "hunspell"`
+ echo "$ac_t""$MOZ_MYSPELL_CFLAGS" 1>&6
+
+ echo $ac_n "checking MOZ_MYSPELL_LIBS""... $ac_c" 1>&6
+echo "configure:12268: checking MOZ_MYSPELL_LIBS" >&5
+ ## don't use --libs since that can do evil things like add
+ ## -Wl,--export-dynamic
+ MOZ_MYSPELL_LIBS="`$PKG_CONFIG --libs-only-L \"hunspell\"` `$PKG_CONFIG --libs-only-l \"hunspell\"`"
+ echo "$ac_t""$MOZ_MYSPELL_LIBS" 1>&6
+ else
+ MOZ_MYSPELL_CFLAGS=""
+ MOZ_MYSPELL_LIBS=""
+ ## If we have a custom action on failure, don't print errors, but
+ ## do set a variable so people can do so.
+ MOZ_MYSPELL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "hunspell"`
+ echo $MOZ_MYSPELL_PKG_ERRORS
+ fi
+
+
+
+ else
+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
+ fi
+ fi
+
+ if test $succeeded = yes; then
+ :
+ else
+ { echo "configure: error: Library requirements (hunspell) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&2; exit 1; }
+ fi
+
+ MOZ_MYSPELL_CFLAGS="$MOZ_MYSPELL_CFLAGS -DMySpell=Hunspell"
+fi
+
+if test "$SYSTEM_MYSPELL" = 1; then
+ cat >> confdefs.h <<\EOF
+#define MOZ_NATIVE_MYSPELL 1
+EOF
+
+fi
+
+
+
+
JAVA_INCLUDE_PATH=
# Check whether --with-java-include-path or --without-java-include-path was given.
if test "${with_java_include_path+set}" = set; then
@@ -20459,10 +20579,13 @@ 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%@PKG_CONFIG@%$PKG_CONFIG%g
+s%@MOZ_MYSPELL_CFLAGS@%$MOZ_MYSPELL_CFLAGS%g
+s%@MOZ_MYSPELL_LIBS@%$MOZ_MYSPELL_LIBS%g
+s%@SYSTEM_MYSPELL@%$SYSTEM_MYSPELL%g
s%@GTK_CONFIG@%$GTK_CONFIG%g
s%@GTK_CFLAGS@%$GTK_CFLAGS%g
s%@GTK_LIBS@%$GTK_LIBS%g
-s%@PKG_CONFIG@%$PKG_CONFIG%g
s%@MOZ_GTK2_CFLAGS@%$MOZ_GTK2_CFLAGS%g
s%@MOZ_GTK2_LIBS@%$MOZ_GTK2_LIBS%g
s%@HOST_MOC@%$HOST_MOC%g

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fcf32288d607a0b8ebd4d275c1ccfa42390944d4711c24cdf8e6ee4f4953be0a
size 124011

View File

@ -1,30 +1,47 @@
#!/bin/sh
#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# The Original Code is mozilla.org code.
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
# The Original Code is mozilla.org Code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Wolfgang Rosenauer <wolfgang.rosenauer@suse.de>
# <wr@rosenauer.org>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
##
## Usage:
##
## $ mozilla
## $ mozilla [args]
##
## This script is meant to run a mozilla program from the mozilla
## rpm installation.
@ -40,99 +57,77 @@ cmdname=`basename $0`
MOZ_DIST_BIN="%PREFIX"
MOZ_DIST_LIB="%PROGDIR"
MOZ_APPNAME="%APPNAME"
MOZ_PROFILE="%PROFILE"
MOZ_PROGRAM="$MOZ_DIST_LIB/$MOZ_APPNAME-bin"
# enigmail should honor env
export ENIGMAIL_PASS_ENV=http_proxy
export MOZ_APP_LAUNCHER="$MOZ_DIST_LIB/$MOZ_APPNAME.sh"
# ignore composite extension
export XLIB_SKIP_ARGB_VISUALS=1
mozilla_lib=`file $MOZ_PROGRAM`
LIB=lib
echo $mozilla_lib | grep -q -E 'x86-64|s390x|ppc64' && LIB=lib64
# Pango support
if [ -z "$MOZ_ENABLE_PANGO" -a -z "$MOZ_DISABLE_PANGO" ]; then
case "${LC_ALL-${LC_CTYPE-${LANG-en_US}}}" in
bn*|gu*|hi*|ja*|km*|kn*|ml*|mr*|pa*|ta*|te*) # list of languages which need pango
;;
*)
export MOZ_DISABLE_PANGO=1 # disable by default
;;
esac
BROWSER_PLUGIN_DIR=/usr/$LIB/browser-plugins
if [ ! -d $BROWSER_PLUGIN_DIR ]; then
BROWSER_PLUGIN_DIR=/opt/netscape/plugins
fi
##
## Set MOZILLA_FIVE_HOME
##
MOZILLA_FIVE_HOME="$MOZ_DIST_LIB"
export MOZILLA_FIVE_HOME
##
## Set LD_LIBRARY_PATH
##
if [ "$LD_LIBRARY_PATH" ]
then
LD_LIBRARY_PATH=$MOZ_DIST_LIB/plugins:$MOZ_DIST_LIB:$LD_LIBRARY_PATH
else
LD_LIBRARY_PATH=$MOZ_DIST_LIB/plugins:$MOZ_DIST_LIB
fi
LD_LIBRARY_PATH=$MOZ_DIST_LIB:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
## Make sure that we set the plugin path for backwards compatibility
## Set MOZ_PLUGIN_PATH to $HOME/.mozilla/plugins if not set
# ignore composite extension (needed for Flash)
export XLIB_SKIP_ARGB_VISUALS=1
# needed for SUN Java under Xorg >= 7.2
export LIBXCB_ALLOW_SLOPPY_LOCK=1
##
if [ -z "$MOZ_PLUGIN_PATH" ]; then
export MOZ_PLUGIN_PATH=$MOZILLA_FIVE_HOME/plugins
if [ "$HOME" ] ; then
export MOZ_PLUGIN_PATH=$HOME/$MOZ_PROFILE/plugins:$MOZ_PLUGIN_PATH
export MOZ_PLUGIN_PATH=$BROWSER_PLUGIN_DIR
else
# make sure that BROWSER_PLUGIN_DIR is in MOZ_PLUGIN_PATH
echo "$MOZ_PLUGIN_PATH" | grep "$BROWSER_PLUGIN_DIR" 2>&1 >/dev/null
_retval=$?
if [ ${_retval} -ne 0 ]; then
export MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$BROWSER_PLUGIN_DIR
fi
fi
moz_pis_startstop_scripts()
{
MOZ_USER_DIR="$MOZ_PROFILE"
# MOZ_PIS_ is the name space for "Mozilla Plugable Init Scripts"
# These variables and there meaning are specified in
# mozilla/xpfe/bootstrap/init.d/README
MOZ_PIS_API=2
MOZ_PIS_MOZBINDIR="$MOZ_DIST_LIB"
MOZ_PIS_SESSION_PID="$$"
MOZ_PIS_USER_DIR="${MOZ_USER_DIR}"
export MOZ_PIS_API MOZ_PIS_MOZBINDIR MOZ_PIS_SESSION_PID MOZ_PIS_USER_DIR
case "${1}" in
"start")
for curr_pis in "$MOZ_DIST_LIB/init.d"/S* "${HOME}/${MOZ_USER_DIR}/init.d"/S* ; do
if [ -x "${curr_pis}" ] ; then
case "${curr_pis}" in
*.sh) . "${curr_pis}" ;;
*) "${curr_pis}" "start" ;;
esac
fi
done
;;
"stop")
for curr_pis in "${HOME}/${MOZ_USER_DIR}/init.d"/K* "$MOZ_DIST_LIB/init.d"/K* ; do
if [ -x "${curr_pis}" ] ; then
case "${curr_pis}" in
*.sh) . "${curr_pis}" ;;
*) "${curr_pis}" "stop" ;;
esac
fi
done
moz_debug=0
script_args=""
pass_arg_count=0
while [ $# -gt $pass_arg_count ]
do
case "$1" in
-d | --debugger)
moz_debugger=$2;
if [ "${moz_debugger}" != "" ]; then
shift 2
moz_debug=1
else
echo "-d requires an argument"
exit 1
fi
;;
*)
echo 1>&2 "$0: Internal error in moz_pis_startstop_scripts."
exit 1
# Move the unrecognized argument to the end of the list.
arg="$1"
shift
set -- "$@" "$arg"
pass_arg_count=`expr $pass_arg_count + 1`
;;
esac
}
done
if [ $moz_debug -eq 1 ]; then
tmpfile=`mktemp /tmp/mozargs.XXXXXX` || { echo "Cannot create temporary file" >&2; exit 1; }
trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15
echo -e "set args ${1+"$@"}\nrun" > $tmpfile
echo "$moz_debugger $MOZ_PROGRAM -x $tmpfile"
$moz_debugger "$MOZ_PROGRAM" -x $tmpfile
else
$MOZ_PROGRAM "$@"
fi
exitcode=$?
## Start addon scripts
moz_pis_startstop_scripts "start"
$MOZ_PROGRAM $@
## Stop addon scripts
moz_pis_startstop_scripts "stop"
exit 0
exit $exitcode

View File

@ -1,46 +0,0 @@
--- directory/c-sdk/ldap/libraries/libldap/charray.c_orig 2008-10-28 14:12:34.000000000 +0100
+++ directory/c-sdk/ldap/libraries/libldap/charray.c 2008-10-28 14:36:05.000000000 +0100
@@ -191,7 +191,7 @@
*/
char **
LDAP_CALL
-ldap_str2charray( char *str, char *brkstr )
+ldap_str2charray( char *str_in, char *brkstr )
/* This implementation fails if brkstr contains multibyte characters.
But it works OK if str is UTF-8 and brkstr is 7-bit ASCII.
*/
@@ -199,6 +199,12 @@
char **res;
char *s;
int i;
+ char *str;
+
+ str = nsldapi_strdup( str_in );
+ if ( str == NULL ) {
+ return NULL;
+ }
i = 1;
for ( s = str; *s; s++ ) {
@@ -209,6 +215,7 @@
res = (char **)NSLDAPI_MALLOC( (i + 1) * sizeof(char *) );
if ( res == NULL ) {
+ NSLDAPI_FREE( str );
return NULL;
}
i = 0;
@@ -221,11 +228,13 @@
for ( j = 0; j < (i - 1); j++ )
NSLDAPI_FREE( res[j] );
NSLDAPI_FREE( res );
+ NSLDAPI_FREE( str );
return NULL;
}
}
res[i] = NULL;
+ NSLDAPI_FREE( str );
return( res );
}

View File

@ -1,17 +0,0 @@
--- nsprpub/pr/src/misc/Makefile.in.foo Wed Jun 11 15:42:57 2003
+++ nsprpub/pr/src/misc/Makefile.in Wed Jun 11 15:42:49 2003
@@ -82,6 +82,14 @@
include $(topsrcdir)/config/rules.mk
+NONOPT_CFLAGS=$(filter-out -O%, $(CFLAGS))
+
+ifeq ($(OS_ARCH),Linux)
+$(OBJDIR)/prdtoa.$(OBJ_SUFFIX): prdtoa.c
+ @$(MAKE_OBJDIR)
+ $(CC) -o $@ -c $(NONOPT_CFLAGS) -ffloat-store $<
+endif
+
#
# Generate prerr.h, prerr.c, and prerr.properties from prerr.et.
#

View File

@ -1,25 +0,0 @@
From: Wolfgang Rosenauer <stark@suse.de>
Subject: NSS doesn't inherit CFLAGS
References: https://bugzilla.mozilla.org/show_bug.cgi?id=101249
Description:
CFLAGS are not taken from mozilla build
Index: security/manager/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/security/manager/Makefile.in,v
retrieving revision 1.52
diff -u -r1.52 Makefile.in
--- security/manager/Makefile.in 7 Jan 2004 13:36:50 -0000 1.52
+++ security/manager/Makefile.in 10 Mar 2004 09:44:29 -0000
@@ -71,7 +71,10 @@
ifneq ($(ABS_topsrcdir),$(MOZ_BUILD_ROOT))
DEFAULT_GMAKE_FLAGS += BUILD_TREE=$(MOZ_BUILD_ROOT)
endif
-ifndef MOZ_DEBUG
+ifdef MOZ_DEBUG
+DEFAULT_GMAKE_FLAGS += OPTIMIZER="$(MOZ_DEBUG_FLAGS)"
+else
+DEFAULT_GMAKE_FLAGS += OPTIMIZER="$(MOZ_OPTIMIZE_FLAGS)"
DEFAULT_GMAKE_FLAGS += BUILD_OPT=1
endif
ifdef GNU_CC

View File

@ -1,38 +0,0 @@
From: Wolfgang Rosenauer <stark@suse.de>
Subject: make pagesize postscript DSC conform
References:
http://www.cups.org/str.php?L1542
https://bugzilla.mozilla.org/show_bug.cgi?id=334485
Index: gfx/src/ps/nsPostScriptObj.cpp
===================================================================
RCS file: /cvsroot/mozilla/gfx/src/ps/nsPostScriptObj.cpp,v
retrieving revision 1.124
diff -u -p -6 -r1.124 nsPostScriptObj.cpp
--- gfx/src/ps/nsPostScriptObj.cpp 26 Jul 2005 15:54:18 -0000 1.124
+++ gfx/src/ps/nsPostScriptObj.cpp 25 Apr 2006 18:10:34 -0000
@@ -463,20 +463,23 @@ nsPostScriptObj::write_prolog(FILE *aHan
// now begin prolog
fprintf(f, "%%%%BeginProlog\n");
// Tell the printer what size paper it should use
fprintf(f,
+ "%%%%BeginFeature: *PageSize %s\n"
"/setpagedevice where\n" // Test for the feature
"{ pop 2 dict\n"
" dup /PageSize [ %s %s ] put\n" // Paper dimensions
" dup /Policies 1 dict\n"
" dup /PageSize 3 put\n" // Select the nearest page size to fit
" put\n"
" setpagedevice\n" // Install settings
- "} if\n",
+ "} if\n"
+ "%%%%EndFeature\n",
+ mPrintSetup->paper_name,
fpCString(NSTwipsToFloatPoints(paper_width)).get(),
fpCString(NSTwipsToFloatPoints(paper_height)).get());
fprintf(f, "[");
for (i = 0; i < 256; i++){
if (*isotab[i] == '\0'){

View File

@ -1,244 +0,0 @@
Index: mailnews/compose/public/nsIMsgComposeParams.idl
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/public/nsIMsgComposeParams.idl,v
retrieving revision 1.8
diff -u -p -r1.8 nsIMsgComposeParams.idl
--- mailnews/compose/public/nsIMsgComposeParams.idl 16 Sep 2005 15:18:32 -0000 1.8
+++ mailnews/compose/public/nsIMsgComposeParams.idl 6 Apr 2006 02:26:57 -0000
@@ -59,6 +59,7 @@ interface nsIMsgCompType {
const long Template = 10;
const long MailToUrl = 11;
const long ReplyWithTemplate = 12;
+ const long ReplyToList = 13;
};
Index: mailnews/mime/public/nsMailHeaders.h
===================================================================
RCS file: /cvsroot/mozilla/mailnews/mime/public/nsMailHeaders.h,v
retrieving revision 1.11
diff -u -p -6 -r1.11 nsMailHeaders.h
--- mailnews/mime/public/nsMailHeaders.h 28 Feb 2005 17:10:57 -0000 1.11
+++ mailnews/mime/public/nsMailHeaders.h 14 Aug 2006 07:31:12 -0000
@@ -62,12 +62,13 @@
#define HEADER_DISTRIBUTION "Distribution"
#define HEADER_FCC "FCC"
#define HEADER_FOLLOWUP_TO "Followup-To"
#define HEADER_FROM "From"
#define HEADER_STATUS "Status"
#define HEADER_LINES "Lines"
+#define HEADER_LIST_POST "List-Post"
#define HEADER_MAIL_FOLLOWUP_TO "Mail-Followup-To"
#define HEADER_MAIL_REPLY_TO "Mail-Reply-To"
#define HEADER_MESSAGE_ID "Message-ID"
#define HEADER_MIME_VERSION "MIME-Version"
#define HEADER_NEWSGROUPS "Newsgroups"
#define HEADER_ORGANIZATION "Organization"
@@ -99,12 +100,13 @@
#define HEADER_X_SUN_CONTENT_LINES "X-Sun-Content-Lines"
#define HEADER_X_SUN_DATA_DESCRIPTION "X-Sun-Data-Description"
#define HEADER_X_SUN_DATA_NAME "X-Sun-Data-Name"
#define HEADER_X_SUN_DATA_TYPE "X-Sun-Data-Type"
#define HEADER_X_SUN_ENCODING_INFO "X-Sun-Encoding-Info"
#define HEADER_X_PRIORITY "X-Priority"
+#define HEADER_X_REPLY_TO "X-Reply-To"
#define HEADER_PARM_CHARSET "charset"
#define HEADER_PARM_START "start"
#define HEADER_PARM_BOUNDARY "BOUNDARY"
#define HEADER_PARM_FILENAME "FILENAME"
#define HEADER_PARM_NAME "NAME"
Index: mail/base/content/mailCommands.js
===================================================================
RCS file: /cvsroot/mozilla/mail/base/content/mailCommands.js,v
retrieving revision 1.20.2.5
diff -u -p -6 -r1.20.2.5 mailCommands.js
--- mail/base/content/mailCommands.js 10 Jul 2006 19:44:11 -0000 1.20.2.5
+++ mail/base/content/mailCommands.js 21 Nov 2006 07:35:42 -0000
@@ -260,12 +260,13 @@ function ComposeMessage(type, format, fo
var messageID = hdr.messageId;
var messageIDScheme = messageID ? messageID.split(":")[0] : "";
if (messageIDScheme && (messageIDScheme == 'http' || messageIDScheme == 'https') && "openComposeWindowForRSSArticle" in this)
openComposeWindowForRSSArticle(messageID, hdr, type);
else if (type == msgComposeType.Reply ||
type == msgComposeType.ReplyAll ||
+ type == msgComposeType.ReplyToList ||
type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup ||
type == msgComposeType.ReplyToSender ||
type == msgComposeType.ReplyToSenderAndGroup ||
type == msgComposeType.Template ||
type == msgComposeType.Draft)
Index: mailnews/base/resources/content/mailCommands.js
===================================================================
RCS file: /cvsroot/mozilla/mailnews/base/resources/content/mailCommands.js,v
retrieving revision 1.96.4.4
diff -u -p -6 -r1.96.4.4 mailCommands.js
--- mailnews/base/resources/content/mailCommands.js 25 Jun 2006 08:56:04 -0000 1.96.4.4
+++ mailnews/base/resources/content/mailCommands.js 21 Nov 2006 07:35:51 -0000
@@ -267,12 +267,13 @@ function ComposeMessage(type, format, fo
identity = tmpIdentity;
}
}
if (type == msgComposeType.Reply ||
type == msgComposeType.ReplyAll ||
+ type == msgComposeType.ReplyToList ||
type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup ||
type == msgComposeType.ReplyToSender ||
type == msgComposeType.ReplyToSenderAndGroup ||
type == msgComposeType.Template ||
type == msgComposeType.Draft)
Index: mailnews/compose/src/nsMsgCompose.cpp
===================================================================
RCS file: /cvsroot/mozilla/mailnews/compose/src/nsMsgCompose.cpp,v
retrieving revision 1.460.2.27
diff -u -p -6 -r1.460.2.27 nsMsgCompose.cpp
--- mailnews/compose/src/nsMsgCompose.cpp 4 Jan 2007 19:34:56 -0000 1.460.2.27
+++ mailnews/compose/src/nsMsgCompose.cpp 10 Jan 2007 09:01:35 -0000
@@ -1748,12 +1748,13 @@ nsresult nsMsgCompose::CreateMessage(con
switch (type)
{
default: break;
case nsIMsgCompType::Reply :
case nsIMsgCompType::ReplyAll:
+ case nsIMsgCompType::ReplyToList:
case nsIMsgCompType::ReplyToGroup:
case nsIMsgCompType::ReplyToSender:
case nsIMsgCompType::ReplyToSenderAndGroup:
{
if (!isFirstPass) // safeguard, just in case...
{
@@ -2192,14 +2193,18 @@ NS_IMETHODIMP QuotingOutputStreamListene
compose->GetType(&type);
// Assign cite information if available...
if (!mCiteReference.IsEmpty())
compose->SetCiteReference(mCiteReference);
- if (mHeaders && (type == nsIMsgCompType::Reply || type == nsIMsgCompType::ReplyAll || type == nsIMsgCompType::ReplyToSender ||
- type == nsIMsgCompType::ReplyToGroup || type == nsIMsgCompType::ReplyToSenderAndGroup) && mQuoteOriginal)
+ if (mHeaders && (type == nsIMsgCompType::Reply ||
+ type == nsIMsgCompType::ReplyAll ||
+ type == nsIMsgCompType::ReplyToList ||
+ type == nsIMsgCompType::ReplyToSender ||
+ type == nsIMsgCompType::ReplyToGroup ||
+ type == nsIMsgCompType::ReplyToSenderAndGroup) && mQuoteOriginal)
{
nsCOMPtr<nsIMsgCompFields> compFields;
compose->GetCompFields(getter_AddRefs(compFields));
if (compFields)
{
aCharset.AssignLiteral("UTF-8");
@@ -2210,12 +2215,13 @@ NS_IMETHODIMP QuotingOutputStreamListene
nsAutoString mailReplyTo;
nsAutoString mailFollowupTo;
nsAutoString newgroups;
nsAutoString followUpTo;
nsAutoString messageId;
nsAutoString references;
+ nsAutoString listPost;
nsXPIDLCString outCString;
PRBool needToRemoveDup = PR_FALSE;
if (!mMimeConverter)
{
mMimeConverter = do_GetService(NS_MIME_CONVERTER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
@@ -2263,13 +2269,36 @@ NS_IMETHODIMP QuotingOutputStreamListene
recipient += cc;
compFields->SetCc(recipient);
}
needToRemoveDup = PR_TRUE;
}
-
+
+ mHeaders->ExtractHeader(HEADER_LIST_POST, PR_TRUE, getter_Copies(outCString));
+ if (!outCString.IsEmpty())
+ mMimeConverter->DecodeMimeHeader(outCString, listPost, charset);
+
+ if (type == nsIMsgCompType::ReplyToList && ! listPost.IsEmpty())
+ {
+ nsString::const_iterator mailtoStart, mailtoEnd;
+ listPost.BeginReading(mailtoStart);
+ listPost.EndReading(mailtoEnd);
+ nsAutoString mailtoText(NS_LITERAL_STRING("<mailto:"));
+ PRBool mailtoFound = FindInReadable(mailtoText, mailtoStart, mailtoEnd);
+
+ // Strip off the leading "<mailto:" and trailing ">"
+ if (mailtoFound && listPost.Equals(mailtoStart.get()) &&
+ listPost.RFindChar('>') == listPost.Length() - 1)
+ {
+ listPost.Cut(0, mailtoText.Length());
+ listPost.Cut(listPost.Length() - 1, 1);
+
+ compFields->SetTo(listPost);
+ }
+ }
+
mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString));
if (outCString)
{
mMimeConverter->DecodeMimeHeader(outCString, replyTo, charset);
}
@@ -2300,13 +2329,14 @@ NS_IMETHODIMP QuotingOutputStreamListene
mHeaders->ExtractHeader(HEADER_REFERENCES, PR_FALSE, getter_Copies(outCString));
if (outCString)
{
mMimeConverter->DecodeMimeHeader(outCString, references, charset);
}
- if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty()))
+ if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty()) &&
+ ! ((type == nsIMsgCompType::ReplyToList) && ! listPost.IsEmpty()))
{
if (! mailReplyTo.IsEmpty())
{ // handle Mail-Reply-To (http://cr.yp.to/proto/replyto.html)
compFields->SetTo(mailReplyTo);
needToRemoveDup = PR_TRUE;
}
@@ -2805,12 +2835,13 @@ void nsMsgCompose::CleanUpRecipients(nsS
NS_IMETHODIMP nsMsgCompose::RememberQueuedDisposition()
{
// need to find the msg hdr in the saved folder and then set a property on
// the header that we then look at when we actually send the message.
if (mType == nsIMsgCompType::Reply ||
mType == nsIMsgCompType::ReplyAll ||
+ mType == nsIMsgCompType::ReplyToList ||
mType == nsIMsgCompType::ReplyToGroup ||
mType == nsIMsgCompType::ReplyToSender ||
mType == nsIMsgCompType::ReplyToSenderAndGroup ||
mType == nsIMsgCompType::ForwardAsAttachment ||
mType == nsIMsgCompType::ForwardInline)
{
@@ -2843,12 +2874,13 @@ nsresult nsMsgCompose::ProcessReplyFlags
{
nsresult rv;
// check to see if we were doing a reply or a forward, if we were, set the answered field flag on the message folder
// for this URI.
if (mType == nsIMsgCompType::Reply ||
mType == nsIMsgCompType::ReplyAll ||
+ mType == nsIMsgCompType::ReplyToList ||
mType == nsIMsgCompType::ReplyToGroup ||
mType == nsIMsgCompType::ReplyToSender ||
mType == nsIMsgCompType::ReplyToSenderAndGroup ||
mType == nsIMsgCompType::ForwardAsAttachment ||
mType == nsIMsgCompType::ForwardInline ||
mDraftDisposition != nsIMsgFolder::nsMsgDispositionState_None)
@@ -3775,12 +3807,13 @@ nsMsgCompose::BuildBodyMessageAndSignatu
switch (mType)
{
case nsIMsgCompType::New :
case nsIMsgCompType::MailToUrl : /* same as New */
case nsIMsgCompType::Reply : /* should not happen! but just in case */
case nsIMsgCompType::ReplyAll : /* should not happen! but just in case */
+ case nsIMsgCompType::ReplyToList : /* should not happen! but just in case */
case nsIMsgCompType::ForwardAsAttachment : /* should not happen! but just in case */
case nsIMsgCompType::ForwardInline :
case nsIMsgCompType::NewsPost :
case nsIMsgCompType::ReplyToGroup :
case nsIMsgCompType::ReplyToSender :
case nsIMsgCompType::ReplyToSenderAndGroup :

45
shipped-locales Normal file
View File

@ -0,0 +1,45 @@
af
ar
be
bn-BD
ca
cs
de
el
en-GB
en-US
es-AR
es-ES
et
eu
fi
fr
fy-NL
ga-IE
gl
hu
id
is
it
ja linux win32
ja-JP-mac osx
ko
lt
nb-NO
nl
nn-NO
pa-IN
pl
pt-BR
pt-PT
ro
ru
si
sk
sq
sv-SE
ta-LK
tr
uk
vi
zh-CN

View File

@ -1,5 +1,6 @@
pref("general.useragent.vendor", "SUSE");
pref("general.useragent.vendorSub", "RPM_VERSION");
pref("app.update.enabled", false);
pref("font.default", "sans-serif");
pref("font.default.x-western", "sans-serif");
pref("font.name.monospace.x-western", "monospace");
@ -9,3 +10,4 @@ pref("print.print_edge_top", 14); // 1/100 of an inch
pref("print.print_edge_left", 16); // 1/100 of an inch
pref("print.print_edge_right", 16); // 1/100 of an inch
pref("print.print_edge_bottom", 14); // 1/100 of an inch
pref("intl.locale.matchOS", true);

View File

@ -1,92 +0,0 @@
Index: toolkit/mozapps/extensions/src/nsExtensionManager.js.in
===================================================================
RCS file: /cvsroot/mozilla/toolkit/mozapps/extensions/src/nsExtensionManager.js.in,v
retrieving revision 1.144.2.52
diff -u -p -6 -r1.144.2.52 nsExtensionManager.js.in
--- toolkit/mozapps/extensions/src/nsExtensionManager.js.in 29 Jun 2006 20:11:57 -0000 1.144.2.52
+++ toolkit/mozapps/extensions/src/nsExtensionManager.js.in 20 Jul 2006 07:23:39 -0000
@@ -116,12 +116,13 @@ const OP_NEEDS_UPGRADE =
const OP_NEEDS_UNINSTALL = "needs-uninstall";
const OP_NEEDS_ENABLE = "needs-enable";
const OP_NEEDS_DISABLE = "needs-disable";
const KEY_APP_PROFILE = "app-profile";
const KEY_APP_GLOBAL = "app-global";
+const KEY_APP_SYSTEM = "app-system";
const CATEGORY_INSTALL_LOCATIONS = "extension-install-locations";
const PREFIX_NS_EM = "http://www.mozilla.org/2004/em-rdf#";
const PREFIX_NS_CHROME = "http://www.mozilla.org/rdf/chrome#";
const PREFIX_ITEM_URI = "urn:mozilla:item:";
@@ -2671,12 +2672,23 @@ function ExtensionManager() {
var priority = nsIInstallLocation.PRIORITY_APP_PROFILE;
var profileLocation = new DirectoryInstallLocation(KEY_APP_PROFILE,
appProfileExtensions, false,
priority);
InstallLocations.put(profileLocation);
+ // Register App-System Install Location
+ try {
+ var appSystemExtensions = getDirNoCreate("DrvD", ["usr","lib","browser-extensions","thunderbird"]);
+ var priority = nsIInstallLocation.PRIORITY_APP_PROFILE - 1;
+ var systemLocation = new DirectoryInstallLocation(KEY_APP_SYSTEM,
+ appSystemExtensions, true,
+ priority);
+ InstallLocations.put(systemLocation);
+ } catch (e) {}
+
+
#ifdef XP_WIN
// Register HKEY_LOCAL_MACHINE Install Location
InstallLocations.put(
new WinRegInstallLocation("winreg-app-global",
nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE,
true,
@@ -3830,13 +3842,13 @@ ExtensionManager.prototype = {
// toolkit 1.8 extension datasource.
if (dsExists)
return;
// Prepare themes for installation
// Only enumerate directories in the app-profile and app-global locations.
- var locations = [KEY_APP_PROFILE, KEY_APP_GLOBAL];
+ var locations = [KEY_APP_PROFILE, KEY_APP_GLOBAL, KEY_APP_SYSTEM];
for (var i = 0; i < locations.length; ++i) {
var location = InstallLocations.get(locations[i]);
if (!location.canAccess)
continue;
var entries = location.itemLocations;
@@ -3896,13 +3908,14 @@ ExtensionManager.prototype = {
if (this._checkForFileChanges()) {
// Create a list of all items that are to be installed so we can migrate
// these items's settings to the new datasource.
var items = PendingOperations.getOperations(OP_NEEDS_INSTALL);
for (i = items.length - 1; i >= 0; --i) {
if (items[i].locationKey == KEY_APP_PROFILE ||
- items[i].locationKey == KEY_APP_GLOBAL)
+ items[i].locationKey == KEY_APP_GLOBAL ||
+ items[i].locationKey == KEY_APP_SYSTEM)
itemsToCheck.push(items[i].id);
}
this._finishOperations();
}
// If there are no items to migrate settings for return early.
@@ -4881,13 +4894,14 @@ ExtensionManager.prototype = {
var restartRequired = this.installRequiresRestart(id, ds.getItemProperty(id, "type"))
this._updateManifests(restartRequired);
return;
}
}
else if (installLocation.name == KEY_APP_PROFILE ||
- installLocation.name == KEY_APP_GLOBAL) {
+ installLocation.name == KEY_APP_GLOBAL ||
+ installLocation.name == KEY_APP_SYSTEM) {
// Check for a pointer file and remove it if it exists
var pointerFile = installLocation.location.clone();
pointerFile.append(id);
if (pointerFile.exists() && !pointerFile.isDirectory())
pointerFile.remove(false);
}

View File

@ -1,30 +1,16 @@
Index: config/autoconf.mk.in
===================================================================
RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v
retrieving revision 3.363.2.20
diff -u -6 -r3.363.2.20 autoconf.mk.in
--- config/autoconf.mk.in 14 Sep 2006 18:07:03 -0000 3.363.2.20
+++ config/autoconf.mk.in 3 Dec 2007 07:00:26 -0000
@@ -54,19 +54,19 @@
MOZ_PKG_SPECIAL = @MOZ_PKG_SPECIAL@
--- config/autoconf.mk.in.orig 2009-02-11 20:12:19.000000000 +0100
+++ config/autoconf.mk.in 2009-02-11 20:13:15.000000000 +0100
@@ -60,11 +60,11 @@ MOZ_PKG_SPECIAL = @MOZ_PKG_SPECIAL@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
-includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+includedir = @includedir@/$(MOZ_APP_NAME)
+includedir = @includedir@/$(MOZ_APP_NAME)3
libdir = @libdir@
datadir = @datadir@
mandir = @mandir@
-idldir = @datadir@/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+idldir = @libdir@/$(MOZ_APP_NAME)
-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+idldir = @libdir@/$(MOZ_APP_NAME)3
-mozappdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+mozappdir = $(libdir)/$(MOZ_APP_NAME)
mredir = $(libdir)/mre/mre-$(MOZ_APP_VERSION)
mrelibdir = $(mredir)/lib
DIST = $(DEPTH)/dist
MOZ_CHROME_FILE_FORMAT = @MOZ_CHROME_FILE_FORMAT@
installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)

View File

@ -1,10 +0,0 @@
--- directory/c-sdk/ldap/libraries/libldap/os-ip.c 2002-04-02 09:44:45.000000000 +0200
+++ directory/c-sdk/ldap/libraries/libldap/os-ip.c.new 2007-01-30 18:10:39.270576000 +0100
@@ -554,6 +554,7 @@
#endif /* GETHOSTBYNAME_BUF_T */
connected = 0;
+ ldhpbuf_allocd = NULL;
parse_err = ldap_x_hostlist_first( hostlist, defport, &host, &port,
&status );
while ( !connected && LDAP_SUCCESS == parse_err && host != NULL ) {

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:15bb785c5b44115b78fa72884b3d6194e15c98fc6e0e5e56ce73ace92e2eb865
size 43339888

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e482994f70fb39566057cb8de5d0a1cc351ad6284e11f3babd386114cda2cb98
size 58020044

View File

@ -0,0 +1,28 @@
diff --git a/mail/base/content/utilityOverlay.js b/mail/base/content/utilityOverlay.js
--- a/mail/base/content/utilityOverlay.js
+++ b/mail/base/content/utilityOverlay.js
@@ -237,7 +237,13 @@ function buildHelpMenu()
// administrator or if we cannot update for some other reason.
var checkForUpdates = document.getElementById("checkForUpdates");
var canUpdate = updates.canUpdate;
+ var prefs = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefBranch);
+ var updateEnabled = prefs.getBoolPref("app.update.enabled", true);
checkForUpdates.setAttribute("disabled", !canUpdate);
+ checkForUpdates.setAttribute("hidden", !canUpdate || !updateEnabled);
+ var updateSeparator = document.getElementById("menu_HelpAfterUpdatesSeparator");
+ updateSeparator.setAttribute("hidden", !canUpdate || !updateEnabled);
if (!canUpdate)
return;
diff --git a/mail/components/preferences/advanced.js b/mail/components/preferences/advanced.js
--- a/mail/components/preferences/advanced.js
+++ b/mail/components/preferences/advanced.js
@@ -238,6 +238,7 @@ var gAdvancedPane = {
var enableAppUpdate = document.getElementById("enableAppUpdate");
enableAppUpdate.disabled = !aus.canUpdate || enabledPref.locked;
+ enableAppUpdate.hidden = !aus.canUpdate || !enabledPref.value;
},
updateAutoItems: function ()

View File

@ -0,0 +1,59 @@
--- mail/app/Makefile.in.orig 2009-02-26 11:02:11.000000000 +0100
+++ mail/app/Makefile.in 2009-02-26 11:04:00.000000000 +0100
@@ -129,6 +129,7 @@
$(EXTRA_DSO_LIBS) \
$(APP_XPCOM_LIBS) \
$(NSPR_LIBS) \
+ $(NSSHELPER_LIBS) \
$(TK_LIBS) \
$(NULL)
Index: config/autoconf.mk.in
===================================================================
RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v
retrieving revision 3.464
diff -u -p -6 -r3.464 autoconf.mk.in
--- config/autoconf.mk.in 18 Sep 2008 22:00:51 -0000 3.464
+++ config/autoconf.mk.in 19 Nov 2008 10:12:46 -0000
@@ -532,12 +532,16 @@ GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GLIB_GMODULE_LIBS = @GLIB_GMODULE_LIBS@
LIBIDL_CFLAGS = @LIBIDL_CFLAGS@
LIBIDL_LIBS = @LIBIDL_LIBS@
STATIC_LIBIDL = @STATIC_LIBIDL@
+MOZ_ENABLE_NSSHELPER = @MOZ_ENABLE_NSSHELPER@
+NSSHELPER_CFLAGS = @NSSHELPER_CFLAGS@
+NSSHELPER_LIBS = @NSSHELPER_LIBS@
+
MOZ_NATIVE_MAKEDEPEND = @SYSTEM_MAKEDEPEND@
# Used for LD_LIBRARY_PATH
LIBS_PATH = @LIBS_PATH@
MOZ_AUTO_DEPS = @MOZ_AUTO_DEPS@
--- configure.in.orig 2009-05-11 19:50:11.000000000 +0200
+++ configure.in 2009-05-11 19:49:35.000000000 +0200
@@ -7028,6 +7028,22 @@ QCMS_LIBS='$(DEPTH)/mozilla/gfx/qcms/$(L
AC_SUBST(QCMS_LIBS)
dnl ========================================================
+dnl Check for nss-shared-helper
+dnl ========================================================
+
+ PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper,
+ [MOZ_ENABLE_NSSHELPER=1],
+ [MOZ_ENABLE_NSSHELPER=])
+
+if test "$MOZ_ENABLE_NSSHELPER"; then
+ AC_DEFINE(MOZ_ENABLE_NSSHELPER)
+fi
+AC_SUBST(MOZ_ENABLE_NSSHELPER)
+AC_SUBST(NSSHELPER_CFLAGS)
+AC_SUBST(NSSHELPER_LIBS)
+
+
+dnl ========================================================
dnl disable xul
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(xul,