From 9f930d1e0b2667fbbebfdcc82d4c5873ceb5e67b Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Tue, 4 Apr 2017 21:51:16 +0200 Subject: [PATCH] Added rust compiler as buildrequire and fix for big endian icu data --- build-icu-big-endian.patch | 12 ++++++++++++ thunderbird.spec | 25 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 build-icu-big-endian.patch diff --git a/build-icu-big-endian.patch b/build-icu-big-endian.patch new file mode 100644 index 0000000..68fbea1 --- /dev/null +++ b/build-icu-big-endian.patch @@ -0,0 +1,12 @@ +diff -up mozilla-aurora/build/autoconf/icu.m4.icu-endian mozilla-aurora/build/autoconf/icu.m4 +--- mozilla-aurora/build/autoconf/icu.m4.icu-endian 2016-12-09 09:11:01.227317790 +0100 ++++ mozilla-aurora/build/autoconf/icu.m4 2016-12-09 09:18:40.608712247 +0100 +@@ -78,7 +78,7 @@ if test -n "$USE_ICU"; then + # TODO: the l is actually endian-dependent + # We could make this set as 'l' or 'b' for little or big, respectively, + # but we'd need to check in a big-endian version of the file. +- ICU_DATA_FILE="icudt${version}l.dat" ++ ICU_DATA_FILE="icudt${version}b.dat" + + dnl We won't build ICU data as a separate file when building + dnl JS standalone so that embedders don't have to deal with it. diff --git a/thunderbird.spec b/thunderbird.spec index f6f341f..edb6170 100644 --- a/thunderbird.spec +++ b/thunderbird.spec @@ -42,6 +42,14 @@ %define system_libicu 0 %endif +# Big endian platforms +%ifarch ppc64 s390x +# Javascript Intl API is not supported on big endian platforms right now: +# https://bugzilla.mozilla.org/show_bug.cgi?id=1322212 +%define big_endian 1 +%endif + + %define build_with_rust 0 %if 0%{?fedora} > 23 @@ -102,6 +110,7 @@ Source21: thunderbird.sh.in Patch0: thunderbird-install-dir.patch Patch9: mozilla-build-arm.patch Patch10: firefox-build-prbool.patch +Patch26: build-icu-big-endian.patch # Build patches Patch100: thunderbird-objdir.patch @@ -179,6 +188,10 @@ BuildRequires: yasm BuildRequires: dbus-glib-devel Obsoletes: thunderbird-lightning Provides: thunderbird-lightning +%if %{?build_with_rust} +BuildRequires: rust +BuildRequires: cargo +%endif ExcludeArch: aarch64 @@ -244,7 +257,12 @@ cd mozilla %patch400 -p1 -b .966424 #%patch402 -p1 -b .rhbz-1014858 FIXME musi byt %patch304 -p1 -b .1245783 +# Patch for big endian platforms only +%if 0%{?big_endian} +%patch26 -p1 -b .icu +%endif cd .. + %patch305 -p1 -b .fix-dupes %patch105 -p1 -b .bad-langs %patch200 -p1 -b .addons @@ -382,6 +400,13 @@ esac cd %{tarballdir} +echo "Generate big endian version of config/external/icu/data/icud58l.dat" +%if 0%{?big_endian} + ./mach python intl/icu_sources_data.py . + ls -l config/external/icu/data + rm -f config/external/icu/data/icudt*l.dat +%endif + # Update the various config.guess to upstream release for aarch64 support find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';'