~alpine/aports

1

[alpine-aports] [PATCH] testing/firefox: upgrade to 65.0.1

Bradley Saulteaux <bradsoto@gmail.com>
Details
Message ID
<20190222054209.1502-1-~@bradso.to>
Sender timestamp
1550814130
DKIM signature
missing
Download raw message
Patch: +903 -185
https://www.firefox.com/
Firefox web browser
---
 community/ffmpeg/APKBUILD                    |   6 +-
 community/libaom/10-fix-changelog.patch      | 638 +++++++++++++++++++
 community/libaom/APKBUILD                    |  30 +
 main/icu/10-firefox-65.0.1-fix.patch         |  23 +
 main/icu/APKBUILD                            |   6 +-
 main/libvpx/10-find-diff.patch               |  11 +
 main/libvpx/APKBUILD                         |  15 +-
 testing/cbindgen/APKBUILD                    |  26 +
 testing/firefox/10-debug-fixes.patch         |  25 +
 testing/firefox/APKBUILD                     | 125 ++--
 testing/firefox/disable-moz-stackwalk.patch  |  10 +-
 testing/firefox/fix-arm-atomics-grsec.patch  |  74 +--
 testing/firefox/fix-seccomp-bpf.patch        |  26 +-
 testing/firefox/fix-toolkit.patch            |  26 +-
 testing/firefox/fix-tools.patch              |  18 +-
 testing/firefox/fix-webrtc-glibcisms.patch   |  18 +-
 testing/firefox/rust-unitialized-field.patch |  11 +-
 17 files changed, 903 insertions(+), 185 deletions(-)
 create mode 100644 community/libaom/10-fix-changelog.patch
 create mode 100644 community/libaom/APKBUILD
 create mode 100644 main/icu/10-firefox-65.0.1-fix.patch
 create mode 100644 main/libvpx/10-find-diff.patch
 create mode 100644 testing/cbindgen/APKBUILD
 create mode 100644 testing/firefox/10-debug-fixes.patch

diff --git a/community/ffmpeg/APKBUILD b/community/ffmpeg/APKBUILD
index 4d2ac5757e..4b0ba5ec00 100644
--- a/community/ffmpeg/APKBUILD
+++ b/community/ffmpeg/APKBUILD
@@ -4,7 +4,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ffmpeg
pkgver=4.1.1
pkgrel=0
pkgrel=1
pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix"
url="http://ffmpeg.org/"
arch="all"
@@ -12,7 +12,7 @@ license="GPL"
options="!check" # tests/data/hls-lists.append.m3u8 fails
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
makedepends="gnutls-dev lame-dev libvorbis-dev xvidcore-dev zlib-dev libvdpau-dev
	imlib2-dev x264-dev libtheora-dev coreutils bzip2-dev perl-dev libvpx-dev
	imlib2-dev x264-dev libtheora-dev coreutils bzip2-dev perl-dev libaom-dev
	libvpx-dev sdl2-dev libxfixes-dev libva-dev alsa-lib-dev
	v4l-utils-dev yasm opus-dev x265-dev libass-dev"
checkdepends="rsync"
@@ -71,6 +71,7 @@ build() {
	x86 | arm*) _asm="--disable-asm" ;;
	esac


	cd "$builddir"
	./configure \
		--prefix=/usr \
