Hello community,

here is the log from the commit of package MozillaThunderbird for 
openSUSE:Factory checked in at 2019-09-18 13:06:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/MozillaThunderbird (Old)
 and      /work/SRC/openSUSE:Factory/.MozillaThunderbird.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "MozillaThunderbird"

Wed Sep 18 13:06:13 2019 rev:216 rq:730872 version:68.1.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/MozillaThunderbird/MozillaThunderbird.changes    
2019-08-15 12:22:56.174643074 +0200
+++ 
/work/SRC/openSUSE:Factory/.MozillaThunderbird.new.7948/MozillaThunderbird.changes
  2019-09-18 13:06:22.128753903 +0200
@@ -1,0 +2,67 @@
+Tue Sep 10 07:33:52 UTC 2019 - Wolfgang Rosenauer <w...@rosenauer.org>
+
+- Mozilla Thunderbird 68.1.0
+  * Offer to configure Exchange accounts for Office365. A third-party
+    add-on is required for this account type. IMAP still exists as
+    alternative.
+  * several bugfixes
+  MFSA 2019-30
+  * CVE-2019-11739 (bmo#1571481)
+    Covert Content Attack on S/MIME encryption using a crafted
+    multipart/alternative message
+  * CVE-2019-11746 (bmo#1564449)
+    Use-after-free while manipulating video
+  * CVE-2019-11744 (bmo#1562033)
+    XSS by breaking out of title and textarea elements using innerHTML
+  * CVE-2019-11742 (bmo#1559715)
+    Same-origin policy violation with SVG filters and canvas to steal
+    cross-origin images
+  * CVE-2019-11752 (bmo#1501152)
+    Use-after-free while extracting a key value in IndexedDB
+  * CVE-2019-11743 (bmo#1560495)
+    Cross-origin access to unload event attributes
+  * CVE-2019-11740 (bmo#1563133,bmo#1573160)
+    Memory safety bugs fixed in Firefox 69, Firefox ESR 68.1, and Firefox
+    ESR 60.9, Thunderbird 68.1, and Thunderbird 60.9
+- removed upstreamed fix-build-after-y2038-changes-in-glibc.patch
+- added thunderbird-locale-build.patch to fix locale build
+
+-------------------------------------------------------------------
+Fri Aug 30 07:25:15 UTC 2019 - Manfred Hollstein <manfre...@gmx.net>
+
+- Add -L flag to the stat call for checking file size of %{SOURCE4}.
+- Add fix-missing-return-warning.patch to silence a compiler warning.
+
+-------------------------------------------------------------------
+Wed Aug 28 12:27:34 UTC 2019 - Wolfgang Rosenauer <w...@rosenauer.org>
+
+- Mozilla Thunderbird 68.0
+  * based on Firefox ESR 68
+  * File link attachments can now be linked to again instead of
+    uploading them again
+  * Mark all folders of an account as read
+  * Run filters periodically. Improved filter logging
+  * OAuth2 authentication for Yandex
+  * Language packs can now be selected in the Advanced Options.
+    Preference intl.multilingual.enabled needs to be set (and possily
+    also extensions.langpacks.signatures.required needs to be set to false)
+  * Added a policy engine that allows customized Thunderbird deployments
+    in enterprise environments, using Windows Group Policy or a
+    cross-platform JSON file
+  * TCP keepalive for IMAP protocol
+  * Full Unicode support for MAPI interfaces: New support for MAPISendMailW
+  * Calendar: Time zone data can now include past and future changes.
+    All known time zone changes from 2018 to 2022 are included.
+  * Chat: In each conversation an individual spellcheck language can
+    be selected now
+- removed obsolete patches
+  * mozilla-bmo1463035.patch
+  * mozilla-i586-domPrefs.patch
+  * mozilla-bmo1464766.patch
+  * mozilla-bmo1519629.patch
+  * mozilla-i586-DecoderDoctorLogger.patch
+  * mozilla-bmo1375074.patch
+- added fix-build-after-y2038-changes-in-glibc.patch to fix build
+  in Tumbleweed (patch already upstream for next release)
+
+-------------------------------------------------------------------

Old:
----
  l10n-60.8.0.tar.xz
  mozilla-bmo1375074.patch
  mozilla-bmo1463035.patch
  mozilla-bmo1464766.patch
  mozilla-bmo1519629.patch
  mozilla-i586-DecoderDoctorLogger.patch
  mozilla-i586-domPrefs.patch
  thunderbird-60.8.0.source.tar.xz
  thunderbird-60.8.0.source.tar.xz.asc

New:
----
  fix-missing-return-warning.patch
  l10n-68.1.0.tar.xz
  tar_stamps
  thunderbird-68.1.0.source.tar.xz
  thunderbird-68.1.0.source.tar.xz.asc
  thunderbird-locale-build.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ MozillaThunderbird.spec ++++++
--- /var/tmp/diff_new_pack.MGvcSA/_old  2019-09-18 13:06:58.976746151 +0200
+++ /var/tmp/diff_new_pack.MGvcSA/_new  2019-09-18 13:06:58.976746151 +0200
@@ -17,15 +17,44 @@
 #
 
 
-%define mainversion 60.8.0
+# changed with every update
+%define major 68
+%define mainver %major.1.0
+%define version_postfix %{nil}
 %define update_channel release
-%define releasedate 20190703133823
+%define releasedate 20190909201201
+%define source_prefix thunderbird-%{mainver}
+
+# always build with GCC as SUSE Security Team requires that
+# TODO: Deactivate this as the next step
+%define clang_build 1
+
+# PIE, full relro
+%define build_hardened 1
 
 %bcond_without mozilla_tb_kde4
 %bcond_with    mozilla_tb_valgrind
 %bcond_without mozilla_tb_optimize_for_size
 
-Name:           MozillaThunderbird
+# general build definitions
+%define progname thunderbird
+%define pkgname  MozillaThunderbird
+%define appname  Thunderbird
+%define progdir %{_prefix}/%_lib/%{progname}
+%define gnome_dir     %{_prefix}
+%define desktop_file_name %{progname}
+%define __provides_exclude ^lib.*\\.so.*$
+%define __requires_exclude 
^(libmoz.*|liblgpllibs.*|libxul.*|libldap.*|libldif.*|libprldap.*)$
+%define localize 1
+%ifarch %ix86 x86_64
+%define crashreporter 1
+%else
+%define crashreporter 0
+%endif
+
+%define has_system_cairo 0
+
+Name:           %{pkgname}
 BuildRequires:  Mesa-devel
 BuildRequires:  alsa-devel
 BuildRequires:  autoconf213
@@ -36,21 +65,22 @@
 %else
 BuildRequires:  gcc-c++
 %endif
-BuildRequires:  cargo
+BuildRequires:  cargo >= 1.34
 #BuildRequires:  hunspell-devel
 BuildRequires:  libXcomposite-devel
 BuildRequires:  libcurl-devel
 BuildRequires:  libidl-devel
 BuildRequires:  libnotify-devel
 BuildRequires:  memory-constraints
-BuildRequires:  mozilla-nspr-devel >= 4.19
-BuildRequires:  mozilla-nss-devel >= 3.36.8
-BuildRequires:  python
+BuildRequires:  mozilla-nspr-devel >= 4.21
+BuildRequires:  mozilla-nss-devel >= 3.44.1
+BuildRequires:  nasm >= 2.13
+BuildRequires:  nodejs >= 8.11
+BuildRequires:  python-devel
 BuildRequires:  python2-xml
-BuildRequires:  rust >= 1.24
-%if 0%{?suse_version} <= 1500
-BuildRequires:  rust-std
-%endif
+BuildRequires:  python3 >= 3.5
+BuildRequires:  rust >= 1.34
+BuildRequires:  rust-cbindgen >= 0.8.7
 BuildRequires:  startup-notification-devel
 BuildRequires:  unzip
 BuildRequires:  update-desktop-files
@@ -84,7 +114,7 @@
 # therefore the Packman version is required
 # minimum version of libavcodec is 53
 Recommends:     libavcodec-full >= 0.10.16
-Version:        %{mainversion}
+Version:        %{mainver}
 Release:        0
 Provides:       MozillaThunderbird-devel = %version
 Obsoletes:      MozillaThunderbird-devel < %version
@@ -101,8 +131,9 @@
 License:        MPL-2.0
 Group:          Productivity/Networking/Email/Clients
 Url:            https://www.thunderbird.net/
-Source:         
http://ftp.mozilla.org/pub/thunderbird/releases/%{version}/source/thunderbird-%{version}.source.tar.xz
+Source:         
http://ftp.mozilla.org/pub/%{progname}/releases/%{version}%{version_postfix}/source/%{progname}-%{version}%{version_postfix}.source.tar.xz
 Source1:        thunderbird.desktop
+Source2:        tar_stamps
 Source3:        mozilla.sh.in
 Source4:        l10n-%{version}.tar.xz
 Source6:        suse-default-prefs.js
@@ -114,15 +145,11 @@
 Source13:       
https://ftp.mozilla.org/pub/thunderbird/releases/%{version}/source/thunderbird-%{version}.source.tar.xz.asc
 Source14:       
http://ftp.mozilla.org/pub/thunderbird/releases/%{version}/KEY#/%{name}.keyring
 # Gecko/Toolkit
-Patch2:         mozilla-nongnome-proxies.patch
-Patch3:         mozilla-kde.patch
-Patch6:         mozilla-aarch64-startup-crash.patch
-Patch7:         mozilla-bmo1375074.patch
-Patch8:         mozilla-bmo1464766.patch
-Patch9:         mozilla-i586-DecoderDoctorLogger.patch
-Patch10:        mozilla-i586-domPrefs.patch
-Patch11:        mozilla-bmo1463035.patch
-Patch12:        mozilla-bmo1519629.patch
+Patch1:         mozilla-nongnome-proxies.patch
+Patch2:         mozilla-kde.patch
+Patch3:         mozilla-aarch64-startup-crash.patch
+Patch4:         fix-missing-return-warning.patch
+Patch5:         thunderbird-locale-build.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 PreReq:         coreutils fileutils textutils /bin/sh
 Recommends:     libcanberra0
@@ -137,17 +164,13 @@
 %define crashreporter 1
 %endif
 %define has_system_cairo 0
-%define localize 1
 ### build options end
 %define __provides_exclude ^lib.*\\.so.*$
 %define __requires_exclude 
^(libmoz.*|liblgpllibs.*|libxul.*|libldap.*|libldif.*|libprldap.*)$
 Requires:       mozilla-nspr >= %(rpm -q --queryformat '%%{VERSION}' 
mozilla-nspr)
 Requires:       mozilla-nss >= %(rpm -q --queryformat '%%{VERSION}' 
mozilla-nss)
 Conflicts:      thunderbird-esr
-%define progname thunderbird
-%define progdir %{_prefix}/%_lib/thunderbird
 %define libgssapi libgssapi_krb5.so.2
-%define desktop_file_name thunderbird
 
 %description
 Thunderbird is a free, open-source, cross-platform application for
@@ -158,32 +181,31 @@
 %if %localize
 
 %package translations-common
-Summary:        Common translations for MozillaThunderbird
+Summary:        Common translations for %{appname}
 Group:          System/Localization
-Provides:       
locale(%{name}:ar;ca;cs;da;de;el;en_GB;es_AR;es_ES;fi;fr;hu;it;ja;ko;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
-PreReq:         %{name} = %{mainversion}
+Provides:       
locale(%{name}:ar;ca;cs;da;de;el;en_GB;es_AR;es_CL;es_ES;fi;fr;hu;it;ja;ko;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
+Requires:       %{name} = %{version}
 Obsoletes:      %{name}-translations < %{version}-%{release}
 
 %description translations-common
-This package contains several optional languages for the user interface
-of MozillaThunderbird.
-
+This package contains several common languages for the user interface
+of %{appname}.
 
 %package translations-other
-Summary:        Extra translations for MozillaThunderbird
+Summary:        Extra translations for %{appname}
 Group:          System/Localization
 Provides:       
locale(%{name}:ast;be;bg;bn_BD;br;et;eu;fy_NL;ga_IE;gd;gl;he;hr;hy_AM;id;is;lt;nn_NO;pa_IN;rm;ro;si;sk;sl;sq;sr;ta_LK;tr;uk;vi)
-PreReq:         %{name} = %{mainversion}
+Requires:       %{name} = %{version}
 Obsoletes:      %{name}-translations < %{version}-%{release}
 
 %description translations-other
-This package contains several optional languages for the user interface
-of MozillaThunderbird.
+This package contains rarely used languages for the user interface
+of %{appname}.
 %endif
 
 %if %crashreporter
 %package buildsymbols
-Summary:        Breakpad buildsymbols for %{name}
+Summary:        Breakpad buildsymbols for %{appname}
 Group:          Development/Debug
 
 %description buildsymbols
@@ -192,23 +214,30 @@
 %endif
 
 %prep
-%setup -n thunderbird-%{version} -q -b 4 -b 11
-# xulrunner patches
-%patch2 -p1
-%if %{with mozilla_tb_kde4}
-%patch3 -p1
+%if %localize
+# If generated incorrectly, the tarball will be ~270B in
+# size, so 1MB seems like good enough limit to check.
+MINSIZE=1048576
+if (( $(stat -Lc%s "%{SOURCE4}") < MINSIZE)); then
+    echo "Translations tarball %{SOURCE7} not generated properly."
+    exit 1
+fi
+%setup -q -n %{source_prefix} -b 4 -b 11
+%else
+%setup -q -n %{source_prefix}
 %endif
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%ifarch %ix86
-%patch9 -p1
-%patch10 -p1
+%patch1 -p1
+%if %{with mozilla_tb_kde4}
+%patch2 -p1
 %endif
-%patch11 -p1
-%patch12 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
+#
+# Limit RAM usage to avoid OOM
+
 %define _lto_cflags %{nil}
 # no need to add build time to binaries
 modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
@@ -223,6 +252,7 @@
   exit 1
 fi
 %endif
+
 export SUSE_ASNEEDED=0
 export MOZ_BUILD_DATE=%{releasedate}
 export MOZILLA_OFFICIAL=1
@@ -232,33 +262,34 @@
 %endif
 %if 0%{?suse_version} <= 1320
 export CC=gcc-7
+%else
+%if 0%{?clang_build} == 0
+export CC=gcc
+export CXX=g++
 %endif
-export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
-%if 0%{?suse_version} > 1320
-export CFLAGS="$CFLAGS -fno-delete-null-pointer-checks"
+%endif
+%ifarch %arm %ix86
+# Limit RAM usage during link
+export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
+%endif
+%if 0%{?build_hardened}
+export LDFLAGS="${LDFLAGS} -fPIC -Wl,-z,relro,-z,now"
 %endif
 %ifarch ppc64 ppc64le
+%if 0%{?clang_build} == 0
 export CFLAGS="$CFLAGS -mminimal-toc"
 %endif
-%ifarch %arm
-export CFLAGS="${CFLAGS/-g / }"
-%endif
-%ifarch %ix86 %arm
-# Limit RAM usage during link
-export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
 %endif
 export CXXFLAGS="$CFLAGS"
-%ifarch %{arm}
+%ifarch %{arm} aarch64
 export RUSTFLAGS="-Cdebuginfo=0"
 %endif
 export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
+%limit_build -m 2000
 # -g might be part of RPM_OPT_FLAGS, depending on the debuginfo setting in prj 
config
 # gcc lacks a an explicit -noop, so use something similar to make sure -g
 # is not forced into CFLAGS
 export MOZ_DEBUG_FLAGS="-pipe"
-#
-# Limit RAM usage to avoid OOM
-%limit_build -m 1500
 cat << EOF > $MOZCONFIG
 mk_add_options MOZILLA_OFFICIAL=1
 mk_add_options BUILD_OFFICIAL=1
@@ -279,30 +310,23 @@
 ac_add_options --disable-tests
 ac_add_options --disable-debug
 ac_add_options --enable-alsa
-# gcc7 (boo#104105)
-%if 0%{?suse_version} > 1320
-ac_add_options --enable-optimize="-g -O2"
+ac_add_options --enable-default-toolkit=cairo-gtk3
+%if 0%{?suse_version} >= 1550
+ac_add_options --disable-gconf
 %endif
+# bmo#1441155 - Disable the generation of Rust debug symbols on Linux32
 %ifarch %ix86 %arm
-%if 0%{?suse_version} > 1230
-#ac_add_options --disable-optimize
-%endif
-%endif
-%ifarch %arm
-ac_add_options --disable-elf-hack
+ac_add_options --disable-debug-symbols
+%else
+ac_add_options --enable-debug-symbols
 %endif
-%ifarch x86_64
-%if 0%{?suse_version} >= 1550
+%if 0%{?suse_version} > 1549
+%ifnarch aarch64 ppc64 ppc64le s390x
 ac_add_options --disable-elf-hack
 %endif
 %endif
-ac_add_options --enable-default-toolkit=cairo-gtk3
-%if 0%{?suse_version} >= 1550
-ac_add_options --disable-gconf
-%endif
 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-l10n-base=$RPM_BUILD_DIR/l10n
 ac_add_options --disable-updater
@@ -330,8 +354,8 @@
 make -C comm/mail/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
 # copy tree into RPM_BUILD_ROOT
 mkdir -p %{buildroot}%{progdir}
-cp -rf $RPM_BUILD_DIR/obj/dist/thunderbird/* \
-       %{buildroot}%{progdir}
+cp -rf $RPM_BUILD_DIR/obj/dist/thunderbird/* %{buildroot}%{progdir}
+install -m 644 %{SOURCE13} %{buildroot}%{progdir}/defaults/pref/
 %if %{with mozilla_tb_kde4}
 # install kde.js
 install -m 644 %{SOURCE12} %{buildroot}%{progdir}/defaults/pref/kde.js
@@ -341,14 +365,15 @@
 %endif
 # build additional locales
 %if %localize
+mkdir -p %{buildroot}%{progdir}/extensions/
 truncate -s 0 %{_tmppath}/translations.{common,other}
-sed -r '/^(ja-JP-mac|en-US|$)/d;s/ .*$//' 
$RPM_BUILD_DIR/thunderbird-%{version}/comm/mail/locales/shipped-locales \
+sed -r '/^(ja-JP-mac|en-US|$)/d;s/ .*$//' 
$RPM_BUILD_DIR/%{source_prefix}/comm/mail/locales/shipped-locales \
     | xargs -n 1 -I {} /bin/sh -c '
        locale=$1
        pushd $RPM_BUILD_DIR/compare-locales
        PYTHONPATH=lib \
          scripts/compare-locales -m ../l10n-merged/$locale \
-         ../thunderbird-%{version}/comm/mail/locales/l10n.ini ../l10n $locale
+          ../%{source_prefix}/comm/mail/locales/l10n.ini ../l10n $locale
        popd
        LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \
             make -C comm/mail/locales langpack-$locale
@@ -375,7 +400,7 @@
   %{SOURCE3} > %{buildroot}%{progdir}/%{progname}.sh
 chmod 755 %{buildroot}%{progdir}/%{progname}.sh
 ln -sf ../..%{progdir}/%{progname}.sh %{buildroot}%{_bindir}/%{progname}
-# freedesktop definition
+# desktop file
 mkdir -p %{buildroot}%{_datadir}/applications
 install -m 644 %{SOURCE1} \
                
%{buildroot}%{_datadir}/applications/%{desktop_file_name}.desktop
@@ -425,7 +450,7 @@
 %fdupes %{buildroot}%{_libdir}/mozilla
 %fdupes %{buildroot}%{_datadir}
 %if %crashreporter
-SYMBOLS_NAME="thunderbird-%{mainversion}-%{release}.%{_arch}-%{suse_version}-symbols"
+SYMBOLS_NAME="thunderbird-%{version}-%{release}.%{_arch}-%{suse_version}-symbols"
 make buildsymbols \
   SYMBOL_INDEX_NAME="$SYMBOLS_NAME.txt" \
   SYMBOL_ARCHIVE_BASENAME="$SYMBOLS_NAME"
@@ -477,11 +502,8 @@
 %endif
 %dir %{progdir}/chrome/
 %{progdir}/chrome/icons/
-%dir %{progdir}/dictionaries/
 %{progdir}/distribution/
 %{progdir}/defaults/
-%dir %{progdir}/extensions/
-%{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
 %{progdir}/features/
 %{progdir}/isp/
 %{_datadir}/appdata/
@@ -492,9 +514,11 @@
 %if %localize
 %files translations-common -f %{_tmppath}/translations.common
 %defattr(-,root,root)
+%dir %{progdir}/extensions/
 
 %files translations-other -f %{_tmppath}/translations.other
 %defattr(-,root,root)
+%dir %{progdir}/extensions/
 %endif
 
 %if %crashreporter

++++++ _constraints ++++++
--- /var/tmp/diff_new_pack.MGvcSA/_old  2019-09-18 13:06:59.032746140 +0200
+++ /var/tmp/diff_new_pack.MGvcSA/_new  2019-09-18 13:06:59.032746140 +0200
@@ -5,20 +5,41 @@
       <size unit="G">24</size>
     </disk>
     <memory>
-      <size unit="G">8</size>
+      <size unit="G">9</size>
     </memory>
   </hardware>
   <overwrite>
     <conditions>
       <arch>armv6l</arch>
       <arch>armv7l</arch>
+    </conditions>
+    <hardware>
+      <disk>
+        <size unit="G">12</size>
+      </disk>
+      <memory>
+        <size unit="G">5</size>
+      </memory>
+    </hardware>
+  </overwrite>
+  <overwrite>
+    <conditions>
       <arch>aarch64</arch>
     </conditions>
     <hardware>
       <memory>
-        <size unit="G">9</size>
+        <size unit="G">12</size>
+      </memory>
+    </hardware>
+  </overwrite>
+  <overwrite>
+    <conditions>
+      <arch>x86_64</arch>
+    </conditions>
+    <hardware>
+      <memory>
+        <size unit="G">16</size>
       </memory>
     </hardware>
   </overwrite>
 </constraints>
-

++++++ compare-locales.tar.xz ++++++

++++++ create-tar.sh ++++++
--- /var/tmp/diff_new_pack.MGvcSA/_old  2019-09-18 13:06:59.096746126 +0200
+++ /var/tmp/diff_new_pack.MGvcSA/_new  2019-09-18 13:06:59.096746126 +0200
@@ -1,16 +1,127 @@
 #!/bin/bash
 
+function print_usage_and_exit() {
+  echo "Usage: create-tar.sh tar_stamp"
+  echo ""
+  echo "Where tar_stamp should look like this:"
+  echo ""
+  cat << EOF
+# Node ID: 64ee63facd4ff96b3e8590cff559d7e97ac6b061
+PRODUCT="firefox" # "firefox" or "thunderbird"
 CHANNEL="esr60"
-BRANCH="releases/comm-$CHANNEL"
-RELEASE_TAG="ef6b0f0be269d5b7314fe9b359604c9f4f541055"
-MOZ_RELEASE_TAG="eb76765892cfd646d3014e5f3b8df8c6753da2d2"
-VERSION="60.8.0"
-VERSION_SUFFIX=""
-LOCALE_FILE="thunderbird-$VERSION/comm/mail/locales/l10n-changesets.json"
+VERSION="60.7.0"
+VERSION_SUFFIX="esr"
+FF_RELEASE_TAG="" # Needs only to be set if no tar-ball can be downloaded
+TB_RELEASE_TAG="" # Only relevant for Thunderbird
+PREV_VERSION="60.6.3" # Prev. version only needed for locales (leave empty to 
force l10n-generation)
+PREV_VERSION_SUFFIX="esr"
+#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
+EOF
+
+exit 1
+}
+
+if [ $# -ne 1 ]; then
+  print_usage_and_exit
+fi
+
+# Sourcing the given tar_stamp-file to have the variables available
+source "$1" || print_usage_and_exit
+
+# Internal variables
+BRANCH="releases/mozilla-$CHANNEL"
+if [ "$PRODUCT" = "firefox" ]; then
+  LOCALE_FILE="firefox-$VERSION/browser/locales/l10n-changesets.json"
+else
+  LOCALE_FILE="thunderbird-$VERSION/comm/mail/locales/l10n-changesets.json"
+fi
+
+SOURCE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz"
+FTP_URL="https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source";
+# Make first letter of PRODCUT upper case
+PRODUCT_CAP="${PRODUCT^}"
+LOCALES_URL="https://product-details.mozilla.org/1.0/l10n/$PRODUCT_CAP";
+# Exit script on CTRL+C
+trap "exit" INT
+
+function check_tarball_source () {
+  TARBALL=$1
+  # Print out what is going to be done:
+  if [ -e $TARBALL ]; then
+      echo "Reuse existing file"
+  elif wget --spider $FTP_URL/$TARBALL 2> /dev/null; then
+      echo "Download file"
+  else
+      echo "Mercurial checkout"
+  fi
+}
+
+function ask_cont_abort_question() {
+  while true; do
+    read -p "$1 [(c)ontinue/(a)bort] " ca
+    case $ca in
+        [Cc]* ) return 0 ;;
+        [Aa]* ) return 1 ;;
+        * ) echo "Please answer c or a.";;
+    esac
+  done
+}
+
+function check_for_binary() {
+  if ! test -x $1; then
+    echo "$1 is missing: execute zypper in $2"
+    exit 5
+  fi
+}
+
+function locales_get() {
+  TMP_VERSION="$1"
+  URL_TO_CHECK="${LOCALES_URL}-${TMP_VERSION}"
+
+  LAST_FOUND=""
+  # Unfortunately, locales-files are not associated to releases, but to builds.
+  # And since we don't know which build was the final build, we go from 9 
downwards
+  # try to find the latest one that exists (assuming there are no more than 9 
builds).
+  # Error only if not even the first one exists
+  for BUILD_ID in $(seq 9 -1 0); do
+    FINAL_URL="${URL_TO_CHECK}-build${BUILD_ID}.json"
+    if wget --quiet --spider "$FINAL_URL"; then
+      LAST_FOUND="$FINAL_URL"
+      break
+    fi
+  done
+
+  if [ "$LAST_FOUND" != "" ]; then
+    echo "$LAST_FOUND"
+    return 0
+  else
+    echo "Error: Could not find locales-file (json) for Firefox $TMP_VERSION 
!"  1>&2
+    return 1
+  fi
+}
+
+function locales_parse() {
+  URL="$1"
+  curl -s "$URL" | python -c "import json; import sys; \
+             print('\n'.join(['{} {}'.format(key, value['changeset']) \
+                for key, value in 
sorted(json.load(sys.stdin)['locales'].items())]));"
+}
+
+function locales_unchanged() {
+  # If no json-file for one of the versions can be found, we say "they changed"
+  prev_url=$(locales_get "$PREV_VERSION$PREV_VERSION_SUFFIX") || return 1
+  curr_url=$(locales_get "$VERSION$VERSION_SUFFIX")      || return 1
+
+  prev_content=$(locales_parse "$prev_url") || exit 1
+  curr_content=$(locales_parse "$curr_url") || exit 1
+
+  diff -y --suppress-common-lines -d <(echo "$prev_content") <(echo 
"$curr_content")
+}
 
 # check required tools
-test -x /usr/bin/hg || ( echo "hg missing: execute zypper in mercurial"; exit 
5 )
-test -x /usr/bin/jq || ( echo "jq missing: execute zypper in jq"; exit 5 )
+check_for_binary /usr/bin/hg "mercurial"
+check_for_binary /usr/bin/jq "jq"
+which python > /dev/null || exit 1
 
 # use parallel compression, if available
 compression='-J'
@@ -19,86 +130,142 @@
   compression='-Ipixz'
 fi
 
+if [ -z ${SKIP_LOCALES+x} ]; then
+  # TODO: Thunderbird has usually "default" as locale entry. 
+  # There we probably need to double-check Firefox-locals
+  # For now, just download every time for Thunderbird
+  if [ "$PRODUCT" = "firefox" ] && [ "$PREV_VERSION" != "" ] && 
locales_unchanged; then
+    printf "%-40s: Did not change. Skipping.\n" "locales"
+    LOCALES_CHANGED=0
+  else
+    printf "%-40s: Need to download.\n" "locales"
+    LOCALES_CHANGED=1
+  fi
+else 
+  printf "%-40s: User forced skip (SKIP_LOCALES set)\n" "locales"
+fi
+
+# Check what is going to be done and ask for consent
+for ff in $SOURCE_TARBALL $SOURCE_TARBALL.asc; do
+  printf "%-40s: %s\n" $ff "$(check_tarball_source $ff)"
+done
+
+$(ask_cont_abort_question "Is this ok?") || exit 0
+
+# Try to download tar-ball from officiall mozilla-mirror
+if [ ! -e $SOURCE_TARBALL ]; then
+  wget 
https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source/$SOURCE_TARBALL
+fi
+# including signature
+if [ ! -e $SOURCE_TARBALL.asc ]; then
+  wget 
https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source/$SOURCE_TARBALL.asc
+fi
+
 # we might have an upstream archive already and can skip the checkout
-if [ -e thunderbird-$VERSION$VERSION_SUFFIX.source.tar.xz ]; then
-  echo "skip thunderbird checkout and use available archive"
-  # still need to extract the locale information from the archive
-  echo "extract locale list"
-  tar -xf thunderbird-$VERSION$VERSION_SUFFIX.source.tar.xz $LOCALE_FILE
-  # remove non-free untar licenced code from distributed tarball
-  #xz -d -v thunderbird-$VERSION$VERSION_SUFFIX.source.tar.xz && \
-  #tar -v --wildcards --delete -f 
thunderbird-$VERSION$VERSION_SUFFIX.source.tar \
-  #    "thunderbird-${VERSION}/comm/other-licenses/7zstub" \
-  #    "thunderbird-${VERSION}/other-licenses/7zstub" \
-  #&& \
-  #xz -9 -v thunderbird-$VERSION$VERSION_SUFFIX.source.tar
+if [ -e $SOURCE_TARBALL ]; then
+  if [ -z ${SKIP_LOCALES+x} ] && [ $LOCALES_CHANGED -ne 0 ]; then
+    # still need to extract the locale information from the archive
+    echo "extract locale changesets"
+    tar -xf $SOURCE_TARBALL $LOCALE_FILE
+  fi
 else
-  if [ -d thunderbird-$VERSION ]; then
-    pushd thunderbird-$VERSION
+  # We are working on a version that is not yet published on the mozilla mirror
+  # so we have to actually check out the repo
+
+  # mozilla
+  if [ -d $PRODUCT-$VERSION ]; then
+    pushd $PRODUCT-$VERSION || exit 1
     _repourl=$(hg paths)
     case "$_repourl" in
       *$BRANCH*)
         echo "updating previous tree"
         hg pull
-        popd
+        popd || exit 1
         ;;
       * )
         echo "removing obsolete tree"
-        popd
-        rm -rf thunderbird-$VERSION
+        popd || exit 1
+        rm -rf $PRODUCT-$VERSION
         ;;
     esac
   fi
-  if [ ! -d thunderbird-$VERSION ]; then
+  if [ ! -d $PRODUCT-$VERSION ]; then
     echo "cloning new $BRANCH..."
-    hg clone http://hg.mozilla.org/releases/mozilla-$CHANNEL 
thunderbird-$VERSION
-    hg clone http://hg.mozilla.org/releases/comm-$CHANNEL 
thunderbird-$VERSION/comm
+    hg clone http://hg.mozilla.org/$BRANCH $PRODUCT-$VERSION
+    if [ "$PRODUCT" = "thunderbird" ]; then
+      hg clone http://hg.mozilla.org/releases/comm-$CHANNEL 
thunderbird-$VERSION/comm
+    fi
   fi
-  pushd thunderbird-$VERSION
-  hg update --check $MOZ_RELEASE_TAG
-  pushd comm
-  hg update --check $RELEASE_TAG
-  popd
-  popd
+  pushd $PRODUCT-$VERSION || exit 1
+  hg update --check $FF_RELEASE_TAG
+  [ "$FF_RELEASE_TAG" == "default" ] || hg update -r $FF_RELEASE_TAG
+  # get repo and source stamp
+  echo -n "REV=" > ../source-stamp.txt
+  hg -R . parent --template="{node|short}\n" >> ../source-stamp.txt
+  echo -n "REPO=" >> ../source-stamp.txt
+  hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" 
>> ../source-stamp.txt
+
+  if [ "$PRODUCT" = "thunderbird" ]; then
+    pushd comm || exit 1
+    hg update --check $TB_RELEASE_TAG
+    popd || exit 1
+    rm -rf thunderbird-${VERSION}/{,comm/}other-licenses/7zstub
+  fi
+  popd || exit 1
+
   echo "creating archive..."
-  rm -rf thunderbird-${VERSION}/{,comm/}other-licenses/7zstub
-  tar $compression -cf thunderbird-$VERSION.source.tar.xz --exclude=.hgtags 
--exclude=.hgignore --exclude=.hg --exclude=CVS thunderbird-${VERSION}
+  tar $compression -cf $PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz 
--exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS 
$PRODUCT-$VERSION
 fi
 
-# l10n
-# http://l10n.mozilla.org/dashboard/?tree=tb30x -> shipped-locales
-echo "fetching locales..."
-test ! -d l10n && mkdir l10n
-jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' $LOCALE_FILE | \
-  while read locale changeset ; do
-  case $locale in
-    ja-JP-mac|en-US)
-      ;;
-    *)
-      echo "reading changeset information for $locale"
-      echo "fetching $locale changeset $changeset ..."
-      #(
-      if [ -d l10n/$locale/.hg ]; then
-        (cd l10n/$locale; hg pull)
-      else
-        hg clone http://hg.mozilla.org/l10n-central/$locale l10n/$locale
-      fi
-      [ "$RELEASE_TAG" == "default" ] || hg -R l10n/$locale up -C -r $changeset
-      #) &
-      ;;
-  esac
-done
-wait
-echo "creating l10n archive..."
-tar $compression -cf l10n-$VERSION.tar.xz \
-  --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=browser \
-  --exclude=suite \
+if [ ! -z ${SKIP_LOCALES+x} ]; then
+  echo "Skipping locales-creation."
+  exit 0
+fi
+
+if [ $LOCALES_CHANGED -ne 0 ]; then
+  # l10n
+  echo "fetching locales..."
+  test ! -d l10n && mkdir l10n
+  jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' $LOCALE_FILE | \
+    while read locale changeset ; do
+      case $locale in
+        ja-JP-mac|en-US)
+          ;;
+        *)
+          echo "reading changeset information for $locale"
+          echo "fetching $locale changeset $changeset ..."
+          if [ -d "l10n/$locale/.hg" ]; then
+            pushd "l10n/$locale" || exit 1
+            hg pull
+            popd || exit 1
+          else
+            hg clone "http://hg.mozilla.org/l10n-central/$locale"; 
"l10n/$locale"
+          fi
+          [ "$FF_RELEASE_TAG" == "default" ] || hg -R "l10n/$locale" up -C -r 
"$changeset"
+          ;;
+      esac
+    done
+  echo "creating l10n archive..."
+  if [ "$PRODUCT" = "thunderbird" ]; then
+    TB_TAR_FLAGS="--exclude=browser --exclude=suite"
+  fi
+  tar $compression -cf l10n-$VERSION$VERSION_SUFFIX.tar.xz \
+  --exclude=.hgtags --exclude=.hgignore --exclude=.hg \
+  $TB_TAR_FLAGS \
   l10n
+elif [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ]; then
+  # Locales did not change, but the old tar-ball is in this directory
+  # Simply rename it:
+  echo "Moving l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz to 
l10n-$VERSION$VERSION_SUFFIX.tar.xz"
+  mv "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" 
"l10n-$VERSION$VERSION_SUFFIX.tar.xz"
+fi
 
 # compare-locales
 echo "creating compare-locales"
 if [ -d compare-locales/.hg ]; then
-  (cd compare-locales; hg pull)
+  pushd compare-locales || exit 1
+  hg pull
+  popd || exit 1
 else
   hg clone http://hg.mozilla.org/build/compare-locales
 fi

++++++ fix-missing-return-warning.patch ++++++
diff -rup thunderbird-68.0.orig/media/libcubeb/src/cubeb_utils.cpp 
thunderbird-68.0/media/libcubeb/src/cubeb_utils.cpp
--- thunderbird-68.0.orig/media/libcubeb/src/cubeb_utils.cpp    2019-08-26 
23:32:14.000000000 +0200
+++ thunderbird-68.0/media/libcubeb/src/cubeb_utils.cpp 2019-08-30 
09:22:26.213301561 +0200
@@ -20,4 +20,6 @@ size_t cubeb_sample_size(cubeb_sample_fo
       // should never happen as all cases are handled above.
       assert(false);
   }
+  // silence the compiler here:
+  return 0;
 }
++++++ l10n-60.8.0.tar.xz -> l10n-68.1.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/MozillaThunderbird/l10n-60.8.0.tar.xz 
/work/SRC/openSUSE:Factory/.MozillaThunderbird.new.7948/l10n-68.1.0.tar.xz 
differ: char 25, line 1

++++++ mozilla-aarch64-startup-crash.patch ++++++
--- /var/tmp/diff_new_pack.MGvcSA/_old  2019-09-18 13:06:59.140746117 +0200
+++ /var/tmp/diff_new_pack.MGvcSA/_new  2019-09-18 13:06:59.140746117 +0200
@@ -1,24 +1,22 @@
 # HG changeset patch
-# Parent a5cfa3aa11a9d3391df49de6fc5a0e5232c12c10
-# Parent  85c2e07d2a9ec3e45f55d0e482c7b663626bfc8a
-Bug 991344 - Rpi3: Firefox crashes after a few seconds of usage
+# User msirringh...@suse.de
+# Date 1558442998 -7200
+#      Tue May 21 14:49:58 2019 +0200
+# Node ID 386083b58d8558141901d796ec6919a4aba7ad3a
+# Parent  835641be7eb9408aa1eff0d38b37f6c523d2ef98
+bsc#991344 - Rpi3: Firefox crashes after a few seconds of usage
+bmo#1302554 - ARM/AARCH64: Firefox crashes on NULL nsIChannel** result pointer 
in nsIOService::NewChannelFromURIWithProxyFlagsInternal()
 
-diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp
---- a/netwerk/base/nsIOService.cpp
-+++ b/netwerk/base/nsIOService.cpp
-@@ -874,18 +874,23 @@ nsresult nsIOService::NewChannelFromURIW
-             u"Http channel implementation "
-             "doesn't support nsIUploadChannel2. An extension has "
-             "supplied a non-functional http protocol handler. This will "
-             "break behavior and in future releases not work at all.");
-       }
-       gHasWarnedUploadChannel2 = true;
+diff -r 835641be7eb9 -r 386083b58d85 netwerk/base/nsIOService.cpp
+--- a/netwerk/base/nsIOService.cpp     Fri Feb 26 16:20:09 2016 +0000
++++ b/netwerk/base/nsIOService.cpp     Tue May 21 14:49:58 2019 +0200
+@@ -1000,7 +1000,13 @@
      }
    }
--
+ 
 +#if defined(__aarch64__)
 +  if (result) {
-+      channel.forget(result);
++    channel.forget(result);
 +  }
 +#else
    channel.forget(result);
@@ -26,8 +24,3 @@
    return NS_OK;
  }
  
- NS_IMETHODIMP
- nsIOService::NewChannelFromURIWithProxyFlags2(
-     nsIURI *aURI, nsIURI *aProxyURI, uint32_t aProxyFlags,
-     nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal,
-     nsIPrincipal *aTriggeringPrincipal, uint32_t aSecurityFlags,

++++++ mozilla-kde.patch ++++++
++++ 926 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/MozillaThunderbird/mozilla-kde.patch
++++ and 
/work/SRC/openSUSE:Factory/.MozillaThunderbird.new.7948/mozilla-kde.patch

++++++ mozilla-nongnome-proxies.patch ++++++
--- /var/tmp/diff_new_pack.MGvcSA/_old  2019-09-18 13:06:59.164746112 +0200
+++ /var/tmp/diff_new_pack.MGvcSA/_new  2019-09-18 13:06:59.168746112 +0200
@@ -1,47 +1,35 @@
-From: Wolfgang Rosenauer
-Subject: Do not use gconf for proxy settings if not running within Gnome
-
+# HG changeset patch
+# User Wolfgang Rosenauer
+# Date 1558442915 -7200
+#      Tue May 21 14:48:35 2019 +0200
+# Node ID 6bcf2dfebc1ea2aa34e5cc61152709fc8e409dc5
+# Parent  4c434d19d03d5461e54fa22dfb82eaed4cd6631b
+Do not use gconf for proxy settings if not running within Gnome
 Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
 ===================================================================
 RCS file: 
/cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
 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
-@@ -55,24 +55,27 @@ NS_IMETHODIMP
- nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
-   // dbus prevents us from being threadsafe, but this routine should not block
-   // anyhow
-   *aMainThreadOnly = true;
-   return NS_OK;
+diff -r 4c434d19d03d -r 6bcf2dfebc1e 
toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
+--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp   Wed Jun 12 
17:43:18 2019 +0000
++++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp   Tue May 21 
14:48:35 2019 +0200
+@@ -55,11 +55,14 @@
  }
  
- nsresult nsUnixSystemProxySettings::Init() {
+ void nsUnixSystemProxySettings::Init() {
 -  mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
 -  if (mGSettings) {
 -    mGSettings->GetCollectionForSchema(
 -        NS_LITERAL_CSTRING("org.gnome.system.proxy"),
 -        getter_AddRefs(mProxySettings));
--  }
--  if (!mProxySettings) {
--    mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
-+  // only use GSettings if that is a GNOME session
 +  const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
 +  if (sessionType && !strcmp(sessionType, "gnome")) {
 +    mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
 +    if (mGSettings) {
-+      
mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
-+                                         getter_AddRefs(mProxySettings));
-+    }
-+    if (!mProxySettings) {
-+      mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
++      mGSettings->GetCollectionForSchema(
++          NS_LITERAL_CSTRING("org.gnome.system.proxy"),
++          getter_AddRefs(mProxySettings));
 +    }
    }
- 
-   return NS_OK;
  }
  
- bool nsUnixSystemProxySettings::IsProxyMode(const char* aMode) {
-   nsAutoCString mode;
-   return NS_SUCCEEDED(mGConf->GetString(

++++++ suse-default-prefs.js ++++++
--- /var/tmp/diff_new_pack.MGvcSA/_old  2019-09-18 13:06:59.192746106 +0200
+++ /var/tmp/diff_new_pack.MGvcSA/_new  2019-09-18 13:06:59.196746105 +0200
@@ -10,6 +10,7 @@
 pref("print.print_edge_right", 16); // 1/100 of an inch
 pref("print.print_edge_bottom", 14); // 1/100 of an inch
 pref("intl.locale.requested", "");
+pref("intl.multilingual.enabled", true);
 
 // do not disable system-global or app-global extensions
 pref("extensions.autoDisableScopes", 3);

++++++ tar_stamps ++++++
PRODUCT="thunderbird"
CHANNEL="esr68"
VERSION="68.1.0"
VERSION_SUFFIX=""
FF_RELEASE_TAG="0efe7ab505b59f1986ebedc0c114a7d24fd93168"
TB_RELEASE_TAG="9317dad8cb7fd80a47cb3b40253c73127f776535"
PREV_VERSION=""
PREV_VERSION_SUFFIX=""
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation

++++++ thunderbird-60.8.0.source.tar.xz -> thunderbird-68.1.0.source.tar.xz 
++++++
/work/SRC/openSUSE:Factory/MozillaThunderbird/thunderbird-60.8.0.source.tar.xz 
/work/SRC/openSUSE:Factory/.MozillaThunderbird.new.7948/thunderbird-68.1.0.source.tar.xz
 differ: char 15, line 1

++++++ thunderbird-locale-build.patch ++++++
diff --git a/comm/mail/locales/l10n.ini b/comm/mail/locales/l10n.ini
index eac6bfa..8700472 100644
--- a/comm/mail/locales/l10n.ini
+++ b/comm/mail/locales/l10n.ini
@@ -13,5 +13,5 @@ dirs = mail
 # include toolkit from mozilla.
 # Don't specify which, use l10n-central.ini and friends if you're
 # not working on a local check-out
-toolkit = mozilla/toolkit/locales/l10n.ini
-devtools_client = mozilla/devtools/client/locales/l10n.ini
+toolkit = ../toolkit/locales/l10n.ini
+devtools_client = ../devtools/client/locales/l10n.ini

Reply via email to