summaryrefslogtreecommitdiff
path: root/libre/icedove-libre
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-05-31 16:24:59 +0000
committerroot <root@rshg054.dnsready.net>2012-05-31 16:24:59 +0000
commitf5a8de28b86c2c838a28e79aa54f8b4c3fbd869e (patch)
tree26873b23c15ea28962e55ab4dc7ae94b468089cf /libre/icedove-libre
parentf1ae949e08a764ac063703dc9bb7f0afd7c16e96 (diff)
Thu May 31 16:24:59 UTC 2012
Diffstat (limited to 'libre/icedove-libre')
-rw-r--r--libre/icedove-libre/.directory2
-rw-r--r--libre/icedove-libre/PKGBUILD95
-rw-r--r--libre/icedove-libre/channel-prefs.js9
-rw-r--r--libre/icedove-libre/clrf.patch260
-rw-r--r--libre/icedove-libre/gcc47.patch63
-rw-r--r--libre/icedove-libre/icedove.desktop13
-rw-r--r--libre/icedove-libre/icedove.install12
-rw-r--r--libre/icedove-libre/makefile.patch46
-rw-r--r--libre/icedove-libre/mozconfig64
-rw-r--r--libre/icedove-libre/vendor.js12
10 files changed, 576 insertions, 0 deletions
diff --git a/libre/icedove-libre/.directory b/libre/icedove-libre/.directory
new file mode 100644
index 000000000..ef6a156b3
--- /dev/null
+++ b/libre/icedove-libre/.directory
@@ -0,0 +1,2 @@
+[Dolphin]
+Timestamp=2012,5,10,17,26,4
diff --git a/libre/icedove-libre/PKGBUILD b/libre/icedove-libre/PKGBUILD
new file mode 100644
index 000000000..6bd50cd47
--- /dev/null
+++ b/libre/icedove-libre/PKGBUILD
@@ -0,0 +1,95 @@
+# Maintainer : Márcio Silva <coadde@adinet.com.uy>
+# Maintainer : André Silva <andre.paulista@adinet.com.uy>
+
+# We're getting this from Debian Experimental
+_debname=icedove
+_debver=11.0
+_debrel=1
+_debrepo=http://ftp.debian.org/debian/pool/main/
+debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
+
+_pkgname=${_debname}
+pkgname=${_debname}-libre
+pkgver=${_debver}.${_debrel}
+pkgrel=1
+pkgdesc="A libre version of Debian Icedove, the Standalone Mail/News reader based on Mozilla Thunderbird."
+arch=('i586' 'i686' 'x86_64' 'mips64el')
+license=('GPL2' 'MPL' 'LGPL')
+url="http://packages.debian.org/source/experimental/${_pkgname}"
+depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'mozilla-searchplugins' 'nss' 'sqlite' 'startup-notification')
+makedepends=('unzip-libre' 'zip' 'pkg-config' 'python2' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13' 'quilt')
+optdepends=('libcanberra: for sound support')
+replaces=('thunderbird')
+conflicts=('thunderbird')
+provides=('thunderbird')
+install=$_pkgname.install
+source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
+ "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.debian.tar.gz"
+ mozconfig
+ channel-prefs.js
+ vendor.js
+ gcc47.patch
+ clrf.patch
+ makefile.patch
+ ${_pkgname}.desktop)
+md5sums=('0d4aaf892cd1cbf9bda38928947025fe'
+ 'd4401c080fe5190e8bb1326f10808231'
+ 'd6d58d3104a44624e0a3d227cdf1c211'
+ '476ec205162340fb0679f522c9d31c3b'
+ '4eecc4fc5aafaf0da651a09eadc90bee'
+ '94d5cd599ccc4438f192d8daabf98b6a'
+ 'c395d443a8c4c16880c7322bcf174743'
+ 'c4ed43e85945e180a89cce03e45ec62c'
+ 'e785e0c267f4435ae1a9aa0b03bcacfb')
+
+build() {
+ export QUILT_PATCHES=debian/patches
+ export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
+ export QUILT_DIFF_ARGS='--no-timestamps'
+ export LDFLAGS="${LDFLAGS} -Wl,--as-needed,-rpath,/usr/lib/${_pkgname}"
+ export PYTHON="/usr/bin/python2"
+ export DEBIAN_BUILD="comm-release"
+ mv debian "${srcdir}/${DEBIAN_BUILD}"
+ cd "${srcdir}/${DEBIAN_BUILD}"
+ mv debian/${_pkgname}-branding "${srcdir}/${DEBIAN_BUILD}/mail/branding/${_pkgname}"
+ cp -a debian/app-icons/${_pkgname}big.svg debian/app-icons/${_pkgname}_icon.svg
+ for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
+ install -Dm644 "debian/app-icons/${_pkgname}${i/x*/}.png" "${srcdir}/${DEBIAN_BUILD}/mail/branding/${_pkgname}/mailicon${i/x*/}.png"
+ done
+ for i in 48x48 64x64; do
+ install -Dm644 "debian/app-icons/${_pkgname}${i/x*/}.png" "${srcdir}/${DEBIAN_BUILD}/mail/branding/${_pkgname}/content/icon${i/x*/}.png"
+ done
+ quilt push -av
+
+ patch -Np1 -i "$srcdir/gcc47.patch"
+ patch -Np1 -i "$srcdir/clrf.patch"
+ patch -Np1 -i "$srcdir/makefile.patch"
+
+ cp "${srcdir}/mozconfig" .mozconfig
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="${MAKEFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${DEBIAN_BUILD}"
+
+ make -j1 -f client.mk DESTDIR="${pkgdir}" install
+
+ install -m644 "${srcdir}/vendor.js" "${pkgdir}/usr/lib/${_pkgname}/defaults/pref"
+ # Recommend free addons
+ install -m644 "${srcdir}/channel-prefs.js" "${pkgdir}/usr/lib/${_pkgname}/defaults/pref"
+
+ for i in 16x16 22x22 24x24 32x32 48x48 64x64 128x128 256x256; do
+ install -Dm644 "debian/app-icons/${_pkgname}${i/x*/}.png" "${pkgdir}/usr/share/icons/hicolor/$i/apps/${_pkgname}.png"
+ done
+ install -Dm644 "debian/app-icons/${_pkgname}_icon.svg" "${pkgdir}/usr/share/icons/hicolor/scalable/apps/${_pkgname}.svg"
+
+ install -Dm644 "$srcdir/${_pkgname}.desktop" \
+ "$pkgdir/usr/share/applications/${_pkgname}.desktop"
+
+ rm -rf "${pkgdir}"/usr/lib/${_pkgname}/{dictionaries,hyphenation,searchplugins}
+ ln -sf /usr/share/hunspell "${pkgdir}/usr/lib/${_pkgname}/dictionaries"
+ ln -sf /usr/share/hyphen "${pkgdir}/usr/lib/${_pkgname}/hyphenation"
+ ln -sf /usr/lib/mozilla/searchplugins "${pkgdir}/usr/lib/${_pkgname}/searchplugins"
+ # We don't want the development stuff
+ rm -r "${pkgdir}"/usr/{include,lib/$_pkgname-devel,share/idl}
+}
diff --git a/libre/icedove-libre/channel-prefs.js b/libre/icedove-libre/channel-prefs.js
new file mode 100644
index 000000000..13b1ba388
--- /dev/null
+++ b/libre/icedove-libre/channel-prefs.js
@@ -0,0 +1,9 @@
+//@line 2 "/build/src/comm-release/mail/app/profile/channel-prefs.js"
+pref("app.update.channel", "default");
+
+//Recommend free addons
+pref("extensions.getAddons.get.url", "http://www.gnu.org/software/gnuzilla/addons.html");
+pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
+pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html");
+pref("extensions.getMoreThemesURL", "http://www.gnu.org/software/gnuzilla/addons.html");
+pref("extensions.webservice.discoverURL", "http://www.gnu.org/software/gnuzilla/addons.html");
diff --git a/libre/icedove-libre/clrf.patch b/libre/icedove-libre/clrf.patch
new file mode 100644
index 000000000..375708ac4
--- /dev/null
+++ b/libre/icedove-libre/clrf.patch
@@ -0,0 +1,260 @@
+diff -Nur comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp
+--- comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-03-12 23:37:12.000000000 -0300
++++ comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-05-07 12:33:58.517612453 -0300
+@@ -688,7 +688,7 @@
+ 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;
+ }
+diff -Nur comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp
+--- comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-05-07 12:41:08.003264793 -0300
+@@ -753,7 +753,7 @@
+ }
+ }
+ }
+-#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.
+@@ -1203,7 +1203,7 @@
+ // 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;
+ }
+ }
+diff -Nur comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp comm-release/mailnews/compose/src/nsSmtpProtocol.cpp
+--- comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/compose/src/nsSmtpProtocol.cpp 2012-05-07 12:44:43.127347489 -0300
+@@ -1722,7 +1722,7 @@
+ {
+ m_sendDone = PR_TRUE;
+ nsCOMPtr<nsIURI> 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);
+@@ -1969,7 +1969,7 @@
+ {
+ nsCOMPtr<nsIURI> 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;
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp comm-release/mailnews/imap/src/nsImapMailFolder.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/imap/src/nsImapMailFolder.cpp 2012-05-07 12:48:29.417179064 -0300
+@@ -8298,7 +8298,7 @@
+ 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
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp comm-release/mailnews/imap/src/nsImapProtocol.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/imap/src/nsImapProtocol.cpp 2012-05-07 15:45:58.551202719 -0300
+@@ -1410,7 +1410,7 @@
+ {
+ // PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages();
+ nsCAutoString commandBuffer(GetServerCommandTag());
+- commandBuffer.Append(" IDLE"CRLF);
++ commandBuffer.Append(" IDLE" CRLF);
+
+ do
+ {
+@@ -3290,7 +3290,7 @@
+ commandString.Append(messageIds);
+ commandString.Append(" (");
+ commandString.Append(attribute);
+- commandString.Append(")"CRLF);
++ commandString.Append(")" CRLF);
+ nsresult rv = SendData(commandString.get());
+
+ if (NS_SUCCEEDED(rv))
+@@ -5283,7 +5283,7 @@
+
+ IncrementCommandTagNumber();
+ nsCAutoString command(GetServerCommandTag());
+- command.Append(" expunge"CRLF);
++ command.Append(" expunge" CRLF);
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -5359,7 +5359,7 @@
+ command.Append(gAppName);
+ command.Append("\" \"version\" \"");
+ command.Append(gAppVersion);
+- command.Append("\")"CRLF);
++ command.Append("\")" CRLF);
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -5816,7 +5816,7 @@
+ nsCAutoString correctedPassword;
+ EscapeUserNamePasswordString(password.get(), &correctedPassword);
+ command.Append(correctedPassword);
+- command.Append("\""CRLF);
++ command.Append("\"" CRLF);
+ rv = SendData(command.get(), PR_TRUE /* suppress logging */);
+ NS_ENSURE_SUCCESS(rv, rv);
+ ParseIMAPandCheckForNewMail();
+@@ -7446,7 +7446,7 @@
+ nsCString command(GetServerCommandTag());
+ command += " create \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if(NS_SUCCEEDED(rv))
+@@ -7549,7 +7549,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " lsub \"\" \"";
+ command += escapedPattern;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ PR_Free(boxnameWithOnlineDirectory);
+
+@@ -7578,7 +7578,7 @@
+ command += useXLIST ?
+ " xlist \"\" \"" : " list \"\" \"";
+ command += escapedPattern;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ PR_Free(boxnameWithOnlineDirectory);
+
+@@ -7599,7 +7599,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " subscribe \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -7617,7 +7617,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " unsubscribe \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -7631,7 +7631,7 @@
+ if (m_urlInProgress)
+ return;
+ nsCAutoString command (GetServerCommandTag());
+- command += " IDLE"CRLF;
++ command += " IDLE" CRLF;
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+ {
+@@ -7658,7 +7658,7 @@
+ nsCOMPtr <nsIAsyncInputStream> 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);
+@@ -7727,8 +7727,8 @@
+ 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
+ {
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-05-07 12:57:22.050615120 -0300
+@@ -185,7 +185,7 @@
+
+ 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 = PR_FALSE;
+
+diff -Nur comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp comm-release/mailnews/local/src/nsPop3Protocol.cpp
+--- comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/local/src/nsPop3Protocol.cpp 2012-05-07 12:59:45.857182813 -0300
+@@ -2483,7 +2483,7 @@
+ 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);
+ }
+
+
+diff -Nur comm-release.orig/mailnews/mime/src/mimedrft.cpp comm-release/mailnews/mime/src/mimedrft.cpp
+--- comm-release.orig/mailnews/mime/src/mimedrft.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/mime/src/mimedrft.cpp 2012-05-07 13:01:42.912022177 -0300
+@@ -1473,7 +1473,7 @@
+ *newbody = 0;
+ PL_strcatn(newbody, newbodylen, "<PRE>");
+ PL_strcatn(newbody, newbodylen, body);
+- PL_strcatn(newbody, newbodylen, "</PRE>"CRLF);
++ PL_strcatn(newbody, newbodylen, "</PRE>" CRLF);
+ PR_Free(body);
+ body = newbody;
+ }
+diff -Nur comm-release.orig/mailnews/mime/src/mimemult.cpp comm-release/mailnews/mime/src/mimemult.cpp
+--- comm-release.orig/mailnews/mime/src/mimemult.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/mime/src/mimemult.cpp 2012-05-07 13:04:41.511265477 -0300
+@@ -280,7 +280,7 @@
+ 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));
+@@ -293,10 +293,10 @@
+ status = MimeWriteAString(obj, header);
+ 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];
+@@ -306,8 +306,8 @@
+ "%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, PR_FALSE);
+ }
+ PRInt32 old_nchildren = container->nchildren;
diff --git a/libre/icedove-libre/gcc47.patch b/libre/icedove-libre/gcc47.patch
new file mode 100644
index 000000000..115d65131
--- /dev/null
+++ b/libre/icedove-libre/gcc47.patch
@@ -0,0 +1,63 @@
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util.cc comm-release/mozilla/ipc/chromium/src/base/file_util.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-03 18:38:11.474783536 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -8,7 +8,7 @@
+ #include <io.h>
+ #endif
+ #include <stdio.h>
+-#if defined(ANDROID)
++#if defined(ANDROID) || defined(OS_POSIX)
+ #include <unistd.h>
+ #endif
+
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-03 18:38:11.381450924 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -5,6 +5,9 @@
+ #include "base/file_util.h"
+
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <string>
+ #include <vector>
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-03 18:38:11.438117153 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -6,6 +6,9 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include "eintr_wrapper.h"
+ #include "base/logging.h"
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc comm-release/mozilla/ipc/chromium/src/base/time_posix.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-03 18:38:11.418117308 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -14,6 +14,8 @@
+ #include <time.h>
+ #endif
+
++#include <unistd.h>
++
+ #include <limits>
+
+ #include "base/basictypes.h"
+diff -Nur comm-release.orig/mozilla/toolkit/crashreporter/client/Makefile.in comm-release/mozilla/toolkit/crashreporter/client/Makefile.in
+--- comm-release.orig/mozilla/toolkit/crashreporter/client/Makefile.in 2012-04-03 18:38:56.101105510 +0000
++++ comm-release/mozilla/toolkit/crashreporter/client/Makefile.in 2012-04-03 18:43:29.218995578 +0000
+@@ -69,6 +69,9 @@
+ $(STDCXX_COMPAT) \
+ $(NULL)
+
++# Needed for moz_free
++LIBS += -L$(LIBXUL_DIST)/lib -lmozalloc
++
+ ifeq ($(OS_ARCH),WINNT)
+ CPPSRCS += crashreporter_win.cpp
+ LIBS += \
diff --git a/libre/icedove-libre/icedove.desktop b/libre/icedove-libre/icedove.desktop
new file mode 100644
index 000000000..ef2cd76e9
--- /dev/null
+++ b/libre/icedove-libre/icedove.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Name=Icedove
+Comment=Mail & News Reader
+GenericName=Mail Client & News Reader
+Exec=icedove %u
+TryExec=icedove
+Icon=icedove
+Terminal=false
+Type=Application
+Categories=Network;Email;
+MimeType=message/rfc822;x-scheme-handler/mailto;
+StartupNotify=true
diff --git a/libre/icedove-libre/icedove.install b/libre/icedove-libre/icedove.install
new file mode 100644
index 000000000..4d4a283db
--- /dev/null
+++ b/libre/icedove-libre/icedove.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/icedove-libre/makefile.patch b/libre/icedove-libre/makefile.patch
new file mode 100644
index 000000000..8f8137bec
--- /dev/null
+++ b/libre/icedove-libre/makefile.patch
@@ -0,0 +1,46 @@
+diff -Nur comm-release.orig/mail/branding/icedove/Makefile.in comm-release/mail/branding/icedove/Makefile.in
+--- comm-release.orig/mail/branding/icedove/Makefile.in 2012-04-18 15:42:15.000000000 -0300
++++ comm-release/mail/branding/icedove/Makefile.in 2012-05-08 04:03:25.680643202 -0300
+@@ -38,11 +38,11 @@
+ # Branding Makefile for Icedove branding
+
+ DEPTH = ../../..
+-topsrcdir = ../../../
++topsrcdir = @top_srcdir@
+ srcdir = @srcdir@
+ VPATH = @srcdir@
+
+-include $(topsrcdir)/config/autoconf.mk
++include $(DEPTH)/config/autoconf.mk
+
+ DIRS = \
+ locales \
+@@ -50,7 +50,7 @@
+
+ PREF_JS_EXPORTS += $(srcdir)/thunderbird-branding.js
+
+-include $(DEPTH)/config/rules.mk
++include $(topsrcdir)/config/rules.mk
+
+ export::
+ $(NSINSTALL) -D $(DIST)/branding
+diff -Nur comm-release.orig/mail/branding/icedove/locales/Makefile.in comm-release/mail/branding/icedove/locales/Makefile.in
+--- comm-release.orig/mail/branding/icedove/locales/Makefile.in 2012-04-18 15:42:15.000000000 -0300
++++ comm-release/mail/branding/icedove/locales/Makefile.in 2012-05-08 05:32:57.481620942 -0300
+@@ -36,13 +36,13 @@
+ # ***** END LICENSE BLOCK *****
+
+ DEPTH = ../../../..
+-topsrcdir = ../../../..
++topsrcdir = @top_srcdir@
+ srcdir = @srcdir@
+ VPATH = @srcdir@
+ relativesrcdir = mail/branding/icedove/locales
+
+-include $(topsrcdir)/config/autoconf.mk
++include $(DEPTH)/config/autoconf.mk
+
+ DEFINES += -DAB_CD=$(AB_CD) -DMOZ_DISTRIBUTION_ID_UNQUOTED=$(MOZ_DISTRIBUTION_ID)
+
+-include $(DEPTH)/config/rules.mk
++include $(topsrcdir)/config/rules.mk
diff --git a/libre/icedove-libre/mozconfig b/libre/icedove-libre/mozconfig
new file mode 100644
index 000000000..58f8ce24f
--- /dev/null
+++ b/libre/icedove-libre/mozconfig
@@ -0,0 +1,64 @@
+mk_add_options MOZ_CO_PROJECT=mail
+ac_add_options --enable-application=mail
+
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+
+# System libraries
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --with-system-libvpx
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-ffi
+ac_add_options --enable-system-cairo
+ac_add_options --enable-system-pixman
+ac_add_options --with-pthreads
+
+# Features
+ac_add_options --enable-startup-notification
+ac_add_options --enable-gio
+
+ac_add_options --disable-gnomevfs
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
+ac_add_options --disable-tests
+ac_add_options --disable-mochitest
+ac_add_options --disable-installer
+
+# Optimization
+ac_add_options --enable-optimize
+
+export MOZILLA_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
+
+# Parabola
+export BUILD_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+
+# Debian
+export MAIL_PKG_SHARED=1
+mk_add_options MAIL_PKG_SHARED=1
+ac_add_options --disable-official-branding
+ac_add_options --with-branding=mail/branding/icedove
+ac_add_options --enable-extensions=default
+ac_add_options --with-default-mozilla-five-home=/usr/lib/icedove
+ac_add_options --disable-javaxpcom
+ac_add_options --disable-elf-dynstr-gc
+ac_add_options --disable-strip
+ac_add_options --disable-strip-libs
+ac_add_options --disable-install-strip
+ac_add_options --enable-pango
+ac_add_options --enable-xft
+ac_add_options --enable-xinerama
+ac_add_options --enable-svg
+ac_add_options --enable-svg-renderer=cairo
+ac_add_options --enable-canvas
+ac_add_options --enable-crypto
+ac_add_options --enable-shared-js
+ac_add_options --enable-readline
diff --git a/libre/icedove-libre/vendor.js b/libre/icedove-libre/vendor.js
new file mode 100644
index 000000000..279bdc158
--- /dev/null
+++ b/libre/icedove-libre/vendor.js
@@ -0,0 +1,12 @@
+// Forbid application updates
+lockPref("app.update.enabled", false);
+
+// Use LANG environment variable to choose locale
+pref("intl.locale.matchOS", true);
+
+// Disable default mailer checking.
+pref("mail.shell.checkDefaultMail", false);
+
+// Don't disable our bundled extensions in the application directory
+pref("extensions.autoDisableScopes", 11);
+pref("extensions.shownSelectionUI", true);