@@ -78,6 +79,7 @@ build() {
		--enable-avfilter \
		--enable-gnutls \
		--enable-gpl \
		--enable-libaom \
		--enable-libass \
		--enable-libmp3lame \
		--enable-libvorbis \
diff --git a/community/libaom/10-fix-changelog.patch b/community/libaom/10-fix-changelog.patch
new file mode 100644
index 0000000000..ede14d5b6e
--- /dev/null
+++ b/community/libaom/10-fix-changelog.patch
@@ -0,0 +1,638 @@
fixed upstream
https://aomedia.googlesource.com/aom/+/0ddc150516b7672101265eac032a11a9aae4cb53
--- ./CHANGELOG
+++ ./CHANGELOG.
@@ -1,631 +1,5 @@
-Next Release
-  - Incompatible changes:
-    The AV1 encoder's default keyframe interval changed to 128 from 9999.
-    Support for armv6 was removed.
+2018-06-28 v1.0.0
+  AOMedia Codec Workgroup Approved version 1.0
 
 2016-04-07 v0.1.0 "AOMedia Codec 1"
   This release is the first Alliance for Open Media codec.
-2015-11-09 v1.5.0 "Javan Whistling Duck"
-  This release improves upon the VP9 encoder and speeds up the encoding and
-  decoding processes.
-
-  - Upgrading:
-    This release is ABI incompatible with 1.4.0. It drops deprecated VP8
-    controls and adds a variety of VP9 controls for testing.
-
-    The vpxenc utility now prefers VP9 by default.
-
-  - Enhancements:
-    Faster VP9 encoding and decoding
-    Smaller library size by combining functions used by VP8 and VP9
-
-  - Bug Fixes:
-    A variety of fuzzing issues
-
-2015-04-03 v1.4.0 "Indian Runner Duck"
-  This release includes significant improvements to the VP9 codec.
-
-  - Upgrading:
-    This release is ABI incompatible with 1.3.0. It drops the compatibility
-    layer, requiring VPX_IMG_FMT_* instead of IMG_FMT_*, and adds several codec
-    controls for VP9.
-
-  - Enhancements:
-    Faster VP9 encoding and decoding
-    Multithreaded VP9 decoding (tile and frame-based)
-    Multithreaded VP9 encoding - on by default
-    YUV 4:2:2 and 4:4:4 support in VP9
-    10 and 12bit support in VP9
-    64bit ARM support by replacing ARM assembly with intrinsics
-
-  - Bug Fixes:
-    Fixes a VP9 bitstream issue in Profile 1. This only affected non-YUV 4:2:0
-    files.
-
-  - Known Issues:
-    Frame Parallel decoding fails for segmented and non-420 files.
-
-2013-11-15 v1.3.0 "Forest"
-  This release introduces the VP9 codec in a backward-compatible way.
-  All existing users of VP8 can continue to use the library without
-  modification. However, some VP8 options do not map to VP9 in the same manner.
-
-  The VP9 encoder in this release is not feature complete. Users interested in
-  the encoder are advised to use the git master branch and discuss issues on
-  libvpx mailing lists.
-
-  - Upgrading:
-    This release is ABI and API compatible with Duclair (v1.0.0). Users
-    of older releases should refer to the Upgrading notes in this document
-    for that release.
-
-  - Enhancements:
-      Get rid of bashisms in the main build scripts
-      Added usage info on command line options
-      Add lossless compression mode
-      Dll build of libvpx
-      Add additional Mac OS X targets: 10.7, 10.8 and 10.9 (darwin11-13)
-      Add option to disable documentation
-      configure: add --enable-external-build support
-      make: support V=1 as short form of verbose=yes
-      configure: support mingw-w64
-      configure: support hardfloat armv7 CHOSTS
-      configure: add support for android x86
-      Add estimated completion time to vpxenc
-      Don't exit on decode errors in vpxenc
-      vpxenc: support scaling prior to encoding
-      vpxdec: support scaling output
-      vpxenc: improve progress indicators with --skip
-      msvs: Don't link to winmm.lib
-      Add a new script for producing vcxproj files
-      Produce Visual Studio 10 and 11 project files
-      Produce Windows Phone project files
-      msvs-build: use msbuild for vs >= 2005
-      configure: default configure log to config.log
-      Add encoding option --static-thresh
-
-  - Speed:
-      Miscellaneous speed optimizations for VP8 and VP9.
-
-  - Quality:
-      In general, quality is consistent with the Eider release.
-
-  - Bug Fixes:
-      This release represents approximately a year of engineering effort,
-      and contains multiple bug fixes. Please refer to git history for details.
-
-
-2012-12-21 v1.2.0
-  This release acts as a checkpoint for a large amount of internal refactoring
-  and testing. It also contains a number of small bugfixes, so all users are
-  encouraged to upgrade.
-
-  - Upgrading:
-    This release is ABI and API compatible with Duclair (v1.0.0). Users
-    of older releases should refer to the Upgrading notes in this
-    document for that release.
-
-  - Enhancements:
-      VP8 optimizations for MIPS dspr2
-      vpxenc: add -quiet option
-
-  - Speed:
-      Encoder and decoder speed is consistent with the Eider release.
-
-  - Quality:
-      In general, quality is consistent with the Eider release.
-
-      Minor tweaks to ARNR filtering
-      Minor improvements to real time encoding with multiple temporal layers
-
-  - Bug Fixes:
-      Fixes multithreaded encoder race condition in loopfilter
-      Fixes multi-resolution threaded encoding
-      Fix potential encoder dead-lock after picture resize
-
-
-2012-05-09 v1.1.0 "Eider"
-  This introduces a number of enhancements, mostly focused on real-time
-  encoding. In addition, it fixes a decoder bug (first introduced in
-  Duclair) so all users of that release are encouraged to upgrade.
-
-  - Upgrading:
-    This release is ABI and API compatible with Duclair (v1.0.0). Users
-    of older releases should refer to the Upgrading notes in this
-    document for that release.
-
-    This release introduces a new temporal denoiser, controlled by the
-    VP8E_SET_NOISE_SENSITIVITY control. The temporal denoiser does not
-    currently take a strength parameter, so the control is effectively
-    a boolean - zero (off) or non-zero (on). For compatibility with
-    existing applications, the values accepted are the same as those
-    for the spatial denoiser (0-6). The temporal denoiser is enabled
-    by default, and the older spatial denoiser may be restored by
-    configuring with --disable-temporal-denoising. The temporal denoiser
-    is more computationally intensive than the spatial one.
-
-    This release removes support for a legacy, decode only API that was
-    supported, but deprecated, at the initial release of libvpx
-    (v0.9.0). This is not expected to have any impact. If you are
-    impacted, you can apply a reversion to commit 2bf8fb58 locally.
-    Please update to the latest libvpx API if you are affected.
-
-  - Enhancements:
-      Adds a motion compensated temporal denoiser to the encoder, which
-      gives higher quality than the older spatial denoiser. (See above
-      for notes on upgrading).
-
-      In addition, support for new compilers and platforms were added,
-      including:
-        improved support for XCode
-        Android x86 NDK build
-        OS/2 support
-        SunCC support
-
-      Changing resolution with vpx_codec_enc_config_set() is now
-      supported. Previously, reinitializing the codec was required to
-      change the input resolution.
-
-      The vpxenc application has initial support for producing multiple
-      encodes from the same input in one call. Resizing is not yet
-      supported, but varying other codec parameters is. Use -- to
-      delineate output streams. Options persist from one stream to the
-      next.
-
-      Also, the vpxenc application will now use a keyframe interval of
-      5 seconds by default. Use the --kf-max-dist option to override.
-
-  - Speed:
-      Decoder performance improved 2.5% versus Duclair. Encoder speed is
-      consistent with Duclair for most material. Two pass encoding of
-      slideshow-like material will see significant improvements.
-
-      Large realtime encoding speed gains at a small quality expense are
-      possible by configuring the on-the-fly bitpacking experiment with
-      --enable-onthefly-bitpacking. Realtime encoder can be up to 13%
-      faster (ARM) depending on the number of threads and bitrate
-      settings. This technique sees constant gain over the 5-16 speed
-      range. For VC style input the loss seen is up to 0.2dB. See commit
-      52cf4dca for further details.
-
-  - Quality:
-      On the whole, quality is consistent with the Duclair release. Some
-      tweaks:
-
-        Reduced blockiness in easy sections by applying a penalty to
-        intra modes.
-
-        Improved quality of static sections (like slideshows) with
-        two pass encoding.
-
-        Improved keyframe sizing with multiple temporal layers
-
-  - Bug Fixes:
-      Corrected alt-ref contribution to frame rate for visible updates
-      to the alt-ref buffer. This affected applications making manual
-      usage of the frame reference flags, or temporal layers.
-
-      Additional constraints were added to disable multi-frame quality
-      enhancement (MFQE) in sections of the frame where there is motion.
-      (#392)
-
-      Fixed corruption issues when vpx_codec_enc_config_set() was called
-      with spatial resampling enabled.
-
-      Fixed a decoder error introduced in Duclair where the segmentation
-      map was not being reinitialized on keyframes (#378)
-
-
-2012-01-27 v1.0.0 "Duclair"
-  Our fourth named release, focused on performance and features related to
-  real-time encoding. It also fixes a decoder crash bug introduced in
-  v0.9.7, so all users of that release are encouraged to upgrade.
-
-  - Upgrading:
-      This release is ABI incompatible with prior releases of libvpx, so the
-      "major" version number has been bumped to 1. You must recompile your
-      applications against the latest version of the libvpx headers. The
-      API remains compatible, and this should not require code changes in most
-      applications.
-
-  - Enhancements:
-      This release introduces several substantial new features to the encoder,
-      of particular interest to real time streaming applications.
-
-      Temporal scalability allows the encoder to produce a stream that can
-      be decimated to different frame rates, with independent rate targetting
-      for each substream.
-
-      Multiframe quality enhancement postprocessing can make visual quality
-      more consistent in the presence of frames that are substantially
-      different quality than the surrounding frames, as in the temporal
-      scalability case and in some forced keyframe scenarios.
-
-      Multiple-resolution encoding support allows the encoding of the
-      same content at different resolutions faster than encoding them
-      separately.
-
-  - Speed:
-      Optimization targets for this release included the decoder and the real-
-      time modes of the encoder. Decoder speed on x86 has improved 10.5% with
-      this release. Encoder improvements followed a curve where speeds 1-3
-      improved 4.0%-1.5%, speeds 4-8 improved <1%, and speeds 9-16 improved
-      1.5% to 10.5%, respectively. "Best" mode speed is consistent with the
-      Cayuga release.
-
-  - Quality:
-      Encoder quality in the single stream case is consistent with the Cayuga
-      release.
-
-  - Bug Fixes:
-      This release fixes an OOB read decoder crash bug present in v0.9.7
-      related to the clamping of motion vectors in SPLITMV blocks. This
-      behavior could be triggered by corrupt input or by starting
-      decoding from a P-frame.
-
-
-2011-08-15 v0.9.7-p1 "Cayuga" patch 1
-  This is an incremental bugfix release against Cayuga. All users of that
-  release are strongly encouraged to upgrade.
-
-    - Fix potential OOB reads (cdae03a)
-
-          An unbounded out of bounds read was discovered when the
-          decoder was requested to perform error concealment (new in
-          Cayuga) given a frame with corrupt partition sizes.
-
-          A bounded out of bounds read was discovered affecting all
-          versions of libvpx. Given an multipartition input frame that
-          is truncated between the mode/mv partition and the first
-          residiual paritition (in the block of partition offsets), up
-          to 3 extra bytes could have been read from the source buffer.
-          The code will not take any action regardless of the contents
-          of these undefined bytes, as the truncated buffer is detected
-          immediately following the read based on the calculated
-          starting position of the coefficient partition.
-
-    - Fix potential error concealment crash when the very first frame
-      is missing or corrupt (a609be5)
-
-    - Fix significant artifacts in error concealment (a4c2211, 99d870a)
-
-    - Revert 1-pass CBR rate control changes (e961317)
-      Further testing showed this change produced undesirable visual
-      artifacts, rolling back for now.
-
-
-2011-08-02 v0.9.7 "Cayuga"
-  Our third named release, focused on a faster, higher quality, encoder.
-
-  - Upgrading:
-    This release is backwards compatible with Aylesbury (v0.9.5) and
-    Bali (v0.9.6). Users of older releases should refer to the Upgrading
-    notes in this document for that release.
-
-  - Enhancements:
-          Stereo 3D format support for vpxenc
-          Runtime detection of available processor cores.
-          Allow specifying --end-usage by enum name
-          vpxdec: test for frame corruption
-          vpxenc: add quantizer histogram display
-          vpxenc: add rate histogram display
-          Set VPX_FRAME_IS_DROPPABLE
-          update configure for ios sdk 4.3
-          Avoid text relocations in ARM vp8 decoder
-          Generate a vpx.pc file for pkg-config.
-          New ways of passing encoded data between encoder and decoder.
-
-  - Speed:
-      This release includes across-the-board speed improvements to the
-      encoder. On x86, these measure at approximately 11.5% in Best mode,
-      21.5% in Good mode (speed 0), and 22.5% in Realtime mode (speed 6).
-      On ARM Cortex A9 with Neon extensions, real-time encoding of video
-      telephony content is 35% faster than Bali on single core and 48%
-      faster on multi-core. On the NVidia Tegra2 platform, real time
-      encoding is 40% faster than Bali.
-
-      Decoder speed was not a priority for this release, but improved
-      approximately 8.4% on x86.
-
-          Reduce motion vector search on alt-ref frame.
-          Encoder loopfilter running in its own thread
-          Reworked loopfilter to precalculate more parameters
-          SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}().
-          Make hor UV predict ~2x faster (73 vs 132 cycles) using SSSE3.
-          Removed redundant checks
-          Reduced structure sizes
-          utilize preload in ARMv6 MC/LPF/Copy routines
-          ARM optimized quantization, dfct, variance, subtract
-          Increase chrow row alignment to 16 bytes.
-          disable trellis optimization for first pass
-          Write SSSE3 sub-pixel filter function
-          Improve SSE2 half-pixel filter funtions
-          Add vp8_sub_pixel_variance16x8_ssse3 function
-          Reduce unnecessary distortion computation
-          Use diamond search to replace full search
-          Preload reference area in sub-pixel motion search (real-time mode)
-
-  - Quality:
-      This release focused primarily on one-pass use cases, including
-      video conferencing. Low latency data rate control was significantly
-      improved, improving streamability over bandwidth constrained links.
-      Added support for error concealment, allowing frames to maintain
-      visual quality in the presence of substantial packet loss.
-
-          Add rc_max_intra_bitrate_pct control
-          Limit size of initial keyframe in one-pass.
-          Improve framerate adaptation
-          Improved 1-pass CBR rate control
-          Improved KF insertion after fades to still.
-          Improved key frame detection.
-          Improved activity masking (lower PSNR impact for same SSIM boost)
-          Improved interaction between GF and ARFs
-          Adding error-concealment to the decoder.
-          Adding support for independent partitions
-          Adjusted rate-distortion constants
-
-
-  - Bug Fixes:
-          Removed firstpass motion map
-          Fix parallel make install
-          Fix multithreaded encoding for 1 MB wide frame
-          Fixed iwalsh_neon build problems with RVDS4.1
-          Fix semaphore emulation, spin-wait intrinsics on Windows
-          Fix build with xcode4 and simplify GLOBAL.
-          Mark ARM asm objects as allowing a non-executable stack.
-          Fix vpxenc encoding incorrect webm file header on big endian
-
-
-2011-03-07 v0.9.6 "Bali"
-  Our second named release, focused on a faster, higher quality, encoder.
-
-  - Upgrading:
-    This release is backwards compatible with Aylesbury (v0.9.5). Users
-    of older releases should refer to the Upgrading notes in this
-    document for that release.
-
-  - Enhancements:
-      vpxenc --psnr shows a summary when encode completes
-      --tune=ssim option to enable activity masking
-      improved postproc visualizations for development
-      updated support for Apple iOS to SDK 4.2
-      query decoder to determine which reference frames were updated
-      implemented error tracking in the decoder
-      fix pipe support on windows
-
-  - Speed:
-      Primary focus was on good quality mode, speed 0. Average improvement
-      on x86 about 40%, up to 100% on user-generated content at that speed.
-      Best quality mode speed improved 35%, and realtime speed 10-20%. This
-      release also saw significant improvement in realtime encoding speed
-      on ARM platforms.
-
-        Improved encoder threading
-        Dont pick encoder filter level when loopfilter is disabled.
-        Avoid double copying of key frames into alt and golden buffer
-        FDCT optimizations.
-        x86 sse2 temporal filter
-        SSSE3 version of fast quantizer
-        vp8_rd_pick_best_mbsegmentation code restructure
-        Adjusted breakout RD for SPLITMV
-        Changed segmentation check order
-        Improved rd_pick_intra4x4block
-        Adds armv6 optimized variance calculation
-        ARMv6 optimized sad16x16
-        ARMv6 optimized half pixel variance calculations
-        Full search SAD function optimization in SSE4.1
-        Improve MV prediction accuracy to achieve performance gain
-        Improve MV prediction in vp8_pick_inter_mode() for speed>3
-
-  - Quality:
-      Best quality mode improved PSNR 6.3%, and SSIM 6.1%. This release
-      also includes support for "activity masking," which greatly improves
-      SSIM at the expense of PSNR. For now, this feature is available with
-      the --tune=ssim option. Further experimentation in this area
-      is ongoing. This release also introduces a new rate control mode
-      called "CQ," which changes the allocation of bits within a clip to
-      the sections where they will have the most visual impact.
-
-        Tuning for the more exact quantizer.
-        Relax rate control for last few frames
-        CQ Mode
-        Limit key frame quantizer for forced key frames.
-        KF/GF Pulsing
-        Add simple version of activity masking.
-        make rdmult adaptive for intra in quantizer RDO
-        cap the best quantizer for 2nd order DC
-        change the threshold of DC check for encode breakout
-
-  - Bug Fixes:
-      Fix crash on Sparc Solaris.
-      Fix counter of fixed keyframe distance
-      ARNR filter pointer update bug fix
-      Fixed use of motion percentage in KF/GF group calc
-      Changed condition for using RD in Intra Mode
-      Fix encoder real-time only configuration.
-      Fix ARM encoder crash with multiple token partitions
-      Fixed bug first cluster timecode of webm file is wrong.
-      Fixed various encoder bugs with odd-sized images
-      vp8e_get_preview fixed when spatial resampling enabled
-      quantizer: fix assertion in fast quantizer path
-      Allocate source buffers to be multiples of 16
-      Fix for manual Golden frame frequency
-      Fix drastic undershoot in long form content
-
-
-2010-10-28 v0.9.5 "Aylesbury"
-  Our first named release, focused on a faster decoder, and a better encoder.
-
-  - Upgrading:
-    This release incorporates backwards-incompatible changes to the
-    ivfenc and ivfdec tools. These tools are now called vpxenc and vpxdec.
-
-    vpxdec
-      * the -q (quiet) option has been removed, and replaced with
-        -v (verbose). the output is quiet by default. Use -v to see
-        the version number of the binary.
-
-      * The default behavior is now to write output to a single file
-        instead of individual frames. The -y option has been removed.
-        Y4M output is the default.
-
-      * For raw I420/YV12 output instead of Y4M, the --i420 or --yv12
-        options must be specified.
-
-          $ ivfdec -o OUTPUT INPUT
-          $ vpxdec --i420 -o OUTPUT INPUT
-
-      * If an output file is not specified, the default is to write
-        Y4M to stdout. This makes piping more natural.
-
-          $ ivfdec -y -o - INPUT | ...
-          $ vpxdec INPUT | ...
-
-      * The output file has additional flexibility for formatting the
-        filename. It supports escape characters for constructing a
-        filename from the width, height, and sequence number. This
-        replaces the -p option. To get the equivalent:
-
-          $ ivfdec -p frame INPUT
-          $ vpxdec --i420 -o frame-%wx%h-%4.i420 INPUT
-
-    vpxenc
-      * The output file must be specified with -o, rather than as the
-        last argument.
-
-          $ ivfenc <options> INPUT OUTPUT
-          $ vpxenc <options> -o OUTPUT INPUT
-
-      * The output defaults to webm. To get IVF output, use the --ivf
-        option.
-
-          $ ivfenc <options> INPUT OUTPUT.ivf
-          $ vpxenc <options> -o OUTPUT.ivf --ivf INPUT
-
-
-  - Enhancements:
-      ivfenc and ivfdec have been renamed to vpxenc, vpxdec.
-      vpxdec supports .webm input
-      vpxdec writes .y4m by default
-      vpxenc writes .webm output by default
-      vpxenc --psnr now shows the average/overall PSNR at the end
-      ARM platforms now support runtime cpu detection
-      vpxdec visualizations added for motion vectors, block modes, references
-      vpxdec now silent by default
-      vpxdec --progress shows frame-by-frame timing information
-      vpxenc supports the distinction between --fps and --timebase
-      NASM is now a supported assembler
-      configure: enable PIC for shared libs by default
-      configure: add --enable-small
-      configure: support for ppc32-linux-gcc
-      configure: support for sparc-solaris-gcc
-
-  - Bugs:
-      Improve handling of invalid frames
-      Fix valgrind errors in the NEON loop filters.
-      Fix loopfilter delta zero transitions
-      Fix valgrind errors in vp8_sixtap_predict8x4_armv6().
-      Build fixes for darwin-icc
-
-  - Speed:
-      20-40% (average 28%) improvement in libvpx decoder speed,
-      including:
-        Rewrite vp8_short_walsh4x4_sse2()
-        Optimizations on the loopfilters.
-        Miscellaneous improvements for Atom
-        Add 4-tap version of 2nd-pass ARMv6 MC filter.
-        Improved multithread utilization
-        Better instruction choices on x86
-        reorder data to use wider instructions
-        Update NEON wide idcts
-        Make block access to frame buffer sequential
-        Improved subset block search
-        Bilinear subpixel optimizations for ssse3.
-        Decrease memory footprint
-
-      Encoder speed improvements (percentage gain not measured):
-        Skip unnecessary search of identical frames
-        Add SSE2 subtract functions
-        Improve bounds checking in vp8_diamond_search_sadx4()
-        Added vp8_fast_quantize_b_sse2
-
-  - Quality:
-      Over 7% overall PSNR improvement (6.3% SSIM) in "best" quality
-      encoding mode, and up to 60% improvement on very noisy, still
-      or slow moving source video
-
-        Motion compensated temporal filter for Alt-Ref Noise Reduction
-        Improved use of trellis quantization on 2nd order Y blocks
-        Tune effect of motion on KF/GF boost in two pass
-        Allow coefficient optimization for good quality speed 0.
-        Improved control of active min quantizer for two pass.
-        Enable ARFs for non-lagged compress
-
-2010-09-02 v0.9.2
-  - Enhancements:
-      Disable frame dropping by default
-      Improved multithreaded performance
-      Improved Force Key Frame Behaviour
-      Increased rate control buffer level precision
-      Fix bug in 1st pass motion compensation
-      ivfenc: correct fixed kf interval, --disable-kf
-  - Speed:
-      Changed above and left context data layout
-      Rework idct calling structure.
-      Removed unnecessary MB_MODE_INFO copies
-      x86: SSSE3 sixtap prediction
-      Reworked IDCT to include reconstruction (add) step
-      Swap alt/gold/new/last frame buffer ptrs instead of copying.
-      Improve SSE2 loopfilter functions
-      Change bitreader to use a larger window.
-      Avoid loopfilter reinitialization when possible
-  - Quality:
-      Normalize quantizer's zero bin and rounding factors
-      Add trellis quantization.
-      Make the quantizer exact.
-      Updates to ARNR filtering algorithm
-      Fix breakout thresh computation for golden & AltRef frames
-      Redo the forward 4x4 dct
-      Improve the accuracy of forward walsh-hadamard transform
-      Further adjustment of RD behaviour with Q and Zbin.
-  - Build System:
-      Allow linking of libs built with MinGW to MSVC
-      Fix target auto-detection on mingw32
-      Allow --cpu= to work for x86.
-      configure: pass original arguments through to make dist
-      Fix builds without runtime CPU detection
-      msvs: fix install of codec sources
-      msvs: Change devenv.com command line for better msys support
-      msvs: Add vs9 targets.
-      Add x86_64-linux-icc target
-  - Bugs:
-      Potential crashes on older MinGW builds
-      Fix two-pass framrate for Y4M input.
-      Fixed simple loop filter, other crashes on ARM v6
-      arm: fix missing dependency with --enable-shared
-      configure: support directories containing .o
-      Replace pinsrw (SSE) with MMX instructions
-      apple: include proper mach primatives
-      Fixed rate control bug with long key frame interval.
-      Fix DSO link errors on x86-64 when not using a version script
-      Fixed buffer selection for UV in AltRef filtering
-
-
-2010-06-17 v0.9.1
-  - Enhancements:
-      * ivfenc/ivfdec now support YUV4MPEG2 input and pipe I/O
-      * Speed optimizations
-  - Bugfixes:
-      * Rate control
-      * Prevent out-of-bounds accesses on invalid data
-  - Build system updates:
-      * Detect toolchain to be used automatically for native builds
-      * Support building shared libraries
-      * Better autotools emulation (--prefix, --libdir, DESTDIR)
-  - Updated LICENSE
-      * http://webmproject.blogspot.com/2010/06/changes-to-webm-open-source-license.html
-
-
-2010-05-18 v0.9.0
-  - Initial open source release. Welcome to WebM and VP8!
-
diff --git a/community/libaom/APKBUILD b/community/libaom/APKBUILD
new file mode 100644
index 0000000000..a3ea87ff29
--- /dev/null
+++ b/community/libaom/APKBUILD
@@ -0,0 +1,30 @@
# Maintainer: Bradley Saulteaux <~@bradso.to>
pkgname=libaom
pkgver=1.0.0
pkgrel=0
pkgdesc="Alliance for Open Media"
url="https://aomedia.googlesource.com/aom/"
arch="all"
license="BSD-2-Clause"
depends=""
makedepends="cmake python yasm"
install=""
options="!check" #tests fail at AV1/AV1DecodeMultiThreadedTest.MD5Match
subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://aomedia.googlesource.com/aom/+archive/v$pkgver.tar.gz
	10-fix-changelog.patch"
builddir="$srcdir"
build() {
	cd "$srcdir"/build
	cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DBUILD_SHARED_LIBS=1 ..
}
check() {
	cd "$srcdir"/build
	make runtests
}
package() {
	cd "$srcdir"/build
	make DESTDIR="$pkgdir" install
}
sha512sums="f506a9399cfcf2aa3473639210511270c5a44b789eb51ce5616bd61f18a18e64080240a7b1ea2502d27df40ddf290b8f4686282f1eda3ffc57c45c803474f768  libaom-1.0.0.tar.gz
7da8a8d1cb67fece415ee090acd8ba60b00837548fd225c71b7cc5f0059e3fdf2678b85004226fdfdd3989207b8f82632d1b207a8ec7721711ceefc4ae6bcdb5  10-fix-changelog.patch"
diff --git a/main/icu/10-firefox-65.0.1-fix.patch b/main/icu/10-firefox-65.0.1-fix.patch
new file mode 100644
index 0000000000..6c47bdde2a
--- /dev/null
+++ b/main/icu/10-firefox-65.0.1-fix.patch
@@ -0,0 +1,23 @@
https://github.com/unicode-org/icu/commit/8baff8f03e07d8e02304d0c888d0bb21ad2eeb01
fixed in 63.2
--- ./common/unicode/urename.h
+++ ./common/unicode/urename.h.
@@ -110,7 +110,6 @@
 #define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
 #define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
 #define allowedHourFormatsCleanup U_ICU_ENTRY_POINT_RENAME(allowedHourFormatsCleanup)
-#define checkImpl U_ICU_ENTRY_POINT_RENAME(checkImpl)
 #define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
 #define dayPeriodRulesCleanup U_ICU_ENTRY_POINT_RENAME(dayPeriodRulesCleanup)
 #define deleteAllowedHourFormats U_ICU_ENTRY_POINT_RENAME(deleteAllowedHourFormats)
--- ./i18n/uspoof.cpp
+++ ./i18n/uspoof.cpp.
@@ -547,7 +547,7 @@
     return uspoof_check2UnicodeString(sc, id, NULL, status);
 }
 
-int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) {
+static int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) {
     U_ASSERT(This != NULL);
     U_ASSERT(checkResult != NULL);
     checkResult->clear();
diff --git a/main/icu/APKBUILD b/main/icu/APKBUILD
index 14b6b66a4c..25fe4cc6af 100644
--- a/main/icu/APKBUILD
+++ b/main/icu/APKBUILD
@@ -6,7 +6,7 @@ pkgver=63.1
# convert x.y.z to x_y_z
_ver=${pkgver//./_}

pkgrel=0
pkgrel=1
pkgdesc="International Components for Unicode library"
url="http://www.icu-project.org/"
arch="all"
@@ -17,6 +17,7 @@ depends_dev="$pkgname=$pkgver-r$pkgrel"
checkdepends="diffutils"
makedepends=
source="http://download.icu-project.org/files/icu4c/${pkgver}/${pkgname}4c-$_ver-src.tgz
	10-firefox-65.0.1-fix.patch
	"

# secfixes:
@@ -90,4 +91,5 @@ libs() {
	replaces="icu"
}

sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c  icu4c-63_1-src.tgz"
sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c  icu4c-63_1-src.tgz
76fc0b69ef5dd78d31ed88e6b2976b3ff8b7715f03a94faef79dc2210fe75b9db1de47f1ccc8a5f783760e41de7da3a32628abc9e1ec44edcca98207c91d952d  10-firefox-65.0.1-fix.patch"
diff --git a/main/libvpx/10-find-diff.patch b/main/libvpx/10-find-diff.patch
new file mode 100644
index 0000000000..c0d9f9955b
--- /dev/null
+++ b/main/libvpx/10-find-diff.patch
@@ -0,0 +1,11 @@
--- ./configure
+++ ./configure.
@@ -166,7 +166,7 @@
     [ -f "${source_path}/${t}.mk" ] && enable_feature ${t}
 done
 
-if ! diff --version >/dev/null; then
+if ! which diff &> /dev/null; then
   die "diff missing: Try installing diffutils via your package manager."
 fi
 
diff --git a/main/libvpx/APKBUILD b/main/libvpx/APKBUILD
index 767b2b21fa..c1e0dbc69f 100644
--- a/main/libvpx/APKBUILD
+++ b/main/libvpx/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libvpx
pkgver=1.6.1
pkgrel=1
pkgver=1.7.0
pkgrel=0
pkgdesc="Library for the vp8 codec"
url="https://www.webmproject.org/"
arch="all"
@@ -9,11 +9,11 @@ license="GPL"
depends=""
makedepends="coreutils yasm bash perl"
subpackages="$pkgname-dev $pkgname-utils"
source="https://storage.googleapis.com/downloads.webmproject.org/releases/webm/$pkgname-$pkgver.tar.bz2
source="$pkgname-$pkgver.tar.gz::https://chromium.googlesource.com/webm/$pkgname/+archive/v$pkgver.tar.gz
	fix-arm-float-abi.patch
	10-find-diff.patch
	"

builddir="$srcdir"/$pkgname-$pkgver
builddir="$srcdir"
build() {
	cd "$builddir"
	# build fix for arm
@@ -45,5 +45,6 @@ utils() {
	mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
}

sha512sums="1a4b009fe1737715c6563a79848126a5859394a5074b1e9cca9bc2e213df90890c15e708040d5f2c96c7c21e268f51e1352ac6911514bf891a4bf3eea154159d  libvpx-1.6.1.tar.bz2
4eadbc2f4eb68eaff35cf85515aef271d6fd47293a53cba7b7a6e9e0fb71106dfb5ded45b9e9ba83264a91846e4a5fa4db42e39fc3eaff6ac37769e622f90f6c  fix-arm-float-abi.patch"
sha512sums="6e114a6e8470b05153a8c41b7f30adb37d8cf99dc1c3d016867e5578b4f69905d7a1fcd902b6855f3f6b3e63ae305eb3fadd53359f2c8f344f3d701c3d4882b5  libvpx-1.7.0.tar.gz
4eadbc2f4eb68eaff35cf85515aef271d6fd47293a53cba7b7a6e9e0fb71106dfb5ded45b9e9ba83264a91846e4a5fa4db42e39fc3eaff6ac37769e622f90f6c  fix-arm-float-abi.patch
c14015273a2f081ef722f752a7ac17204e7fd5c42fb7a4bb457afdff1fcd2cc276bd34ca80a6e318968e0fa2e6ba49ceee026dd1bd7ee1b2806dbde70fd0a7fb  10-find-diff.patch"
diff --git a/testing/cbindgen/APKBUILD b/testing/cbindgen/APKBUILD
new file mode 100644
index 0000000000..6a58bcb45d
--- /dev/null
+++ b/testing/cbindgen/APKBUILD
@@ -0,0 +1,26 @@
# Maintainer: Bradley Saulteaux <~@bradso.to>
pkgname=cbindgen
pkgver=0.8.0
pkgrel=0
pkgdesc="A tool for generating C bindings to Rust code"
url="https://github.com/eqrion/cbindgen"
# limited by rust and cargo
arch="x86_64"
license="MPL2"
depends=""
subpackages="$pkgname-doc"
makedepends="cargo"
install=""
source="$pkgname-$pkgver.tar.gz::https://github.com/eqrion/$pkgname/archive/v$pkgver.tar.gz"
builddir="${srcdir}/$pkgname-$pkgver"
build() {
	cargo build --release
}
check() {
	cargo test --release
}
package() {
	install -Dt "$pkgdir/usr/bin" target/release/cbindgen
	install -Dt "$pkgdir/usr/share/doc/$pkgname" -m644 README.md
}
sha512sums="634a61556b3ae20bb246d1c34c2869852af1e1003cbf0481a346191eb48f812d19755ae8e895628d53a3ab7792b977255bfb25a50a2dbb9baf18b4f3fc783b18  cbindgen-0.8.0.tar.gz"
diff --git a/testing/firefox/10-debug-fixes.patch b/testing/firefox/10-debug-fixes.patch
new file mode 100644
index 0000000000..968091935e
--- /dev/null
+++ b/testing/firefox/10-debug-fixes.patch
@@ -0,0 +1,25 @@
--- ./intl/locale/LocaleService.cpp
+++ ./intl/locale/LocaleService.cpp.
@@ -526,7 +526,6 @@
     GetGREFileContents("update.locale", &locale);
     locale.Trim(" \t\n\r");
     // This should never be empty.
-    MOZ_ASSERT(!locale.IsEmpty());
     if (SanitizeForBCP47(locale, true)) {
       mDefaultLocale.Assign(locale);
     }
--- ./browser/installer/package-manifest.in
+++ ./browser/installer/package-manifest.in.
@@ -499,12 +499,6 @@
 ; svg
 @RESPATH@/res/svg.css
 
-; [Layout Debugger]
-#ifdef MOZ_DEBUG
-@RESPATH@/chrome/layoutdebug@JAREXT@
-@RESPATH@/chrome/layoutdebug.manifest
-#endif
-
 ; [Personal Security Manager]
 ;
 ; NSS libraries are signed in the staging directory,
diff --git a/testing/firefox/APKBUILD b/testing/firefox/APKBUILD
index b31c1997b7..54c6600445 100644
--- a/testing/firefox/APKBUILD
+++ b/testing/firefox/APKBUILD
@@ -1,23 +1,27 @@
# Contributor: William Pitcock <nenolod@dereferenced.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=firefox
pkgver=62.0.3
pkgver=65.0.1
_pkgver=$pkgver
_xulver=$pkgver
pkgrel=2
pkgrel=0
pkgdesc="Firefox web browser"
url="https://www.firefox.com/"
# limited by rust and cargo
arch="x86_64"
license="GPL LGPL MPL"
depends=""
subpackages="$pkgname-dbg"
options="!check" # tests run while building
makedepends="
	alsa-lib-dev
	autoconf2.13
	autoconf
	automake
	bsd-compat-headers
	bzip2-dev
	cargo
	cbindgen
	clang-dev
	dbus-glib-dev
	ffmpeg-dev
@@ -27,6 +31,7 @@ makedepends="
	hunspell-dev
	icu-dev
	libevent-dev
	libffi-dev
	libidl-dev
	libjpeg-turbo-dev
	libnotify-dev
@@ -39,9 +44,11 @@ makedepends="
	libxcomposite-dev
	llvm5-dev
	mesa-dev
	nasm
	nspr-dev
	nss-dev
	nss-static
	nodejs
	paxmark
	python3-dev
	sqlite-dev
@@ -64,7 +71,6 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
	mallinfo.patch

	fix-arm-atomics-grsec.patch
	fix-arm-version-detect.patch
	mozilla-build-arm.patch
	disable-moz-stackwalk.patch
	fix-rust-target.patch
@@ -73,7 +79,9 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
	fix-webrtc-glibcisms.patch

	firefox.desktop
	firefox-safe.desktop"
	firefox-safe.desktop
	
	10-debug-fixes.patch"

builddir="${srcdir}/firefox-$pkgver"
_mozappdir=/usr/lib/firefox
@@ -82,70 +90,41 @@ _mozappdir=/usr/lib/firefox
ldpath="$_mozappdir"

prepare() {
	cd "$builddir"
	default_prepare

	cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
	# https://bugzilla.mozilla.org/show_bug.cgi?id=1341234
	mkdir -p "$builddir"/objdir
	echo "ac_add_options BINDGEN_CFLAGS='-I/usr/include/nspr -I/usr/include/pixman-1'" >>objdir/.mozconfig
	autoreconf old-configure.in
	cd js/src; autoreconf old-configure.in
}

build() {
	cd "$builddir"/objdir

	export SHELL=/bin/sh
	export BUILD_OFFICIAL=1
	export MOZILLA_OFFICIAL=1
	export USE_SHORT_LIBNAME=1
	# gcc 6
	export CXXFLAGS="-fno-delete-null-pointer-checks -fno-schedule-insns2"

	# set rpath so linker finds the libs
	export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}"

	../configure \
		--prefix=/usr \
		\
		--disable-crashreporter \
		--disable-elf-hack \
		--disable-gold \
		--disable-install-strip \
		--disable-jemalloc \
		--disable-profiling \
		--disable-pulseaudio \
		--disable-strip \
		--disable-tests \
		--disable-updater \
		\
		--enable-alsa \
		--enable-default-toolkit=cairo-gtk3 \
		--enable-official-branding \
		--enable-optimize="$CFLAGS" \
		--enable-pie \
		--enable-startup-notification \
		--enable-system-ffi \
		--enable-system-sqlite \
		--enable-ffmpeg \
		\
		--with-system-bz2 \
		--with-system-icu \
		--with-system-jpeg \
		--with-system-libevent \
		--with-system-libvpx \
		--with-system-nspr \
		--with-system-nss \
		--with-system-pixman \
		--with-system-png \
		--with-system-zlib \
		--with-clang-path=/usr/bin/clang \
		--with-libclang-path=/usr/lib
	make

	# paxmark outside fakeroot
	paxmark -msp dist/bin/xpcshell

	cd "$builddir"
	export_add() {
		echo "export $1" >>"$builddir"/.mozconfig
	}
	ac_add_options() {
		echo "ac_add_options $1" >>"$builddir"/.mozconfig
	}
	mk_add_options() {
		echo "mk_add_options $1" >>"$builddir"/.mozconfig
	}
	export_add "SHELL=/bin/sh BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 USE_SHORT_LIBNAME=1"
	export_add "MOZ_NO_PIE_COMPAT=1	BUILDING_RELEASE=1 MOZ_PGO=1 MOZ_PACKAGE_JSSHELL=1"
	export_add "LDFLAGS=\"$LDFLAGS -Wl,-rpath,${_mozappdir}\""
	ac_add_options "--prefix=/usr --disable-jemalloc --disable-updater"
	ac_add_options "--disable-pulseaudio --enable-alsa --enable-verify-mar"
	ac_add_options "--enable-default-toolkit=cairo-gtk3 --enable-official-branding"
	ac_add_options "--enable-optimize=\"$CFLAGS -gdwarf-4 -gsplit-dwarf\" --enable-startup-notification"
	ac_add_options "--enable-system-ffi --enable-system-pixman --enable-system-sqlite"
	ac_add_options "--enable-av1 --with-system-bz2 --with-system-icu"
	ac_add_options "--with-system-libevent --with-system-libvpx --with-system-nspr"
	ac_add_options "--with-system-nss --with-system-png  --with-system-zlib"
	ac_add_options "--with-clang-path=/usr/bin/clang --with-libclang-path=/usr/lib"
	ac_add_options "--disable-install-strip --enable-debug-symbols=-gdwarf-4"
	ac_add_options "--disable-crashreporter --disable-elf-hack"
	mk_add_options "MOZ_OBJDIR=\"$builddir\"/objdir"
	
	./mach configure; ./mach build
}

package() {
	cd "$builddir"/objdir

@@ -214,21 +193,21 @@ __EOF__
	rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libxul.so
}

sha512sums="487bb7791284367158c79cf7918fecf3d598627a6416e679aeb5d22626089aeffe07762fa2389819ba881c90ece1c5a83cf2d85b2def15b8d5ba0ed1c498b527  firefox-62.0.3.source.tar.xz
sha512sums="cc76a83f6430f501c2260c6b35b5e48f045f5b180daf03375e9ab114a9afd67dfc0146ddb81cd29be4617aadb66a332ed5ebc625cb500df9579e412ed4909599  firefox-65.0.1.source.tar.xz
0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127  stab.h
2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71  fix-fortify-system-wrappers.patch
09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5  fix-fortify-inline.patch
2f713a270f7d1588ec4a0b9c21e5a0d20823954e6a64293ee1a391f80d38af6c0a80b3d35c3ada59b605f6032fb2af3040cd8ca7f424b0e620cc53fd12674fd9  fix-seccomp-bpf.patch
a2925045154f4fd34e5fc056656f4f9da100341529e5d4104d249154db0c7863384083f421ce6e47e0f20566a8b20787fa35444c7933c03cd03f96f06dcd4532  fix-toolkit.patch
b46cb90d4fdd1a925a61e2c6c545489cd542f5d82980c529361c02042eed31d5c26972b5e237c1a020f87ffcfd12736d1f4f6e33eaa83ae156d523c808c718cb  fix-tools.patch
6764e7af43f5a066ac0faf4f8d0747c03739f4f14b51f58c524eb0519dfd28540bdd25569b201a8e20919d0096479cf0e7a8e306fb223aba4c0f177c4df55200  fix-seccomp-bpf.patch
e680a23490908e8be256a8dadee3952f29c4069558548c2b79252640471fa29c221abb0634fc9260a8c9ba755f50f417a77ef66ede87eca8e02d69f74f8b0075  fix-toolkit.patch
a9e44759a584d148360405bf75981a6cb8b3ea0c2a553c13da7c559dc0193b35b2dca32571044cdca7ebd6ecc8c475da126d48a0c6ed19316857e2e88d28b49f  fix-tools.patch
bdcd1b402d2ec94957ba5d08cbad7b1a7f59c251c311be9095208491a05abb05a956c79f27908e1f26b54a3679387b2f33a51e945b650671ad85c0a2d59a5a29  mallinfo.patch
ed0d344c66fc8e1cc83a11e9858b32c42e841cbeedd9eb9438811e9fcc3593dc824a8336d00058d55836cedc970aeadd6a82c6dcd7bc0fb746e564d8b478cc6c  fix-arm-atomics-grsec.patch
015e1ff6dbf920033982b5df95d869a0b7bf56c6964e45e50649ddf46d1ce09563458e45240c3ecb92808662b1300b67507f7af272ba184835d91068a9e7d5b0  fix-arm-version-detect.patch
9a07f214877c8e4f919311b35ceb8b8ea990fb5811c89d060c0dc5f87a864ac678649fa2c0f1c1459e949e5abb81a894996e2f82b0f94d44e21cc94273fc6d5b  fix-arm-atomics-grsec.patch
e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18  mozilla-build-arm.patch
4797d2d89ac63a57abb826b8ea9f751314ce66946194033deb9d78c2ff377b88106fd2c7bc5034dc13ad03dd5085b1893c3ccae1a9e63fde35655bb0921f7188  disable-moz-stackwalk.patch
61b3c2ab34f43ada0b8c1c9c26fc70f82719b7f344a503325a350749fd6921255134d414c1eba3919e5c3bc133f7e0a164400d3c8af5ec6298afb8c7a146a4da  disable-moz-stackwalk.patch
42cc44fda4b05259b38f055d6f51461746aa89a474cedc5e92fb9d20879da0d12b1b515b273a549e7302cda9c7eddde20d5fdba09853e5c658784ad6d0b20078  fix-rust-target.patch
a50b412edf9573a0bd04a43578b1c927967a616b73a5995eefb15bfa78fd2bd14e36ec05315a0703f6370ecd524e6bcb012e7285beb1245e9add9b8553acb79e  fix-bug-1261392.patch
01b48a708cc6bc6e3cd7cc7b16f5137ec344566ac891d699b65e322bc992726072fa14a54cef1a7775799fcbbcf90a6c170107c8524caba3bc311b42d93b7581  rust-unitialized-field.patch
75b97d59e81e5f1debe6a459b535da704d5a2ac4a57c446d16058fd18db81e22317fcc3ec11b89f569f4de87e8e80ced027c0e72e7f1dd16f6fd0feb6b263919  fix-webrtc-glibcisms.patch
7bc98f6370e2ca170b7bbfbddd8bd684df6c11530f38152f37031809f2b6b0bffde70a998939d97ed460d807fa7decc94b85a1bb6bf6464a63733e0f9d0f7ac6  rust-unitialized-field.patch
44c95a862b04747658b666ab6e2efb77e57e63e78b1a81e489410bec4ef4c81956548131b922a50f9c069a3340c2b6f60a055cebf3f889f4d7d8a6e94eead11f  fix-webrtc-glibcisms.patch
f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454  firefox.desktop
5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed  firefox-safe.desktop"
5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed  firefox-safe.desktop
8ade2c0c767b5097f25b06bf5f5543141131e302390ea86a89becec598f039a72cbda6722bedfd773ff946b592a2f92a5c442d024de47d220c41dcb2af80219f  10-debug-fixes.patch"
diff --git a/testing/firefox/disable-moz-stackwalk.patch b/testing/firefox/disable-moz-stackwalk.patch
index c83ae7eae9..8f4924bac1 100644
--- a/testing/firefox/disable-moz-stackwalk.patch
+++ b/testing/firefox/disable-moz-stackwalk.patch
@@ -1,12 +1,10 @@
diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp
index a208bad..14e1f0d 100644
--- a/mozglue/misc/StackWalk.cpp
+++ b/mozglue/misc/StackWalk.cpp
@@ -41,13 +41,7 @@ static CriticalAddress gCriticalAddress;
--- /mozglue/misc/StackWalk.cpp
+++ /mozglue/misc/StackWalk.cpp.
@@ -32,13 +32,7 @@
 #define MOZ_STACKWALK_SUPPORTS_MACOSX 0
 #endif
 
-#if (defined(linux) && \
-#if (defined(linux) &&                                            \
-     ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
-      defined(HAVE__UNWIND_BACKTRACE)))
-#define MOZ_STACKWALK_SUPPORTS_LINUX 1
diff --git a/testing/firefox/fix-arm-atomics-grsec.patch b/testing/firefox/fix-arm-atomics-grsec.patch
index 0eb58f093f..c7e12ca0f0 100644
--- a/testing/firefox/fix-arm-atomics-grsec.patch
+++ b/testing/firefox/fix-arm-atomics-grsec.patch
@@ -1,8 +1,8 @@
--- mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig
+++ mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h
@@ -12,43 +35,194 @@
 namespace base {
 namespace subtle {
--- ./toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h
+++ ./toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h.
@@ -39,43 +39,194 @@
 namespace protobuf {
 namespace internal {
 
-// 0xffff0fc0 is the hard coded address of a function provided by
-// the kernel which implements an atomic compare-exchange. On older
@@ -217,7 +217,7 @@
   return old_value;
 }
 
@@ -63,36 +237,57 @@
@@ -90,8 +241,7 @@
     // Atomic exchange the old value with an incremented one.
     Atomic32 old_value = *ptr;
     Atomic32 new_value = old_value + increment;
@@ -227,23 +227,19 @@
       // The exchange took place as expected.
       return new_value;
     }
     // Otherwise, *ptr changed mid-loop and we need to retry.
   }
--
 }
 
