diff options
-rw-r--r-- | waterfox/.gitignore | 1 | ||||
-rw-r--r-- | waterfox/stackrpms-2019-03-06.diff | 134 | ||||
-rwxr-xr-x | waterfox/stackrpms-diff.sh | 3 | ||||
-rw-r--r-- | waterfox/waterfox-chinfo-default-prefs.js | 4 | ||||
-rw-r--r-- | waterfox/waterfox.sh.in | 2 | ||||
-rw-r--r-- | waterfox/waterfox.spec | 225 |
6 files changed, 270 insertions, 99 deletions
diff --git a/waterfox/.gitignore b/waterfox/.gitignore index 44c08e1..70279b3 100644 --- a/waterfox/.gitignore +++ b/waterfox/.gitignore @@ -1,3 +1,2 @@ /FreeBSD-*.patch /wf-*.patch -!/wf-pull-547.patch diff --git a/waterfox/stackrpms-2019-03-06.diff b/waterfox/stackrpms-2019-03-06.diff new file mode 100644 index 0000000..f05d9fd --- /dev/null +++ b/waterfox/stackrpms-2019-03-06.diff @@ -0,0 +1,134 @@ +diff -x 'stackrpms*.diff' -x 'stackrpms*.sh' -x '*z' -x '.*.swp' -Naur chinforpms/waterfox/distribution.ini stackrpms/waterfox/distribution.ini +--- chinforpms/waterfox/distribution.ini 2018-11-05 14:29:34.793145640 -0500 ++++ stackrpms/waterfox/distribution.ini 2019-01-15 11:12:47.458208372 -0500 +@@ -1,9 +1,9 @@ + [Global] +-id=chinforpms ++id=stackrpms + version=1.0 + about=Waterfox for Fedora + + [Preferences] +-app.distributor=chinforpms +-app.distributor.channel=chinforpms +-app.partner.fedora=chinforpms ++app.distributor=stackrpms ++app.distributor.channel=stackrpms ++app.partner.fedora=stackrpms +diff -x 'stackrpms*.diff' -x 'stackrpms*.sh' -x '*z' -x '.*.swp' -Naur chinforpms/waterfox/issue2947383002_1.diff stackrpms/waterfox/issue2947383002_1.diff +--- chinforpms/waterfox/issue2947383002_1.diff 2018-11-05 14:29:34.794145647 -0500 ++++ stackrpms/waterfox/issue2947383002_1.diff 1969-12-31 19:00:00.000000000 -0500 +@@ -1,60 +0,0 @@ +-Index: webrtc/common_audio/vad/vad_core.c +-diff --git a/webrtc/common_audio/vad/vad_core.c b/webrtc/common_audio/vad/vad_core.c +-index 0340165eb5050ec9fbc386f6d373d0d90a4868f1..1a3889c36787f7bf993692e8fe7781c2ae35e2c2 100644 +---- a/webrtc/common_audio/vad/vad_core.c +-+++ b/webrtc/common_audio/vad/vad_core.c +-@@ -115,8 +115,8 @@ static int32_t WeightedAverage(int16_t* data, int16_t offset, +- // undefined behavior, so not a good idea; this just makes UBSan ignore the +- // violation, so that our old code can continue to do what it's always been +- // doing.) +--static inline int32_t OverflowingMulS16ByS32ToS32(int16_t a, int32_t b) +-- RTC_NO_SANITIZE("signed-integer-overflow") { +-+static inline int32_t RTC_NO_SANITIZE("signed-integer-overflow") +-+ OverflowingMulS16ByS32ToS32(int16_t a, int32_t b) { +- return a * b; +- } +- +-Index: webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c +-diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c +-index 039bbc8af7ec26e286dfc94b4383428e5e6e863b..dc8bcf3f481012caab8718430aa9242cf91ad480 100644 +---- a/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c +-+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c +-@@ -193,16 +193,16 @@ static void CalcCorrelation(int32_t *PSpecQ12, int32_t *CorrQ7) +- // undefined behavior, so not a good idea; this just makes UBSan ignore the +- // violations, so that our old code can continue to do what it's always been +- // doing.) +--static inline int32_t OverflowingMulS16S32ToS32(int16_t a, int32_t b) +-- RTC_NO_SANITIZE("signed-integer-overflow") { +-+static inline int32_t RTC_NO_SANITIZE("signed-integer-overflow") +-+ OverflowingMulS16S32ToS32(int16_t a, int32_t b) { +- return a * b; +- } +--static inline int32_t OverflowingAddS32S32ToS32(int32_t a, int32_t b) +-- RTC_NO_SANITIZE("signed-integer-overflow") { +-+static inline int32_t RTC_NO_SANITIZE("signed-integer-overflow") +-+ OverflowingAddS32S32ToS32(int32_t a, int32_t b) { +- return a + b; +- } +--static inline int32_t OverflowingSubS32S32ToS32(int32_t a, int32_t b) +-- RTC_NO_SANITIZE("signed-integer-overflow") { +-+static inline int32_t RTC_NO_SANITIZE("signed-integer-overflow") +-+ OverflowingSubS32S32ToS32(int32_t a, int32_t b) { +- return a - b; +- } +- +-Index: webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c +-diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c +-index 2b92acb64a3d7dd268574abb57a24850b60cb3d1..b69a885f34de9eaa762a69f11d84cc8bec637376 100644 +---- a/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c +-+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c +-@@ -209,8 +209,8 @@ void WebRtcIsacfix_NormLatticeFilterMa(size_t orderCoef, +- // Left shift of an int32_t that's allowed to overflow. (It's still undefined +- // behavior, so not a good idea; this just makes UBSan ignore the violation, so +- // that our old code can continue to do what it's always been doing.) +--static inline int32_t OverflowingLShiftS32(int32_t x, int shift) +-- RTC_NO_SANITIZE("shift") { +-+static inline int32_t RTC_NO_SANITIZE("shift") +-+ OverflowingLShiftS32(int32_t x, int shift) { +- return x << shift; +- } +- +diff -x 'stackrpms*.diff' -x 'stackrpms*.sh' -x '*z' -x '.*.swp' -Naur chinforpms/waterfox/waterfox-cubeb-build.patch stackrpms/waterfox/waterfox-cubeb-build.patch +--- chinforpms/waterfox/waterfox-cubeb-build.patch 2018-11-05 14:29:34.795145654 -0500 ++++ stackrpms/waterfox/waterfox-cubeb-build.patch 1969-12-31 19:00:00.000000000 -0500 +@@ -1,8 +0,0 @@ +---- Waterfox-56.0.2/media/libcubeb/src/moz.build.cubebbuild 2018-01-05 16:39:00.921101411 -0200 +-+++ Waterfox-56.0.2/media/libcubeb/src/moz.build 2018-01-05 16:40:44.948718748 -0200 +-@@ -89,4 +89,4 @@ CFLAGS += CONFIG['MOZ_ALSA_CFLAGS'] +- CFLAGS += CONFIG['MOZ_PULSEAUDIO_CFLAGS'] +- +- # We allow warnings for third-party code that can be updated from upstream. +--AllowCompilerWarnings() +-+ALLOW_COMPILER_WARNINGS = True +diff -x 'stackrpms*.diff' -x 'stackrpms*.sh' -x '*z' -x '.*.swp' -Naur chinforpms/waterfox/waterfox-mozconfig stackrpms/waterfox/waterfox-mozconfig +--- chinforpms/waterfox/waterfox-mozconfig 2019-01-15 11:35:07.704294765 -0500 ++++ stackrpms/waterfox/waterfox-mozconfig 2019-01-17 07:54:36.258797151 -0500 +@@ -41,4 +41,4 @@ + ac_add_options --with-app-name=waterfox + ac_add_options --with-app-basename=Waterfox + ac_add_options --with-branding=browser/branding/unofficial +-ac_add_options --with-distribution-id=chinforpms ++ac_add_options --with-distribution-id=stackrpms +diff -x 'stackrpms*.diff' -x 'stackrpms*.sh' -x '*z' -x '.*.swp' -Naur chinforpms/waterfox/waterfox.spec stackrpms/waterfox/waterfox.spec +--- chinforpms/waterfox/waterfox.spec 2019-03-06 07:48:49.852601972 -0500 ++++ stackrpms/waterfox/waterfox.spec 2019-03-06 08:29:09.565750261 -0500 +@@ -91,7 +91,8 @@ + %global webp_version 1.0.0 + %endif + %if 0%{?system_vorbis} +-%global ogg_version 1.3.3 ++# decrease this to fc28 libogg version and hope it works 2018-09-14 ++%global ogg_version 1.3.2 + %global vorbis_version 1.3.5 + %endif + +@@ -119,7 +120,7 @@ + Summary: Waterfox Web browser + Name: waterfox + Version: 56.2.7.1 +-Release: 2%{?gver}%{?dist} ++Release: 3%{?gver}%{?dist} + URL: https://www.waterfoxproject.org + License: MPLv1.1 or GPLv2+ or LGPLv2+ + +@@ -992,6 +993,9 @@ + #--------------------------------------------------------------------- + + %changelog ++* Wed Mar 6 2019 B Stack <bgstack15@gmail.com> - 56.2.7.1-3.20190201gitf367fd2 ++- repackage for stackrpms ++ + * Wed Feb 13 2019 Phantom X <megaphantomx at bol dot com dot br> - 56.2.7.1-2.20190201gitf367fd2 + - LTO and fixes to build with it + diff --git a/waterfox/stackrpms-diff.sh b/waterfox/stackrpms-diff.sh new file mode 100755 index 0000000..4d4ed17 --- /dev/null +++ b/waterfox/stackrpms-diff.sh @@ -0,0 +1,3 @@ +# use this file to display the differences between chinfo upstream and my work. +# usage: stackrpms/waterfox/stackrpms-diff.sh | vi +diff -x stackrpms*.diff -x stackrpms*.sh -x *z -x .*.swp -Naur chinforpms/waterfox stackrpms/waterfox diff --git a/waterfox/waterfox-chinfo-default-prefs.js b/waterfox/waterfox-chinfo-default-prefs.js index acc7de5..cc12293 100644 --- a/waterfox/waterfox-chinfo-default-prefs.js +++ b/waterfox/waterfox-chinfo-default-prefs.js @@ -16,8 +16,8 @@ pref("network.manage-offline-status", true); pref("extensions.shownSelectionUI", true); pref("ui.SpellCheckerUnderlineStyle", 1); pref("startup.homepage_override_url", ""); -pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=http://start.fedoraproject.org/"); -pref("browser.newtabpage.pinned", '[{"url":"http://start.fedoraproject.org/","title":"Fedora Project - Start Page"}]'); +pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=https://start.fedoraproject.org/"); +pref("browser.newtabpage.pinned", '[{"url":"https://start.fedoraproject.org/","title":"Fedora Project - Start Page"}]'); pref("media.gmp-gmpopenh264.provider.enabled",false); pref("media.gmp-gmpopenh264.autoupdate",false); pref("media.gmp-gmpopenh264.enabled",false); diff --git a/waterfox/waterfox.sh.in b/waterfox/waterfox.sh.in index 70bc25f..2dd1ee8 100644 --- a/waterfox/waterfox.sh.in +++ b/waterfox/waterfox.sh.in @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/bash # # The contents of this file are subject to the Netscape Public # License Version 1.1 (the "License"); you may not use this file diff --git a/waterfox/waterfox.spec b/waterfox/waterfox.spec index 2d29467..c367f00 100644 --- a/waterfox/waterfox.spec +++ b/waterfox/waterfox.spec @@ -1,6 +1,6 @@ -%global commit ff4597172229f8d71940c3885b74b903b7b1821a +%global commit f367fd24ba208519742e7370fb1478c3ed0d14c7 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global date 20181217 +%global date 20190201 %global with_snapshot 1 %global freebsd_rev 480450 @@ -12,6 +12,11 @@ ExcludeArch: armv7hl +%global verbose_build 0 +%if 0%{?verbose_build} +%global verbose_mach -v +%endif + %global alsa_backend 1 %global system_nss 1 %global system_hunspell 1 @@ -35,6 +40,10 @@ ExcludeArch: armv7hl %global build_with_pgo 1 %endif +%ifarch x86_64 +%global build_with_lto 1 +%endif + # Big endian platforms %ifarch ppc64 s390x %global big_endian 1 @@ -50,9 +59,8 @@ ExcludeArch: armv7hl %global build_tests 1 %endif -%bcond_without debug_build +%bcond_with debug_build %if %{with debug_build} -%else %global debug_build 1 %else %global debug_build 0 @@ -68,28 +76,27 @@ ExcludeArch: armv7hl # Minimal required versions %global cairo_version 1.13.1 %global freetype_version 2.1.9 -%if %{?system_harfbuzz} +%if 0%{?system_harfbuzz} %global graphite2_version 1.3.10 %global harfbuzz_version 1.4.7 %endif -%if %{?system_libevent} -# fc28 provided is 2.1.8, fc27 is 2.0.22 -%global libevent_version 2.0.22 +%if 0%{?system_libevent} +%global libevent_version 2.1.8 %endif %global libnotify_version 0.7.0 -%if %{?system_libvpx} +%if 0%{?system_libvpx} %global libvpx_version 1.4.0 %endif -%if %{?system_webp} +%if 0%{?system_webp} %global webp_version 1.0.0 %endif -%if %{?system_vorbis} +%if 0%{?system_vorbis} # decrease this to fc28 libogg version and hope it works 2018-09-14 %global ogg_version 1.3.2 %global vorbis_version 1.3.5 %endif -%if %{?system_nss} +%if 0%{?system_nss} %global nspr_version 4.17.0 # NSS/NSPR quite often ends in build override, so as requirement the version # we're building against could bring us some broken dependencies from time to time. @@ -98,7 +105,7 @@ ExcludeArch: armv7hl %global nss_build_version %{nss_version} %endif -%if %{?system_sqlite} +%if 0%{?system_sqlite} %global sqlite_version 3.8.4.2 # The actual sqlite version (see #480989): %global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536) @@ -112,7 +119,7 @@ ExcludeArch: armv7hl Summary: Waterfox Web browser Name: waterfox -Version: 56.2.6 +Version: 56.2.7.1 Release: 3%{?gver}%{?dist} URL: https://www.waterfoxproject.org License: MPLv1.1 or GPLv2+ or LGPLv2+ @@ -201,16 +208,16 @@ Patch702: %{name}-waterfoxdir-2.patch Patch703: %{name}-webrtc-gtest-libv4l2.patch -%if %{?system_nss} +%if 0%{?system_nss} BuildRequires: pkgconfig(nspr) >= %{nspr_version} BuildRequires: pkgconfig(nss) >= %{nss_version} BuildRequires: nss-static >= %{nss_version} %endif -%if %{?system_cairo} +%if 0%{?system_cairo} BuildRequires: pkgconfig(cairo) >= %{cairo_version} %endif BuildRequires: pkgconfig(libpng) -%if %{?system_jpeg} +%if 0%{?system_jpeg} BuildRequires: libjpeg-devel %endif BuildRequires: zip @@ -222,16 +229,16 @@ BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(krb5) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(freetype2) >= %{freetype_version} -%if %{?system_harfbuzz} +%if 0%{?system_harfbuzz} BuildRequires: pkgconfig(graphite2) >= %{graphite2_version} BuildRequires: pkgconfig(harfbuzz) >= %{harfbuzz_version} %endif BuildRequires: pkgconfig(xt) BuildRequires: pkgconfig(xrender) -%if %{?system_hunspell} +%if 0%{?system_hunspell} BuildRequires: pkgconfig(hunspell) %endif -%if %{?system_libevent} +%if 0%{?system_libevent} BuildRequires: pkgconfig(libevent) >= %{libevent_version} %endif BuildRequires: pkgconfig(libstartup-notification-1.0) @@ -243,27 +250,32 @@ BuildRequires: pkgconfig(dri) BuildRequires: pkgconfig(libcurl) BuildRequires: dbus-glib-devel BuildRequires: pkgconfig(libv4l2) -%if %{?system_libvpx} +%if 0%{?system_libvpx} BuildRequires: pkgconfig(vpx) >= %{libvpx_version} %endif -%if %{?system_webp} +%if 0%{?system_webp} BuildRequires: pkgconfig(libwebp) >= %{webp_version} %endif -%if %{?system_vorbis} +%if 0%{?system_vorbis} BuildRequires: pkgconfig(ogg) >= %{ogg_version} BuildRequires: pkgconfig(vorbis) >= %{vorbis_version} %endif BuildRequires: autoconf213 BuildRequires: pkgconfig(libpulse) +%if 0%{?system_libicu} BuildRequires: pkgconfig(icu-i18n) +%endif BuildRequires: yasm BuildRequires: llvm BuildRequires: llvm-devel BuildRequires: clang BuildRequires: clang-libs %if 0%{?build_with_clang} -#BuildRequires: lld +BuildRequires: lld BuildRequires: libstdc++-static +%if 0%{?build_with_pgo} +BuildRequires: compiler-rt +%endif %else BuildRequires: gcc-c++ %endif @@ -273,7 +285,7 @@ BuildRequires: patchutils Requires: mozilla-filesystem Requires: waterfox-filesystem Requires: p11-kit-trust -%if %{?system_nss} +%if 0%{?system_nss} Requires: nspr >= %{nspr_build_version} Requires: nss >= %{nss_build_version} %endif @@ -285,12 +297,12 @@ Requires: nss >= 3.29.1-2.1 BuildRequires: desktop-file-utils BuildRequires: system-bookmarks -%if %{?system_sqlite} +%if 0%{?system_sqlite} BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version} Requires: sqlite >= %{sqlite_build_version} %endif -%if %{?system_ffi} +%if 0%{?system_ffi} BuildRequires: pkgconfig(libffi) %endif @@ -413,17 +425,13 @@ done # 2: no apply # 3: uncertain for i in \ - 702179 991253 1021761 1144632 1288587 1395486 1452576 \ + 702179 991253 1021761 1144632 1288587 1393283 1395486 1452576 1453127 \ 1388744 1413143 \ 1447519 do rm -f _patches/patch-bug${i} done -%if 0%{?fedora} < 28 - rm -f _patches/patch-bug730495 -%endif - patchcommand='patch -p0 -s -i' for i in _patches/patch-{bug{??????,???????},revert-bug*,z-*} ;do @@ -445,26 +453,12 @@ done rm -f .mozconfig cp %{SOURCE10} .mozconfig -%if 0%{?build_with_clang} -echo 'export LLVM_PROFDATA="llvm-profdata"' >> .mozconfig -echo 'export CC=clang' >> .mozconfig -echo 'export CXX=clang++' >> .mozconfig -echo 'export AR="llvm-ar"' >> .mozconfig -echo 'export NM="llvm-nm"' >> .mozconfig -echo 'export RANLIB="llvm-ranlib"' >> .mozconfig -echo "ac_add_options --enable-linker=gold" >> .mozconfig -%else -echo 'export CC=gcc' >> .mozconfig -echo 'export CXX=g++' >> .mozconfig -echo "ac_add_options --enable-linker=gold" >> .mozconfig -%endif %if 0%{?build_with_pgo} echo "mk_add_options MOZ_PGO=1" >> .mozconfig echo "mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 \$(MAKE) -C \$(MOZ_OBJDIR) pgo-profile-run'" >> .mozconfig -#echo "ac_add_options --enable-lto" >> .mozconfig %endif -%if %{?system_nss} +%if 0%{?system_nss} echo "ac_add_options --with-system-nspr" >> .mozconfig echo "ac_add_options --with-system-nss" >> .mozconfig %else @@ -472,19 +466,19 @@ echo "ac_add_options --without-system-nspr" >> .mozconfig echo "ac_add_options --without-system-nss" >> .mozconfig %endif -%if %{?system_sqlite} +%if 0%{?system_sqlite} echo "ac_add_options --enable-system-sqlite" >> .mozconfig %else echo "ac_add_options --disable-system-sqlite" >> .mozconfig %endif -%if %{?system_cairo} +%if 0%{?system_cairo} echo "ac_add_options --enable-system-cairo" >> .mozconfig %else echo "ac_add_options --disable-system-cairo" >> .mozconfig %endif -%if %{?system_harfbuzz} +%if 0%{?system_harfbuzz} echo "ac_add_options --enable-system-graphite2" >> .mozconfig echo "ac_add_options --enable-system-harfbuzz" >> .mozconfig %else @@ -492,7 +486,7 @@ echo "ac_add_options --disable-system-graphite2" >> .mozconfig echo "ac_add_options --disable-system-harfbuzz" >> .mozconfig %endif -%if %{?system_ffi} +%if 0%{?system_ffi} echo "ac_add_options --enable-system-ffi" >> .mozconfig %endif @@ -508,19 +502,19 @@ echo "ac_add_options --disable-elf-hack" >> .mozconfig echo "ac_add_options --enable-alsa" >> .mozconfig %endif -%if %{?system_hunspell} +%if 0%{?system_hunspell} echo "ac_add_options --enable-system-hunspell" >> .mozconfig %else echo "ac_add_options --disable-system-hunspell" >> .mozconfig %endif -%if %{?system_libevent} +%if 0%{?system_libevent} echo "ac_add_options --enable-system-libevent" >> .mozconfig %else echo "ac_add_options --disable-system-libevent" >> .mozconfig %endif -%if %{?debug_build} +%if 0%{?debug_build} echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig %else @@ -555,25 +549,25 @@ echo "ac_add_options --enable-tests" >> .mozconfig echo "ac_add_options --disable-tests" >> .mozconfig %endif -%if !%{?system_jpeg} +%if !0%{?system_jpeg} echo "ac_add_options --without-system-jpeg" >> .mozconfig %else echo "ac_add_options --with-system-jpeg" >> .mozconfig %endif -%if %{?system_libvpx} +%if 0%{?system_libvpx} echo "ac_add_options --with-system-libvpx" >> .mozconfig %else echo "ac_add_options --without-system-libvpx" >> .mozconfig %endif -%if %{?system_webp} +%if 0%{?system_webp} echo "ac_add_options --with-system-webp" >> .mozconfig %else echo "ac_add_options --without-system-webp" >> .mozconfig %endif -%if %{?system_vorbis} +%if 0%{?system_vorbis} echo "ac_add_options --with-system-ogg" >> .mozconfig echo "ac_add_options --with-system-vorbis" >> .mozconfig %else @@ -581,7 +575,7 @@ echo "ac_add_options --without-system-ogg" >> .mozconfig echo "ac_add_options --without-system-vorbis" >> .mozconfig %endif -%if %{?system_libicu} +%if 0%{?system_libicu} echo "ac_add_options --with-system-icu" >> .mozconfig %else echo "ac_add_options --without-system-icu" >> .mozconfig @@ -597,7 +591,7 @@ chmod -x third_party/rust/itertools/src/lib.rs #--------------------------------------------------------------------- %build -%if %{?system_sqlite} +%if 0%{?system_sqlite} # Do not proceed with build if the sqlite require would be broken: # make sure the minimum requirement is non-empty, ... sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1 @@ -618,28 +612,69 @@ echo "Generate big endian version of config/external/icu/data/icud58l.dat" # Update the various config.guess to upstream release for aarch64 support find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';' -MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//') +RPM_SMP_MFLAGS_NCPUS=$(echo %{_smp_mflags} | sed 's|-j||') + +RPM_NCPUS=1 +# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, +# however builds tend to fail on other arches when building in parallel. +%ifarch %{ix86} +[ "$RPM_SMP_MFLAGS_NCPUS" -ge 2 ] && RPM_NCPUS=2 +%endif +%ifarch x86_64 ppc ppc64 ppc64le aarch64 +[ "$RPM_SMP_MFLAGS_NCPUS" -ge 2 ] && RPM_NCPUS=2 +[ "$RPM_SMP_MFLAGS_NCPUS" -ge 4 ] && RPM_NCPUS=4 +[ "$RPM_SMP_MFLAGS_NCPUS" -ge 8 ] && RPM_NCPUS=8 +%endif +MOZ_SMP_FLAGS=-j$RPM_NCPUS + +%if 0%{?build_with_clang} +echo "ac_add_options --enable-linker=lld" >> .mozconfig +MOZ_OPT_FLAGS="-fuse-ld=lld" +%else +%ifarch %{ix86} x86_64 %{arm} +echo "ac_add_options --enable-linker=gold" >> .mozconfig +MOZ_OPT_FLAGS="-fuse-ld=gold" +%endif +%endif + +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS $(echo "%{optflags}" | sed -e 's/-Wall//')" #rhbz#1037063 # -Werror=format-security causes build failures when -Wno-format is explicitly given # for some sources # Explicitly force the hardening flags for Waterfox so it passes the checksec test; # See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" +%if 0%{?build_with_clang} +# Fedora's default compiler flags conflict with what clang supports +MOZ_OPT_FLAGS="$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-fstack-clash-protection//')" +%endif %if %{?hardened_build} MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now" %endif -%if %{?debug_build} -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') +%if 0%{?debug_build} +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-O2//' -e 's/-O3//') +%else +export MOZ_DEBUG_FLAGS=" " +%endif +%if 0%{?build_with_lto} +MOZ_OPT_FLAGS="$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-O2/-O3/' -e 's/-g/-g1/')" +%if 0%{?build_with_clang} +RPM_FLTO_FLAGS="-flto=thin -Wl,--thinlto-jobs=$RPM_NCPUS" +%else +RPM_FLTO_FLAGS="-flto=$RPM_NCPUS -fuse-linker-plugin -flifetime-dse=1 -fdisable-ipa-cdtor" +%endif +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS $RPM_FLTO_FLAGS" +MOZ_LINK_FLAGS="$MOZ_OPT_FLAGS" %endif %ifarch s390 -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-g/-g1/') # If MOZ_DEBUG_FLAGS is empty, waterfox's build will default it to "-g" which # overrides the -g1 from line above and breaks building on s390 # (OOM when linking, rhbz#1238225) export MOZ_DEBUG_FLAGS=" " %endif %ifarch %{arm} -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g0/') +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-g/-g0/') export MOZ_DEBUG_FLAGS=" " %endif %if !0%{?build_with_clang} @@ -654,54 +689,45 @@ MOZ_LINK_FLAGS="-Wl,--no-keep-memory" %ifarch %{arm} %{ix86} export RUSTFLAGS="-Cdebuginfo=0" %endif -export CFLAGS=$MOZ_OPT_FLAGS -export CXXFLAGS=$MOZ_OPT_FLAGS -export LDFLAGS=$MOZ_LINK_FLAGS - -export PREFIX='%{_prefix}' -export LIBDIR='%{_libdir}' %if 0%{?build_with_clang} +export LLVM_PROFDATA="llvm-profdata" export CC=clang export CXX=clang++ export AR="llvm-ar" export NM="llvm-nm" +export RANLIB="llvm-ranlib" %else export CC=gcc export CXX=g++ +export AR="gcc-ar" +export NM="gcc-nm" +export RANLIB="gcc-ranlib" %endif -smp_mflags_cpus=$(echo %{_smp_mflags} | sed 's|-j||g') +export CFLAGS=$MOZ_OPT_FLAGS +export CXXFLAGS=$MOZ_OPT_FLAGS +export LDFLAGS=$MOZ_LINK_FLAGS -MOZ_SMP_FLAGS=-j1 -# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, -# however builds tend to fail on other arches when building in parallel. -%ifarch %{ix86} -[ -z "$RPM_BUILD_NCPUS" ] && \ - RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" -[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 -%endif -%ifarch x86_64 ppc ppc64 ppc64le aarch64 -[ -z "$RPM_BUILD_NCPUS" ] && \ - RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" -[ "$smp_mflags_cpus" -lt "$RPM_BUILD_NCPUS" ] && RPM_BUILD_NCPUS="$smp_mflags_cpus" -[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 -[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 -[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 -%endif +export PREFIX='%{_prefix}' +export LIBDIR='%{_libdir}' export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" export MOZ_SERVICES_SYNC="1" export MOZ_NOSPAM=1 export STRIP=/bin/true +%if 0%{?build_with_lto} +export TMPDIR="$(pwd)/tmpdir" +mkdir -p "$TMPDIR" +%endif %if 0%{?build_with_pgo} -SHELL=/usr/bin/bash GDK_BACKEND=x11 xvfb-run ./mach build -v +SHELL=/usr/bin/bash GDK_BACKEND=x11 xvfb-run ./mach build %{?verbose_mach} %else -SHELL=/usr/bin/bash ./mach build -v +SHELL=/usr/bin/bash ./mach build %{?verbose_mach} %endif %if %{?run_tests} -%if %{?system_nss} +%if 0%{?system_nss} ln -s /usr/bin/certutil objdir/dist/bin/certutil ln -s /usr/bin/pk12util objdir/dist/bin/pk12util @@ -724,7 +750,7 @@ xvfb-run ./mach --log-no-times webapprt-test-chrome &> test_results/webapprt-tes xvfb-run ./mach --log-no-times webapprt-test-content &> test_results/webapprt-test-content || true ./mach --log-no-times webidl-parser-test &> test_results/webidl-parser-test || true xvfb-run ./mach --log-no-times xpcshell-test &> test_results/xpcshell-test || true -%if %{?system_nss} +%if 0%{?system_nss} rm -f objdir/dist/bin/certutil rm -f objdir/dist/bin/pk12util %endif @@ -954,10 +980,10 @@ fi %{mozappdir}/plugin-container %{mozappdir}/gmp-clearkey %{mozappdir}/fonts/EmojiOneMozilla.ttf -%if !%{?system_libicu} +%if !0%{?system_libicu} %{mozappdir}/icudt*.dat %endif -%if !%{?system_nss} +%if !0%{?system_nss} %{mozappdir}/libfreeblpriv3.chk %{mozappdir}/libnssdbm3.chk %{mozappdir}/libsoftokn3.chk @@ -967,9 +993,18 @@ fi #--------------------------------------------------------------------- %changelog -* Tue Jan 15 2019 B Stack <bgstack15@gmail.com> - 56.2.6-3.20181217gitff45971 +* Wed Mar 6 2019 B Stack <bgstack15@gmail.com> - 56.2.7.1-3.20190201gitf367fd2 - repackage for stackrpms +* Wed Feb 13 2019 Phantom X <megaphantomx at bol dot com dot br> - 56.2.7.1-2.20190201gitf367fd2 +- LTO and fixes to build with it + +* Mon Feb 04 2019 Phantom X <megaphantomx at bol dot com dot br> - 56.2.7.1-1.20190201gitf367fd2 +- New release/snapshot + +* Thu Jan 31 2019 Phantom X <megaphantomx at bol dot com dot br> - 56.2.7-1.20190129git3fa3c2a +- New release/snapshot + * Wed Jan 09 2019 Phantom X <megaphantomx at bol dot com dot br> - 56.2.6-2.20181217gitff45971 - PGO and fixes for it to work (from Gentoo and Fedora Firefox) - Return gcc build |