From 7a5e94066a2a2086d42d4f9faff921598724c114 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Tue, 14 Mar 2017 00:11:34 +0100 Subject: [PATCH] - up to 45.8.0 - does not build due to branding, follow https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=816679 and rename back to thunderbird --- bump-nss-req.patch | 22 ---- icedove-branding.patch | 6 +- icedove.spec | 31 ++--- mozilla-1269171-badalloc.patch | 212 +++++++++++++++++++++++++++++++++ system-mozldap.patch | 25 ---- system-virtualenv.patch | 12 -- 6 files changed, 226 insertions(+), 82 deletions(-) delete mode 100644 bump-nss-req.patch create mode 100644 mozilla-1269171-badalloc.patch delete mode 100644 system-mozldap.patch delete mode 100644 system-virtualenv.patch diff --git a/bump-nss-req.patch b/bump-nss-req.patch deleted file mode 100644 index a1d34f4..0000000 --- a/bump-nss-req.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- icedove-31.3.0/mozilla/mozilla/configure.in~ 2014-11-27 23:16:21.000000000 +0100 -+++ icedove-31.3.0/mozilla/mozilla/configure.in 2014-12-03 22:29:51.134278969 +0100 -@@ -3655,7 +3655,7 @@ - _USE_SYSTEM_NSS=1 ) - - if test -n "$_USE_SYSTEM_NSS"; then -- AM_PATH_NSS(3.19.2.1, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) -+ AM_PATH_NSS(3.20.0, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) - fi - - if test -n "$MOZ_NATIVE_NSS"; then ---- icedove-31.3.0/mozilla/mozilla/configure~ 2014-11-27 23:18:38.000000000 +0100 -+++ icedove-31.3.0/mozilla/mozilla/configure 2014-12-03 22:29:29.704278073 +0100 -@@ -15225,7 +15225,7 @@ - echo "$ac_t""no" 1>&6 - fi - -- min_nss_version=3.19.2.1 -+ min_nss_version=3.20.0 - echo $ac_n "checking for NSS - version >= $min_nss_version""... $ac_c" 1>&6 - echo "configure:15231: checking for NSS - version >= $min_nss_version" >&5 - diff --git a/icedove-branding.patch b/icedove-branding.patch index 88f0082..52b8bf8 100644 --- a/icedove-branding.patch +++ b/icedove-branding.patch @@ -60,17 +60,21 @@ // Show error messages in error console. pref("javascript.options.showInConsole", true); -@@ -178,18 +177,18 @@ pref("extensions.autoDisableScopes", 15); +@@ -178,20 +177,20 @@ pref("extensions.autoDisableScopes", 15); // Preferences for AMO integration pref("extensions.getAddons.cache.enabled", true); pref("extensions.getAddons.maxResults", 15); -pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/guid:%IDS%?src=thunderbird&appOS=%OS%&appVersion=%VERSION%"); -pref("extensions.getAddons.getWithPerformance.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/guid:%IDS%?src=thunderbird&appOS=%OS%&appVersion=%VERSION%&tMain=%TIME_MAIN%&tFirstPaint=%TIME_FIRST_PAINT%&tSessionRestored=%TIME_SESSION_RESTORED%"); +-pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/%APP%/"); +-pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/list/recommended/all/%MAX_RESULTS%/%OS%/%VERSION%?src=thunderbird"); -pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/search?q=%TERMS%"); -pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%?src=thunderbird"); -pref("extensions.webservice.discoverURL", "https://services.addons.mozilla.org/%LOCALE%/%APP%/discovery/pane/%VERSION%/%OS%"); +pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/%LOCALE%/thunderbird/api/%API_VERSION%/search/guid:%IDS%?src=thunderbird&appOS=%OS%&appVersion=%VERSION%"); +pref("extensions.getAddons.getWithPerformance.url", "https://services.addons.mozilla.org/%LOCALE%/thunderbird/api/%API_VERSION%/search/guid:%IDS%?src=thunderbird&appOS=%OS%&appVersion=%VERSION%&tMain=%TIME_MAIN%&tFirstPaint=%TIME_FIRST_PAINT%&tSessionRestored=%TIME_SESSION_RESTORED%"); ++pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/thunderbird/"); ++pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/thunderbird/api/%API_VERSION%/list/recommended/all/%MAX_RESULTS%/%OS%/%VERSION%?src=thunderbird"); +pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/thunderbird/search?q=%TERMS%"); +pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/thunderbird/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%?src=thunderbird"); +pref("extensions.webservice.discoverURL", "https://services.addons.mozilla.org/%LOCALE%/thunderbird/discovery/pane/%VERSION%/%OS%"); diff --git a/icedove.spec b/icedove.spec index c90efbd..8164f47 100644 --- a/icedove.spec +++ b/icedove.spec @@ -27,25 +27,22 @@ Summary: Icedove - email client Summary(pl.UTF-8): Icedove - klient poczty Name: icedove -Version: 38.5.0 -Release: 5 +Version: 45.8.0 +Release: 0.1 License: MPL v2.0 Group: X11/Applications/Mail -Source0: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/source/thunderbird-%{version}.source.tar.bz2 -# Source0-md5: 516ddb66f788ea7db48ed0d76f7a7ebc +Source0: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{version}/source/thunderbird-%{version}.source.tar.xz +# Source0-md5: 4e04b1618273f946f00f8ea547578895 Source2: %{name}-branding.tar.xz # Source2-md5: 66753bc5c924d7492b6b5c9bdc3e4b5b Source4: %{name}.desktop Source5: %{name}.sh Patch0: %{name}-branding.patch Patch2: %{name}-prefs.patch -Patch3: system-mozldap.patch Patch5: %{name}-extensiondir.patch Patch6: no-subshell.patch -# Edit patch below and restore --system-site-packages when system virtualenv gets 1.7 upgrade -Patch7: system-virtualenv.patch Patch8: enable-addons.patch -Patch9: bump-nss-req.patch +Patch9: mozilla-1269171-badalloc.patch URL: http://www.pld-linux.org/Packages/Icedove BuildRequires: GConf2-devel >= 1.2.1 BuildRequires: alsa-lib-devel @@ -122,7 +119,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _noautoreq libmozalloc.so libmozjs.so libxul.so %endif -%define topdir %{_builddir}/%{name}-%{version} +%define topdir %{_builddir}/thunderbird-%{version} %define objdir %{topdir}/obj-%{_target_cpu} %description @@ -147,25 +144,15 @@ Lightning to rozszerzenie do klienta poczty Icedove dodające funkcjonalność kalendarza. %prep -%setup -qc -%{__mv} comm-esr38 mozilla -%setup -q -T -D -a2 -cd mozilla +%setup -q -n thunderbird-%{version} -a2 %patch0 -p1 %patch2 -p1 -%patch3 -p1 %patch5 -p2 %patch6 -p1 -%patch7 -p1 %patch8 -p1 -%patch9 -p2 +%patch9 -p1 %build -cd mozilla -cp -f %{_datadir}/automake/config.* mozilla/build/autoconf -cp -f %{_datadir}/automake/config.* mozilla/nsprpub/build/autoconf -cp -f %{_datadir}/automake/config.* ldap/sdks/c-sdk/config/autoconf - cat << EOF > .mozconfig mk_add_options MOZ_OBJDIR=%{objdir} @@ -268,7 +255,7 @@ ac_add_options --with-system-zlib EOF mkdir -p %{objdir}/config -ln -s %{topdir}/mozilla/config/*.mk %{objdir}/config +ln -sf %{topdir}/mozilla/config/*.mk %{objdir}/config %{__make} -j1 -f client.mk build \ STRIP="/bin/true" \ diff --git a/mozilla-1269171-badalloc.patch b/mozilla-1269171-badalloc.patch new file mode 100644 index 0000000..150a3d7 --- /dev/null +++ b/mozilla-1269171-badalloc.patch @@ -0,0 +1,212 @@ +From: Jens Lody +Date: Thu, 16 Feb 2017 09:31:56 +0100 +Subject: Backport of fix for mozilla-bug 1269171, needed for gcc7. + +diff --git a/mozilla/config/gcc-stl-wrapper.template.h b/mozilla/config/gcc-stl-wrapper.template.h +--- a/mozilla/config/gcc-stl-wrapper.template.h ++++ b/mozilla/config/gcc-stl-wrapper.template.h +@@ -17,25 +17,6 @@ + // Silence "warning: #include_next is a GCC extension" + #pragma GCC system_header + +-// mozalloc.h wants ; break the cycle by always explicitly +-// including here. NB: this is a tad sneaky. Sez the gcc docs: +-// +-// `#include_next' does not distinguish between and "file" +-// inclusion, nor does it check that the file you specify has the +-// same name as the current file. It simply looks for the file +-// named, starting with the directory in the search path after the +-// one where the current file was found. +-#include_next +- +-// See if we're in code that can use mozalloc. NB: this duplicates +-// code in nscore.h because nscore.h pulls in prtypes.h, and chromium +-// can't build with that being included before base/basictypes.h. +-#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) +-# include "mozilla/mozalloc.h" +-#else +-# error "STL code can only be used with infallible ::operator new()" +-#endif +- + #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG) + // Enable checked iterators and other goodies + // +@@ -46,10 +27,34 @@ + // # define _GLIBCXX_DEBUG 1 + #endif + ++// Don't include mozalloc for cstdlib. See bug 1245076. ++#ifndef moz_dont_include_mozalloc_for_cstdlib ++# define moz_dont_include_mozalloc_for_cstdlib ++#endif ++ ++// Include mozalloc after the STL header and all other headers it includes ++// have been preprocessed. ++#if !defined(MOZ_INCLUDE_MOZALLOC_H) && \ ++ !defined(moz_dont_include_mozalloc_for_${HEADER}) ++# define MOZ_INCLUDE_MOZALLOC_H ++# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} ++#endif ++ + #pragma GCC visibility push(default) + #include_next <${HEADER}> + #pragma GCC visibility pop + ++#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} ++// See if we're in code that can use mozalloc. NB: this duplicates ++// code in nscore.h because nscore.h pulls in prtypes.h, and chromium ++// can't build with that being included before base/basictypes.h. ++# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) ++# include "mozilla/mozalloc.h" ++# else ++# error "STL code can only be used with infallible ::operator new()" ++# endif ++#endif ++ + // gcc calls a __throw_*() function from bits/functexcept.h when it + // wants to "throw an exception". functexcept exists nominally to + // support -fno-exceptions, but since we'll always use the system +--- a/mozilla/config/make-stl-wrappers.py ++++ b/mozilla/config/make-stl-wrappers.py +@@ -25,28 +25,26 @@ def header_path(header, compiler): + def is_comment(line): + return re.match(r'\s*#.*', line) + + def main(outdir, compiler, template_file, header_list_file): + if not os.path.isdir(outdir): + os.mkdir(outdir) + + template = open(template_file, 'r').read() +- path_to_new = header_path('new', compiler) + + for header in open(header_list_file, 'r'): + header = header.rstrip() + if 0 == len(header) or is_comment(header): + continue + + path = header_path(header, compiler) + with FileAvoidWrite(os.path.join(outdir, header)) as f: + f.write(string.Template(template).substitute(HEADER=header, +- HEADER_PATH=path, +- NEW_HEADER_PATH=path_to_new)) ++ HEADER_PATH=path)) + + + if __name__ == '__main__': + if 5 != len(sys.argv): + print("""Usage: + python {0} OUT_DIR ('msvc'|'gcc') TEMPLATE_FILE HEADER_LIST_FILE + """.format(sys.argv[0]), file=sys.stderr) + sys.exit(1) +diff --git a/mozilla/config/msvc-stl-wrapper.template.h b/mozilla/config/msvc-stl-wrapper.template.h +--- a/mozilla/config/msvc-stl-wrapper.template.h ++++ b/mozilla/config/msvc-stl-wrapper.template.h +@@ -3,45 +3,33 @@ + */ + /* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + #ifndef mozilla_${HEADER}_h + #define mozilla_${HEADER}_h + +-#ifndef MOZ_HAVE_INCLUDED_ALLOC +-#define MOZ_HAVE_INCLUDED_ALLOC +- + #if _HAS_EXCEPTIONS + # error "STL code can only be used with -fno-exceptions" + #endif + ++// Include mozalloc after the STL header and all other headers it includes ++// have been preprocessed. ++#if !defined(MOZ_INCLUDE_MOZALLOC_H) ++# define MOZ_INCLUDE_MOZALLOC_H ++# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} ++#endif ++ + // Code built with !_HAS_EXCEPTIONS calls std::_Throw(), but the win2k + // CRT doesn't export std::_Throw(). So we define it. + #ifndef mozilla_Throw_h + # include "mozilla/throw_msvc.h" + #endif + +-// Code might include before other wrapped headers, but +-// includes and so we want to wrap it. But mozalloc.h +-// wants also, so we break the cycle by always explicitly +-// including here. +-#include <${NEW_HEADER_PATH}> +- +-// See if we're in code that can use mozalloc. NB: this duplicates +-// code in nscore.h because nscore.h pulls in prtypes.h, and chromium +-// can't build with that being included before base/basictypes.h. +-#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) +-# include "mozilla/mozalloc.h" +-#else +-# error "STL code can only be used with infallible ::operator new()" +-#endif +-#endif /* MOZ_HAVE_INCLUDED_ALLOC */ +- + #ifdef _DEBUG + // From + // http://msdn.microsoft.com/en-us/library/aa985982%28VS.80%29.aspx + // and + // http://msdn.microsoft.com/en-us/library/aa985965%28VS.80%29.aspx + // there appear to be two types of STL container checking. The + // former is enabled by -D_DEBUG (which is implied by -MDd or -MTd), and + // looks to be full generation/mutation checked iterators as done by +@@ -70,9 +58,20 @@ + // but that's OK because we're not throwing them. + #pragma warning( push ) + #pragma warning( disable : 4275 4530 ) + + #include <${HEADER_PATH}> + + #pragma warning( pop ) + ++#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} ++// See if we're in code that can use mozalloc. NB: this duplicates ++// code in nscore.h because nscore.h pulls in prtypes.h, and chromium ++// can't build with that being included before base/basictypes.h. ++# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) ++# include "mozilla/mozalloc.h" ++# else ++# error "STL code can only be used with infallible ::operator new()" ++# endif ++#endif ++ + #endif // if mozilla_${HEADER}_h +diff --git a/mozilla/memory/mozalloc/mozalloc.h b/mozilla/memory/mozalloc/mozalloc.h +--- a/mozilla/memory/mozalloc/mozalloc.h ++++ b/mozilla/memory/mozalloc/mozalloc.h +@@ -7,20 +7,27 @@ + + #ifndef mozilla_mozalloc_h + #define mozilla_mozalloc_h + + /* + * https://bugzilla.mozilla.org/show_bug.cgi?id=427099 + */ + +-#include +-#include + #if defined(__cplusplus) + # include ++// Since libstdc++ 6, including the C headers (e.g. stdlib.h) instead of the ++// corresponding C++ header (e.g. cstdlib) can cause confusion in C++ code ++// using things defined there. Specifically, with stdlib.h, the use of abs() ++// in gfx/graphite2/src/inc/UtfCodec.h somehow ends up picking the wrong abs() ++# include ++# include ++#else ++# include ++# include + #endif + + #if defined(__cplusplus) + #include "mozilla/fallible.h" + #include "mozilla/TemplateLib.h" + #endif + #include "mozilla/Attributes.h" + #include "mozilla/Types.h" + + diff --git a/system-mozldap.patch b/system-mozldap.patch deleted file mode 100644 index d62c015..0000000 --- a/system-mozldap.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- mozilla/mail/configure.in.orig 2010-06-23 19:43:07.000000000 +0200 -+++ mozilla/mail/configure.in 2010-07-06 11:14:54.350499449 +0200 -@@ -59,7 +59,12 @@ - MOZ_LDAP_XPCOM=, - MOZ_LDAP_XPCOM=1) - --if test "$MOZ_LDAP_XPCOM"; then -+if test "$MOZ_LDAP_DIR" ; then -+ LDAP_CFLAGS=$(pkg-config --cflags mozldap) -+ LDAP_LIBS=$(pkg-config --libs mozldap) -+ LDAP_COMPONENT=mozldap -+ LDAP_MODULE="MODULE(nsLDAPProtocolModule)" -+elif test "$MOZ_LDAP_XPCOM"; then - LDAP_CFLAGS='-I${DIST}/public/ldap' - if test "$OS_ARCH" = "WINNT"; then - if test -n "$GNU_CC"; then -@@ -118,7 +130,7 @@ - - # if we're building the LDAP XPCOM component, we need to build - # the c-sdk first. --if test -n "$COMPILE_ENVIRONMENT" -a -n "$MOZ_LDAP_XPCOM"; then -+if test -n "$COMPILE_ENVIRONMENT" -a -n "$MOZ_LDAP_XPCOM" -a -z "$MOZ_LDAP_DIR"; then - # Save configure args so we can restore them after configuring LDAP. - _save_ac_configure_args="$ac_configure_args" - ac_configure_args="$_SUBDIR_CONFIG_ARGS" diff --git a/system-virtualenv.patch b/system-virtualenv.patch deleted file mode 100644 index 3650d56..0000000 --- a/system-virtualenv.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- xulrunner-27.0/mozilla/python/mozbuild/mozbuild/virtualenv.py~ 2013-05-11 21:19:23.000000000 +0200 -+++ xulrunner-27.0/mozilla/python/mozbuild/mozbuild/virtualenv.py 2013-05-14 22:51:32.136719267 +0200 -@@ -37,8 +37,7 @@ - @property - def virtualenv_script_path(self): - """Path to virtualenv's own populator script.""" -- return os.path.join(self.topsrcdir, 'python', 'virtualenv', -- 'virtualenv.py') -+ return '/usr/bin/virtualenv' - - @property - def python_path(self): -- 2.44.0