@@ -102,23 +252,45 @@
 inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
                                        Atomic32 old_value,
                                        Atomic32 new_value) {
-  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
+  Atomic32 prev_value;
+  for (;;) {
+    prev_value = *ptr;
+Atomic32 prev_value;                                     
+  for (;;) {                  
+    prev_value = *ptr;                                               
+    if (prev_value != old_value) {
+      // Always ensure acquire semantics.
+      // Always ensure acquire semantics.                          
+      MemoryBarrier();
+      return prev_value;
+    }
+      return prev_value;     
+    }                         
+    if (!LinuxKernelCmpxchg(old_value, new_value, ptr))
+      return old_value;
+  }
@@ -253,38 +249,37 @@
                                        Atomic32 old_value,
                                        Atomic32 new_value) {
-  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
+  // This could be implemented as:
+  //    MemoryBarrier();
+  //    return NoBarrier_CompareAndSwap();
+  //
+  // This could be implemented as:                            
+  //    MemoryBarrier();                                             
+  //    return NoBarrier_CompareAndSwap();                    
+  //                                                               
+  // But would use 3 barriers per succesful CAS. To save performance,
+  // use Acquire_CompareAndSwap(). Its implementation guarantees that:
+  // - A succesful swap uses only 2 barriers (in the kernel helper).
+  // - An early return due to (prev_value != old_value) performs
+  //   a memory barrier with no store, which is equivalent to the
+  //   generic implementation above.
+  // - A succesful swap uses only 2 barriers (in the kernel helper).  
+  // - An early return due to (prev_value != old_value) performs      
+  //   a memory barrier with no store, which is equivalent to the     
+  //   generic implementation above.                                  
+  return Acquire_CompareAndSwap(ptr, old_value, new_value);
 }
 
