From 9c02a444ab12adb428c6f915b5df7828c35b03875c0ffaefee67490a0a03bc75 Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Wed, 6 Jun 2012 06:41:25 +0000 Subject: [PATCH] - update to Thunderbird 13.0 (bnc#765204) * MFSA 2012-34/CVE-2012-1938/CVE-2012-1937/CVE-2011-3101 Miscellaneous memory safety hazards * MFSA 2012-36/CVE-2012-1944 (bmo#751422) Content Security Policy inline-script bypass * MFSA 2012-37/CVE-2012-1945 (bmo#670514) Information disclosure though Windows file shares and shortcut files * MFSA 2012-38/CVE-2012-1946 (bmo#750109) Use-after-free while replacing/inserting a node in a document * MFSA 2012-40/CVE-2012-1947/CVE-2012-1940/CVE-2012-1941 Buffer overflow and use-after-free issues found using Address Sanitizer - require NSS 3.13.4 * MFSA 2012-39/CVE-2012-0441 (bmo#715073) - fix build with system NSPR (mozilla-system-nspr.patch) - add dependentlibs.list for improved XRE startup - update enigmail to 1.4.2 OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaThunderbird?expand=0&rev=178 --- MozillaThunderbird.changes | 22 ++ MozillaThunderbird.spec | 22 +- compare-locales.tar.bz2 | 4 +- create-tar.sh | 4 +- enigmail-1.4.1.tar.gz | 3 - enigmail-1.4.2.tar.gz | 3 + l10n-12.0.1.tar.bz2 | 3 - l10n-13.0.tar.bz2 | 3 + mailnews-literals.patch | 600 ------------------------------ mozilla-gcc47.patch | 71 +--- mozilla-kde.patch | 343 ++++++++--------- mozilla-nongnome-proxies.patch | 16 +- mozilla-system-nspr.patch | 27 ++ tb-develdirs.patch | 13 +- thunderbird-12.0.1-source.tar.bz2 | 3 - thunderbird-13.0-source.tar.bz2 | 3 + thunderbird-shared-nss-db.patch | 20 +- 17 files changed, 282 insertions(+), 878 deletions(-) delete mode 100644 enigmail-1.4.1.tar.gz create mode 100644 enigmail-1.4.2.tar.gz delete mode 100644 l10n-12.0.1.tar.bz2 create mode 100644 l10n-13.0.tar.bz2 delete mode 100644 mailnews-literals.patch create mode 100644 mozilla-system-nspr.patch delete mode 100644 thunderbird-12.0.1-source.tar.bz2 create mode 100644 thunderbird-13.0-source.tar.bz2 diff --git a/MozillaThunderbird.changes b/MozillaThunderbird.changes index 8304e56..3649ac1 100644 --- a/MozillaThunderbird.changes +++ b/MozillaThunderbird.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Sat Jun 2 12:41:08 UTC 2012 - wr@rosenauer.org + +- update to Thunderbird 13.0 (bnc#765204) + * MFSA 2012-34/CVE-2012-1938/CVE-2012-1937/CVE-2011-3101 + Miscellaneous memory safety hazards + * MFSA 2012-36/CVE-2012-1944 (bmo#751422) + Content Security Policy inline-script bypass + * MFSA 2012-37/CVE-2012-1945 (bmo#670514) + Information disclosure though Windows file shares and shortcut + files + * MFSA 2012-38/CVE-2012-1946 (bmo#750109) + Use-after-free while replacing/inserting a node in a document + * MFSA 2012-40/CVE-2012-1947/CVE-2012-1940/CVE-2012-1941 + Buffer overflow and use-after-free issues found using Address + Sanitizer +- require NSS 3.13.4 + * MFSA 2012-39/CVE-2012-0441 (bmo#715073) +- fix build with system NSPR (mozilla-system-nspr.patch) +- add dependentlibs.list for improved XRE startup +- update enigmail to 1.4.2 + ------------------------------------------------------------------- Wed May 16 05:38:46 UTC 2012 - wr@rosenauer.org diff --git a/MozillaThunderbird.spec b/MozillaThunderbird.spec index efa4ee6..5d90777 100644 --- a/MozillaThunderbird.spec +++ b/MozillaThunderbird.spec @@ -31,7 +31,7 @@ BuildRequires: libgnomeui-devel BuildRequires: libidl-devel BuildRequires: libnotify-devel BuildRequires: mozilla-nspr-devel >= 4.9.0 -BuildRequires: mozilla-nss-devel >= 3.13.3 +BuildRequires: mozilla-nss-devel >= 3.13.4 BuildRequires: nss-shared-helper-devel BuildRequires: python BuildRequires: startup-notification-devel @@ -40,11 +40,11 @@ BuildRequires: update-desktop-files BuildRequires: xorg-x11-libXt-devel BuildRequires: yasm BuildRequires: zip -%define mainversion 12.0.1 -%define update_channel release +%define mainversion 13.0 +%define update_channel beta Version: %{mainversion} Release: 0 -%define releasedate 2012042800 +%define releasedate 2012060100 Provides: thunderbird = %{version} %if %{with_kde} # this is needed to match this package with the kde4 helper package without the main package @@ -65,7 +65,7 @@ Source4: l10n-%{version}.tar.bz2 Source6: suse-default-prefs.js Source7: find-external-requires.sh Source8: thunderbird-rpmlintrc -Source9: enigmail-1.4.1.tar.gz +Source9: enigmail-1.4.2.tar.gz Source10: create-tar.sh Source11: compare-locales.tar.bz2 Source12: kde.js @@ -80,21 +80,21 @@ Patch7: mozilla-kde.patch Patch8: mozilla-libnotify.patch Patch9: mozilla-revert_621446.patch Patch10: mozilla-gcc47.patch +Patch11: mozilla-system-nspr.patch # Thunderbird/mail Patch20: tb-ssldap.patch Patch21: tb-develdirs.patch Patch22: thunderbird-shared-nss-db.patch Patch23: mailnews-showalert.patch -Patch24: mailnews-literals.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: coreutils fileutils textutils /bin/sh Recommends: libcanberra0 ### build options %define build_enigmail 1 %ifnarch ppc ppc64 -%define crashreporter 1 +%define crashreporter 1 %else -%define crashreporter 0 +%define crashreporter 0 %endif %define has_system_cairo 0 %define localize 1 @@ -175,7 +175,7 @@ symbols meant for upload to Mozilla's crash collector database. %if %build_enigmail %package -n enigmail -Version: 1.4.1+%{mainversion} +Version: 1.4.2+%{mainversion} Release: 0 Summary: OpenPGP addon for Thunderbird and SeaMonkey License: MPL-1.1 or GPL-2.0+ @@ -213,13 +213,13 @@ pushd mozilla %patch8 -p1 %patch9 -p1 %patch10 -p1 +%patch11 -p1 popd # comm-central patches %patch20 -p1 %patch21 -p1 %patch22 -p1 %patch23 -p1 -%patch24 -p1 %build # no need to add build time to binaries @@ -524,6 +524,7 @@ exit 0 %{progdir}/application.ini %{progdir}/blocklist.xml %{progdir}/chrome.manifest +%{progdir}/dependentlibs.list %{progdir}/distribution/ %{progdir}/*.so %{progdir}/mozilla-xremote-client @@ -543,6 +544,7 @@ exit 0 %{progdir}/chrome/icons/ %dir %{progdir}/dictionaries/ %{progdir}/defaults/ +%{progdir}/jssubloader/ %dir %{progdir}/extensions/ %{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} %{progdir}/isp/ diff --git a/compare-locales.tar.bz2 b/compare-locales.tar.bz2 index c7c43c3..48bbd2b 100644 --- a/compare-locales.tar.bz2 +++ b/compare-locales.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8d3638287e651173ce4b9365d8ed67a43c38d1333fddb2071341f4d77bcb95f3 -size 29348 +oid sha256:1490b9832f2b6b63cf2aa5235b49bc9b3eabe3dbbec4ac01ee7758dee8a8f91e +size 29327 diff --git a/create-tar.sh b/create-tar.sh index 7a07ee7..c4fa709 100644 --- a/create-tar.sh +++ b/create-tar.sh @@ -2,8 +2,8 @@ CHANNEL="release" BRANCH="releases/comm-$CHANNEL" -RELEASE_TAG="THUNDERBIRD_12_0_1_RELEASE" -VERSION="12.0.1" +RELEASE_TAG="THUNDERBIRD_13_0_RELEASE" +VERSION="13.0" echo "cloning $BRANCH..." hg clone http://hg.mozilla.org/$BRANCH thunderbird diff --git a/enigmail-1.4.1.tar.gz b/enigmail-1.4.1.tar.gz deleted file mode 100644 index e202732..0000000 --- a/enigmail-1.4.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:100bc7f9ac6bca03e4507df25c5b29d6a39d0904c46301cc7def3676779d720b -size 1344516 diff --git a/enigmail-1.4.2.tar.gz b/enigmail-1.4.2.tar.gz new file mode 100644 index 0000000..6a68ba9 --- /dev/null +++ b/enigmail-1.4.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df463620f47a30d2a0e1634793b41a285e1a2c861b024e1a57c9d91cf6bf3581 +size 1319995 diff --git a/l10n-12.0.1.tar.bz2 b/l10n-12.0.1.tar.bz2 deleted file mode 100644 index 17af1ce..0000000 --- a/l10n-12.0.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe77d369d7d60ee819b54372da5afd3b68331c30499105075fc95f2b9464f797 -size 25499303 diff --git a/l10n-13.0.tar.bz2 b/l10n-13.0.tar.bz2 new file mode 100644 index 0000000..bdc9ff1 --- /dev/null +++ b/l10n-13.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40945d549843e9635648a7c1875c1cf69d50c080774492a8ed308e1fc32359c1 +size 25854132 diff --git a/mailnews-literals.patch b/mailnews-literals.patch deleted file mode 100644 index 3cc57cf..0000000 --- a/mailnews-literals.patch +++ /dev/null @@ -1,600 +0,0 @@ -# HG changeset patch -# User Wolfgang Rosenauer -# Parent 879e8d044e364396b63af59b3cdc4252fb2ae29a -Bug 733867 - Build failure with gcc-4.7.0rc1: "nsMsgFolderCompactor.cpp ... error: unable to find string literal operator ‘operator"" ..." (TM: COMM13) - -diff --git a/mailnews/base/search/src/nsMsgSearchAdapter.cpp b/mailnews/base/search/src/nsMsgSearchAdapter.cpp ---- a/mailnews/base/search/src/nsMsgSearchAdapter.cpp -+++ b/mailnews/base/search/src/nsMsgSearchAdapter.cpp -@@ -683,17 +683,17 @@ nsresult nsMsgSearchAdapter::EncodeImapV - } - - if (!NS_IsAscii(value)) - { - nsCAutoString lengthStr; - PL_strcat(encoding, "{"); - lengthStr.AppendInt((PRInt32) strlen(value)); - PL_strcat(encoding, lengthStr.get()); -- PL_strcat(encoding, "}"CRLF); -+ PL_strcat(encoding, "}" CRLF); - PL_strcat(encoding, value); - return NS_OK; - } - if (useQuotes) - PL_strcat(encoding, "\""); - PL_strcat (encoding, value); - if (useQuotes) - PL_strcat(encoding, "\""); -diff --git a/mailnews/base/src/nsMsgFolderCompactor.cpp b/mailnews/base/src/nsMsgFolderCompactor.cpp ---- a/mailnews/base/src/nsMsgFolderCompactor.cpp -+++ b/mailnews/base/src/nsMsgFolderCompactor.cpp -@@ -753,17 +753,17 @@ nsFolderCompactState::OnDataAvailable(ns - m_folder->GetMsgDatabase(getter_AddRefs(srcDB)); - if (srcDB) - { - srcDB->SetSummaryValid(false); - srcDB->ForceClosed(); - } - } - } --#define EXTRA_KEYWORD_HDR " "MSG_LINEBREAK -+#define EXTRA_KEYWORD_HDR " " MSG_LINEBREAK - - // if status offset isn't in the first block, this code won't work. There's no good reason - // for the status offset not to be at the beginning of the message anyway. - if (addKeywordHdr) - { - // if blockOffset is set, we added x-mozilla-status headers so - // file pointer is already past them. - if (!blockOffset) -@@ -1211,17 +1211,17 @@ nsOfflineStoreCompactState::OnDataAvaila - if (NS_SUCCEEDED(rv)) - { - if (m_startOfMsg) - { - m_startOfMsg = false; - // check if there's an envelope header; if not, write one. - if (strncmp(m_dataBuffer, "From ", 5)) - { -- m_fileStream->Write("From "CRLF, 7, &bytesWritten); -+ m_fileStream->Write("From " CRLF, 7, &bytesWritten); - m_offlineMsgSize += bytesWritten; - } - } - m_fileStream->Write(m_dataBuffer, readCount, &bytesWritten); - m_offlineMsgSize += bytesWritten; - writeCount += bytesWritten; - count -= readCount; - if (writeCount != readCount) -diff --git a/mailnews/compose/src/nsMsgAppleEncode.cpp b/mailnews/compose/src/nsMsgAppleEncode.cpp ---- a/mailnews/compose/src/nsMsgAppleEncode.cpp -+++ b/mailnews/compose/src/nsMsgAppleEncode.cpp -@@ -133,17 +133,17 @@ int fill_apple_mime_header( - strlen(p_ap_encode_obj->fname)); - if (status != noErr) - return status; - - PR_snprintf(tmpstr, sizeof(tmpstr), - "\"\r\nContent-Disposition: inline; filename=\"%s\"\r\n\r\n\r\n--=\r\n", - p_ap_encode_obj->fname); - #endif /* 0 */ -- PR_snprintf(tmpstr, sizeof(tmpstr), "--%s"CRLF, p_ap_encode_obj->boundary); -+ PR_snprintf(tmpstr, sizeof(tmpstr), "--%s" CRLF, p_ap_encode_obj->boundary); - status = write_stream(p_ap_encode_obj, - tmpstr, - strlen(tmpstr)); - return status; - } - - int ap_encode_file_infor( - appledouble_encode_object *p_ap_encode_obj) -@@ -374,17 +374,17 @@ int ap_encode_header( - status = finish64(p_ap_encode_obj); - if (status != noErr) - return status; - - /* - ** write out the boundary - */ - PR_snprintf(rd_buff, sizeof(rd_buff), -- CRLF"--%s"CRLF, -+ CRLF"--%s" CRLF, - p_ap_encode_obj->boundary); - - status = write_stream(p_ap_encode_obj, - rd_buff, - strlen(rd_buff)); - if (status == noErr) - status = errDone; - } -@@ -515,17 +515,17 @@ int ap_encode_data( - } - - /* - ** the data portion header information. - */ - nsCAutoString leafName; - resFile->GetNativeLeafName(leafName); - PR_snprintf(rd_buff, sizeof(rd_buff), -- "Content-Type: %s; name=\"%s\"" CRLF "Content-Transfer-Encoding: base64" CRLF "Content-Disposition: inline; filename=\"%s\""CRLF CRLF, -+ "Content-Type: %s; name=\"%s\"" CRLF "Content-Transfer-Encoding: base64" CRLF "Content-Disposition: inline; filename=\"%s\"" CRLF CRLF, - magic_type, - leafName.get(), - leafName.get()); - - status = write_stream(p_ap_encode_obj, - rd_buff, - strlen(rd_buff)); - if (status != noErr) -@@ -558,17 +558,17 @@ int ap_encode_data( - - status = finish64(p_ap_encode_obj); - if (status != noErr) - return status; - - /* write out the boundary */ - - PR_snprintf(rd_buff, sizeof(rd_buff), -- CRLF"--%s--"CRLF CRLF, -+ CRLF"--%s--" CRLF CRLF, - p_ap_encode_obj->boundary); - - status = write_stream(p_ap_encode_obj, - rd_buff, - strlen(rd_buff)); - - if (status == noErr) - status = errDone; -diff --git a/mailnews/compose/src/nsSmtpProtocol.cpp b/mailnews/compose/src/nsSmtpProtocol.cpp ---- a/mailnews/compose/src/nsSmtpProtocol.cpp -+++ b/mailnews/compose/src/nsSmtpProtocol.cpp -@@ -1717,17 +1717,17 @@ PRInt32 nsSmtpProtocol::SendMessageRespo - /* else */ - return SendQuit(); - } - - PRInt32 nsSmtpProtocol::SendQuit() - { - m_sendDone = true; - nsCOMPtr url = do_QueryInterface(m_runningURL); -- SendData(url, "QUIT"CRLF); // send a quit command to close the connection with the server. -+ SendData(url, "QUIT" CRLF); // send a quit command to close the connection with the server. - m_nextState = SMTP_RESPONSE; - m_nextStateAfterResponse = SMTP_DONE; - return(0); - } - - nsresult nsSmtpProtocol::LoadUrl(nsIURI * aURL, nsISupports * aConsumer ) - { - if (!aURL) -@@ -1964,17 +1964,17 @@ nsresult nsSmtpProtocol::LoadUrl(nsIURI - - /* check for errors during load and call error - * state if found - */ - if(status < 0 && m_nextState != SMTP_FREE) - { - nsCOMPtr url = do_QueryInterface(m_runningURL); - // send a quit command to close the connection with the server. -- if (SendData(url, "QUIT"CRLF) == NS_OK) -+ if (SendData(url, "QUIT" CRLF) == NS_OK) - { - m_nextState = SMTP_RESPONSE; - m_nextStateAfterResponse = SMTP_ERROR_DONE; - } - else - { - m_nextState = SMTP_ERROR_DONE; - /* don't exit! loop around again and do the free case */ -diff --git a/mailnews/imap/src/nsImapMailFolder.cpp b/mailnews/imap/src/nsImapMailFolder.cpp ---- a/mailnews/imap/src/nsImapMailFolder.cpp -+++ b/mailnews/imap/src/nsImapMailFolder.cpp -@@ -8304,17 +8304,17 @@ nsImapMailFolder::CopyFileToOfflineStore - srcFile->GetFileSize(&fileSize); - PRUint32 bytesWritten; - rv = NS_OK; - msgParser->SetState(nsIMsgParseMailMsgState::ParseHeadersState); - msgParser->SetNewMsgHdr(fakeHdr); - bool needMoreData = false; - char * newLine = nsnull; - PRUint32 numBytesInLine = 0; -- const char *envelope = "From "CRLF; -+ const char *envelope = "From " CRLF; - offlineStore->Write(envelope, strlen(envelope), &bytesWritten); - fileSize += bytesWritten; - do - { - newLine = inputStreamBuffer->ReadNextLine(inputStream, numBytesInLine, needMoreData); - if (newLine) - { - msgParser->ParseAFolderLine(newLine, numBytesInLine); -diff --git a/mailnews/imap/src/nsImapProtocol.cpp b/mailnews/imap/src/nsImapProtocol.cpp ---- a/mailnews/imap/src/nsImapProtocol.cpp -+++ b/mailnews/imap/src/nsImapProtocol.cpp -@@ -1404,17 +1404,17 @@ nsImapProtocol::ImapThreadMainLoop() - - PR_LOG(IMAP, PR_LOG_DEBUG, ("ImapThreadMainLoop leaving [this=%x]\n", this)); - } - - void nsImapProtocol::HandleIdleResponses() - { - // PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages(); - nsCAutoString commandBuffer(GetServerCommandTag()); -- commandBuffer.Append(" IDLE"CRLF); -+ commandBuffer.Append(" IDLE" CRLF); - - do - { - ParseIMAPandCheckForNewMail(commandBuffer.get()); - } - while (m_inputStreamBuffer->NextLineAvailable() && GetServerStateParser().Connected()); - - // if (oldRecent != GetServerStateParser().NumberOfRecentMessages()) -@@ -3282,17 +3282,17 @@ void nsImapProtocol::FetchMsgAttribute(c - { - IncrementCommandTagNumber(); - - nsCAutoString commandString (GetServerCommandTag()); - commandString.Append(" UID fetch "); - commandString.Append(messageIds); - commandString.Append(" ("); - commandString.Append(attribute); -- commandString.Append(")"CRLF); -+ commandString.Append(")" CRLF); - nsresult rv = SendData(commandString.get()); - - if (NS_SUCCEEDED(rv)) - ParseIMAPandCheckForNewMail(commandString.get()); - GetServerStateParser().SetFetchingFlags(false); - GetServerStateParser().SetFetchingEverythingRFC822(false); // always clear this flag after every fetch.... - } - -@@ -5278,17 +5278,17 @@ nsImapProtocol::Expunge() - delete search; - if (key == 0) - return; //no deleted messages to expunge (bug 235004) - } - } - - IncrementCommandTagNumber(); - nsCAutoString command(GetServerCommandTag()); -- command.Append(" expunge"CRLF); -+ command.Append(" expunge" CRLF); - - nsresult rv = SendData(command.get()); - if (NS_SUCCEEDED(rv)) - ParseIMAPandCheckForNewMail(); - } - - void - nsImapProtocol::HandleMemoryFailure() -@@ -5354,17 +5354,17 @@ void nsImapProtocol::ID() - if (!gAppName[0]) - return; - IncrementCommandTagNumber(); - nsCString command(GetServerCommandTag()); - command.Append(" ID (\"name\" \""); - command.Append(gAppName); - command.Append("\" \"version\" \""); - command.Append(gAppVersion); -- command.Append("\")"CRLF); -+ command.Append("\")" CRLF); - - nsresult rv = SendData(command.get()); - if (NS_SUCCEEDED(rv)) - ParseIMAPandCheckForNewMail(); - } - - void nsImapProtocol::EnableCondStore() - { -@@ -5811,17 +5811,17 @@ nsresult nsImapProtocol::AuthLogin(const - command.Append(escapedUserName); - command.Append("\" \""); - - // if the password contains a \, login will fail - // turn foo\bar into foo\\bar - nsCAutoString correctedPassword; - EscapeUserNamePasswordString(password.get(), &correctedPassword); - command.Append(correctedPassword); -- command.Append("\""CRLF); -+ command.Append("\"" CRLF); - rv = SendData(command.get(), true /* suppress logging */); - NS_ENSURE_SUCCESS(rv, rv); - ParseIMAPandCheckForNewMail(); - } - else if (flag & kHasAuthNoneCapability) - { - // TODO What to do? "login " like POP? - return NS_ERROR_NOT_IMPLEMENTED; -@@ -7442,17 +7442,17 @@ void nsImapProtocol::CreateMailbox(const - - IncrementCommandTagNumber(); - - nsCString escapedName; - CreateEscapedMailboxName(mailboxName, escapedName); - nsCString command(GetServerCommandTag()); - command += " create \""; - command += escapedName; -- command += "\""CRLF; -+ command += "\"" CRLF; - - nsresult rv = SendData(command.get()); - if(NS_SUCCEEDED(rv)) - ParseIMAPandCheckForNewMail(); - // If that failed, let's list the parent folder to see if - // it allows inferiors, so we won't try to create sub-folders - // of the parent folder again in the current session. - if (GetServerStateParser().CommandFailed()) -@@ -7545,17 +7545,17 @@ void nsImapProtocol::Lsub(const char *ma - nsCString escapedPattern; - CreateEscapedMailboxName(boxnameWithOnlineDirectory ? - boxnameWithOnlineDirectory : - mailboxPattern, escapedPattern); - - nsCString command (GetServerCommandTag()); - command += " lsub \"\" \""; - command += escapedPattern; -- command += "\""CRLF; -+ command += "\"" CRLF; - - PR_Free(boxnameWithOnlineDirectory); - - nsresult rv = SendData(command.get()); - if (NS_SUCCEEDED(rv)) - ParseIMAPandCheckForNewMail(); - } - -@@ -7574,17 +7574,17 @@ void nsImapProtocol::List(const char *ma - CreateEscapedMailboxName(boxnameWithOnlineDirectory ? - boxnameWithOnlineDirectory : - mailboxPattern, escapedPattern); - - nsCString command (GetServerCommandTag()); - command += useXLIST ? - " xlist \"\" \"" : " list \"\" \""; - command += escapedPattern; -- command += "\""CRLF; -+ command += "\"" CRLF; - - PR_Free(boxnameWithOnlineDirectory); - - nsresult rv = SendData(command.get()); - if (NS_SUCCEEDED(rv)) - ParseIMAPandCheckForNewMail(command.get(), true); - } - -@@ -7595,17 +7595,17 @@ void nsImapProtocol::Subscribe(const cha - IncrementCommandTagNumber(); - - nsCString escapedName; - CreateEscapedMailboxName(mailboxName, escapedName); - - nsCString command (GetServerCommandTag()); - command += " subscribe \""; - command += escapedName; -- command += "\""CRLF; -+ command += "\"" CRLF; - - nsresult rv = SendData(command.get()); - if (NS_SUCCEEDED(rv)) - ParseIMAPandCheckForNewMail(); - } - - void nsImapProtocol::Unsubscribe(const char *mailboxName) - { -@@ -7613,31 +7613,31 @@ void nsImapProtocol::Unsubscribe(const c - IncrementCommandTagNumber(); - - nsCString escapedName; - CreateEscapedMailboxName(mailboxName, escapedName); - - nsCString command (GetServerCommandTag()); - command += " unsubscribe \""; - command += escapedName; -- command += "\""CRLF; -+ command += "\"" CRLF; - - nsresult rv = SendData(command.get()); - if (NS_SUCCEEDED(rv)) - ParseIMAPandCheckForNewMail(); - } - - void nsImapProtocol::Idle() - { - IncrementCommandTagNumber(); - - if (m_urlInProgress) - return; - nsCAutoString command (GetServerCommandTag()); -- command += " IDLE"CRLF; -+ command += " IDLE" CRLF; - nsresult rv = SendData(command.get()); - if (NS_SUCCEEDED(rv)) - { - m_idle = true; - // we'll just get back a continuation char at first. - // + idling... - ParseIMAPandCheckForNewMail(); - // this will cause us to get notified of data or the socket getting closed. -@@ -7654,17 +7654,17 @@ void nsImapProtocol::Idle() - // responses, we need to not wait for the server response - // on shutdown. - void nsImapProtocol::EndIdle(bool waitForResponse /* = true */) - { - // clear the async wait - otherwise, we seem to have trouble doing a blocking read - nsCOMPtr asyncInputStream = do_QueryInterface(m_inputStream); - if (asyncInputStream) - asyncInputStream->AsyncWait(nsnull, 0, 0, nsnull); -- nsresult rv = SendData("DONE"CRLF); -+ nsresult rv = SendData("DONE" CRLF); - // set a short timeout if we don't want to wait for a response - if (m_transport && !waitForResponse) - m_transport->SetTimeout(nsISocketTransport::TIMEOUT_READ_WRITE, 5); - if (NS_SUCCEEDED(rv)) - { - m_idle = false; - ParseIMAPandCheckForNewMail(); - } -@@ -7723,18 +7723,18 @@ void nsImapProtocol::Copy(const char * m - nsTArray msgKeys; - if (idsAreUid) - ParseUidString(messageList, msgKeys); - - PRInt32 msgCountLeft = msgKeys.Length(); - PRUint32 msgsHandled = 0; - const char *formatString; - formatString = (idsAreUid) -- ? "%s uid store %s %s"CRLF -- : "%s store %s %s"CRLF; -+ ? "%s uid store %s %s" CRLF -+ : "%s store %s %s" CRLF; - - do - { - nsCString idString; - - PRUint32 msgsToHandle = msgCountLeft; - if (idsAreUid) - AllocateImapUidString(msgKeys.Elements() + msgsHandled, msgsToHandle, m_flagState, idString); -diff --git a/mailnews/imap/src/nsImapServerResponseParser.cpp b/mailnews/imap/src/nsImapServerResponseParser.cpp ---- a/mailnews/imap/src/nsImapServerResponseParser.cpp -+++ b/mailnews/imap/src/nsImapServerResponseParser.cpp -@@ -180,17 +180,17 @@ void nsImapServerResponseParser::Initial - // continue-req = "+" SP (resp-text / base64) CRLF - void nsImapServerResponseParser::ParseIMAPServerResponse(const char *aCurrentCommand, - bool aIgnoreBadAndNOResponses, - char *aGreetingWithCapability) - { - - NS_ASSERTION(aCurrentCommand && *aCurrentCommand != '\r' && - *aCurrentCommand != '\n' && *aCurrentCommand != ' ', "Invailid command string"); -- bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE"CRLF); -+ bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE" CRLF); - if (sendingIdleDone) - fWaitingForMoreClientInput = false; - - // Reinitialize the parser - SetConnected(true); - SetSyntaxError(false); - - // Reinitialize our state -diff --git a/mailnews/local/src/nsPop3Protocol.cpp b/mailnews/local/src/nsPop3Protocol.cpp ---- a/mailnews/local/src/nsPop3Protocol.cpp -+++ b/mailnews/local/src/nsPop3Protocol.cpp -@@ -2478,17 +2478,17 @@ PRInt32 nsPop3Protocol::SendList() - - - m_pop3ConData->msg_info = (Pop3MsgInfo *) - PR_CALLOC(sizeof(Pop3MsgInfo) * m_pop3ConData->number_of_messages); - if (!m_pop3ConData->msg_info) - return(MK_OUT_OF_MEMORY); - m_pop3ConData->next_state_after_response = POP3_GET_LIST; - m_listpos = 0; -- return SendData(m_url, "LIST"CRLF); -+ return SendData(m_url, "LIST" CRLF); - } - - - - PRInt32 - nsPop3Protocol::GetList(nsIInputStream* inputStream, - PRUint32 length) - { -diff --git a/mailnews/mime/src/mimedrft.cpp b/mailnews/mime/src/mimedrft.cpp ---- a/mailnews/mime/src/mimedrft.cpp -+++ b/mailnews/mime/src/mimedrft.cpp -@@ -1468,17 +1468,17 @@ mime_parse_stream_complete (nsMIMESessio - //+13 chars for
 & 
tags and CRLF - PRUint32 newbodylen = bodyLen + 14; - char* newbody = (char *)PR_MALLOC (newbodylen); - if (newbody) - { - *newbody = 0; - PL_strcatn(newbody, newbodylen, "
");
-                 PL_strcatn(newbody, newbodylen, body);
--                PL_strcatn(newbody, newbodylen, "
"CRLF); -+ PL_strcatn(newbody, newbodylen, "" CRLF); - PR_Free(body); - body = newbody; - } - } - // Body is now HTML, set the format too (so headers are inserted in - // correct format). - composeFormat = nsIMsgCompFormat::HTML; - } -diff --git a/mailnews/mime/src/mimemult.cpp b/mailnews/mime/src/mimemult.cpp ---- a/mailnews/mime/src/mimemult.cpp -+++ b/mailnews/mime/src/mimemult.cpp -@@ -275,44 +275,44 @@ MimeMultipart_parse_line (const char *li - { - MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Type: ")); - MimeWriteAString(obj, nsDependentCString(contentType)); - PR_Free(contentType); - } - MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK)); - MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: attachment; filename=\"")); - MimeWriteAString(obj, fileName); -- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK)); -+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK)); - MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-External-Attachment-URL: ")); - MimeWriteAString(obj, obj->options->state->detachedFilePath); - MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK)); - MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-Altered: AttachmentDetached; date=\"")); - } - else - { - nsCAutoString header("Content-Type: text/x-moz-deleted; name=\"Deleted: "); - header.Append(fileName); - status = MimeWriteAString(obj, header); -- if (status < 0) -+ if (status < 0) - return status; -- status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"Content-Transfer-Encoding: 8bit"MSG_LINEBREAK)); -+ status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "Content-Transfer-Encoding: 8bit" MSG_LINEBREAK)); - MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: inline; filename=\"Deleted: ")); - MimeWriteAString(obj, fileName); -- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"X-Mozilla-Altered: AttachmentDeleted; date=\"")); -+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "X-Mozilla-Altered: AttachmentDeleted; date=\"")); - } - nsCString result; - char timeBuffer[128]; - PRExplodedTime now; - PR_ExplodeTime(PR_Now(), PR_LocalTimeParameters, &now); - PR_FormatTimeUSEnglish(timeBuffer, sizeof(timeBuffer), - "%a %b %d %H:%M:%S %Y", - &now); - MimeWriteAString(obj, nsDependentCString(timeBuffer)); -- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK)); -- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK"You deleted an attachment from this message. The original MIME headers for the attachment were:"MSG_LINEBREAK)); -+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK)); -+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK "You deleted an attachment from this message. The original MIME headers for the attachment were:" MSG_LINEBREAK)); - MimeHeaders_write_raw_headers(mult->hdrs, obj->options, false); - } - PRInt32 old_nchildren = container->nchildren; - status = ((MimeMultipartClass *) obj->clazz)->create_child(obj); - if (status < 0) return status; - NS_ASSERTION(mult->state != MimeMultipartHeaders, - "mult->state shouldn't be MimeMultipartHeaders"); - -diff --git a/mailnews/news/src/nsNntpIncomingServer.cpp b/mailnews/news/src/nsNntpIncomingServer.cpp ---- a/mailnews/news/src/nsNntpIncomingServer.cpp -+++ b/mailnews/news/src/nsNntpIncomingServer.cpp -@@ -860,17 +860,17 @@ nsNntpIncomingServer::WriteHostInfoFile( - dateStr.AppendInt(mLastUpdatedTime); - WriteLine(hostInfoStream, dateStr); - dateStr ="firstnewdate="; - dateStr.AppendInt(firstnewdate); - WriteLine(hostInfoStream, dateStr); - dateStr = "uniqueid="; - dateStr.AppendInt(mUniqueId); - WriteLine(hostInfoStream, dateStr); -- header.Assign(MSG_LINEBREAK"begingroups"); -+ header.Assign(MSG_LINEBREAK "begingroups"); - WriteLine(hostInfoStream, header); - - // XXX todo, sort groups first? - PRUint32 length = mGroupsOnServer.Length(); - for (PRUint32 i = 0; i < length; ++i) - { - PRUint32 bytesWritten; - hostInfoStream->Write(mGroupsOnServer[i].get(), mGroupsOnServer[i].Length(), diff --git a/mozilla-gcc47.patch b/mozilla-gcc47.patch index 9625503..2f00638 100644 --- a/mozilla-gcc47.patch +++ b/mozilla-gcc47.patch @@ -1,78 +1,9 @@ # HG changeset patch -# Parent 93e5d3b8061741abc83dcd4ed0fe93f1636583ef +# Parent 7bc8f0e5bed8cb2212e27228e628861737256459 Patch to make Mozilla build with gcc 4.7, including -- Bug 725655 - gcc 4.7 build failures (missing headers) (TM: Mozilla13) - Bug 734490 - "no viable overloaded 'PRIxPTR'" when building with Clang or GCC 4.7 (TM: Mozilla14) - Bug 741348 - Work around crashreporter client build failure with gcc 4.7 (TM: Mozilla15) -diff --git a/ipc/chromium/src/base/file_util_linux.cc b/ipc/chromium/src/base/file_util_linux.cc ---- a/ipc/chromium/src/base/file_util_linux.cc -+++ b/ipc/chromium/src/base/file_util_linux.cc -@@ -1,15 +1,18 @@ - // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - - #include "base/file_util.h" - - #include -+#if defined(ANDROID) || defined(OS_POSIX) -+#include -+#endif - - #include - #include - - #include "base/eintr_wrapper.h" - #include "base/file_path.h" - #include "base/string_util.h" - -diff --git a/ipc/chromium/src/base/message_pump_libevent.cc b/ipc/chromium/src/base/message_pump_libevent.cc ---- a/ipc/chromium/src/base/message_pump_libevent.cc -+++ b/ipc/chromium/src/base/message_pump_libevent.cc -@@ -1,16 +1,19 @@ - // Copyright (c) 2008 The Chromium Authors. All rights reserved. - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - - #include "base/message_pump_libevent.h" - - #include - #include -+#if defined(ANDROID) || defined(OS_POSIX) -+#include -+#endif - - #include "eintr_wrapper.h" - #include "base/logging.h" - #include "base/scoped_nsautorelease_pool.h" - #include "base/scoped_ptr.h" - #include "base/time.h" - #include "third_party/libevent/event.h" - -diff --git a/ipc/chromium/src/base/time_posix.cc b/ipc/chromium/src/base/time_posix.cc ---- a/ipc/chromium/src/base/time_posix.cc -+++ b/ipc/chromium/src/base/time_posix.cc -@@ -8,16 +8,19 @@ - #include - #endif - #include - #ifdef ANDROID - #include - #else - #include - #endif -+#if defined(ANDROID) || defined(OS_POSIX) -+#include -+#endif - - #include - - #include "base/basictypes.h" - #include "base/logging.h" - - namespace base { - diff --git a/layout/base/tests/TestPoisonArea.cpp b/layout/base/tests/TestPoisonArea.cpp --- a/layout/base/tests/TestPoisonArea.cpp +++ b/layout/base/tests/TestPoisonArea.cpp diff --git a/mozilla-kde.patch b/mozilla-kde.patch index b3008ee..ec5bd5c 100644 --- a/mozilla-kde.patch +++ b/mozilla-kde.patch @@ -27,7 +27,7 @@ diff --git a/modules/libpref/src/Makefile.in b/modules/libpref/src/Makefile.in diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferences.cpp --- a/modules/libpref/src/Preferences.cpp +++ b/modules/libpref/src/Preferences.cpp -@@ -56,16 +56,17 @@ +@@ -57,16 +57,17 @@ #include "nsIStringEnumerator.h" #include "nsIZipReader.h" #include "nsPrefBranch.h" @@ -45,14 +45,14 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc #include "prefapi.h" #include "prefread.h" #include "prefapi_private_data.h" -@@ -935,30 +936,48 @@ pref_LoadPrefsInDir(nsIFile* aDir, char - } +@@ -937,16 +938,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char static nsresult pref_LoadPrefsInDirList(const char *listId) { nsresult rv; nsCOMPtr dirSvc(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv)); - if (NS_FAILED(rv)) return rv; + if (NS_FAILED(rv)) + return rv; + // make sure we load these special files after all the others + static const char* specialFiles[] = { @@ -72,30 +72,34 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc + } + } + - nsCOMPtr dirList; + nsCOMPtr list; dirSvc->Get(listId, NS_GET_IID(nsISimpleEnumerator), - getter_AddRefs(dirList)); - if (dirList) { - bool hasMore; - while (NS_SUCCEEDED(dirList->HasMoreElements(&hasMore)) && hasMore) { - nsCOMPtr elem; - dirList->GetNext(getter_AddRefs(elem)); - if (elem) { - nsCOMPtr dir = do_QueryInterface(elem); - if (dir) { - // Do we care if a file provided by this process fails to load? -- pref_LoadPrefsInDir(dir, nsnull, 0); -+ pref_LoadPrefsInDir(dir, specialFiles, NS_ARRAY_LENGTH(specialFiles)); - } - } - } + getter_AddRefs(list)); + if (!list) + return NS_OK; + + bool hasMore; +@@ -962,17 +981,17 @@ static nsresult pref_LoadPrefsInDirList( + + nsCAutoString leaf; + path->GetNativeLeafName(leaf); + + // Do we care if a file provided by this process fails to load? + if (Substring(leaf, leaf.Length() - 4).Equals(NS_LITERAL_CSTRING(".xpi"))) + ReadExtensionPrefs(path); + else +- pref_LoadPrefsInDir(path, nsnull, 0); ++ pref_LoadPrefsInDir(path, specialFiles, NS_ARRAY_LENGTH(specialFiles)); } return NS_OK; } static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name) -@@ -1051,28 +1070,40 @@ static nsresult pref_InitInitialObjects( + { + nsZipItemPtr manifest(jarReader, name, true); + NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE); +@@ -1062,28 +1081,40 @@ static nsresult pref_InitInitialObjects( /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */ static const char* specialFiles[] = { #if defined(XP_MACOSX) @@ -139,17 +143,18 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downloads/Makefile.in --- a/toolkit/components/downloads/Makefile.in +++ b/toolkit/components/downloads/Makefile.in -@@ -75,8 +75,10 @@ EXTRA_COMPONENTS = \ +@@ -73,8 +73,11 @@ EXTRA_COMPONENTS = \ + nsDownloadManagerUI.js \ + nsDownloadManagerUI.manifest \ $(NULL) endif - ifdef ENABLE_TESTS - DIRS += test - endif + TEST_DIRS += test include $(topsrcdir)/config/rules.mk + +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre ++ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp --- a/toolkit/components/downloads/nsDownloadManager.cpp +++ b/toolkit/components/downloads/nsDownloadManager.cpp @@ -174,7 +179,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon #include "AndroidBridge.h" #endif -@@ -2214,16 +2218,25 @@ nsDownload::SetState(DownloadState aStat +@@ -2221,16 +2225,25 @@ nsDownload::SetState(DownloadState aStat nsCOMPtr pref(do_GetService(NS_PREFSERVICE_CONTRACTID)); // Master pref to control this function. @@ -200,7 +205,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon PRInt64 goat = PR_Now() - mStartTime; showTaskbarAlert = goat > alertIntervalUSec; -@@ -2247,19 +2260,20 @@ nsDownload::SetState(DownloadState aStat +@@ -2254,19 +2267,20 @@ nsDownload::SetState(DownloadState aStat // If downloads are automatically removed per the user's // retention policy, there's no reason to make the text clickable // because if it is, they'll click open the download manager and @@ -225,7 +230,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn --- a/toolkit/content/jar.mn +++ b/toolkit/content/jar.mn -@@ -40,29 +40,33 @@ toolkit.jar: +@@ -44,29 +44,33 @@ toolkit.jar: *+ content/global/viewZoomOverlay.js (viewZoomOverlay.js) *+ content/global/bindings/autocomplete.xml (widgets/autocomplete.xml) *+ content/global/bindings/browser.xml (widgets/browser.xml) @@ -2092,8 +2097,7 @@ new file mode 100644 diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp +++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp -@@ -45,16 +45,18 @@ - #include "nsReadableUtils.h" +@@ -46,16 +46,18 @@ #include "nsArrayUtils.h" #include "prnetdb.h" #include "prenv.h" @@ -2101,6 +2105,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy #include "nsNetUtil.h" #include "nsISupportsPrimitives.h" #include "nsIGSettingsService.h" + #include "nsInterfaceHashtable.h" +#include "nsVoidArray.h" +#include "nsKDEUtils.h" @@ -2111,10 +2116,10 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy nsUnixSystemProxySettings() {} nsresult Init(); -@@ -64,16 +66,17 @@ private: - - nsCOMPtr mGConf; +@@ -67,16 +69,17 @@ private: nsCOMPtr mGSettings; + nsCOMPtr mProxySettings; + nsInterfaceHashtable mSchemeProxySettings; bool IsProxyMode(const char* aMode); nsresult SetProxyResultFromGConf(const char* aKeyBase, const char* aType, nsACString& aResult); nsresult GetProxyFromGConf(const nsACString& aScheme, const nsACString& aHost, PRInt32 aPort, nsACString& aResult); @@ -2129,7 +2134,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy nsUnixSystemProxySettings::Init() { // If this is a GNOME session, load gconf and try to use its preferences. -@@ -526,16 +529,19 @@ nsUnixSystemProxySettings::GetProxyForUR +@@ -529,16 +532,19 @@ nsUnixSystemProxySettings::GetProxyForUR nsCAutoString host; rv = aURI->GetHost(host); NS_ENSURE_SUCCESS(rv, rv); @@ -2141,7 +2146,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy + if( nsKDEUtils::kdeSupport()) + return GetProxyFromKDE(scheme, host, port, aResult); + - if (mGSettings) { + if (mProxySettings) { rv = GetProxyFromGSettings(scheme, host, port, aResult); if (rv == NS_OK) return rv; @@ -2149,7 +2154,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy if (mGConf) return GetProxyFromGConf(scheme, host, port, aResult); -@@ -561,8 +567,34 @@ static const mozilla::Module::ContractID +@@ -564,8 +570,34 @@ static const mozilla::Module::ContractID static const mozilla::Module kUnixProxyModule = { mozilla::Module::kVersion, @@ -2673,7 +2678,7 @@ new file mode 100644 diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in --- a/uriloader/exthandler/Makefile.in +++ b/uriloader/exthandler/Makefile.in -@@ -92,18 +92,19 @@ LOCAL_INCLUDES = -I$(srcdir) +@@ -90,18 +90,19 @@ LOCAL_INCLUDES = -I$(srcdir) LOCAL_INCLUDES += -I$(topsrcdir)/dom/base \ -I$(topsrcdir)/dom/ipc \ -I$(topsrcdir)/content/base/src \ @@ -3250,7 +3255,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth diff --git a/widget/gtk2/Makefile.in b/widget/gtk2/Makefile.in --- a/widget/gtk2/Makefile.in +++ b/widget/gtk2/Makefile.in -@@ -135,11 +135,14 @@ DEFINES += -DCAIRO_GFX +@@ -135,11 +135,14 @@ DEFINES += -DCAIRO_GFX -DMOZ_APP_NAME=' INCLUDES += \ -I$(srcdir)/../xpwidgets \ @@ -3604,7 +3609,7 @@ diff --git a/widget/gtk2/nsFilePicker.h b/widget/gtk2/nsFilePicker.h diff --git a/xpcom/components/Makefile.in b/xpcom/components/Makefile.in --- a/xpcom/components/Makefile.in +++ b/xpcom/components/Makefile.in -@@ -92,10 +92,11 @@ LOCAL_INCLUDES = \ +@@ -91,10 +91,11 @@ LOCAL_INCLUDES = \ # we don't want the shared lib, but we want to force the creation of a static lib. FORCE_STATIC_LIB = 1 @@ -3619,134 +3624,134 @@ diff --git a/xpcom/components/Makefile.in b/xpcom/components/Makefile.in diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp --- a/xpcom/components/ManifestParser.cpp +++ b/xpcom/components/ManifestParser.cpp -@@ -62,16 +62,17 @@ - #include "nsTextFormatter.h" - #include "nsVersionComparator.h" - #include "nsXPCOMCIDInternal.h" - - #include "nsIConsoleService.h" - #include "nsIScriptError.h" - #include "nsIXULAppInfo.h" - #include "nsIXULRuntime.h" -+#include "nsKDEUtils.h" - - using namespace mozilla; - - struct ManifestDirective - { - const char* directive; - int argc; - -@@ -429,16 +430,17 @@ ParseManifest(NSLocationType type, FileL - NS_NAMED_LITERAL_STRING(kPlatform, "platform"); - NS_NAMED_LITERAL_STRING(kContentAccessible, "contentaccessible"); - NS_NAMED_LITERAL_STRING(kApplication, "application"); - NS_NAMED_LITERAL_STRING(kAppVersion, "appversion"); - NS_NAMED_LITERAL_STRING(kGeckoVersion, "platformversion"); - NS_NAMED_LITERAL_STRING(kOs, "os"); - NS_NAMED_LITERAL_STRING(kOsVersion, "osversion"); - NS_NAMED_LITERAL_STRING(kABI, "abi"); -+ NS_NAMED_LITERAL_STRING(kDesktop, "desktop"); - #if defined(MOZ_WIDGET_ANDROID) - NS_NAMED_LITERAL_STRING(kTablet, "tablet"); - #endif - - // Obsolete - NS_NAMED_LITERAL_STRING(kXPCNativeWrappers, "xpcnativewrappers"); - - nsAutoString appID; -@@ -476,41 +478,46 @@ ParseManifest(NSLocationType type, FileL - CopyUTF8toUTF16(s, abi); - abi.Insert(PRUnichar('_'), 0); - abi.Insert(osTarget, 0); - } - } - } - - nsAutoString osVersion; -+ nsAutoString desktop; - #if defined(XP_WIN) - OSVERSIONINFO info = { sizeof(OSVERSIONINFO) }; - if (GetVersionEx(&info)) { - nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(), - info.dwMajorVersion, - info.dwMinorVersion); - } -+ desktop = NS_LITERAL_STRING("win"); - #elif defined(MOZ_WIDGET_COCOA) - SInt32 majorVersion, minorVersion; - if ((Gestalt(gestaltSystemVersionMajor, &majorVersion) == noErr) && - (Gestalt(gestaltSystemVersionMinor, &minorVersion) == noErr)) { - nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(), - majorVersion, - minorVersion); - } -+ desktop = NS_LITERAL_STRING("macosx"); - #elif defined(MOZ_WIDGET_GTK2) - nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(), - gtk_major_version, - gtk_minor_version); -+ desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome"); - #elif defined(MOZ_WIDGET_ANDROID) - bool isTablet = false; - if (mozilla::AndroidBridge::Bridge()) { - mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build$VERSION", "RELEASE", osVersion); - isTablet = mozilla::AndroidBridge::Bridge()->IsTablet(); - } -+ desktop = NS_LITERAL_STRING("android"); - #endif - - // Because contracts must be registered after CIDs, we save and process them - // at the end. - nsTArray contracts; - - char *token; - char *newline = buf; -@@ -592,24 +599,26 @@ ParseManifest(NSLocationType type, FileL - TriState stOsVersion = eUnspecified; - TriState stOs = eUnspecified; - TriState stABI = eUnspecified; - #if defined(MOZ_WIDGET_ANDROID) - TriState stTablet = eUnspecified; - #endif - bool platform = false; - bool contentAccessible = false; -+ TriState stDesktop = eUnspecified; - - while (NULL != (token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) && ok) { - ToLowerCase(token); - NS_ConvertASCIItoUTF16 wtoken(token); - - if (CheckStringFlag(kApplication, wtoken, appID, stApp) || - CheckStringFlag(kOs, wtoken, osTarget, stOs) || - CheckStringFlag(kABI, wtoken, abi, stABI) || -+ CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || - CheckVersionFlag(kOsVersion, wtoken, osVersion, stOsVersion) || - CheckVersionFlag(kAppVersion, wtoken, appVersion, stAppVersion) || - CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion, stGeckoVersion)) - continue; - - #if defined(MOZ_WIDGET_ANDROID) - bool tablet = false; - if (CheckFlag(kTablet, wtoken, tablet)) { -@@ -638,16 +647,17 @@ ParseManifest(NSLocationType type, FileL - } - - if (!ok || - stApp == eBad || - stAppVersion == eBad || - stGeckoVersion == eBad || - stOs == eBad || - stOsVersion == eBad || -+ stDesktop == eBad || - #ifdef MOZ_WIDGET_ANDROID - stTablet == eBad || - #endif - stABI == eBad) - continue; - - if (directive->regfunc) { - if (GeckoProcessType_Default != XRE_GetProcessType()) +@@ -63,16 +63,17 @@ + #include "nsTextFormatter.h" + #include "nsVersionComparator.h" + #include "nsXPCOMCIDInternal.h" + + #include "nsIConsoleService.h" + #include "nsIScriptError.h" + #include "nsIXULAppInfo.h" + #include "nsIXULRuntime.h" ++#include "nsKDEUtils.h" + + using namespace mozilla; + + struct ManifestDirective + { + const char* directive; + int argc; + +@@ -430,16 +431,17 @@ ParseManifest(NSLocationType type, FileL + NS_NAMED_LITERAL_STRING(kPlatform, "platform"); + NS_NAMED_LITERAL_STRING(kContentAccessible, "contentaccessible"); + NS_NAMED_LITERAL_STRING(kApplication, "application"); + NS_NAMED_LITERAL_STRING(kAppVersion, "appversion"); + NS_NAMED_LITERAL_STRING(kGeckoVersion, "platformversion"); + NS_NAMED_LITERAL_STRING(kOs, "os"); + NS_NAMED_LITERAL_STRING(kOsVersion, "osversion"); + NS_NAMED_LITERAL_STRING(kABI, "abi"); ++ NS_NAMED_LITERAL_STRING(kDesktop, "desktop"); + #if defined(MOZ_WIDGET_ANDROID) + NS_NAMED_LITERAL_STRING(kTablet, "tablet"); + #endif + + // Obsolete + NS_NAMED_LITERAL_STRING(kXPCNativeWrappers, "xpcnativewrappers"); + + nsAutoString appID; +@@ -477,41 +479,46 @@ ParseManifest(NSLocationType type, FileL + CopyUTF8toUTF16(s, abi); + abi.Insert(PRUnichar('_'), 0); + abi.Insert(osTarget, 0); + } + } + } + + nsAutoString osVersion; ++ nsAutoString desktop; + #if defined(XP_WIN) + OSVERSIONINFO info = { sizeof(OSVERSIONINFO) }; + if (GetVersionEx(&info)) { + nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(), + info.dwMajorVersion, + info.dwMinorVersion); + } ++ desktop = NS_LITERAL_STRING("win"); + #elif defined(MOZ_WIDGET_COCOA) + SInt32 majorVersion, minorVersion; + if ((Gestalt(gestaltSystemVersionMajor, &majorVersion) == noErr) && + (Gestalt(gestaltSystemVersionMinor, &minorVersion) == noErr)) { + nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(), + majorVersion, + minorVersion); + } ++ desktop = NS_LITERAL_STRING("macosx"); + #elif defined(MOZ_WIDGET_GTK2) + nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(), + gtk_major_version, + gtk_minor_version); ++ desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome"); + #elif defined(MOZ_WIDGET_ANDROID) + bool isTablet = false; + if (mozilla::AndroidBridge::Bridge()) { + mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build$VERSION", "RELEASE", osVersion); + isTablet = mozilla::AndroidBridge::Bridge()->IsTablet(); + } ++ desktop = NS_LITERAL_STRING("android"); + #endif + + // Because contracts must be registered after CIDs, we save and process them + // at the end. + nsTArray contracts; + + char *token; + char *newline = buf; +@@ -593,24 +600,26 @@ ParseManifest(NSLocationType type, FileL + TriState stOsVersion = eUnspecified; + TriState stOs = eUnspecified; + TriState stABI = eUnspecified; + #if defined(MOZ_WIDGET_ANDROID) + TriState stTablet = eUnspecified; + #endif + bool platform = false; + bool contentAccessible = false; ++ TriState stDesktop = eUnspecified; + + while (NULL != (token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) && ok) { + ToLowerCase(token); + NS_ConvertASCIItoUTF16 wtoken(token); + + if (CheckStringFlag(kApplication, wtoken, appID, stApp) || + CheckStringFlag(kOs, wtoken, osTarget, stOs) || + CheckStringFlag(kABI, wtoken, abi, stABI) || ++ CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || + CheckVersionFlag(kOsVersion, wtoken, osVersion, stOsVersion) || + CheckVersionFlag(kAppVersion, wtoken, appVersion, stAppVersion) || + CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion, stGeckoVersion)) + continue; + + #if defined(MOZ_WIDGET_ANDROID) + bool tablet = false; + if (CheckFlag(kTablet, wtoken, tablet)) { +@@ -639,16 +648,17 @@ ParseManifest(NSLocationType type, FileL + } + + if (!ok || + stApp == eBad || + stAppVersion == eBad || + stGeckoVersion == eBad || + stOs == eBad || + stOsVersion == eBad || ++ stDesktop == eBad || + #ifdef MOZ_WIDGET_ANDROID + stTablet == eBad || + #endif + stABI == eBad) + continue; + + if (directive->regfunc) { + if (GeckoProcessType_Default != XRE_GetProcessType()) diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in --- a/xpcom/io/Makefile.in +++ b/xpcom/io/Makefile.in @@ -3790,7 +3795,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp #include "prmem.h" #include "plbase64.h" -@@ -1795,44 +1796,51 @@ nsLocalFile::SetPersistentDescriptor(con +@@ -1796,44 +1797,51 @@ nsLocalFile::SetPersistentDescriptor(con return InitWithNativePath(aPersistentDescriptor); #endif } @@ -3856,7 +3861,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp return rv; } return NS_ERROR_FAILURE; -@@ -1858,16 +1866,23 @@ nsLocalFile::Launch() +@@ -1859,16 +1867,23 @@ nsLocalFile::Launch() if (nsnull == connection) return NS_ERROR_FAILURE; diff --git a/mozilla-nongnome-proxies.patch b/mozilla-nongnome-proxies.patch index b1fae8b..8d20df5 100644 --- a/mozilla-nongnome-proxies.patch +++ b/mozilla-nongnome-proxies.patch @@ -9,7 +9,7 @@ retrieving revision 1.1 diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp +++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp -@@ -71,18 +71,24 @@ private: +@@ -74,22 +74,28 @@ private: nsresult SetProxyResultFromGSettings(const char* aKeyBase, const char* aType, nsACString& aResult); }; @@ -18,21 +18,29 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy nsresult nsUnixSystemProxySettings::Init() { +- mSchemeProxySettings.Init(5); - mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID); - mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID); +- if (mGSettings) { +- mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"), +- getter_AddRefs(mProxySettings)); + // If this is a GNOME session, load gconf and try to use its preferences. + // If gconf is not available (which would be stupid) we'll proceed as if + // this was not a GNOME session, using *_PROXY environment variables. + const char* sessionType = PR_GetEnv("DESKTOP_SESSION"); + if (sessionType && !strcmp(sessionType, "gnome")) { ++ mSchemeProxySettings.Init(5); + mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID); + mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID); -+ } ++ if (mGSettings) { ++ mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"), ++ getter_AddRefs(mProxySettings)); ++ } + } + return NS_OK; } bool nsUnixSystemProxySettings::IsProxyMode(const char* aMode) { - nsCAutoString mode; - return NS_SUCCEEDED(mGConf->GetString(NS_LITERAL_CSTRING("/system/proxy/mode"), mode)) && diff --git a/mozilla-system-nspr.patch b/mozilla-system-nspr.patch new file mode 100644 index 0000000..eadf0c6 --- /dev/null +++ b/mozilla-system-nspr.patch @@ -0,0 +1,27 @@ +# HG changeset patch +# User Wolfgang Rosenauer +# Parent e94edfdb1f5bd5c29dc54cfb83768f9c84f3f4de +Bug 736854 - PHal.ipdl includes NSPR incorrectly - breaking system NSPR usage + +diff --git a/hal/sandbox/PHal.ipdl b/hal/sandbox/PHal.ipdl +--- a/hal/sandbox/PHal.ipdl ++++ b/hal/sandbox/PHal.ipdl +@@ -34,17 +34,17 @@ + * 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 protocol PContent; + include protocol PBrowser; +-include "nspr/prtime.h"; ++include "prtime.h"; + include "mozilla/HalSensor.h"; + include "mozilla/HalTypes.h"; + + using PRTime; + using mozilla::hal::FlashMode; + using mozilla::hal::LightType; + using mozilla::hal::LightMode; + using mozilla::hal::SensorType; diff --git a/tb-develdirs.patch b/tb-develdirs.patch index 0790055..cb4dfb0 100644 --- a/tb-develdirs.patch +++ b/tb-develdirs.patch @@ -1,8 +1,12 @@ diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in -index bea1ca3..2de10c0 100644 --- a/config/autoconf.mk.in +++ b/config/autoconf.mk.in -@@ -61,11 +61,11 @@ MOZ_PKG_SPECIAL = @MOZ_PKG_SPECIAL@ +@@ -56,21 +56,21 @@ MOZ_APP_VERSION = @MOZ_APP_VERSION@ + MOZ_APP_MAXVERSION = @MOZ_APP_MAXVERSION@ + MOZ_MACBUNDLE_NAME= @MOZ_MACBUNDLE_NAME@ + + MOZ_PKG_SPECIAL = @MOZ_PKG_SPECIAL@ + prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ @@ -16,3 +20,8 @@ index bea1ca3..2de10c0 100644 installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) + + MOZDEPTH = $(DEPTH)/mozilla + DIST = $(MOZDEPTH)/dist + LIBXUL_SDK = @LIBXUL_SDK@ + diff --git a/thunderbird-12.0.1-source.tar.bz2 b/thunderbird-12.0.1-source.tar.bz2 deleted file mode 100644 index c83e71a..0000000 --- a/thunderbird-12.0.1-source.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:573acd29f9f514bafa0a5daa0df39e62a82b3ebb573c7091693eacdcaf7fd234 -size 101196652 diff --git a/thunderbird-13.0-source.tar.bz2 b/thunderbird-13.0-source.tar.bz2 new file mode 100644 index 0000000..5e92d3a --- /dev/null +++ b/thunderbird-13.0-source.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6c5886a67eaf004d15c3f4d1cb6eab884ffdfb1f61ce0407c90aca5f72780c5 +size 102514177 diff --git a/thunderbird-shared-nss-db.patch b/thunderbird-shared-nss-db.patch index d07e657..2f3cbd6 100644 --- a/thunderbird-shared-nss-db.patch +++ b/thunderbird-shared-nss-db.patch @@ -7,7 +7,7 @@ References: diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in --- a/config/autoconf.mk.in +++ b/config/autoconf.mk.in -@@ -451,16 +451,20 @@ MOZ_PANGO_LIBS = @MOZ_PANGO_LIB +@@ -448,16 +448,20 @@ MOZ_PANGO_LIBS = @MOZ_PANGO_LIB XT_LIBS = @XT_LIBS@ MOZ_ALSA_LIBS = @MOZ_ALSA_LIBS@ @@ -31,7 +31,7 @@ diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in diff --git a/configure.in b/configure.in --- a/configure.in +++ b/configure.in -@@ -6680,16 +6680,31 @@ AC_SUBST(QCMS_LIBS) +@@ -6586,16 +6586,31 @@ AC_SUBST(QCMS_LIBS) dnl ======================================================== dnl HarfBuzz @@ -66,11 +66,11 @@ diff --git a/configure.in b/configure.in diff --git a/mail/app/Makefile.in b/mail/app/Makefile.in --- a/mail/app/Makefile.in +++ b/mail/app/Makefile.in -@@ -101,16 +101,17 @@ STL_FLAGS= +@@ -94,16 +94,17 @@ LOCAL_INCLUDES += \ + $(NULL) - ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) - TK_LIBS := -framework Cocoa $(TK_LIBS) - endif + DEFINES += -DXPCOM_GLUE + STL_FLAGS= LIBS += \ $(EXTRA_DSO_LIBS) \ @@ -78,9 +78,9 @@ diff --git a/mail/app/Makefile.in b/mail/app/Makefile.in + $(NSSHELPER_LIBS) \ $(NULL) - ifdef MOZ_JPROF - LIBS += -ljprof + ifdef MOZ_LINKER + LIBS += $(ZLIB_LIBS) endif - ifdef MOZ_ENABLE_DBUS - LIBS += $(MOZ_DBUS_GLIB_LIBS) + ifndef MOZ_WINCONSOLE + ifdef MOZ_DEBUG