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