+#else
+#  error "Your CPU's ARM architecture is not supported yet"
+#endif
+
+// NOTE: Atomicity of the following load and store operations is only
+#else                                                                 
+#  error "Your CPU's ARM architecture is not supported yet"           
+#endif                                                                
+                                                                      
+// NOTE: Atomicity of the following load and store operations is only 
+// guaranteed in case of 32-bit alignement of |ptr| values.
+
 
 inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
   *ptr = value;
 }
 
-inline void MemoryBarrier() {
-inline void MemoryBarrierInternal() {
-  pLinuxKernelMemoryBarrier();
-}
-
 inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
   *ptr = value;
   MemoryBarrier();
@@ -103,9 +298,7 @@
   MemoryBarrierInternal();
@@ -129,9 +301,7 @@
   *ptr = value;
 }
 
@@ -295,12 +290,3 @@
 
 inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
   Atomic32 value = *ptr;
@@ -118,7 +311,6 @@
   return *ptr;
 }
 
-} // namespace base::subtle
-} // namespace base
+} }  // namespace base::subtle
 
 #endif  // BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_
diff --git a/testing/firefox/fix-seccomp-bpf.patch b/testing/firefox/fix-seccomp-bpf.patch
index ee6d666400..7f9fbae3a7 100644
--- a/testing/firefox/fix-seccomp-bpf.patch
+++ b/testing/firefox/fix-seccomp-bpf.patch
@@ -1,6 +1,5 @@
diff -ru firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
--- firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:53:46.083976137 +0000
+++ firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:51:22.084596411 +0000
--- ./security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:53:46.083976137 +0000
+++ ./security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:51:22.084596411 +0000
@@ -25,6 +25,11 @@
 #include "sandbox/linux/system_headers/linux_seccomp.h"
 #include "sandbox/linux/system_headers/linux_signal.h"
