From 549522274257e56571cfbe8bcd69252d5e2efe13 Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Wed, 21 Apr 2021 20:02:13 +0000 Subject: waterfox 2021.03 --- waterfox/0001-angle-set-c-14.patch | 27 +++ waterfox/debian/changelog | 6 + waterfox/debian/control | 1 + waterfox/debian/waterfox+devuan.dsc | 4 +- waterfox/seamonkey-2.53.3-system_libvpx-1.8.patch | 242 ++++++++++++++++++++++ waterfox/waterfox-nolangpacks.patch | 27 ++- waterfox/waterfox.spec | 77 ++++--- 7 files changed, 350 insertions(+), 34 deletions(-) create mode 100644 waterfox/0001-angle-set-c-14.patch create mode 100644 waterfox/seamonkey-2.53.3-system_libvpx-1.8.patch diff --git a/waterfox/0001-angle-set-c-14.patch b/waterfox/0001-angle-set-c-14.patch new file mode 100644 index 0000000..6d82f96 --- /dev/null +++ b/waterfox/0001-angle-set-c-14.patch @@ -0,0 +1,27 @@ +From a5c776769a911eeeaf10e276f8b17e93b1f07d19 Mon Sep 17 00:00:00 2001 +From: Phantom X +Date: Wed, 7 Apr 2021 23:20:18 -0300 +Subject: [PATCH] angle: set c++14 + +--- + gfx/angle/moz.build.common | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/gfx/angle/moz.build.common b/gfx/angle/moz.build.common +index 31a1440..1bb83d5 100644 +--- a/gfx/angle/moz.build.common ++++ b/gfx/angle/moz.build.common +@@ -7,6 +7,10 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): + '-Wno-range-loop-construct', + ] + ++if CONFIG['CC_TYPE'] in ('gcc'): ++ CXXFLAGS += [ ++ '-std=c++14', ++ ] + + if CONFIG['INTEL_ARCHITECTURE']: + CXXFLAGS += CONFIG['SSE2_FLAGS'] +-- +2.30.2 + diff --git a/waterfox/debian/changelog b/waterfox/debian/changelog index 3317075..ca1b5ce 100644 --- a/waterfox/debian/changelog +++ b/waterfox/debian/changelog @@ -1,3 +1,9 @@ +waterfox (2021.03-1+devuan) obs; urgency=medium + + - latest version + + -- B. Stack Mon, 29 Mar 2021 10:58:46 -0400 + waterfox (2021.02-1+devuan) obs; urgency=medium - latest version diff --git a/waterfox/debian/control b/waterfox/debian/control index a55d956..66f7d79 100644 --- a/waterfox/debian/control +++ b/waterfox/debian/control @@ -34,6 +34,7 @@ Build-Depends: debhelper (>= 12), llvm-dev (>= 4.0) | llvm-4.0-dev | llvm-6.0-dev | llvm-7-dev, locales, lsb-release, + nasm (>= 2.13), python2 (>= 2.7.18-2~) | python (>= 2.7), python-ply, rustc (>= 1.34), diff --git a/waterfox/debian/waterfox+devuan.dsc b/waterfox/debian/waterfox+devuan.dsc index b682af9..045c175 100644 --- a/waterfox/debian/waterfox+devuan.dsc +++ b/waterfox/debian/waterfox+devuan.dsc @@ -2,11 +2,11 @@ Format: 3.0 (quilt) Source: waterfox Binary: waterfox Architecture: any -Version: 2021.02-1+devuan +Version: 2021.03-1+devuan Maintainer: B Stack Homepage: https://www.waterfox.net/ Standards-Version: 4.1.4 -Build-Depends: debhelper (>= 12), autoconf2.13, autotools-dev, binutils-avr, cargo (>= 0.35), ccache, clang (>= 4.0) | clang-4.0 | clang-6.0 | clang-7, dpkg-dev (>= 1.16.1.1~), libasound2-dev, libbz2-dev, libclang-dev (>= 4.0) | libclang-4.0-dev | libclang-6.0-dev | libclang-7-dev, libdbus-glib-1-dev, libevent-dev (>= 1.4.1), libgconf2-dev, libglib2.0-dev (>= 2.16.0), libgtk2.0-dev (>= 2.10), libgtk-3-dev, libiw-dev, libjpeg-dev, libjsoncpp-dev, libnotify-dev, libreadline-dev, libstartup-notification0-dev, libtinfo-dev, libx11-dev, libx11-xcb-dev, libxt-dev, llvm-dev (>= 4.0) | llvm-4.0-dev | llvm-6.0-dev | llvm-7-dev, locales, lsb-release, python2 (>= 2.7.18-2~) | python (>= 2.7), python-ply, rustc (>= 1.34), unzip, xauth, xfonts-base, xvfb, yasm (>= 1.1), zip, zlib1g-dev, libfontconfig-dev +Build-Depends: debhelper (>= 12), autoconf2.13, autotools-dev, binutils-avr, cargo (>= 0.35), ccache, clang (>= 4.0) | clang-4.0 | clang-6.0 | clang-7, dpkg-dev (>= 1.16.1.1~), libasound2-dev, libbz2-dev, libclang-dev (>= 4.0) | libclang-4.0-dev | libclang-6.0-dev | libclang-7-dev, libdbus-glib-1-dev, libevent-dev (>= 1.4.1), libgconf2-dev, libglib2.0-dev (>= 2.16.0), libgtk2.0-dev (>= 2.10), libgtk-3-dev, libiw-dev, libjpeg-dev, libjsoncpp-dev, libnotify-dev, libreadline-dev, libstartup-notification0-dev, libtinfo-dev, libx11-dev, libx11-xcb-dev, libxt-dev, llvm-dev (>= 4.0) | llvm-4.0-dev | llvm-6.0-dev | llvm-7-dev, locales, lsb-release, nasm (>= 2.13), python2 (>= 2.7.18-2~) | python (>= 2.7), python-ply, rustc (>= 1.34), unzip, xauth, xfonts-base, xvfb, yasm (>= 1.1), zip, zlib1g-dev, libfontconfig-dev Package-List: waterfox deb web optional arch=any Files: diff --git a/waterfox/seamonkey-2.53.3-system_libvpx-1.8.patch b/waterfox/seamonkey-2.53.3-system_libvpx-1.8.patch new file mode 100644 index 0000000..ee756ee --- /dev/null +++ b/waterfox/seamonkey-2.53.3-system_libvpx-1.8.patch @@ -0,0 +1,242 @@ +--- seamonkey-2.53.3/mozilla/dom/media/platforms/agnostic/VPXDecoder.h ++++ seamonkey-2.53.3/mozilla/dom/media/platforms/agnostic/VPXDecoder.h +@@ -10,7 +10,6 @@ + #include "mozilla/Span.h" + + #include +-#define VPX_DONT_DEFINE_STDINT_TYPES + #include "vpx/vp8dx.h" + #include "vpx/vpx_codec.h" + #include "vpx/vpx_decoder.h" +--- seamonkey-2.53.3/mozilla/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc ++++ seamonkey-2.53.3/mozilla/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc +@@ -80,7 +80,6 @@ + num_spatial_layers_(0), + num_cores_(0), + is_flexible_mode_(false), +- frames_encoded_(0), + // Use two spatial when screensharing with flexible mode. + spatial_layer_(new ScreenshareLayersVP9(2)) { + memset(&codec_, 0, sizeof(codec_)); +@@ -339,12 +338,11 @@ + // TODO(asapersson): Check configuration of temporal switch up and increase + // pattern length. + is_flexible_mode_ = inst->VP9().flexibleMode; +- if (is_flexible_mode_) { +- config_->temporal_layering_mode = VP9E_TEMPORAL_LAYERING_MODE_BYPASS; +- config_->ts_number_layers = num_temporal_layers_; +- if (codec_.mode == kScreensharing) +- spatial_layer_->ConfigureBitrate(inst->startBitrate, 0); +- } else if (num_temporal_layers_ == 1) { ++ ++ // TODO(ssilkin): Only non-flexible mode is supported for now. ++ RTC_DCHECK(!is_flexible_mode_); ++ ++ if (num_temporal_layers_ == 1) { + gof_.SetGofInfoVP9(kTemporalStructureMode1); + config_->temporal_layering_mode = VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING; + config_->ts_number_layers = 1; +@@ -439,6 +437,25 @@ + vpx_codec_control(encoder_, VP9E_SET_SVC_PARAMETERS, + &svc_params_); + } ++ ++ if (num_spatial_layers_ > 1) { ++ if (!is_flexible_mode_) { ++ // In RTP non-flexible mode, frame dropping of individual layers in a ++ // superframe leads to incorrect reference picture ID values in the ++ // RTP header. Dropping the entire superframe if the base is dropped ++ // or not dropping upper layers if base is not dropped mitigates ++ // the problem. ++ vpx_svc_frame_drop_t svc_drop_frame; ++ svc_drop_frame.framedrop_mode = CONSTRAINED_LAYER_DROP; ++ for (size_t i = 0; i < num_spatial_layers_; ++i) { ++ svc_drop_frame.framedrop_thresh[i] = ++ (i == 0) ? config_->rc_dropframe_thresh : 0; ++ } ++ vpx_codec_control(encoder_, VP9E_SET_SVC_FRAME_DROP_LAYER, ++ &svc_drop_frame); ++ } ++ } ++ + // Register callback for getting each spatial layer. + vpx_codec_priv_output_cx_pkt_cb_pair_t cbp = { + VP9EncoderImpl::EncoderOutputCodedPacketCallback, +@@ -532,28 +549,6 @@ + flags = VPX_EFLAG_FORCE_KF; + } + +- if (is_flexible_mode_) { +- SuperFrameRefSettings settings; +- +- // These structs are copied when calling vpx_codec_control, +- // therefore it is ok for them to go out of scope. +- vpx_svc_ref_frame_config enc_layer_conf; +- vpx_svc_layer_id layer_id; +- +- if (codec_.mode == kRealtimeVideo) { +- // Real time video not yet implemented in flexible mode. +- RTC_NOTREACHED(); +- } else { +- settings = spatial_layer_->GetSuperFrameSettings(input_image.timestamp(), +- send_keyframe); +- } +- enc_layer_conf = GenerateRefsAndFlags(settings); +- layer_id.temporal_layer_id = 0; +- layer_id.spatial_layer_id = settings.start_layer; +- vpx_codec_control(encoder_, VP9E_SET_SVC_LAYER_ID, &layer_id); +- vpx_codec_control(encoder_, VP9E_SET_SVC_REF_FRAME_CONFIG, &enc_layer_conf); +- } +- + assert(codec_.maxFramerate > 0); + uint32_t duration = 90000 / codec_.maxFramerate; + if (vpx_codec_encode(encoder_, raw_, timestamp_, duration, flags, +@@ -761,108 +756,6 @@ + return WEBRTC_VIDEO_CODEC_OK; + } + +-vpx_svc_ref_frame_config VP9EncoderImpl::GenerateRefsAndFlags( +- const SuperFrameRefSettings& settings) { +- static const vpx_enc_frame_flags_t kAllFlags = +- VP8_EFLAG_NO_REF_ARF | VP8_EFLAG_NO_REF_GF | VP8_EFLAG_NO_REF_LAST | +- VP8_EFLAG_NO_UPD_LAST | VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_UPD_GF; +- vpx_svc_ref_frame_config sf_conf = {}; +- if (settings.is_keyframe) { +- // Used later on to make sure we don't make any invalid references. +- memset(buffer_updated_at_frame_, -1, sizeof(buffer_updated_at_frame_)); +- for (int layer = settings.start_layer; layer <= settings.stop_layer; +- ++layer) { +- num_ref_pics_[layer] = 0; +- buffer_updated_at_frame_[settings.layer[layer].upd_buf] = frames_encoded_; +- // When encoding a keyframe only the alt_fb_idx is used +- // to specify which layer ends up in which buffer. +- sf_conf.alt_fb_idx[layer] = settings.layer[layer].upd_buf; +- } +- } else { +- for (int layer_idx = settings.start_layer; layer_idx <= settings.stop_layer; +- ++layer_idx) { +- vpx_enc_frame_flags_t layer_flags = kAllFlags; +- num_ref_pics_[layer_idx] = 0; +- int8_t refs[3] = {settings.layer[layer_idx].ref_buf1, +- settings.layer[layer_idx].ref_buf2, +- settings.layer[layer_idx].ref_buf3}; +- +- for (unsigned int ref_idx = 0; ref_idx < kMaxVp9RefPics; ++ref_idx) { +- if (refs[ref_idx] == -1) +- continue; +- +- RTC_DCHECK_GE(refs[ref_idx], 0); +- RTC_DCHECK_LE(refs[ref_idx], 7); +- // Easier to remove flags from all flags rather than having to +- // build the flags from 0. +- switch (num_ref_pics_[layer_idx]) { +- case 0: { +- sf_conf.lst_fb_idx[layer_idx] = refs[ref_idx]; +- layer_flags &= ~VP8_EFLAG_NO_REF_LAST; +- break; +- } +- case 1: { +- sf_conf.gld_fb_idx[layer_idx] = refs[ref_idx]; +- layer_flags &= ~VP8_EFLAG_NO_REF_GF; +- break; +- } +- case 2: { +- sf_conf.alt_fb_idx[layer_idx] = refs[ref_idx]; +- layer_flags &= ~VP8_EFLAG_NO_REF_ARF; +- break; +- } +- } +- // Make sure we don't reference a buffer that hasn't been +- // used at all or hasn't been used since a keyframe. +- RTC_DCHECK_NE(buffer_updated_at_frame_[refs[ref_idx]], -1); +- +- p_diff_[layer_idx][num_ref_pics_[layer_idx]] = +- frames_encoded_ - buffer_updated_at_frame_[refs[ref_idx]]; +- num_ref_pics_[layer_idx]++; +- } +- +- bool upd_buf_same_as_a_ref = false; +- if (settings.layer[layer_idx].upd_buf != -1) { +- for (unsigned int ref_idx = 0; ref_idx < kMaxVp9RefPics; ++ref_idx) { +- if (settings.layer[layer_idx].upd_buf == refs[ref_idx]) { +- switch (ref_idx) { +- case 0: { +- layer_flags &= ~VP8_EFLAG_NO_UPD_LAST; +- break; +- } +- case 1: { +- layer_flags &= ~VP8_EFLAG_NO_UPD_GF; +- break; +- } +- case 2: { +- layer_flags &= ~VP8_EFLAG_NO_UPD_ARF; +- break; +- } +- } +- upd_buf_same_as_a_ref = true; +- break; +- } +- } +- if (!upd_buf_same_as_a_ref) { +- // If we have three references and a buffer is specified to be +- // updated, then that buffer must be the same as one of the +- // three references. +- RTC_CHECK_LT(num_ref_pics_[layer_idx], kMaxVp9RefPics); +- +- sf_conf.alt_fb_idx[layer_idx] = settings.layer[layer_idx].upd_buf; +- layer_flags ^= VP8_EFLAG_NO_UPD_ARF; +- } +- +- int updated_buffer = settings.layer[layer_idx].upd_buf; +- buffer_updated_at_frame_[updated_buffer] = frames_encoded_; +- sf_conf.frame_flags[layer_idx] = layer_flags; +- } +- } +- } +- ++frames_encoded_; +- return sf_conf; +-} +- + int VP9EncoderImpl::SetChannelParameters(uint32_t packet_loss, int64_t rtt) { + return WEBRTC_VIDEO_CODEC_OK; + } +--- seamonkey-2.53.3/mozilla/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h ++++ seamonkey-2.53.3/mozilla/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h +@@ -82,15 +82,6 @@ + bool ExplicitlyConfiguredSpatialLayers() const; + bool SetSvcRates(); + +- // Used for flexible mode to set the flags and buffer references used +- // by the encoder. Also calculates the references used by the RTP +- // packetizer. +- // +- // Has to be called for every frame (keyframes included) to update the +- // state used to calculate references. +- vpx_svc_ref_frame_config GenerateRefsAndFlags( +- const SuperFrameRefSettings& settings); +- + virtual int GetEncodedLayerFrame(const vpx_codec_cx_pkt* pkt); + + // Callback function for outputting packets per spatial layer. +@@ -128,8 +119,6 @@ + + // Used for flexible mode. + bool is_flexible_mode_; +- int64_t buffer_updated_at_frame_[kNumVp9Buffers]; +- int64_t frames_encoded_; + uint8_t num_ref_pics_[kMaxVp9NumberOfSpatialLayers]; + uint8_t p_diff_[kMaxVp9NumberOfSpatialLayers][kMaxVp9RefPics]; + std::unique_ptr spatial_layer_; +--- seamonkey-2.53.3/mozilla/media/webrtc/trunk/webrtc/modules/video_coding/video_codec_initializer.cc ++++ seamonkey-2.53.3/mozilla/media/webrtc/trunk/webrtc/modules/video_coding/video_codec_initializer.cc +@@ -136,7 +136,9 @@ + *video_codec.VP9() = VideoEncoder::GetDefaultVp9Settings(); + if (video_codec.mode == kScreensharing && + config.encoder_specific_settings) { +- video_codec.VP9()->flexibleMode = true; ++ // See Bug 1525393 - flexibleMode is disabled until the next time we ++ // update webrtc.org due to changes in libvpx 1.8.2. ++ video_codec.VP9()->flexibleMode = false; + // For now VP9 screensharing use 1 temporal and 2 spatial layers. + RTC_DCHECK_EQ(1, video_codec.VP9()->numberOfTemporalLayers); + RTC_DCHECK_EQ(2, video_codec.VP9()->numberOfSpatialLayers); diff --git a/waterfox/waterfox-nolangpacks.patch b/waterfox/waterfox-nolangpacks.patch index 77f82cb..f30bdbb 100644 --- a/waterfox/waterfox-nolangpacks.patch +++ b/waterfox/waterfox-nolangpacks.patch @@ -1,10 +1,12 @@ diff -up ./browser/extensions/moz.build.nolangpacks ./browser/extensions/moz.build ---- ./browser/extensions/moz.build.nolangpacks 2021-02-16 18:38:52.814767279 -0300 -+++ ./browser/extensions/moz.build 2021-02-16 18:45:15.150908703 -0300 -@@ -9,96 +9,5 @@ DIRS += [ +--- ./browser/extensions/moz.build.nolangpacks 2021-03-26 09:15:05.000000000 -0300 ++++ ./browser/extensions/moz.build 2021-03-27 11:47:58.971578906 -0300 +@@ -7,98 +7,3 @@ + DIRS += [ + 'pdfjs', ] - - FINAL_TARGET_FILES.features += [ +- +-FINAL_TARGET_FILES.features += [ - 'langpack-ach@waterfox.xpi', - 'langpack-af@waterfox.xpi', - 'langpack-an@waterfox.xpi', @@ -96,5 +98,16 @@ diff -up ./browser/extensions/moz.build.nolangpacks ./browser/extensions/moz.bui - 'langpack-xh@waterfox.xpi', - 'langpack-zh-CN@waterfox.xpi', - 'langpack-zh-TW@waterfox.xpi', - 'zakius@polly.xpi', - ] +-# 'zakius@polly.xpi', +-] +diff -up ./browser/installer/package-manifest.in.nolangpacks ./browser/installer/package-manifest.in +--- ./browser/installer/package-manifest.in.nolangpacks 2017-12-13 19:42:11.000000000 -0200 ++++ ./browser/installer/package-manifest.in 2017-12-14 00:42:50.480760374 -0200 +@@ -625,7 +625,6 @@ + @RESPATH@/browser/chrome/icons/default/default128.png + @RESPATH@/browser/chrome/icons/default/default256.png + #endif +-@RESPATH@/browser/features/* + + ; [Webide Files] + @RESPATH@/browser/chrome/webide@JAREXT@ diff --git a/waterfox/waterfox.spec b/waterfox/waterfox.spec index a682fa7..f0ff9ad 100644 --- a/waterfox/waterfox.spec +++ b/waterfox/waterfox.spec @@ -29,7 +29,7 @@ ExcludeArch: armv7hl %global system_ffi 1 %global system_cairo 0 %global system_harfbuzz 1 -%global system_libvpx 0 +%global system_libvpx 1 %global system_webp 1 %global system_libicu 0 %global system_jpeg 1 @@ -56,6 +56,10 @@ ExcludeArch: armv7hl %global big_endian 1 %endif +%if !0%{?build_with_clang} +%global disable_elfhack 1 +%endif + %if 0%{?build_with_pgo} %global use_xvfb 1 %global build_tests 1 @@ -70,7 +74,7 @@ ExcludeArch: armv7hl %global debug_build 0 %global build_stylo 0 -# stackrpms: disable simd because it only causes problems +# stackrpms,2 disable simd because it only causes problems %global build_rust_simd 0 # Set to build with pinned rust version # This enables stylo build when default rust version is not supported @@ -93,7 +97,7 @@ ExcludeArch: armv7hl %endif %global libnotify_version 0.7.0 %if 0%{?system_libvpx} -%global libvpx_version 1.4.0 +%global libvpx_version 1.8.0 %endif %if 0%{?system_webp} %global webp_version 1.0.0 @@ -152,15 +156,17 @@ BuildRequires: %{scl_buildreq} %endif %if 0%{?rhel} >= 7 %global system_webp 0 +%global disable_av1 1 %endif -# added for 2020.08 because right now el8 does not have sqlite >= 3.30.1 +# added for 2020.08 because el8 does not have sqlite >= 3.30.1 %if 0%{?rhel} == 8 %global system_sqlite 0 +%global system_libvpx 0 %endif Summary: Waterfox Web browser Name: waterfox -Version: 2021.02 +Version: 2021.03 Release: 11%{?branch:.%{branch}}%{?gver}%{?dist} URL: https://www.waterfox.net License: MPLv1.1 or GPLv2+ or LGPLv2+ @@ -218,7 +224,6 @@ Patch402: mozilla-1196777.patch Patch413: mozilla-1353817.patch Patch415: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch Patch417: mozilla-1436242.patch -Patch418: https://hg.mozilla.org/integration/autoland/raw-rev/342812d23eb9#/mozilla-1336978.patch Patch419: https://hg.mozilla.org/mozilla-central/raw-rev/4723934741c5#/mozilla-1320560.patch Patch420: https://hg.mozilla.org/mozilla-central/raw-rev/97dae871389b#/mozilla-1389436.patch @@ -236,6 +241,7 @@ Patch601: mozilla-1516081.patch Patch602: mozilla-1516803.patch Patch603: mozilla-1397365-5.patch Patch604: 1003_gentoo_specific_pgo.patch +Patch605: https://hg.mozilla.org/mozilla-central/raw-rev/c999baadc2d5#/mozilla-hg-1433383.patch # Chinforinfula patches Patch700: %{name}-nolangpacks.patch @@ -245,6 +251,10 @@ Patch702: %{name}-waterfoxdir-2.patch Patch703: %{name}-fix-testing-file.patch Patch704: %{name}-disable-diagnostics-color.patch Patch705: 0001-Update-patch-bug1403998.patch +Patch706: 0001-angle-set-c-14.patch + +# Gentoo +Patch800: seamonkey-2.53.3-system_libvpx-1.8.patch %if 0%{?system_nss} BuildRequires: pkgconfig(nspr) >= %{nspr_version} @@ -299,6 +309,11 @@ BuildRequires: pkgconfig(libpulse) %if 0%{?system_libicu} BuildRequires: pkgconfig(icu-i18n) %endif +# stackrpms,2 el7,8 does not have nasm 2.13 +%if 0%{?disable_av1} != 1 +BuildRequires: nasm >= 2.13 +# stackrpms,2 +%endif BuildRequires: yasm BuildRequires: llvm BuildRequires: llvm-devel @@ -428,7 +443,6 @@ This package contains results of tests executed during build. %patch415 -p1 -b .mozilla-1238661 %endif %patch417 -p1 -b .mozilla-1436242 -%patch418 -p1 -b .mozilla-1336978 %patch419 -p1 -b .mozilla-1320560 %patch420 -p1 -b .mozilla-1389436 @@ -443,6 +457,7 @@ This package contains results of tests executed during build. %patch602 -p1 -b .1516803 %patch603 -p1 -b .1397365 %patch604 -p1 -b .gentoo_pgo +%patch605 -p1 -b .1433383 # Prepare FreeBSD patches mkdir _patches @@ -490,6 +505,13 @@ done %patch702 -p1 -b .waterfoxdir-2 %patch703 -p1 -b .fix-testing-file %patch704 -p1 -b .no-diagnostics-color +%patch706 -p1 -b .angle-c++14 + +# stackrpms,2 +%if 0%{?system_libvpx} +%patch800 -p2 -b .system-vpx +# stackrpms,2 +%endif # Patch for big endian platforms only %if 0%{?big_endian} @@ -678,7 +700,7 @@ echo "Generate big endian version of config/external/icu/data/icud58l.dat" %endif # Update the various config.guess to upstream release for aarch64 support -find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';' +find ./ -name config.guess -exec cp /usr/lib/rpm/redhat/config.guess {} ';' RPM_SMP_MFLAGS_NCPUS="%{?_smp_build_ncpus}%{!?_smp_build_ncpus:2}" @@ -704,22 +726,15 @@ echo "ac_add_options --enable-linker=gold" >> .mozconfig MOZ_OPT_FLAGS="-fuse-ld=gold" %endif %endif +# stackrpms,5 -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 -%if 0%{?fedora} < 30 -MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" -%else +%if 0%{?disable_av1} +echo "ac_add_options --disable-av1" >> .mozconfig +%endif + +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS $(echo "%{optflags}" | sed -e 's/-Wall//') -fpermissive -mno-avx" # Workaround for mozbz#1531309 MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-Werror=format-security//') -%endif -%if 0%{?fedora} > 30 -MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fpermissive" -%endif %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//')" @@ -737,9 +752,9 @@ export MOZ_DEBUG_FLAGS=" " %if 0%{?build_with_lto} MOZ_OPT_FLAGS="$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-O2/-O3/' -e 's/ -g\b/ -g1/')" %if 0%{?build_with_clang} -RPM_FLTO_FLAGS="-flto=thin -Wl,--thinlto-jobs=$RPM_NCPUS" +RPM_FLTO_FLAGS="-flto=thin -Wl,--thinlto-jobs=$RPM_NCPUS -Wl,-plugin-opt=-import-instr-limit=10" %else -RPM_FLTO_FLAGS="-flto=$RPM_NCPUS -fuse-linker-plugin -flifetime-dse=1" +RPM_FLTO_FLAGS="-flto=$RPM_NCPUS -flifetime-dse=1" %endif MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS $RPM_FLTO_FLAGS" MOZ_LINK_FLAGS="$MOZ_OPT_FLAGS" @@ -1056,7 +1071,11 @@ fi %{mozappdir}/browser/chrome %{mozappdir}/browser/chrome.manifest %{mozappdir}/browser/defaults/preferences/*.js -%{mozappdir}/browser/features/*.xpi +# stackrpms,2 +%if 0%{?rhel} != 7 +%ghost %{mozappdir}/browser/features/*.xpi +# stackrpms,2 +%endif %{mozappdir}/distribution/distribution.ini # That's Windows only %ghost %{mozappdir}/browser/features/aushelper@mozilla.org.xpi @@ -1096,11 +1115,19 @@ fi #--------------------------------------------------------------------- %changelog -* Fri Feb 19 2021 B. Stack - 2021.02-11.classic +* Tue Apr 13 2021 B. Stack - 2021.03-11.classic - add el7 and el8 support - repackage for stackrpms - disable simd globally +* Thu Apr 08 2021 Phantom X - 2021.03-1.classic +- 2021.03 +- BR: nasm +- Remove Fedora 30 workarounds +- Reenable system vpx with patch from polynomial-c +- Fix LTO build +- Disable elfhack with gcc + * Tue Feb 16 2021 Phantom X - 2021.02-1.classic - 2021.02 -- cgit