+++ /dev/null
-
-# HG changeset patch
-# User Arkadiusz Miskiewicz <arekm@maven.pl>
-# Date 1535035719 -7200
-# Node ID 74ed2e4ba2456c97a4266b4c58faf4bf24b4d21e
-# Parent 3d2c10e918d29353b29506c635c26e2e5f3cd2bb
-Bug 678322 - process all duplicate headers when searching. r=jorgk
-
-Search in all headers even if header with the same name occured multiple times.
-Stop treating Received in special way as now it's not needed - we will search
-all Received occurences (just like any other header) now.
-
-Add tests for for the problem.
-
-diff --git a/mailnews/base/search/src/nsMsgSearchTerm.cpp b/mailnews/base/search/src/nsMsgSearchTerm.cpp
---- a/mailnews/base/search/src/nsMsgSearchTerm.cpp
-+++ b/mailnews/base/search/src/nsMsgSearchTerm.cpp
-@@ -736,127 +736,129 @@ nsresult nsMsgSearchTerm::DeStreamNew (c
- CopyUTF8toUTF16(mozilla::MakeStringSpan(m_value.string), m_value.utf16String);
- }
- return NS_OK;
- }
-
-
- // Looks in the MessageDB for the user specified arbitrary header, if it finds the header, it then looks for a match against
- // the value for the header.
--nsresult nsMsgSearchTerm::MatchArbitraryHeader (nsIMsgSearchScopeTerm *scope,
-- uint32_t length /* in lines*/,
-- const char *charset,
-- bool charsetOverride,
-- nsIMsgDBHdr *msg,
-- nsIMsgDatabase* db,
-- const char * headers,
-- uint32_t headersSize,
-- bool ForFiltering,
-- bool *pResult)
-+nsresult nsMsgSearchTerm::MatchArbitraryHeader(nsIMsgSearchScopeTerm *scope,
-+ uint32_t length /* in lines*/,
-+ const char *charset,
-+ bool charsetOverride,
-+ nsIMsgDBHdr *msg,
-+ nsIMsgDatabase* db,
-+ const char * headers,
-+ uint32_t headersSize,
-+ bool ForFiltering,
-+ bool *pResult)
- {
- NS_ENSURE_ARG_POINTER(pResult);
-
- *pResult = false;
- nsresult rv = NS_OK;
- bool matchExpected = m_operator == nsMsgSearchOp::Contains ||
- m_operator == nsMsgSearchOp::Is ||
- m_operator == nsMsgSearchOp::BeginsWith ||
- m_operator == nsMsgSearchOp::EndsWith;
-- // init result to what we want if we don't find the header at all
-+ // Initialize result to what we want if we don't find the header at all.
- bool result = !matchExpected;
-
- nsCString dbHdrValue;
- msg->GetStringProperty(m_arbitraryHeader.get(), getter_Copies(dbHdrValue));
-- if (!dbHdrValue.IsEmpty())
-- // match value with the other info.
-- return MatchRfc2047String(dbHdrValue, charset, charsetOverride, pResult);
-+ if (!dbHdrValue.IsEmpty()) {
-+ // Match value with the other info. It doesn't check all header occurences,
-+ // so we use it only if we match and do line by line headers parsing otherwise.
-+ rv = MatchRfc2047String(dbHdrValue, charset, charsetOverride, pResult);
-+ if (*pResult)
-+ return rv;
-
-- nsMsgBodyHandler * bodyHandler =
-- new nsMsgBodyHandler (scope, length, msg, db, headers, headersSize,
-- ForFiltering);
-- NS_ENSURE_TRUE(bodyHandler, NS_ERROR_OUT_OF_MEMORY);
-+ rv = NS_OK;
-+ }
-
-+ nsMsgBodyHandler *bodyHandler = new nsMsgBodyHandler(scope, length, msg, db,
-+ headers, headersSize,
-+ ForFiltering);
- bodyHandler->SetStripHeaders (false);
-
-- nsCString headerFullValue; // contains matched header value accumulated over multiple lines.
-+ nsCString headerFullValue; // Contains matched header value accumulated over multiple lines.
- nsAutoCString buf;
- nsAutoCString curMsgHeader;
-- bool searchingHeaders = true;
-+ bool processingHeaders = true;
-
-- // We will allow accumulation of received headers;
-- bool isReceivedHeader = m_arbitraryHeader.EqualsLiteral("received");
--
-- while (searchingHeaders)
-+ while (processingHeaders)
- {
- nsCString charsetIgnored;
- if (bodyHandler->GetNextLine(buf, charsetIgnored) < 0 || EMPTY_MESSAGE_LINE(buf))
-- searchingHeaders = false;
-- bool isContinuationHeader = searchingHeaders ?
-+ processingHeaders = false; // No more lines or emtpy line teminating headers.
-+
-+ bool isContinuationHeader = processingHeaders ?
- NS_IsAsciiWhitespace(buf.CharAt(0)) : false;
-
-- // We try to match the header from the last time through the loop, which should now
-- // have accumulated over possible multiple lines. For all headers except received,
-- // we process a single accumulation, but process accumulated received at the end.
-- if (!searchingHeaders || (!isContinuationHeader &&
-- (!headerFullValue.IsEmpty() && !isReceivedHeader)))
-+ // If we're not on a continuation header the header value is not empty,
-+ // we have finished accumulating the header value by iterating over all
-+ // header lines. Now we need to check whether the value is a match.
-+ if (!isContinuationHeader && !headerFullValue.IsEmpty())
- {
-- // Make sure buf has info besides just the header.
-- // Otherwise, it's either an empty header, or header not found.
-- if (!headerFullValue.IsEmpty())
-+ bool stringMatches;
-+ // Match value with the other info.
-+ rv = MatchRfc2047String(headerFullValue, charset, charsetOverride, &stringMatches);
-+ if (matchExpected == stringMatches) // if we found a match
- {
-- bool stringMatches;
-- // match value with the other info.
-- rv = MatchRfc2047String(headerFullValue, charset, charsetOverride, &stringMatches);
-- if (matchExpected == stringMatches) // if we found a match
-- {
-- searchingHeaders = false; // then stop examining the headers
-- result = stringMatches;
-- }
-+ // If we found a match, stop examining the headers.
-+ processingHeaders = false;
-+ result = stringMatches;
- }
-+ // Prepare for repeated header of the same type.
-+ headerFullValue.Truncate();
-+ }
-+
-+ // We got result or finished processing all lines.
-+ if (!processingHeaders)
- break;
-- }
-
- char * buf_end = (char *) (buf.get() + buf.Length());
- int headerLength = m_arbitraryHeader.Length();
-
- // If the line starts with whitespace, then we use the current header.
- if (!isContinuationHeader)
- {
-- // here we start a new header
-+ // Here we start a new header.
- uint32_t colonPos = buf.FindChar(':');
- curMsgHeader = StringHead(buf, colonPos);
- }
-
- if (curMsgHeader.Equals(m_arbitraryHeader, nsCaseInsensitiveCStringComparator()))
- {
-- // process the value
-- // value occurs after the header name or whitespace continuation char.
-- const char * headerValue = buf.get() + (isContinuationHeader ? 1 : headerLength);
-+ // Process the value:
-+ // Value occurs after the header name or whitespace continuation char.
-+ const char *headerValue = buf.get() + (isContinuationHeader ? 1 : headerLength);
- if (headerValue < buf_end && headerValue[0] == ':') // + 1 to account for the colon which is MANDATORY
- headerValue++;
-
-- // strip leading white space
-+ // Strip leading white space.
- while (headerValue < buf_end && isspace(*headerValue))
-- headerValue++; // advance to next character
-+ headerValue++;
-
-- // strip trailing white space
-+ // Strip trailing white space.
- char * end = buf_end - 1;
-- while (end > headerValue && isspace(*end)) // while we haven't gone back past the start and we are white space....
-+ while (headerValue < end && isspace(*end))
- {
-- *end = '\0'; // eat up the white space
-- end--; // move back and examine the previous character....
-+ *end = '\0';
-+ end--;
- }
-
-- // any continuation whitespace is converted to a single space. This includes both a continuation line, or a
-- // second value of the same header (eg the received header)
-+ // Any continuation whitespace is converted to a single space.
- if (!headerFullValue.IsEmpty())
- headerFullValue.Append(' ');
- headerFullValue.Append(nsDependentCString(headerValue));
- }
- }
-+
- delete bodyHandler;
- *pResult = result;
- return rv;
- }
-
- NS_IMETHODIMP nsMsgSearchTerm::MatchHdrProperty(nsIMsgDBHdr *aHdr, bool *aResult)
- {
- NS_ENSURE_ARG_POINTER(aResult);
-diff --git a/mailnews/base/test/unit/test_search.js b/mailnews/base/test/unit/test_search.js
---- a/mailnews/base/test/unit/test_search.js
-+++ b/mailnews/base/test/unit/test_search.js
-@@ -104,16 +104,110 @@ var Tests =
- testAttribute: OtherHeader,
- op: Contains,
- count: 1},
- { testString: "foobar",
- testAttribute: OtherHeader,
- op: Contains,
- count: 0},
-
-+ // test header with multiple occurences
-+ { testString: "one value",
-+ testAttribute: OtherHeader,
-+ op: Is,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "second",
-+ testAttribute: OtherHeader,
-+ op: Is,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "third value for test purposes",
-+ testAttribute: OtherHeader,
-+ op: Is,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "multiline value that needs to be handled.",
-+ testAttribute: OtherHeader,
-+ op: Is,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+
-+ { testString: "one",
-+ testAttribute: OtherHeader,
-+ op: Contains,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "second",
-+ testAttribute: OtherHeader,
-+ op: Contains,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "purposes",
-+ testAttribute: OtherHeader,
-+ op: Contains,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "value",
-+ testAttribute: OtherHeader,
-+ op: Contains,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "that needs to be",
-+ testAttribute: OtherHeader,
-+ op: Contains,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "fifth",
-+ testAttribute: OtherHeader,
-+ op: Contains,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "is the end my",
-+ testAttribute: OtherHeader,
-+ op: Contains,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "the end",
-+ testAttribute: OtherHeader,
-+ op: EndsWith,
-+ customHeader: "X-Duplicated-Header",
-+ count: 0},
-+ { testString: "handled.",
-+ testAttribute: OtherHeader,
-+ op: EndsWith,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "one value",
-+ testAttribute: OtherHeader,
-+ op: EndsWith,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "third",
-+ testAttribute: OtherHeader,
-+ op: BeginsWith,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+ { testString: "This is",
-+ testAttribute: OtherHeader,
-+ op: BeginsWith,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+
-+ { testString: "nothing",
-+ testAttribute: OtherHeader,
-+ op: Contains,
-+ customHeader: "X-Duplicated-Header",
-+ count: 0},
-+ { testString: "nothing",
-+ testAttribute: OtherHeader,
-+ op: DoesntContain,
-+ customHeader: "X-Duplicated-Header",
-+ count: 1},
-+
- // test accumulation of received header
- // only in first received
- { testString: "caspiaco",
- testAttribute: OtherHeader,
- op: Contains,
- customHeader: "Received",
- count: 1},
- // only in second
-@@ -123,16 +217,22 @@ var Tests =
- customHeader: "received",
- count: 1},
- // in neither
- { testString: "not there",
- testAttribute: OtherHeader,
- op: Contains,
- customHeader: "received",
- count: 0},
-+ // not on first line of received
-+ { testString: "m47LtAFJ007547",
-+ testAttribute: OtherHeader,
-+ op: Contains,
-+ customHeader: "received",
-+ count: 1},
-
- // test multiple line arbitrary headers
- // in the first line
- { testString: "SpamAssassin 3.2.3",
- testAttribute: OtherHeader,
- op: Contains,
- customHeader: "X-Spam-Checker-Version",
- count: 1},
-diff --git a/mailnews/test/data/bugmail12 b/mailnews/test/data/bugmail12
---- a/mailnews/test/data/bugmail12
-+++ b/mailnews/test/data/bugmail12
-@@ -49,16 +49,28 @@ X-Bugzilla-Component: MailNews: Filters
- X-Bugzilla-Keywords:
- X-Bugzilla-Severity: enhancement
- X-Bugzilla-Who: bugmail@example.org
- X-Bugzilla-Status: NEW
- X-Bugzilla-Priority: --
- X-Bugzilla-Assigned-To: nobody@mozilla.org
- X-Bugzilla-Target-Milestone: ---
- X-Bugzilla-Changed-Fields: Blocks
-+X-Duplicated-Header: one value
-+X-Duplicated-Header: second
-+X-Duplicated-Header: third value for test purposes
-+X-Duplicated-Header: multiline value
-+ that needs to be
-+ handled.
-+X-Duplicated-Header: here comes a continuation line
-+ that contains the word 'fifth' we're looking for
-+ and then another one
-+X-Duplicated-Header: This is
-+ the end
-+ my friend
- In-Reply-To: <bug-397009-254728@https.bugzilla.mozilla.org/>
- References: <bug-397009-254728@https.bugzilla.mozilla.org/>
- X-Priority: 4
- Content-Type: text/plain; charset="UTF-8"
- MIME-Version: 1.0
- X-user: ::::63.245.208.146:host29.hostmonster.com::::::
- DomainKey-Status: no signature
-
-
-
-# HG changeset patch
-# User Arkadiusz Miskiewicz <arekm@maven.pl>
-# Date 1535318767 -7200
-# Node ID 9289d8a37eb2dae82f2ecc0076ec8396126a5526
-# Parent ce828f6cf25697596ec928ee99dfc07bdf0ce006
-Bug 678322 - Follow-up: fix logic error and cater for IMAP case where headers are not available. r=jorgk
-
-diff --git a/mailnews/base/search/src/nsMsgSearchTerm.cpp b/mailnews/base/search/src/nsMsgSearchTerm.cpp
---- a/mailnews/base/search/src/nsMsgSearchTerm.cpp
-+++ b/mailnews/base/search/src/nsMsgSearchTerm.cpp
-@@ -764,20 +764,21 @@ nsresult nsMsgSearchTerm::MatchArbitrary
- bool result = !matchExpected;
-
- nsCString dbHdrValue;
- msg->GetStringProperty(m_arbitraryHeader.get(), getter_Copies(dbHdrValue));
- if (!dbHdrValue.IsEmpty()) {
- // Match value with the other info. It doesn't check all header occurences,
- // so we use it only if we match and do line by line headers parsing otherwise.
- rv = MatchRfc2047String(dbHdrValue, charset, charsetOverride, pResult);
-- if (*pResult)
-+ if (matchExpected == *pResult)
- return rv;
-
-- rv = NS_OK;
-+ // Preset result in case we don't have access to the headers, like for IMAP.
-+ result = *pResult;
- }
-
- nsMsgBodyHandler *bodyHandler = new nsMsgBodyHandler(scope, length, msg, db,
- headers, headersSize,
- ForFiltering);
- bodyHandler->SetStripHeaders (false);
-
- nsCString headerFullValue; // Contains matched header value accumulated over multiple lines.
-
-
-# HG changeset patch
-# User Arkadiusz Miskiewicz <arekm@maven.pl>
-# Date 1535451947 -7200
-# Node ID a09a76a92abfcfa36c00727cef84293175ade116
-# Parent ff6f03d6611e158e2d8e951d9fed621dfd90821f
-Bug 678322 - Follow-up: more tests including matching based on message string properties. r=jorgk
-
-nsMsgSearchTerm::MatchArbitraryHeader() can do matching using message string
-properties and by matching headers line by line.
-
-test_search.js was only testing second case for duplicated headers. Now we also test
-first case. Also added more tests for second case.
-
-diff --git a/mailnews/base/test/unit/test_search.js b/mailnews/base/test/unit/test_search.js
---- a/mailnews/base/test/unit/test_search.js
-+++ b/mailnews/base/test/unit/test_search.js
-@@ -125,16 +125,36 @@ var Tests =
- op: Is,
- customHeader: "X-Duplicated-Header",
- count: 1},
- { testString: "multiline value that needs to be handled.",
- testAttribute: OtherHeader,
- op: Is,
- customHeader: "X-Duplicated-Header",
- count: 1},
-+ { testString: "one value",
-+ testAttribute: OtherHeader,
-+ op: Isnt,
-+ customHeader: "X-Duplicated-Header",
-+ count: 0},
-+ { testString: "second",
-+ testAttribute: OtherHeader,
-+ op: Isnt,
-+ customHeader: "X-Duplicated-Header",
-+ count: 0},
-+ { testString: "third value for test purposes",
-+ testAttribute: OtherHeader,
-+ op: Isnt,
-+ customHeader: "X-Duplicated-Header",
-+ count: 0},
-+ { testString: "multiline value that needs to be handled.",
-+ testAttribute: OtherHeader,
-+ op: Isnt,
-+ customHeader: "X-Duplicated-Header",
-+ count: 0},
-
- { testString: "one",
- testAttribute: OtherHeader,
- op: Contains,
- customHeader: "X-Duplicated-Header",
- count: 1},
- { testString: "second",
- testAttribute: OtherHeader,
-@@ -198,16 +218,57 @@ var Tests =
- customHeader: "X-Duplicated-Header",
- count: 0},
- { testString: "nothing",
- testAttribute: OtherHeader,
- op: DoesntContain,
- customHeader: "X-Duplicated-Header",
- count: 1},
-
-+ { testString: "this header tests DB string properties",
-+ testAttribute: OtherHeader,
-+ op: Is,
-+ customHeader: "X-Duplicated-Header-DB",
-+ count: 1},
-+ { testString: "which can be handled",
-+ testAttribute: OtherHeader,
-+ op: Is,
-+ customHeader: "X-Duplicated-Header-DB",
-+ count: 1},
-+ { testString: "differently than X-Duplicated-Header, so better test it",
-+ testAttribute: OtherHeader,
-+ op: Is,
-+ customHeader: "X-Duplicated-Header-DB",
-+ count: 1},
-+ { testString: "this header tests DB string properties",
-+ testAttribute: OtherHeader,
-+ op: Isnt,
-+ customHeader: "X-Duplicated-Header-DB",
-+ count: 0},
-+ { testString: "which can be handled",
-+ testAttribute: OtherHeader,
-+ op: Isnt,
-+ customHeader: "X-Duplicated-Header-DB",
-+ count: 0},
-+ { testString: "differently than X-Duplicated-Header, so better test it",
-+ testAttribute: OtherHeader,
-+ op: Isnt,
-+ customHeader: "X-Duplicated-Header-DB",
-+ count: 0},
-+ { testString: "than X-Duplicated-Header,",
-+ testAttribute: OtherHeader,
-+ op: Contains,
-+ customHeader: "X-Duplicated-Header-DB",
-+ count: 1},
-+ { testString: "than X-Duplicated-Header, so",
-+ testAttribute: OtherHeader,
-+ op: DoesntContain,
-+ customHeader: "X-Duplicated-Header-DB",
-+ count: 0},
-+
- // test accumulation of received header
- // only in first received
- { testString: "caspiaco",
- testAttribute: OtherHeader,
- op: Contains,
- customHeader: "Received",
- count: 1},
- // only in second
-@@ -372,17 +433,17 @@ function run_test()
- OnProgress: function(aProgress, aProgressMax) {},
- SetMessageKey: function(aKey) {},
- SetMessageId: function(aMessageId) {},
- OnStopCopy: function(aStatus) { testSearch();}
- };
-
- // set value of headers we want parsed into the db
- Services.prefs.setCharPref("mailnews.customDBHeaders",
-- "oneLiner twoLiner threeLiner noSpace withSpace");
-+ "oneLiner twoLiner threeLiner noSpace withSpace X-Duplicated-Header-DB");
- // Get a message into the local filestore. function testSearch() continues
- // the testing after the copy.
- var bugmail12 = do_get_file("../../../data/bugmail12");
- do_test_pending();
- MailServices.copy.CopyFileMessage(bugmail12, localAccountUtils.inboxFolder, null,
- false, 0, "", copyListener, null);
- }
-
-diff --git a/mailnews/test/data/bugmail12 b/mailnews/test/data/bugmail12
---- a/mailnews/test/data/bugmail12
-+++ b/mailnews/test/data/bugmail12
-@@ -61,16 +61,22 @@ X-Duplicated-Header: multiline value
- that needs to be
- handled.
- X-Duplicated-Header: here comes a continuation line
- that contains the word 'fifth' we're looking for
- and then another one
- X-Duplicated-Header: This is
- the end
- my friend
-+X-Duplicated-Header-DB: this header
-+ tests DB
-+ string properties
-+X-Duplicated-Header-DB: which can be handled
-+X-Duplicated-Header-DB: differently than
-+ X-Duplicated-Header, so better test it
- In-Reply-To: <bug-397009-254728@https.bugzilla.mozilla.org/>
- References: <bug-397009-254728@https.bugzilla.mozilla.org/>
- X-Priority: 4
- Content-Type: text/plain; charset="UTF-8"
- MIME-Version: 1.0
- X-user: ::::63.245.208.146:host29.hostmonster.com::::::
- DomainKey-Status: no signature
-
-
Summary: Thunderbird - email client
Summary(pl.UTF-8): Thunderbird - klient poczty
Name: thunderbird
-Version: 60.2.1
+Version: 60.3.0
Release: 1
License: MPL v2.0
Group: X11/Applications/Mail
Source0: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/source/%{name}-%{version}.source.tar.xz
-# Source0-md5: 821a046777c9874990820c785154a701
+# Source0-md5: 246090e1e31bda1985c21336e6655db0
Source1: %{name}.desktop
Source2: %{name}.sh
Source100: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/ar.xpi
-# Source100-md5: 0d3f75eeee9a94cd49f22c86b3d345c7
+# Source100-md5: 0b9dbae3aa4592596017a1dd0db97cd5
Source101: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/ast.xpi
-# Source101-md5: 45647cbcfb28ca61f635562553b0d87c
+# Source101-md5: 4a5ce0184221b2bf511135f9774ac3a0
Source102: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/be.xpi
-# Source102-md5: 2a46ec1cc52232cc83a79d89adae4ba8
+# Source102-md5: 70df5a7f3a19855d31741a86706f2de6
Source103: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/bg.xpi
-# Source103-md5: 20e9c0f4695651f5a67f48efefacc26f
+# Source103-md5: c5db1bcce715d43a9331361448dd55f3
Source104: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/br.xpi
-# Source104-md5: fb13f6ce837f13c49bc11c90f0cc466d
+# Source104-md5: 673403185b913193ca4fd1cdfadfe5e3
Source105: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/ca.xpi
-# Source105-md5: 1fe259155b0618746a52b10ad3a554b0
+# Source105-md5: ad572d5423e32728e0332cde3e2aa584
Source106: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/cs.xpi
-# Source106-md5: c723fd741f4168602f6eaf9e7cdc3f88
+# Source106-md5: 1fe2ebfcfe472b3393f45d5e58d599b7
Source107: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/cy.xpi
-# Source107-md5: ae56c2a334910438a2a2d53448ede820
+# Source107-md5: 8bf3ea2c73c5b613914fdc685a45da7d
Source108: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/da.xpi
-# Source108-md5: c5134543d22310db615909fce0a1ebb6
+# Source108-md5: da0c90ef7b437020d50419653eed63c1
Source109: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/de.xpi
-# Source109-md5: edf5c9ce180c6d32eb2eef8482c47032
+# Source109-md5: 1eb1814af362b7960bf21596bfb3f4b8
Source110: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/dsb.xpi
-# Source110-md5: 99a22acb97f261a51a8b98d5d417df91
+# Source110-md5: d81db70b4cb64f0b45e2591f73656f23
Source111: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/el.xpi
-# Source111-md5: 19e84ea821e3748a2cbf494d4af2c51a
+# Source111-md5: b61c3cd8ac9d3840974e5db967a8e10c
Source112: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/en-GB.xpi
-# Source112-md5: 36f8807f1cfe5a6ad6716711d61d1d19
+# Source112-md5: 06680931b3ca711ba76f203ec30e7dda
Source113: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/en-US.xpi
-# Source113-md5: 297b53441e4b3b774819a910c18fe675
+# Source113-md5: b03db6f8d4ef4f8a765ea2ee19ef108b
Source114: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/es-AR.xpi
-# Source114-md5: 4ba7d1e18e2cec1de9dba290c5e8b0a5
+# Source114-md5: a431fc8fa7d8b93ebe281fe8b11518ca
Source115: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/es-ES.xpi
-# Source115-md5: 0bd53361ff8a0440e8c75273f1ff541d
+# Source115-md5: 196865dcf4b163ac10e67325c2b5a16a
Source116: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/et.xpi
-# Source116-md5: 94d1732902266f8159a9bffe64c398b7
+# Source116-md5: 348f4bd760a7a49bb9aef8ac4caa7d6f
Source117: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/eu.xpi
-# Source117-md5: b8bd9e2b30deeeb56f6f6cd20673711d
+# Source117-md5: 2abdd16fc97c4a2b91e61d123a4e91a8
Source118: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/fi.xpi
-# Source118-md5: a3c96699f00811a84bb57c9a23884730
+# Source118-md5: 669c5c9181efc61653f5128656bc1610
Source119: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/fr.xpi
-# Source119-md5: 0c27b54bdc7d9aabd53a17be765974d2
+# Source119-md5: d77198a5b3dcf8cfb322e4c9a0d13b70
Source120: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/fy-NL.xpi
-# Source120-md5: 5fe2480b49218739a9f52cb8ccfefc17
+# Source120-md5: be52e7177ae6fb198b8f4b6fe7e24c5d
Source121: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/ga-IE.xpi
-# Source121-md5: 131fd1aaba1298f9f8cac34f2efeb735
+# Source121-md5: 00c3ce20718917a133b94f6300cd15e9
Source122: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/gd.xpi
-# Source122-md5: 98f6d073e11151169b23415ddd24c5bd
+# Source122-md5: 3a6b04e497b0b9e50b2c2f1f6c881524
Source123: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/gl.xpi
-# Source123-md5: 09c14082a44f517c9cddbdd7fb3b4892
+# Source123-md5: e6e00a428f48cd73d3ed2aab067e5025
Source124: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/he.xpi
-# Source124-md5: 536df6e4fd35324f644a03b923d79b69
+# Source124-md5: 4d4ddee1902f51ff984e00267178d1cf
Source125: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/hr.xpi
-# Source125-md5: 9f54702ae64bea7f8e947055bf987cd5
+# Source125-md5: e2b6769bfb6aec4460fd7c8e8bf45a0e
Source126: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/hsb.xpi
-# Source126-md5: 96d13b939ddf9db9932585a602db8898
+# Source126-md5: 764592b7daead502c05fa48c3c18a61d
Source127: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/hu.xpi
-# Source127-md5: 9fcde632a1b3f8de6ffbcbe8775ca6a3
+# Source127-md5: e2e2d422c65d16cef70946bd41b1c07c
Source128: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/hy-AM.xpi
-# Source128-md5: e241527bf6b2932c510290024dfaebe6
+# Source128-md5: 4561ff63736e041c161d8027d82b62fd
Source129: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/id.xpi
-# Source129-md5: ef53e7cec11f49f2ce551bb0d2270214
+# Source129-md5: 1e99048f510c68fd67dfccdff1229581
Source130: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/is.xpi
-# Source130-md5: b90a51e6fa3ff5e3e42ae16f8d0efcd2
+# Source130-md5: 9879715abf7fcb8d8e3cb5bf8a2b47a6
Source131: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/it.xpi
-# Source131-md5: 166ad245d295ab6879258c2718ce4e5d
+# Source131-md5: d043eebeb2fc7e5027794cdf25e4b193
Source132: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/ja.xpi
-# Source132-md5: 2f3c6e0ec6c22e8652a23a7c4e2cf6a8
+# Source132-md5: 29d0231c9bde3c4ef964914dc5a22416
Source133: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/kab.xpi
-# Source133-md5: 9ae4432713d17cd4773f96ae69038532
+# Source133-md5: 4ace8819d0496f4c282174ed78122a5f
Source134: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/kk.xpi
-# Source134-md5: 3be7a6b10dac8b67ab902d40ee005ad0
+# Source134-md5: 46e3332d4fd9b3f617ab1f07de872f17
Source135: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/ko.xpi
-# Source135-md5: 912724358f6f51e0df4d55f1ccad66e5
+# Source135-md5: 4a99e04364521bd85fbd93050ce3bc55
Source136: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/lt.xpi
-# Source136-md5: f9ffd6b5dbf64c3ce008028ea7a54e95
+# Source136-md5: 32dbc0a2904911dd24e94c9006a64cb6
Source137: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/ms.xpi
-# Source137-md5: ddd013901f59de2e6c28c34157635e48
+# Source137-md5: 55f4f1027b93fd3312b2ce55af016bf1
Source138: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/nb-NO.xpi
-# Source138-md5: 9754f40bbae1585ad430cc244ef76552
+# Source138-md5: 383faa86d0630b22eb0051e67364f683
Source139: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/nl.xpi
-# Source139-md5: 57a1a7e778b2752900ccd83c8efdadc1
+# Source139-md5: 26e5eae539842f589f7e64928615340a
Source140: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/nn-NO.xpi
-# Source140-md5: 27a3597bdd8afeb1571a64068839c338
+# Source140-md5: 536db55bfd04d4867b7febe59017aa67
Source141: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/pl.xpi
-# Source141-md5: a1c31b2d34258d34066686da7f366935
+# Source141-md5: 4e1e40315c2c03c0b353dc18fabfe684
Source142: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/pt-BR.xpi
-# Source142-md5: e020e846c42f23cdcd579f1ca6bfa840
+# Source142-md5: 03fed1f396d513a1385badf1adc28d36
Source143: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/pt-PT.xpi
-# Source143-md5: 60e6c875d7c5225e322d46c081827fb6
+# Source143-md5: 812c517d5e6bc1b7cdef3c34e0e9c68c
Source144: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/rm.xpi
-# Source144-md5: 50b1241feec71d2bf487af85a5003d96
+# Source144-md5: 4e5ba5783b92a7c8e1de4abb3c1dc865
Source145: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/ro.xpi
-# Source145-md5: 2b949caddec8141a043e211ffd2272ba
+# Source145-md5: 99a0bbcd6a0bf5cc09519aa46afcd31f
Source146: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/ru.xpi
-# Source146-md5: c38d2b8cd34ca602e20c75be38209bc2
+# Source146-md5: 754fee8afbefe78e9e10b1cc659e5933
Source147: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/si.xpi
-# Source147-md5: 5e3021e17806548b8ef16f8bbfcc5dde
+# Source147-md5: d73340b10ac5e8f47804e1d1b8310345
Source148: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/sk.xpi
-# Source148-md5: 7acd96d00d81967bcb7faa44bb2be9c9
+# Source148-md5: ff6acaef96c9a0044c94f404347e2b77
Source149: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/sl.xpi
-# Source149-md5: 7cb506da5ba8deaf6815661cbff8b4c3
+# Source149-md5: 455e78953381a5e8b4b6c70f2f3b1fd8
Source150: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/sq.xpi
-# Source150-md5: 1a06d8103fabf48bbbb2a657ce87d5f3
+# Source150-md5: 7f041dd8e196ab18a75ca5d6ad9d4596
Source151: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/sr.xpi
-# Source151-md5: 5f653db03d5e15170af210fe65674850
+# Source151-md5: de915d74545832c541d49fa01cf00731
Source152: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/sv-SE.xpi
-# Source152-md5: 65c359fcaa1f69c9e2641b73510a4896
+# Source152-md5: 390485baf39168fd2cc5b119d415c734
Source153: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/tr.xpi
-# Source153-md5: 8e0eb674f379c87c0b5d36ad00f18af1
+# Source153-md5: e1fe91a6a0baf2390b41d67eb0b0e985
Source154: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/uk.xpi
-# Source154-md5: ea54e3f8d8423e3327f36515f73099b4
+# Source154-md5: b1803c3368ffe2c5f4987898e19cb475
Source155: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/vi.xpi
-# Source155-md5: 7c611636f2d3941903924f02086fbb9e
+# Source155-md5: 48dd87261ffd6658c6503b9dd79e7841
Source156: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/zh-CN.xpi
-# Source156-md5: b48c4fb2764cfb0c48986235d86c7910
+# Source156-md5: 37f0d5973fa484e29021e322c45353c2
Source157: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/linux-i686/xpi/zh-TW.xpi
-# Source157-md5: ac14a186bdb50df36da9dd645541c355
+# Source157-md5: 33e194c2f4ebcfbb40ea981f13313376
Patch0: prefs.patch
Patch1: no-subshell.patch
Patch2: enable-addons.patch
-Patch3: bug-678322.patch
-Patch4: rust-target.patch
URL: http://www.mozilla.org/projects/thunderbird/
BuildRequires: alsa-lib-devel
BuildRequires: autoconf2_13 >= 2.13
%patch0 -p1
%patch1 -p1
%patch2 -p0
-cd comm
-%patch3 -p1
-cd ..
-%patch4 -p1
%build
cp -p %{_datadir}/automake/config.* build/autoconf