@@ -13,14 +12,13 @@ diff -ru firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf
 namespace {
 
 struct arch_sigsys {
diff -ru firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp
--- firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp	2018-10-01 18:35:28.000000000 +0000
+++ firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp	2018-12-14 08:57:50.645264590 +0000
@@ -1005,6 +1005,7 @@
         // ffmpeg, and anything else that calls isatty(), will be told
         // that nothing is a typewriter:
         .ElseIf(request == TCGETS, Error(ENOTTY))
+        .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
         // Allow anything that isn't a tty ioctl, for now; bug 1302711
         // will cover changing this to a default-deny policy.
         .ElseIf(shifted_type != kTtyIoctls, Allow())
--- ./security/sandbox/linux/SandboxFilter.cpp	2018-10-01 18:35:28.000000000 +0000
+++ ./security/sandbox/linux/SandboxFilter.cpp	2018-12-14 08:57:50.645264590 +0000
@@ -997,6 +997,7 @@
             // ffmpeg, and anything else that calls isatty(), will be told
             // that nothing is a typewriter:
             .ElseIf(request == TCGETS, Error(ENOTTY))
+            .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
             // Allow anything that isn't a tty ioctl, for now; bug 1302711
             // will cover changing this to a default-deny policy.
             .ElseIf(shifted_type != kTtyIoctls, Allow())
diff --git a/testing/firefox/fix-toolkit.patch b/testing/firefox/fix-toolkit.patch
index 58fe5a3a9a..c79b9a15d4 100644
--- a/testing/firefox/fix-toolkit.patch
+++ b/testing/firefox/fix-toolkit.patch
@@ -55,21 +55,6 @@ index 93fdad7..f34e5e0 100644
 /* End of x86-64 definitions                                                 */
 #elif defined(__mips__)
 #if _MIPS_SIM == _MIPS_SIM_ABI32
diff --git a/toolkit/mozapps/update/common/updatedefines.h b/toolkit/mozapps/update/common/updatedefines.h
index 026e7ed..0801f14 100644
--- a/toolkit/mozapps/update/common/updatedefines.h
+++ b/toolkit/mozapps/update/common/updatedefines.h
@@ -117,7 +117,7 @@ static inline int mywcsprintf(WCHAR* dest, size_t count, const WCHAR* fmt, ...)
 
 #ifdef SOLARIS
 # include <sys/stat.h>
-#else
+#elif !defined(__linux__) || defined(__GLIBC__)
 # include <fts.h>
 #endif
 # include <dirent.h>
diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
index 257ccb4..01314e4 100644
--- a/toolkit/mozapps/update/updater/updater.cpp
+++ b/toolkit/mozapps/update/updater/updater.cpp
@@ -3737,6 +3737,7 @@ int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
@@ -88,3 +73,14 @@ index 257ccb4..01314e4 100644
 
   return rv;
 }
--- ./toolkit/mozapps/update/common/updatedefines.h
+++ ./toolkit/mozapps/update/common/updatedefines.h.
@@ -102,7 +102,7 @@
 
 #ifdef SOLARIS
 #include <sys/stat.h>
-#else
+#elif !defined(__linux__) || defined(__GLIBC__)
 #include <fts.h>
 #endif
 #include <dirent.h>
diff --git a/testing/firefox/fix-tools.patch b/testing/firefox/fix-tools.patch
index 84f7fa9cb8..ed2c7f2bca 100644
--- a/testing/firefox/fix-tools.patch
+++ b/testing/firefox/fix-tools.patch
@@ -11,12 +11,12 @@
 #include "MainThreadUtils.h"
--- a/tools/profiler/lul/LulElf.cpp
+++ b/tools/profiler/lul/LulElf.cpp
@@ -579,10 +579,10 @@
@@ -469,10 +469,10 @@
 // Return the non-directory portion of FILENAME: the portion after the
 // last slash, or the whole filename if there are no slashes.
 string BaseFileName(const string &filename) {
 string BaseFileName(const string& filename) {
-  // Lots of copies!  basename's behavior is less than ideal.
-  char *c_filename = strdup(filename.c_str());
-  char* c_filename = strdup(filename.c_str());
-  string base = basename(c_filename);
-  free(c_filename);
+  // basename's behavior is less than ideal so avoid it
@@ -25,13 +25,13 @@
+  string base = p ? p+1 : c_filename;
   return base;
 }

 
--- a/tools/profiler/core/platform-linux-android.cpp.orig
+++ b/tools/profiler/core/platform-linux-android.cpp
@@ -534,9 +534,11 @@
 void
 Registers::SyncPopulate()
 {
@@ -497,8 +497,10 @@
 ucontext_t sSyncUContext;
 
 void Registers::SyncPopulate() {
+#if defined(__GLIBC__)
   if (!getcontext(&sSyncUContext)) {
     PopulateRegsFromContext(*this, &sSyncUContext);
@@ -39,4 +39,4 @@
+#endif
 }
 #endif
 

diff --git a/testing/firefox/fix-webrtc-glibcisms.patch b/testing/firefox/fix-webrtc-glibcisms.patch
index dc9206b50e..95b3a55eeb 100644
--- a/testing/firefox/fix-webrtc-glibcisms.patch
+++ b/testing/firefox/fix-webrtc-glibcisms.patch
@@ -1,13 +1,13 @@
--- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2018-05-09 23:48:44.677389171 +0200
+++ ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2018-05-09 23:48:56.254373557 +0200
@@ -11,7 +11,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <features.h>
--- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c
+++ ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.
@@ -14,7 +14,9 @@
 #ifndef __GLIBC_PREREQ
 #define __GLIBC_PREREQ(a, b) 0
 #endif
-#if __GLIBC_PREREQ(2, 16)
+#if !defined(__GLIBC__)
+#include <sys/auxv.h>
+#elif __GLIBC_PREREQ(2, 16)
+#if !defined(__GLIBC__)                                                                                                                                       
+#include <sys/auxv.h>                                                                                                                                         
+#elif __GLIBC_PREREQ(2, 16) 
 #include <sys/auxv.h>
 #else
 #include <fcntl.h>
diff --git a/testing/firefox/rust-unitialized-field.patch b/testing/firefox/rust-unitialized-field.patch
index 67ef3a02ab..3ef7f055ca 100644
--- a/testing/firefox/rust-unitialized-field.patch
+++ b/testing/firefox/rust-unitialized-field.patch
@@ -1,11 +1,14 @@
--- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
--- ./media/audioipc/audioipc/src/cmsg.rs
+++ ./media/audioipc/audioipc/src/cmsg.rs.
@@ -105,14 +105,12 @@
             if cmsg.remaining_mut() < cmsg_len {
                 return Err(Error::NoSpace);
             }
 

-            let cmsghdr = cmsghdr {
-                cmsg_len: cmsg_len as _,
-                #[cfg(target_env = "musl")]
-                __pad1: 0,
-                cmsg_level: level,
-                cmsg_type: kind,
-            };
-- 
2.20.1



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---
Natanael Copa <ncopa@alpinelinux.org>
Details
Message ID
<20190228093224.31439ce3@ncopa-desktop.copa.dup.pw>
In-Reply-To
<20190222054209.1502-1-~@bradso.to> (view parent)
Sender timestamp
1551342744
DKIM signature
missing
Download raw message
Hi,

This patch no longer apply due to we upgraded libvpx to 1.8.0.

Can you please rebase it?

Maybe also send the ffmpeg change as separate patch.

-nc

On Thu, 21 Feb 2019 22:42:10 -0700
Bradley Saulteaux <bradsoto@gmail.com> wrote:

> https://www.firefox.com/
> Firefox web browser
> ---
>  community/ffmpeg/APKBUILD                    |   6 +-
>  community/libaom/10-fix-changelog.patch      | 638 +++++++++++++++++++
>  community/libaom/APKBUILD                    |  30 +
>  main/icu/10-firefox-65.0.1-fix.patch         |  23 +
>  main/icu/APKBUILD                            |   6 +-
>  main/libvpx/10-find-diff.patch               |  11 +
>  main/libvpx/APKBUILD                         |  15 +-
>  testing/cbindgen/APKBUILD                    |  26 +
>  testing/firefox/10-debug-fixes.patch         |  25 +
>  testing/firefox/APKBUILD                     | 125 ++--
>  testing/firefox/disable-moz-stackwalk.patch  |  10 +-
>  testing/firefox/fix-arm-atomics-grsec.patch  |  74 +--
>  testing/firefox/fix-seccomp-bpf.patch        |  26 +-
>  testing/firefox/fix-toolkit.patch            |  26 +-
>  testing/firefox/fix-tools.patch              |  18 +-
>  testing/firefox/fix-webrtc-glibcisms.patch   |  18 +-
>  testing/firefox/rust-unitialized-field.patch |  11 +-
>  17 files changed, 903 insertions(+), 185 deletions(-)
>  create mode 100644 community/libaom/10-fix-changelog.patch
>  create mode 100644 community/libaom/APKBUILD
>  create mode 100644 main/icu/10-firefox-65.0.1-fix.patch
>  create mode 100644 main/libvpx/10-find-diff.patch
>  create mode 100644 testing/cbindgen/APKBUILD
>  create mode 100644 testing/firefox/10-debug-fixes.patch
> 
> diff --git a/community/ffmpeg/APKBUILD b/community/ffmpeg/APKBUILD
> index 4d2ac5757e..4b0ba5ec00 100644
> --- a/community/ffmpeg/APKBUILD
> +++ b/community/ffmpeg/APKBUILD
> @@ -4,7 +4,7 @@
>  # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
>  pkgname=ffmpeg
>  pkgver=4.1.1
> -pkgrel=0
> +pkgrel=1
>  pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix"
>  url="http://ffmpeg.org/"
>  arch="all"
> @@ -12,7 +12,7 @@ license="GPL"
>  options="!check" # tests/data/hls-lists.append.m3u8 fails
>  subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
>  makedepends="gnutls-dev lame-dev libvorbis-dev xvidcore-dev zlib-dev libvdpau-dev
> -	imlib2-dev x264-dev libtheora-dev coreutils bzip2-dev perl-dev libvpx-dev
> +	imlib2-dev x264-dev libtheora-dev coreutils bzip2-dev perl-dev libaom-dev
>  	libvpx-dev sdl2-dev libxfixes-dev libva-dev alsa-lib-dev
>  	v4l-utils-dev yasm opus-dev x265-dev libass-dev"
>  checkdepends="rsync"
> @@ -71,6 +71,7 @@ build() {
>  	x86 | arm*) _asm="--disable-asm" ;;
>  	esac
>  
> +
>  	cd "$builddir"
>  	./configure \
>  		--prefix=/usr \
> @@ -78,6 +79,7 @@ build() {
>  		--enable-avfilter \
>  		--enable-gnutls \
>  		--enable-gpl \
> +		--enable-libaom \
>  		--enable-libass \
>  		--enable-libmp3lame \
>  		--enable-libvorbis \
> diff --git a/community/libaom/10-fix-changelog.patch b/community/libaom/10-fix-changelog.patch
> new file mode 100644
> index 0000000000..ede14d5b6e
> --- /dev/null
> +++ b/community/libaom/10-fix-changelog.patch
> @@ -0,0 +1,638 @@
> +fixed upstream
> +https://aomedia.googlesource.com/aom/+/0ddc150516b7672101265eac032a11a9aae4cb53
> +--- ./CHANGELOG
> ++++ ./CHANGELOG.
> +@@ -1,631 +1,5 @@
> +-Next Release
> +-  - Incompatible changes:
> +-    The AV1 encoder's default keyframe interval changed to 128 from 9999.
> +-    Support for armv6 was removed.
> ++2018-06-28 v1.0.0
> ++  AOMedia Codec Workgroup Approved version 1.0
> + 
> + 2016-04-07 v0.1.0 "AOMedia Codec 1"
> +   This release is the first Alliance for Open Media codec.
> +-2015-11-09 v1.5.0 "Javan Whistling Duck"
> +-  This release improves upon the VP9 encoder and speeds up the encoding and
> +-  decoding processes.
> +-
> +-  - Upgrading:
> +-    This release is ABI incompatible with 1.4.0. It drops deprecated VP8
> +-    controls and adds a variety of VP9 controls for testing.
> +-
> +-    The vpxenc utility now prefers VP9 by default.
> +-
> +-  - Enhancements:
> +-    Faster VP9 encoding and decoding
> +-    Smaller library size by combining functions used by VP8 and VP9
> +-
> +-  - Bug Fixes:
> +-    A variety of fuzzing issues
> +-
> +-2015-04-03 v1.4.0 "Indian Runner Duck"
> +-  This release includes significant improvements to the VP9 codec.
> +-
> +-  - Upgrading:
> +-    This release is ABI incompatible with 1.3.0. It drops the compatibility
> +-    layer, requiring VPX_IMG_FMT_* instead of IMG_FMT_*, and adds several codec
> +-    controls for VP9.
> +-
> +-  - Enhancements:
> +-    Faster VP9 encoding and decoding
> +-    Multithreaded VP9 decoding (tile and frame-based)
> +-    Multithreaded VP9 encoding - on by default
> +-    YUV 4:2:2 and 4:4:4 support in VP9
> +-    10 and 12bit support in VP9
> +-    64bit ARM support by replacing ARM assembly with intrinsics
> +-
> +-  - Bug Fixes:
> +-    Fixes a VP9 bitstream issue in Profile 1. This only affected non-YUV 4:2:0
> +-    files.
> +-
> +-  - Known Issues:
> +-    Frame Parallel decoding fails for segmented and non-420 files.
> +-
> +-2013-11-15 v1.3.0 "Forest"
> +-  This release introduces the VP9 codec in a backward-compatible way.
> +-  All existing users of VP8 can continue to use the library without
> +-  modification. However, some VP8 options do not map to VP9 in the same manner.
> +-
> +-  The VP9 encoder in this release is not feature complete. Users interested in
> +-  the encoder are advised to use the git master branch and discuss issues on
> +-  libvpx mailing lists.
> +-
> +-  - Upgrading:
> +-    This release is ABI and API compatible with Duclair (v1.0.0). Users
> +-    of older releases should refer to the Upgrading notes in this document
> +-    for that release.
> +-
> +-  - Enhancements:
> +-      Get rid of bashisms in the main build scripts
> +-      Added usage info on command line options
> +-      Add lossless compression mode
> +-      Dll build of libvpx
> +-      Add additional Mac OS X targets: 10.7, 10.8 and 10.9 (darwin11-13)
> +-      Add option to disable documentation
> +-      configure: add --enable-external-build support
> +-      make: support V=1 as short form of verbose=yes
> +-      configure: support mingw-w64
> +-      configure: support hardfloat armv7 CHOSTS
> +-      configure: add support for android x86
> +-      Add estimated completion time to vpxenc
> +-      Don't exit on decode errors in vpxenc
> +-      vpxenc: support scaling prior to encoding
> +-      vpxdec: support scaling output
> +-      vpxenc: improve progress indicators with --skip
> +-      msvs: Don't link to winmm.lib
> +-      Add a new script for producing vcxproj files
> +-      Produce Visual Studio 10 and 11 project files
> +-      Produce Windows Phone project files
> +-      msvs-build: use msbuild for vs >= 2005
> +-      configure: default configure log to config.log
> +-      Add encoding option --static-thresh
> +-
> +-  - Speed:
> +-      Miscellaneous speed optimizations for VP8 and VP9.
> +-
> +-  - Quality:
> +-      In general, quality is consistent with the Eider release.
> +-
> +-  - Bug Fixes:
> +-      This release represents approximately a year of engineering effort,
> +-      and contains multiple bug fixes. Please refer to git history for details.
> +-
> +-
> +-2012-12-21 v1.2.0
> +-  This release acts as a checkpoint for a large amount of internal refactoring
> +-  and testing. It also contains a number of small bugfixes, so all users are
> +-  encouraged to upgrade.
> +-
> +-  - Upgrading:
> +-    This release is ABI and API compatible with Duclair (v1.0.0). Users
> +-    of older releases should refer to the Upgrading notes in this
> +-    document for that release.
> +-
> +-  - Enhancements:
> +-      VP8 optimizations for MIPS dspr2
> +-      vpxenc: add -quiet option
> +-
> +-  - Speed:
> +-      Encoder and decoder speed is consistent with the Eider release.
> +-
> +-  - Quality:
> +-      In general, quality is consistent with the Eider release.
> +-
> +-      Minor tweaks to ARNR filtering
> +-      Minor improvements to real time encoding with multiple temporal layers
> +-
> +-  - Bug Fixes:
> +-      Fixes multithreaded encoder race condition in loopfilter
> +-      Fixes multi-resolution threaded encoding
> +-      Fix potential encoder dead-lock after picture resize
> +-
> +-
> +-2012-05-09 v1.1.0 "Eider"
> +-  This introduces a number of enhancements, mostly focused on real-time
> +-  encoding. In addition, it fixes a decoder bug (first introduced in
> +-  Duclair) so all users of that release are encouraged to upgrade.
> +-
> +-  - Upgrading:
> +-    This release is ABI and API compatible with Duclair (v1.0.0). Users
> +-    of older releases should refer to the Upgrading notes in this
> +-    document for that release.
> +-
> +-    This release introduces a new temporal denoiser, controlled by the
> +-    VP8E_SET_NOISE_SENSITIVITY control. The temporal denoiser does not
> +-    currently take a strength parameter, so the control is effectively
> +-    a boolean - zero (off) or non-zero (on). For compatibility with
> +-    existing applications, the values accepted are the same as those
> +-    for the spatial denoiser (0-6). The temporal denoiser is enabled
> +-    by default, and the older spatial denoiser may be restored by
> +-    configuring with --disable-temporal-denoising. The temporal denoiser
> +-    is more computationally intensive than the spatial one.
> +-
> +-    This release removes support for a legacy, decode only API that was
> +-    supported, but deprecated, at the initial release of libvpx
> +-    (v0.9.0). This is not expected to have any impact. If you are
> +-    impacted, you can apply a reversion to commit 2bf8fb58 locally.
> +-    Please update to the latest libvpx API if you are affected.
> +-
> +-  - Enhancements:
> +-      Adds a motion compensated temporal denoiser to the encoder, which
> +-      gives higher quality than the older spatial denoiser. (See above
> +-      for notes on upgrading).
> +-
> +-      In addition, support for new compilers and platforms were added,
> +-      including:
> +-        improved support for XCode
> +-        Android x86 NDK build
> +-        OS/2 support
> +-        SunCC support
> +-
> +-      Changing resolution with vpx_codec_enc_config_set() is now
> +-      supported. Previously, reinitializing the codec was required to
> +-      change the input resolution.
> +-
> +-      The vpxenc application has initial support for producing multiple
> +-      encodes from the same input in one call. Resizing is not yet
> +-      supported, but varying other codec parameters is. Use -- to
> +-      delineate output streams. Options persist from one stream to the
> +-      next.
> +-
> +-      Also, the vpxenc application will now use a keyframe interval of
> +-      5 seconds by default. Use the --kf-max-dist option to override.
> +-
> +-  - Speed:
> +-      Decoder performance improved 2.5% versus Duclair. Encoder speed is
> +-      consistent with Duclair for most material. Two pass encoding of
> +-      slideshow-like material will see significant improvements.
> +-
> +-      Large realtime encoding speed gains at a small quality expense are
> +-      possible by configuring the on-the-fly bitpacking experiment with
> +-      --enable-onthefly-bitpacking. Realtime encoder can be up to 13%
> +-      faster (ARM) depending on the number of threads and bitrate
> +-      settings. This technique sees constant gain over the 5-16 speed
> +-      range. For VC style input the loss seen is up to 0.2dB. See commit
> +-      52cf4dca for further details.
> +-
> +-  - Quality:
> +-      On the whole, quality is consistent with the Duclair release. Some
> +-      tweaks:
> +-
> +-        Reduced blockiness in easy sections by applying a penalty to
> +-        intra modes.
> +-
> +-        Improved quality of static sections (like slideshows) with
> +-        two pass encoding.
> +-
> +-        Improved keyframe sizing with multiple temporal layers
> +-
> +-  - Bug Fixes:
> +-      Corrected alt-ref contribution to frame rate for visible updates
> +-      to the alt-ref buffer. This affected applications making manual
> +-      usage of the frame reference flags, or temporal layers.
> +-
> +-      Additional constraints were added to disable multi-frame quality
> +-      enhancement (MFQE) in sections of the frame where there is motion.
> +-      (#392)
> +-
> +-      Fixed corruption issues when vpx_codec_enc_config_set() was called
> +-      with spatial resampling enabled.
> +-
> +-      Fixed a decoder error introduced in Duclair where the segmentation
> +-      map was not being reinitialized on keyframes (#378)
> +-
> +-
> +-2012-01-27 v1.0.0 "Duclair"
> +-  Our fourth named release, focused on performance and features related to
> +-  real-time encoding. It also fixes a decoder crash bug introduced in
> +-  v0.9.7, so all users of that release are encouraged to upgrade.
> +-
> +-  - Upgrading:
> +-      This release is ABI incompatible with prior releases of libvpx, so the
> +-      "major" version number has been bumped to 1. You must recompile your
> +-      applications against the latest version of the libvpx headers. The
> +-      API remains compatible, and this should not require code changes in most
> +-      applications.
> +-
> +-  - Enhancements:
> +-      This release introduces several substantial new features to the encoder,
> +-      of particular interest to real time streaming applications.
> +-
> +-      Temporal scalability allows the encoder to produce a stream that can
> +-      be decimated to different frame rates, with independent rate targetting
> +-      for each substream.
> +-
> +-      Multiframe quality enhancement postprocessing can make visual quality
> +-      more consistent in the presence of frames that are substantially
> +-      different quality than the surrounding frames, as in the temporal
> +-      scalability case and in some forced keyframe scenarios.
> +-
> +-      Multiple-resolution encoding support allows the encoding of the
> +-      same content at different resolutions faster than encoding them
> +-      separately.
> +-
> +-  - Speed:
> +-      Optimization targets for this release included the decoder and the real-
> +-      time modes of the encoder. Decoder speed on x86 has improved 10.5% with
> +-      this release. Encoder improvements followed a curve where speeds 1-3
> +-      improved 4.0%-1.5%, speeds 4-8 improved <1%, and speeds 9-16 improved
> +-      1.5% to 10.5%, respectively. "Best" mode speed is consistent with the
> +-      Cayuga release.
> +-
> +-  - Quality:
> +-      Encoder quality in the single stream case is consistent with the Cayuga
> +-      release.
> +-
> +-  - Bug Fixes:
> +-      This release fixes an OOB read decoder crash bug present in v0.9.7
> +-      related to the clamping of motion vectors in SPLITMV blocks. This
> +-      behavior could be triggered by corrupt input or by starting
> +-      decoding from a P-frame.
> +-
> +-
> +-2011-08-15 v0.9.7-p1 "Cayuga" patch 1
> +-  This is an incremental bugfix release against Cayuga. All users of that
> +-  release are strongly encouraged to upgrade.
> +-
> +-    - Fix potential OOB reads (cdae03a)
> +-
> +-          An unbounded out of bounds read was discovered when the
> +-          decoder was requested to perform error concealment (new in
> +-          Cayuga) given a frame with corrupt partition sizes.
> +-
> +-          A bounded out of bounds read was discovered affecting all
> +-          versions of libvpx. Given an multipartition input frame that
> +-          is truncated between the mode/mv partition and the first
> +-          residiual paritition (in the block of partition offsets), up
> +-          to 3 extra bytes could have been read from the source buffer.
> +-          The code will not take any action regardless of the contents
> +-          of these undefined bytes, as the truncated buffer is detected
> +-          immediately following the read based on the calculated
> +-          starting position of the coefficient partition.
> +-
> +-    - Fix potential error concealment crash when the very first frame
> +-      is missing or corrupt (a609be5)
> +-
> +-    - Fix significant artifacts in error concealment (a4c2211, 99d870a)
> +-
> +-    - Revert 1-pass CBR rate control changes (e961317)
> +-      Further testing showed this change produced undesirable visual
> +-      artifacts, rolling back for now.
> +-
> +-
> +-2011-08-02 v0.9.7 "Cayuga"
> +-  Our third named release, focused on a faster, higher quality, encoder.
> +-
> +-  - Upgrading:
> +-    This release is backwards compatible with Aylesbury (v0.9.5) and
> +-    Bali (v0.9.6). Users of older releases should refer to the Upgrading
> +-    notes in this document for that release.
> +-
> +-  - Enhancements:
> +-          Stereo 3D format support for vpxenc
> +-          Runtime detection of available processor cores.
> +-          Allow specifying --end-usage by enum name
> +-          vpxdec: test for frame corruption
> +-          vpxenc: add quantizer histogram display
> +-          vpxenc: add rate histogram display
> +-          Set VPX_FRAME_IS_DROPPABLE
> +-          update configure for ios sdk 4.3
> +-          Avoid text relocations in ARM vp8 decoder
> +-          Generate a vpx.pc file for pkg-config.
> +-          New ways of passing encoded data between encoder and decoder.
> +-
> +-  - Speed:
> +-      This release includes across-the-board speed improvements to the
> +-      encoder. On x86, these measure at approximately 11.5% in Best mode,
> +-      21.5% in Good mode (speed 0), and 22.5% in Realtime mode (speed 6).
> +-      On ARM Cortex A9 with Neon extensions, real-time encoding of video
> +-      telephony content is 35% faster than Bali on single core and 48%
> +-      faster on multi-core. On the NVidia Tegra2 platform, real time
> +-      encoding is 40% faster than Bali.
> +-
> +-      Decoder speed was not a priority for this release, but improved
> +-      approximately 8.4% on x86.
> +-
> +-          Reduce motion vector search on alt-ref frame.
> +-          Encoder loopfilter running in its own thread
> +-          Reworked loopfilter to precalculate more parameters
> +-          SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}().
> +-          Make hor UV predict ~2x faster (73 vs 132 cycles) using SSSE3.
> +-          Removed redundant checks
> +-          Reduced structure sizes
> +-          utilize preload in ARMv6 MC/LPF/Copy routines
> +-          ARM optimized quantization, dfct, variance, subtract
> +-          Increase chrow row alignment to 16 bytes.
> +-          disable trellis optimization for first pass
> +-          Write SSSE3 sub-pixel filter function
> +-          Improve SSE2 half-pixel filter funtions
> +-          Add vp8_sub_pixel_variance16x8_ssse3 function
> +-          Reduce unnecessary distortion computation
> +-          Use diamond search to replace full search
> +-          Preload reference area in sub-pixel motion search (real-time mode)
> +-
> +-  - Quality:
> +-      This release focused primarily on one-pass use cases, including
> +-      video conferencing. Low latency data rate control was significantly
> +-      improved, improving streamability over bandwidth constrained links.
> +-      Added support for error concealment, allowing frames to maintain
> +-      visual quality in the presence of substantial packet loss.
> +-
> +-          Add rc_max_intra_bitrate_pct control
> +-          Limit size of initial keyframe in one-pass.
> +-          Improve framerate adaptation
> +-          Improved 1-pass CBR rate control
> +-          Improved KF insertion after fades to still.
> +-          Improved key frame detection.
> +-          Improved activity masking (lower PSNR impact for same SSIM boost)
> +-          Improved interaction between GF and ARFs
> +-          Adding error-concealment to the decoder.
> +-          Adding support for independent partitions
> +-          Adjusted rate-distortion constants
> +-
> +-
> +-  - Bug Fixes:
> +-          Removed firstpass motion map
> +-          Fix parallel make install
> +-          Fix multithreaded encoding for 1 MB wide frame
> +-          Fixed iwalsh_neon build problems with RVDS4.1
> +-          Fix semaphore emulation, spin-wait intrinsics on Windows
> +-          Fix build with xcode4 and simplify GLOBAL.
> +-          Mark ARM asm objects as allowing a non-executable stack.
> +-          Fix vpxenc encoding incorrect webm file header on big endian
> +-
> +-
> +-2011-03-07 v0.9.6 "Bali"
> +-  Our second named release, focused on a faster, higher quality, encoder.
> +-
> +-  - Upgrading:
> +-    This release is backwards compatible with Aylesbury (v0.9.5). Users
> +-    of older releases should refer to the Upgrading notes in this
> +-    document for that release.
> +-
> +-  - Enhancements:
> +-      vpxenc --psnr shows a summary when encode completes
> +-      --tune=ssim option to enable activity masking
> +-      improved postproc visualizations for development
> +-      updated support for Apple iOS to SDK 4.2
> +-      query decoder to determine which reference frames were updated
> +-      implemented error tracking in the decoder
> +-      fix pipe support on windows
> +-
> +-  - Speed:
> +-      Primary focus was on good quality mode, speed 0. Average improvement
> +-      on x86 about 40%, up to 100% on user-generated content at that speed.
> +-      Best quality mode speed improved 35%, and realtime speed 10-20%. This
> +-      release also saw significant improvement in realtime encoding speed
> +-      on ARM platforms.
> +-
> +-        Improved encoder threading
> +-        Dont pick encoder filter level when loopfilter is disabled.
> +-        Avoid double copying of key frames into alt and golden buffer
> +-        FDCT optimizations.
> +-        x86 sse2 temporal filter
> +-        SSSE3 version of fast quantizer
> +-        vp8_rd_pick_best_mbsegmentation code restructure
> +-        Adjusted breakout RD for SPLITMV
> +-        Changed segmentation check order
> +-        Improved rd_pick_intra4x4block
> +-        Adds armv6 optimized variance calculation
> +-        ARMv6 optimized sad16x16
> +-        ARMv6 optimized half pixel variance calculations
> +-        Full search SAD function optimization in SSE4.1
> +-        Improve MV prediction accuracy to achieve performance gain
> +-        Improve MV prediction in vp8_pick_inter_mode() for speed>3
> +-
> +-  - Quality:
> +-      Best quality mode improved PSNR 6.3%, and SSIM 6.1%. This release
> +-      also includes support for "activity masking," which greatly improves
> +-      SSIM at the expense of PSNR. For now, this feature is available with
> +-      the --tune=ssim option. Further experimentation in this area
> +-      is ongoing. This release also introduces a new rate control mode
> +-      called "CQ," which changes the allocation of bits within a clip to
> +-      the sections where they will have the most visual impact.
> +-
> +-        Tuning for the more exact quantizer.
> +-        Relax rate control for last few frames
> +-        CQ Mode
> +-        Limit key frame quantizer for forced key frames.
> +-        KF/GF Pulsing
> +-        Add simple version of activity masking.
> +-        make rdmult adaptive for intra in quantizer RDO
> +-        cap the best quantizer for 2nd order DC
> +-        change the threshold of DC check for encode breakout
> +-
> +-  - Bug Fixes:
> +-      Fix crash on Sparc Solaris.
> +-      Fix counter of fixed keyframe distance
> +-      ARNR filter pointer update bug fix
> +-      Fixed use of motion percentage in KF/GF group calc
> +-      Changed condition for using RD in Intra Mode
> +-      Fix encoder real-time only configuration.
> +-      Fix ARM encoder crash with multiple token partitions
> +-      Fixed bug first cluster timecode of webm file is wrong.
> +-      Fixed various encoder bugs with odd-sized images
> +-      vp8e_get_preview fixed when spatial resampling enabled
> +-      quantizer: fix assertion in fast quantizer path
> +-      Allocate source buffers to be multiples of 16
> +-      Fix for manual Golden frame frequency
> +-      Fix drastic undershoot in long form content
> +-
> +-
> +-2010-10-28 v0.9.5 "Aylesbury"
> +-  Our first named release, focused on a faster decoder, and a better encoder.
> +-
> +-  - Upgrading:
> +-    This release incorporates backwards-incompatible changes to the
> +-    ivfenc and ivfdec tools. These tools are now called vpxenc and vpxdec.
> +-
> +-    vpxdec
> +-      * the -q (quiet) option has been removed, and replaced with
> +-        -v (verbose). the output is quiet by default. Use -v to see
> +-        the version number of the binary.
> +-
> +-      * The default behavior is now to write output to a single file
> +-        instead of individual frames. The -y option has been removed.
> +-        Y4M output is the default.
> +-
> +-      * For raw I420/YV12 output instead of Y4M, the --i420 or --yv12
> +-        options must be specified.
> +-
> +-          $ ivfdec -o OUTPUT INPUT
> +-          $ vpxdec --i420 -o OUTPUT INPUT
> +-
> +-      * If an output file is not specified, the default is to write
> +-        Y4M to stdout. This makes piping more natural.
> +-
> +-          $ ivfdec -y -o - INPUT | ...
> +-          $ vpxdec INPUT | ...
> +-
> +-      * The output file has additional flexibility for formatting the
> +-        filename. It supports escape characters for constructing a
> +-        filename from the width, height, and sequence number. This
> +-        replaces the -p option. To get the equivalent:
> +-
> +-          $ ivfdec -p frame INPUT
> +-          $ vpxdec --i420 -o frame-%wx%h-%4.i420 INPUT
> +-
> +-    vpxenc
> +-      * The output file must be specified with -o, rather than as the
> +-        last argument.
> +-
> +-          $ ivfenc <options> INPUT OUTPUT
> +-          $ vpxenc <options> -o OUTPUT INPUT
> +-
> +-      * The output defaults to webm. To get IVF output, use the --ivf
> +-        option.
> +-
> +-          $ ivfenc <options> INPUT OUTPUT.ivf
> +-          $ vpxenc <options> -o OUTPUT.ivf --ivf INPUT
> +-
> +-
> +-  - Enhancements:
> +-      ivfenc and ivfdec have been renamed to vpxenc, vpxdec.
> +-      vpxdec supports .webm input
> +-      vpxdec writes .y4m by default
> +-      vpxenc writes .webm output by default
> +-      vpxenc --psnr now shows the average/overall PSNR at the end
> +-      ARM platforms now support runtime cpu detection
> +-      vpxdec visualizations added for motion vectors, block modes, references
> +-      vpxdec now silent by default
> +-      vpxdec --progress shows frame-by-frame timing information
> +-      vpxenc supports the distinction between --fps and --timebase
> +-      NASM is now a supported assembler
> +-      configure: enable PIC for shared libs by default
> +-      configure: add --enable-small
> +-      configure: support for ppc32-linux-gcc
> +-      configure: support for sparc-solaris-gcc
> +-
> +-  - Bugs:
> +-      Improve handling of invalid frames
> +-      Fix valgrind errors in the NEON loop filters.
> +-      Fix loopfilter delta zero transitions
> +-      Fix valgrind errors in vp8_sixtap_predict8x4_armv6().
> +-      Build fixes for darwin-icc
> +-
> +-  - Speed:
> +-      20-40% (average 28%) improvement in libvpx decoder speed,
> +-      including:
> +-        Rewrite vp8_short_walsh4x4_sse2()
> +-        Optimizations on the loopfilters.
> +-        Miscellaneous improvements for Atom
> +-        Add 4-tap version of 2nd-pass ARMv6 MC filter.
> +-        Improved multithread utilization
> +-        Better instruction choices on x86
> +-        reorder data to use wider instructions
> +-        Update NEON wide idcts
> +-        Make block access to frame buffer sequential
> +-        Improved subset block search
> +-        Bilinear subpixel optimizations for ssse3.
> +-        Decrease memory footprint
> +-
> +-      Encoder speed improvements (percentage gain not measured):
> +-        Skip unnecessary search of identical frames
> +-        Add SSE2 subtract functions
> +-        Improve bounds checking in vp8_diamond_search_sadx4()
> +-        Added vp8_fast_quantize_b_sse2
> +-
> +-  - Quality:
> +-      Over 7% overall PSNR improvement (6.3% SSIM) in "best" quality
> +-      encoding mode, and up to 60% improvement on very noisy, still
> +-      or slow moving source video
> +-
> +-        Motion compensated temporal filter for Alt-Ref Noise Reduction
> +-        Improved use of trellis quantization on 2nd order Y blocks
> +-        Tune effect of motion on KF/GF boost in two pass
> +-        Allow coefficient optimization for good quality speed 0.
> +-        Improved control of active min quantizer for two pass.
> +-        Enable ARFs for non-lagged compress
> +-
> +-2010-09-02 v0.9.2
> +-  - Enhancements:
> +-      Disable frame dropping by default
> +-      Improved multithreaded performance
> +-      Improved Force Key Frame Behaviour
> +-      Increased rate control buffer level precision
> +-      Fix bug in 1st pass motion compensation
> +-      ivfenc: correct fixed kf interval, --disable-kf
> +-  - Speed:
> +-      Changed above and left context data layout
> +-      Rework idct calling structure.
> +-      Removed unnecessary MB_MODE_INFO copies
> +-      x86: SSSE3 sixtap prediction
> +-      Reworked IDCT to include reconstruction (add) step
> +-      Swap alt/gold/new/last frame buffer ptrs instead of copying.
> +-      Improve SSE2 loopfilter functions
> +-      Change bitreader to use a larger window.
> +-      Avoid loopfilter reinitialization when possible
> +-  - Quality:
> +-      Normalize quantizer's zero bin and rounding factors
> +-      Add trellis quantization.
> +-      Make the quantizer exact.
> +-      Updates to ARNR filtering algorithm
> +-      Fix breakout thresh computation for golden & AltRef frames
> +-      Redo the forward 4x4 dct
> +-      Improve the accuracy of forward walsh-hadamard transform
> +-      Further adjustment of RD behaviour with Q and Zbin.
> +-  - Build System:
> +-      Allow linking of libs built with MinGW to MSVC
> +-      Fix target auto-detection on mingw32
> +-      Allow --cpu= to work for x86.
> +-      configure: pass original arguments through to make dist
> +-      Fix builds without runtime CPU detection
> +-      msvs: fix install of codec sources
> +-      msvs: Change devenv.com command line for better msys support
> +-      msvs: Add vs9 targets.
> +-      Add x86_64-linux-icc target
> +-  - Bugs:
> +-      Potential crashes on older MinGW builds
> +-      Fix two-pass framrate for Y4M input.
> +-      Fixed simple loop filter, other crashes on ARM v6
> +-      arm: fix missing dependency with --enable-shared
> +-      configure: support directories containing .o
> +-      Replace pinsrw (SSE) with MMX instructions
> +-      apple: include proper mach primatives
> +-      Fixed rate control bug with long key frame interval.
> +-      Fix DSO link errors on x86-64 when not using a version script
> +-      Fixed buffer selection for UV in AltRef filtering
> +-
> +-
> +-2010-06-17 v0.9.1
> +-  - Enhancements:
> +-      * ivfenc/ivfdec now support YUV4MPEG2 input and pipe I/O
> +-      * Speed optimizations
> +-  - Bugfixes:
> +-      * Rate control
> +-      * Prevent out-of-bounds accesses on invalid data
> +-  - Build system updates:
> +-      * Detect toolchain to be used automatically for native builds
> +-      * Support building shared libraries
> +-      * Better autotools emulation (--prefix, --libdir, DESTDIR)
> +-  - Updated LICENSE
> +-      * http://webmproject.blogspot.com/2010/06/changes-to-webm-open-source-license.html
> +-
> +-
> +-2010-05-18 v0.9.0
> +-  - Initial open source release. Welcome to WebM and VP8!
> +-
> diff --git a/community/libaom/APKBUILD b/community/libaom/APKBUILD
> new file mode 100644
> index 0000000000..a3ea87ff29
> --- /dev/null
> +++ b/community/libaom/APKBUILD
> @@ -0,0 +1,30 @@
> +# Maintainer: Bradley Saulteaux <~@bradso.to>
> +pkgname=libaom
> +pkgver=1.0.0
> +pkgrel=0
> +pkgdesc="Alliance for Open Media"
> +url="https://aomedia.googlesource.com/aom/"
> +arch="all"
> +license="BSD-2-Clause"
> +depends=""
> +makedepends="cmake python yasm"
> +install=""
> +options="!check" #tests fail at AV1/AV1DecodeMultiThreadedTest.MD5Match
> +subpackages="$pkgname-dev"
> +source="$pkgname-$pkgver.tar.gz::https://aomedia.googlesource.com/aom/+archive/v$pkgver.tar.gz
> +	10-fix-changelog.patch"
> +builddir="$srcdir"
> +build() {
> +	cd "$srcdir"/build
> +	cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DBUILD_SHARED_LIBS=1 ..
> +}
> +check() {
> +	cd "$srcdir"/build
> +	make runtests
> +}
> +package() {
> +	cd "$srcdir"/build
> +	make DESTDIR="$pkgdir" install
> +}
> +sha512sums="f506a9399cfcf2aa3473639210511270c5a44b789eb51ce5616bd61f18a18e64080240a7b1ea2502d27df40ddf290b8f4686282f1eda3ffc57c45c803474f768  libaom-1.0.0.tar.gz
> +7da8a8d1cb67fece415ee090acd8ba60b00837548fd225c71b7cc5f0059e3fdf2678b85004226fdfdd3989207b8f82632d1b207a8ec7721711ceefc4ae6bcdb5  10-fix-changelog.patch"
> diff --git a/main/icu/10-firefox-65.0.1-fix.patch b/main/icu/10-firefox-65.0.1-fix.patch
> new file mode 100644
> index 0000000000..6c47bdde2a
> --- /dev/null
> +++ b/main/icu/10-firefox-65.0.1-fix.patch
> @@ -0,0 +1,23 @@
> +https://github.com/unicode-org/icu/commit/8baff8f03e07d8e02304d0c888d0bb21ad2eeb01
> +fixed in 63.2
> +--- ./common/unicode/urename.h
> ++++ ./common/unicode/urename.h.
> +@@ -110,7 +110,6 @@
> + #define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
> + #define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
> + #define allowedHourFormatsCleanup U_ICU_ENTRY_POINT_RENAME(allowedHourFormatsCleanup)
> +-#define checkImpl U_ICU_ENTRY_POINT_RENAME(checkImpl)
> + #define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
> + #define dayPeriodRulesCleanup U_ICU_ENTRY_POINT_RENAME(dayPeriodRulesCleanup)
> + #define deleteAllowedHourFormats U_ICU_ENTRY_POINT_RENAME(deleteAllowedHourFormats)
> +--- ./i18n/uspoof.cpp
> ++++ ./i18n/uspoof.cpp.
> +@@ -547,7 +547,7 @@
> +     return uspoof_check2UnicodeString(sc, id, NULL, status);
> + }
> + 
> +-int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) {
> ++static int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) {
> +     U_ASSERT(This != NULL);
> +     U_ASSERT(checkResult != NULL);
> +     checkResult->clear();
> diff --git a/main/icu/APKBUILD b/main/icu/APKBUILD
> index 14b6b66a4c..25fe4cc6af 100644
> --- a/main/icu/APKBUILD
> +++ b/main/icu/APKBUILD
> @@ -6,7 +6,7 @@ pkgver=63.1
>  # convert x.y.z to x_y_z
>  _ver=${pkgver//./_}
>  
> -pkgrel=0
> +pkgrel=1
>  pkgdesc="International Components for Unicode library"
>  url="http://www.icu-project.org/"
>  arch="all"
> @@ -17,6 +17,7 @@ depends_dev="$pkgname=$pkgver-r$pkgrel"
>  checkdepends="diffutils"
>  makedepends=
>  source="http://download.icu-project.org/files/icu4c/${pkgver}/${pkgname}4c-$_ver-src.tgz
> +	10-firefox-65.0.1-fix.patch
>  	"
>  
>  # secfixes:
> @@ -90,4 +91,5 @@ libs() {
>  	replaces="icu"
>  }
>  
> -sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c  icu4c-63_1-src.tgz"
> +sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c  icu4c-63_1-src.tgz
> +76fc0b69ef5dd78d31ed88e6b2976b3ff8b7715f03a94faef79dc2210fe75b9db1de47f1ccc8a5f783760e41de7da3a32628abc9e1ec44edcca98207c91d952d  10-firefox-65.0.1-fix.patch"
> diff --git a/main/libvpx/10-find-diff.patch b/main/libvpx/10-find-diff.patch
> new file mode 100644
> index 0000000000..c0d9f9955b
> --- /dev/null
> +++ b/main/libvpx/10-find-diff.patch
> @@ -0,0 +1,11 @@
> +--- ./configure
> ++++ ./configure.
> +@@ -166,7 +166,7 @@
> +     [ -f "${source_path}/${t}.mk" ] && enable_feature ${t}
> + done
> + 
> +-if ! diff --version >/dev/null; then
> ++if ! which diff &> /dev/null; then
> +   die "diff missing: Try installing diffutils via your package manager."
> + fi
> + 
> diff --git a/main/libvpx/APKBUILD b/main/libvpx/APKBUILD
> index 767b2b21fa..c1e0dbc69f 100644
> --- a/main/libvpx/APKBUILD
> +++ b/main/libvpx/APKBUILD
> @@ -1,7 +1,7 @@
>  # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
>  pkgname=libvpx
> -pkgver=1.6.1
> -pkgrel=1
> +pkgver=1.7.0
> +pkgrel=0
>  pkgdesc="Library for the vp8 codec"
>  url="https://www.webmproject.org/"
>  arch="all"
> @@ -9,11 +9,11 @@ license="GPL"
>  depends=""
>  makedepends="coreutils yasm bash perl"
>  subpackages="$pkgname-dev $pkgname-utils"
> -source="https://storage.googleapis.com/downloads.webmproject.org/releases/webm/$pkgname-$pkgver.tar.bz2
> +source="$pkgname-$pkgver.tar.gz::https://chromium.googlesource.com/webm/$pkgname/+archive/v$pkgver.tar.gz
>  	fix-arm-float-abi.patch
> +	10-find-diff.patch
>  	"
> -
> -builddir="$srcdir"/$pkgname-$pkgver
> +builddir="$srcdir"
>  build() {
>  	cd "$builddir"
>  	# build fix for arm
> @@ -45,5 +45,6 @@ utils() {
>  	mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
>  }
>  
> -sha512sums="1a4b009fe1737715c6563a79848126a5859394a5074b1e9cca9bc2e213df90890c15e708040d5f2c96c7c21e268f51e1352ac6911514bf891a4bf3eea154159d  libvpx-1.6.1.tar.bz2
> -4eadbc2f4eb68eaff35cf85515aef271d6fd47293a53cba7b7a6e9e0fb71106dfb5ded45b9e9ba83264a91846e4a5fa4db42e39fc3eaff6ac37769e622f90f6c  fix-arm-float-abi.patch"
> +sha512sums="6e114a6e8470b05153a8c41b7f30adb37d8cf99dc1c3d016867e5578b4f69905d7a1fcd902b6855f3f6b3e63ae305eb3fadd53359f2c8f344f3d701c3d4882b5  libvpx-1.7.0.tar.gz
> +4eadbc2f4eb68eaff35cf85515aef271d6fd47293a53cba7b7a6e9e0fb71106dfb5ded45b9e9ba83264a91846e4a5fa4db42e39fc3eaff6ac37769e622f90f6c  fix-arm-float-abi.patch
> +c14015273a2f081ef722f752a7ac17204e7fd5c42fb7a4bb457afdff1fcd2cc276bd34ca80a6e318968e0fa2e6ba49ceee026dd1bd7ee1b2806dbde70fd0a7fb  10-find-diff.patch"
> diff --git a/testing/cbindgen/APKBUILD b/testing/cbindgen/APKBUILD
> new file mode 100644
> index 0000000000..6a58bcb45d
> --- /dev/null
> +++ b/testing/cbindgen/APKBUILD
> @@ -0,0 +1,26 @@
> +# Maintainer: Bradley Saulteaux <~@bradso.to>
> +pkgname=cbindgen
> +pkgver=0.8.0
> +pkgrel=0
> +pkgdesc="A tool for generating C bindings to Rust code"
> +url="https://github.com/eqrion/cbindgen"
> +# limited by rust and cargo
> +arch="x86_64"
> +license="MPL2"
> +depends=""
> +subpackages="$pkgname-doc"
> +makedepends="cargo"
> +install=""
> +source="$pkgname-$pkgver.tar.gz::https://github.com/eqrion/$pkgname/archive/v$pkgver.tar.gz"
> +builddir="${srcdir}/$pkgname-$pkgver"
> +build() {
> +	cargo build --release
> +}
> +check() {
> +	cargo test --release
> +}
> +package() {
> +	install -Dt "$pkgdir/usr/bin" target/release/cbindgen
> +	install -Dt "$pkgdir/usr/share/doc/$pkgname" -m644 README.md
> +}
> +sha512sums="634a61556b3ae20bb246d1c34c2869852af1e1003cbf0481a346191eb48f812d19755ae8e895628d53a3ab7792b977255bfb25a50a2dbb9baf18b4f3fc783b18  cbindgen-0.8.0.tar.gz"
> diff --git a/testing/firefox/10-debug-fixes.patch b/testing/firefox/10-debug-fixes.patch
> new file mode 100644
> index 0000000000..968091935e
> --- /dev/null
> +++ b/testing/firefox/10-debug-fixes.patch
> @@ -0,0 +1,25 @@
> +--- ./intl/locale/LocaleService.cpp
> ++++ ./intl/locale/LocaleService.cpp.
> +@@ -526,7 +526,6 @@
> +     GetGREFileContents("update.locale", &locale);
> +     locale.Trim(" \t\n\r");
> +     // This should never be empty.
> +-    MOZ_ASSERT(!locale.IsEmpty());
> +     if (SanitizeForBCP47(locale, true)) {
> +       mDefaultLocale.Assign(locale);
> +     }
> +--- ./browser/installer/package-manifest.in
> ++++ ./browser/installer/package-manifest.in.
> +@@ -499,12 +499,6 @@
> + ; svg
> + @RESPATH@/res/svg.css
> + 
> +-; [Layout Debugger]
> +-#ifdef MOZ_DEBUG
> +-@RESPATH@/chrome/layoutdebug@JAREXT@
> +-@RESPATH@/chrome/layoutdebug.manifest
> +-#endif
> +-
> + ; [Personal Security Manager]
> + ;
> + ; NSS libraries are signed in the staging directory,
> diff --git a/testing/firefox/APKBUILD b/testing/firefox/APKBUILD
> index b31c1997b7..54c6600445 100644
> --- a/testing/firefox/APKBUILD
> +++ b/testing/firefox/APKBUILD
> @@ -1,23 +1,27 @@
>  # Contributor: William Pitcock <nenolod@dereferenced.org>
>  # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
>  pkgname=firefox
> -pkgver=62.0.3
> +pkgver=65.0.1
>  _pkgver=$pkgver
>  _xulver=$pkgver
> -pkgrel=2
> +pkgrel=0
>  pkgdesc="Firefox web browser"
>  url="https://www.firefox.com/"
>  # limited by rust and cargo
>  arch="x86_64"
>  license="GPL LGPL MPL"
>  depends=""
> +subpackages="$pkgname-dbg"
> +options="!check" # tests run while building
>  makedepends="
>  	alsa-lib-dev
>  	autoconf2.13
> +	autoconf
>  	automake
>  	bsd-compat-headers
>  	bzip2-dev
>  	cargo
> +	cbindgen
>  	clang-dev
>  	dbus-glib-dev
>  	ffmpeg-dev
> @@ -27,6 +31,7 @@ makedepends="
>  	hunspell-dev
>  	icu-dev
>  	libevent-dev
> +	libffi-dev
>  	libidl-dev
>  	libjpeg-turbo-dev
>  	libnotify-dev
> @@ -39,9 +44,11 @@ makedepends="
>  	libxcomposite-dev
>  	llvm5-dev
>  	mesa-dev
> +	nasm
>  	nspr-dev
>  	nss-dev
>  	nss-static
> +	nodejs
>  	paxmark
>  	python3-dev
>  	sqlite-dev
> @@ -64,7 +71,6 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
>  	mallinfo.patch
>  
>  	fix-arm-atomics-grsec.patch
> -	fix-arm-version-detect.patch
>  	mozilla-build-arm.patch
>  	disable-moz-stackwalk.patch
>  	fix-rust-target.patch
> @@ -73,7 +79,9 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
>  	fix-webrtc-glibcisms.patch
>  
>  	firefox.desktop
> -	firefox-safe.desktop"
> +	firefox-safe.desktop
> +	
> +	10-debug-fixes.patch"
>  
>  builddir="${srcdir}/firefox-$pkgver"
>  _mozappdir=/usr/lib/firefox
> @@ -82,70 +90,41 @@ _mozappdir=/usr/lib/firefox
>  ldpath="$_mozappdir"
>  
>  prepare() {
> +	cd "$builddir"
>  	default_prepare
> -
> -	cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
> -	# https://bugzilla.mozilla.org/show_bug.cgi?id=1341234
> -	mkdir -p "$builddir"/objdir
> -	echo "ac_add_options BINDGEN_CFLAGS='-I/usr/include/nspr -I/usr/include/pixman-1'" >>objdir/.mozconfig
> +	autoreconf old-configure.in
> +	cd js/src; autoreconf old-configure.in
>  }
>  
>  build() {
> -	cd "$builddir"/objdir
> -
> -	export SHELL=/bin/sh
> -	export BUILD_OFFICIAL=1
> -	export MOZILLA_OFFICIAL=1
> -	export USE_SHORT_LIBNAME=1
> -	# gcc 6
> -	export CXXFLAGS="-fno-delete-null-pointer-checks -fno-schedule-insns2"
> -
> -	# set rpath so linker finds the libs
> -	export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}"
> -
> -	../configure \
> -		--prefix=/usr \
> -		\
> -		--disable-crashreporter \
> -		--disable-elf-hack \
> -		--disable-gold \
> -		--disable-install-strip \
> -		--disable-jemalloc \
> -		--disable-profiling \
> -		--disable-pulseaudio \
> -		--disable-strip \
> -		--disable-tests \
> -		--disable-updater \
> -		\
> -		--enable-alsa \
> -		--enable-default-toolkit=cairo-gtk3 \
> -		--enable-official-branding \
> -		--enable-optimize="$CFLAGS" \
> -		--enable-pie \
> -		--enable-startup-notification \
> -		--enable-system-ffi \
> -		--enable-system-sqlite \
> -		--enable-ffmpeg \
> -		\
> -		--with-system-bz2 \
> -		--with-system-icu \
> -		--with-system-jpeg \
> -		--with-system-libevent \
> -		--with-system-libvpx \
> -		--with-system-nspr \
> -		--with-system-nss \
> -		--with-system-pixman \
> -		--with-system-png \
> -		--with-system-zlib \
> -		--with-clang-path=/usr/bin/clang \
> -		--with-libclang-path=/usr/lib
> -	make
> -
> -	# paxmark outside fakeroot
> -	paxmark -msp dist/bin/xpcshell
> -
> +	cd "$builddir"
> +	export_add() {
> +		echo "export $1" >>"$builddir"/.mozconfig
> +	}
> +	ac_add_options() {
> +		echo "ac_add_options $1" >>"$builddir"/.mozconfig
> +	}
> +	mk_add_options() {
> +		echo "mk_add_options $1" >>"$builddir"/.mozconfig
> +	}
> +	export_add "SHELL=/bin/sh BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 USE_SHORT_LIBNAME=1"
> +	export_add "MOZ_NO_PIE_COMPAT=1	BUILDING_RELEASE=1 MOZ_PGO=1 MOZ_PACKAGE_JSSHELL=1"
> +	export_add "LDFLAGS=\"$LDFLAGS -Wl,-rpath,${_mozappdir}\""
> +	ac_add_options "--prefix=/usr --disable-jemalloc --disable-updater"
> +	ac_add_options "--disable-pulseaudio --enable-alsa --enable-verify-mar"
> +	ac_add_options "--enable-default-toolkit=cairo-gtk3 --enable-official-branding"
> +	ac_add_options "--enable-optimize=\"$CFLAGS -gdwarf-4 -gsplit-dwarf\" --enable-startup-notification"
> +	ac_add_options "--enable-system-ffi --enable-system-pixman --enable-system-sqlite"
> +	ac_add_options "--enable-av1 --with-system-bz2 --with-system-icu"
> +	ac_add_options "--with-system-libevent --with-system-libvpx --with-system-nspr"
> +	ac_add_options "--with-system-nss --with-system-png  --with-system-zlib"
> +	ac_add_options "--with-clang-path=/usr/bin/clang --with-libclang-path=/usr/lib"
> +	ac_add_options "--disable-install-strip --enable-debug-symbols=-gdwarf-4"
> +	ac_add_options "--disable-crashreporter --disable-elf-hack"
> +	mk_add_options "MOZ_OBJDIR=\"$builddir\"/objdir"
> +	
> +	./mach configure; ./mach build
>  }
> -
>  package() {
>  	cd "$builddir"/objdir
>  
> @@ -214,21 +193,21 @@ __EOF__
>  	rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libxul.so
>  }
>  
> -sha512sums="487bb7791284367158c79cf7918fecf3d598627a6416e679aeb5d22626089aeffe07762fa2389819ba881c90ece1c5a83cf2d85b2def15b8d5ba0ed1c498b527  firefox-62.0.3.source.tar.xz
> +sha512sums="cc76a83f6430f501c2260c6b35b5e48f045f5b180daf03375e9ab114a9afd67dfc0146ddb81cd29be4617aadb66a332ed5ebc625cb500df9579e412ed4909599  firefox-65.0.1.source.tar.xz
>  0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127  stab.h
>  2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71  fix-fortify-system-wrappers.patch
>  09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5  fix-fortify-inline.patch
> -2f713a270f7d1588ec4a0b9c21e5a0d20823954e6a64293ee1a391f80d38af6c0a80b3d35c3ada59b605f6032fb2af3040cd8ca7f424b0e620cc53fd12674fd9  fix-seccomp-bpf.patch
> -a2925045154f4fd34e5fc056656f4f9da100341529e5d4104d249154db0c7863384083f421ce6e47e0f20566a8b20787fa35444c7933c03cd03f96f06dcd4532  fix-toolkit.patch
> -b46cb90d4fdd1a925a61e2c6c545489cd542f5d82980c529361c02042eed31d5c26972b5e237c1a020f87ffcfd12736d1f4f6e33eaa83ae156d523c808c718cb  fix-tools.patch
> +6764e7af43f5a066ac0faf4f8d0747c03739f4f14b51f58c524eb0519dfd28540bdd25569b201a8e20919d0096479cf0e7a8e306fb223aba4c0f177c4df55200  fix-seccomp-bpf.patch
> +e680a23490908e8be256a8dadee3952f29c4069558548c2b79252640471fa29c221abb0634fc9260a8c9ba755f50f417a77ef66ede87eca8e02d69f74f8b0075  fix-toolkit.patch
> +a9e44759a584d148360405bf75981a6cb8b3ea0c2a553c13da7c559dc0193b35b2dca32571044cdca7ebd6ecc8c475da126d48a0c6ed19316857e2e88d28b49f  fix-tools.patch
>  bdcd1b402d2ec94957ba5d08cbad7b1a7f59c251c311be9095208491a05abb05a956c79f27908e1f26b54a3679387b2f33a51e945b650671ad85c0a2d59a5a29  mallinfo.patch
> -ed0d344c66fc8e1cc83a11e9858b32c42e841cbeedd9eb9438811e9fcc3593dc824a8336d00058d55836cedc970aeadd6a82c6dcd7bc0fb746e564d8b478cc6c  fix-arm-atomics-grsec.patch
> -015e1ff6dbf920033982b5df95d869a0b7bf56c6964e45e50649ddf46d1ce09563458e45240c3ecb92808662b1300b67507f7af272ba184835d91068a9e7d5b0  fix-arm-version-detect.patch
> +9a07f214877c8e4f919311b35ceb8b8ea990fb5811c89d060c0dc5f87a864ac678649fa2c0f1c1459e949e5abb81a894996e2f82b0f94d44e21cc94273fc6d5b  fix-arm-atomics-grsec.patch
>  e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18  mozilla-build-arm.patch
> -4797d2d89ac63a57abb826b8ea9f751314ce66946194033deb9d78c2ff377b88106fd2c7bc5034dc13ad03dd5085b1893c3ccae1a9e63fde35655bb0921f7188  disable-moz-stackwalk.patch
> +61b3c2ab34f43ada0b8c1c9c26fc70f82719b7f344a503325a350749fd6921255134d414c1eba3919e5c3bc133f7e0a164400d3c8af5ec6298afb8c7a146a4da  disable-moz-stackwalk.patch
>  42cc44fda4b05259b38f055d6f51461746aa89a474cedc5e92fb9d20879da0d12b1b515b273a549e7302cda9c7eddde20d5fdba09853e5c658784ad6d0b20078  fix-rust-target.patch
>  a50b412edf9573a0bd04a43578b1c927967a616b73a5995eefb15bfa78fd2bd14e36ec05315a0703f6370ecd524e6bcb012e7285beb1245e9add9b8553acb79e  fix-bug-1261392.patch
> -01b48a708cc6bc6e3cd7cc7b16f5137ec344566ac891d699b65e322bc992726072fa14a54cef1a7775799fcbbcf90a6c170107c8524caba3bc311b42d93b7581  rust-unitialized-field.patch
> -75b97d59e81e5f1debe6a459b535da704d5a2ac4a57c446d16058fd18db81e22317fcc3ec11b89f569f4de87e8e80ced027c0e72e7f1dd16f6fd0feb6b263919  fix-webrtc-glibcisms.patch
> +7bc98f6370e2ca170b7bbfbddd8bd684df6c11530f38152f37031809f2b6b0bffde70a998939d97ed460d807fa7decc94b85a1bb6bf6464a63733e0f9d0f7ac6  rust-unitialized-field.patch
> +44c95a862b04747658b666ab6e2efb77e57e63e78b1a81e489410bec4ef4c81956548131b922a50f9c069a3340c2b6f60a055cebf3f889f4d7d8a6e94eead11f  fix-webrtc-glibcisms.patch
>  f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454  firefox.desktop
> -5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed  firefox-safe.desktop"
> +5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed  firefox-safe.desktop
> +8ade2c0c767b5097f25b06bf5f5543141131e302390ea86a89becec598f039a72cbda6722bedfd773ff946b592a2f92a5c442d024de47d220c41dcb2af80219f  10-debug-fixes.patch"
> diff --git a/testing/firefox/disable-moz-stackwalk.patch b/testing/firefox/disable-moz-stackwalk.patch
> index c83ae7eae9..8f4924bac1 100644
> --- a/testing/firefox/disable-moz-stackwalk.patch
> +++ b/testing/firefox/disable-moz-stackwalk.patch
> @@ -1,12 +1,10 @@
> -diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp
> -index a208bad..14e1f0d 100644
> ---- a/mozglue/misc/StackWalk.cpp
> -+++ b/mozglue/misc/StackWalk.cpp
> -@@ -41,13 +41,7 @@ static CriticalAddress gCriticalAddress;
> +--- /mozglue/misc/StackWalk.cpp
> ++++ /mozglue/misc/StackWalk.cpp.
> +@@ -32,13 +32,7 @@
>   #define MOZ_STACKWALK_SUPPORTS_MACOSX 0
>   #endif
>   
> --#if (defined(linux) && \
> +-#if (defined(linux) &&                                            \
>  -     ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
>  -      defined(HAVE__UNWIND_BACKTRACE)))
>  -#define MOZ_STACKWALK_SUPPORTS_LINUX 1
> diff --git a/testing/firefox/fix-arm-atomics-grsec.patch b/testing/firefox/fix-arm-atomics-grsec.patch
> index 0eb58f093f..c7e12ca0f0 100644
> --- a/testing/firefox/fix-arm-atomics-grsec.patch
> +++ b/testing/firefox/fix-arm-atomics-grsec.patch
> @@ -1,8 +1,8 @@
> ---- mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig
> -+++ mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h
> -@@ -12,43 +35,194 @@
> - namespace base {
> - namespace subtle {
> +--- ./toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h
> ++++ ./toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h.
> +@@ -39,43 +39,194 @@
> + namespace protobuf {
> + namespace internal {
>   
>  -// 0xffff0fc0 is the hard coded address of a function provided by
>  -// the kernel which implements an atomic compare-exchange. On older
> @@ -217,7 +217,7 @@
>     return old_value;
>   }
>   
> -@@ -63,36 +237,57 @@
> +@@ -90,8 +241,7 @@
>       // Atomic exchange the old value with an incremented one.
>       Atomic32 old_value = *ptr;
>       Atomic32 new_value = old_value + increment;
> @@ -227,23 +227,19 @@
>         // The exchange took place as expected.
>         return new_value;
>       }
> -     // Otherwise, *ptr changed mid-loop and we need to retry.
> -   }
> --
> - }
> - 
> +@@ -102,23 +252,45 @@
>   inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
>                                          Atomic32 old_value,
>                                          Atomic32 new_value) {
>  -  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
> -+  Atomic32 prev_value;
> -+  for (;;) {
> -+    prev_value = *ptr;
> ++Atomic32 prev_value;                                     
> ++  for (;;) {                  
> ++    prev_value = *ptr;                                               
>  +    if (prev_value != old_value) {
> -+      // Always ensure acquire semantics.
> ++      // Always ensure acquire semantics.                          
>  +      MemoryBarrier();
> -+      return prev_value;
> -+    }
> ++      return prev_value;     
> ++    }                         
>  +    if (!LinuxKernelCmpxchg(old_value, new_value, ptr))
>  +      return old_value;
>  +  }
> @@ -253,38 +249,37 @@
>                                          Atomic32 old_value,
>                                          Atomic32 new_value) {
>  -  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
> -+  // This could be implemented as:
> -+  //    MemoryBarrier();
> -+  //    return NoBarrier_CompareAndSwap();
> -+  //
> ++  // This could be implemented as:                            
> ++  //    MemoryBarrier();                                             
> ++  //    return NoBarrier_CompareAndSwap();                    
> ++  //                                                               
>  +  // But would use 3 barriers per succesful CAS. To save performance,
>  +  // use Acquire_CompareAndSwap(). Its implementation guarantees that:
> -+  // - A succesful swap uses only 2 barriers (in the kernel helper).
> -+  // - An early return due to (prev_value != old_value) performs
> -+  //   a memory barrier with no store, which is equivalent to the
> -+  //   generic implementation above.
> ++  // - A succesful swap uses only 2 barriers (in the kernel helper).  
> ++  // - An early return due to (prev_value != old_value) performs      
> ++  //   a memory barrier with no store, which is equivalent to the     
> ++  //   generic implementation above.                                  
>  +  return Acquire_CompareAndSwap(ptr, old_value, new_value);
>   }
> - 
> -+#else
> -+#  error "Your CPU's ARM architecture is not supported yet"
> -+#endif
> -+
> -+// NOTE: Atomicity of the following load and store operations is only
> ++#else                                                                 
> ++#  error "Your CPU's ARM architecture is not supported yet"           
> ++#endif                                                                
> ++                                                                      
> ++// NOTE: Atomicity of the following load and store operations is only 
>  +// guaranteed in case of 32-bit alignement of |ptr| values.
> -+
> + 
>   inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
>     *ptr = value;
>   }
>   
> --inline void MemoryBarrier() {
> +-inline void MemoryBarrierInternal() {
>  -  pLinuxKernelMemoryBarrier();
>  -}
>  -
>   inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
>     *ptr = value;
> -   MemoryBarrier();
> -@@ -103,9 +298,7 @@
> +   MemoryBarrierInternal();
> +@@ -129,9 +301,7 @@
>     *ptr = value;
>   }
>   
> @@ -295,12 +290,3 @@
>   
>   inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
>     Atomic32 value = *ptr;
> -@@ -118,7 +311,6 @@
> -   return *ptr;
> - }
> - 
> --} // namespace base::subtle
> --} // namespace base
> -+} }  // namespace base::subtle
> - 
> - #endif  // BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_
> diff --git a/testing/firefox/fix-seccomp-bpf.patch b/testing/firefox/fix-seccomp-bpf.patch
> index ee6d666400..7f9fbae3a7 100644
> --- a/testing/firefox/fix-seccomp-bpf.patch
> +++ b/testing/firefox/fix-seccomp-bpf.patch
> @@ -1,6 +1,5 @@
> -diff -ru firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
> ---- firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:53:46.083976137 +0000
> -+++ firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:51:22.084596411 +0000
> +--- ./security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:53:46.083976137 +0000
> ++++ ./security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:51:22.084596411 +0000
>  @@ -25,6 +25,11 @@
>   #include "sandbox/linux/system_headers/linux_seccomp.h"
>   #include "sandbox/linux/system_headers/linux_signal.h"
> @@ -13,14 +12,13 @@ diff -ru firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf
>   namespace {
>   
>   struct arch_sigsys {
> -diff -ru firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp
> ---- firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp	2018-10-01 18:35:28.000000000 +0000
> -+++ firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp	2018-12-14 08:57:50.645264590 +0000
> -@@ -1005,6 +1005,7 @@
> -         // ffmpeg, and anything else that calls isatty(), will be told
> -         // that nothing is a typewriter:
> -         .ElseIf(request == TCGETS, Error(ENOTTY))
> -+        .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
> -         // Allow anything that isn't a tty ioctl, for now; bug 1302711
> -         // will cover changing this to a default-deny policy.
> -         .ElseIf(shifted_type != kTtyIoctls, Allow())
> +--- ./security/sandbox/linux/SandboxFilter.cpp	2018-10-01 18:35:28.000000000 +0000
> ++++ ./security/sandbox/linux/SandboxFilter.cpp	2018-12-14 08:57:50.645264590 +0000
> +@@ -997,6 +997,7 @@
> +             // ffmpeg, and anything else that calls isatty(), will be told
> +             // that nothing is a typewriter:
> +             .ElseIf(request == TCGETS, Error(ENOTTY))
> ++            .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
> +             // Allow anything that isn't a tty ioctl, for now; bug 1302711
> +             // will cover changing this to a default-deny policy.
> +             .ElseIf(shifted_type != kTtyIoctls, Allow())
> diff --git a/testing/firefox/fix-toolkit.patch b/testing/firefox/fix-toolkit.patch
> index 58fe5a3a9a..c79b9a15d4 100644
> --- a/testing/firefox/fix-toolkit.patch
> +++ b/testing/firefox/fix-toolkit.patch
> @@ -55,21 +55,6 @@ index 93fdad7..f34e5e0 100644
>   /* End of x86-64 definitions                                                 */
>   #elif defined(__mips__)
>   #if _MIPS_SIM == _MIPS_SIM_ABI32
> -diff --git a/toolkit/mozapps/update/common/updatedefines.h b/toolkit/mozapps/update/common/updatedefines.h
> -index 026e7ed..0801f14 100644
> ---- a/toolkit/mozapps/update/common/updatedefines.h
> -+++ b/toolkit/mozapps/update/common/updatedefines.h
> -@@ -117,7 +117,7 @@ static inline int mywcsprintf(WCHAR* dest, size_t count, const WCHAR* fmt, ...)
> - 
> - #ifdef SOLARIS
> - # include <sys/stat.h>
> --#else
> -+#elif !defined(__linux__) || defined(__GLIBC__)
> - # include <fts.h>
> - #endif
> - # include <dirent.h>
> -diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
> -index 257ccb4..01314e4 100644
>  --- a/toolkit/mozapps/update/updater/updater.cpp
>  +++ b/toolkit/mozapps/update/updater/updater.cpp
>  @@ -3737,6 +3737,7 @@ int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
> @@ -88,3 +73,14 @@ index 257ccb4..01314e4 100644
>   
>     return rv;
>   }
> +--- ./toolkit/mozapps/update/common/updatedefines.h
> ++++ ./toolkit/mozapps/update/common/updatedefines.h.
> +@@ -102,7 +102,7 @@
> + 
> + #ifdef SOLARIS
> + #include <sys/stat.h>
> +-#else
> ++#elif !defined(__linux__) || defined(__GLIBC__)
> + #include <fts.h>
> + #endif
> + #include <dirent.h>
> diff --git a/testing/firefox/fix-tools.patch b/testing/firefox/fix-tools.patch
> index 84f7fa9cb8..ed2c7f2bca 100644
> --- a/testing/firefox/fix-tools.patch
> +++ b/testing/firefox/fix-tools.patch
> @@ -11,12 +11,12 @@
>   #include "MainThreadUtils.h"
>  --- a/tools/profiler/lul/LulElf.cpp
>  +++ b/tools/profiler/lul/LulElf.cpp
> -@@ -579,10 +579,10 @@
> +@@ -469,10 +469,10 @@
>   // Return the non-directory portion of FILENAME: the portion after the
>   // last slash, or the whole filename if there are no slashes.
> - string BaseFileName(const string &filename) {
> + string BaseFileName(const string& filename) {
>  -  // Lots of copies!  basename's behavior is less than ideal.
> --  char *c_filename = strdup(filename.c_str());
> +-  char* c_filename = strdup(filename.c_str());
>  -  string base = basename(c_filename);
>  -  free(c_filename);
>  +  // basename's behavior is less than ideal so avoid it
> @@ -25,13 +25,13 @@
>  +  string base = p ? p+1 : c_filename;
>     return base;
>   }
> -
> + 
>  --- a/tools/profiler/core/platform-linux-android.cpp.orig
>  +++ b/tools/profiler/core/platform-linux-android.cpp
> -@@ -534,9 +534,11 @@
> - void
> - Registers::SyncPopulate()
> - {
> +@@ -497,8 +497,10 @@
> + ucontext_t sSyncUContext;
> + 
> + void Registers::SyncPopulate() {
>  +#if defined(__GLIBC__)
>     if (!getcontext(&sSyncUContext)) {
>       PopulateRegsFromContext(*this, &sSyncUContext);
> @@ -39,4 +39,4 @@
>  +#endif
>   }
>   #endif
> - 
> +
> diff --git a/testing/firefox/fix-webrtc-glibcisms.patch b/testing/firefox/fix-webrtc-glibcisms.patch
> index dc9206b50e..95b3a55eeb 100644
> --- a/testing/firefox/fix-webrtc-glibcisms.patch
> +++ b/testing/firefox/fix-webrtc-glibcisms.patch
> @@ -1,13 +1,13 @@
> ---- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2018-05-09 23:48:44.677389171 +0200
> -+++ ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2018-05-09 23:48:56.254373557 +0200
> -@@ -11,7 +11,9 @@
> - #include <stdlib.h>
> - #include <string.h>
> - #include <features.h>
> +--- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c
> ++++ ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.
> +@@ -14,7 +14,9 @@
> + #ifndef __GLIBC_PREREQ
> + #define __GLIBC_PREREQ(a, b) 0
> + #endif
>  -#if __GLIBC_PREREQ(2, 16)
> -+#if !defined(__GLIBC__)
> -+#include <sys/auxv.h>
> -+#elif __GLIBC_PREREQ(2, 16)
> ++#if !defined(__GLIBC__)                                                                                                                                       
> ++#include <sys/auxv.h>                                                                                                                                         
> ++#elif __GLIBC_PREREQ(2, 16) 
>   #include <sys/auxv.h>
>   #else
>   #include <fcntl.h>
> diff --git a/testing/firefox/rust-unitialized-field.patch b/testing/firefox/rust-unitialized-field.patch
> index 67ef3a02ab..3ef7f055ca 100644
> --- a/testing/firefox/rust-unitialized-field.patch
> +++ b/testing/firefox/rust-unitialized-field.patch
> @@ -1,11 +1,14 @@
> ---- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
> -+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
> -@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
> +--- ./media/audioipc/audioipc/src/cmsg.rs
> ++++ ./media/audioipc/audioipc/src/cmsg.rs.
> +@@ -105,14 +105,12 @@
> +             if cmsg.remaining_mut() < cmsg_len {
>                   return Err(Error::NoSpace);
>               }
> - 
> +
>  -            let cmsghdr = cmsghdr {
>  -                cmsg_len: cmsg_len as _,
> +-                #[cfg(target_env = "musl")]
> +-                __pad1: 0,
>  -                cmsg_level: level,
>  -                cmsg_type: kind,
>  -            };



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---
Reply to thread Export thread (mbox)