Change:
I try to install vivaldi-ffmpeg-codecs, it tries to build it — Just try to install vivaldi-ffmpeg-codecs. there was the same thing in previous 18.03.
I found that was removed in . Here it is in the : And the helpful thread:
I tried bluntly update the chromium source where codecs stored. But it failed:
That patch is marked .
Let's call submitter:
I tried bluntly update the chromium source where codecs stored. This is the right approach, but you'll also have to remove the old patches and check whether you need any newer . The patches used by the are usually a good starting point.
So unless I'm mistaken, shouldn't we just build chromium & provide a vivaldi output? The chromium build is huge & we don't want Hydra to have to do it multiple times. What's the intended use of ffmpeg-vivaldi-codecs? I think we can disable libcxx building with in args, though.
As i can see, there are some license issues (?) with something like h264. So we build in on "client" side from sources (probably it's x264)... I don't know exactly...
Providing a Vivaldi output from chromium (as suggests) is difficult because chromium moves at a different speed than Vivaldi, so the resulting library may not fit properly. I don't know how often this happens, but it looks like upstream ffmpeg changes their ABI fairly often. The build actually isn't that much of an issue. The only difficulty is having to download and extract the full chromium tarball, the compile times are short as we only need . What's the intended use of ffmpeg-vivaldi-codecs? Vivaldi (the company) cannot distribute certain codecs in ffmpeg in their packages, so we have to compile that separately.

Discussion:
<del> diff --git a/base/numerics/safe_math_shared_impl.h b/base/numerics/safe_math_shared_impl.h index 99f230ce7e9a..de2415d402f5 100644 --- a/base/numerics/safe_math_shared_impl.h +++ b/base/numerics/safe_math_shared_impl.h @@ -21,8 +21,7 @@ #if !defined(__native_client__) &&                          ((defined(__clang__) &&                                 ((__clang_major__ > 3) ||                             -       (__clang_major__ == 3 && __clang_minor__ >= 4))) ||  -     (defined(__GNUC__) && __GNUC__ >= 5)) +       (__clang_major__ == 3 && __clang_minor__ >= 4)))) #include "base/numerics/safe_math_clang_gcc_impl.h" #define BASE_HAS_OPTIMIZED_SAFE_MATH (1) #else </del>  No newline at end of file

<del> --- a/chrome/browser/devtools/devtools_file_system_indexer.cc +++ b/chrome/browser/devtools/devtools_file_system_indexer.cc @@ -34,7 +34,6 @@ using base::TimeDelta; using base::TimeTicks; using content::BrowserThread; using std::map; -using std::set; using std::string; using std::vector; @@ -191,7 +190,7 @@ vector<FilePath> Index::Search(const string& query) { if (trigram != kUndefinedTrigram) trigrams.push_back(trigram); } -  set<FileId> file_ids; +  std::set<FileId> file_ids; bool first = true; vector<Trigram>::const_iterator it = trigrams.begin(); for (; it != trigrams.end(); ++it) { @@ -203,7 +202,7 @@ vector<FilePath> Index::Search(const string& query) { first = false; continue; } -    set<FileId> intersection = base::STLSetIntersection<set<FileId> >( +    std::set<FileId> intersection = base::STLSetIntersection<std::set<FileId> >( file_ids, index_[trigram]); file_ids.swap(intersection); } diff --git a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h index 94bb9161ec85..e40c6387f72e 100644 --- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h +++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h @@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents { allocation_length_(0), data_(data), data_length_(0), -          kind_(AllocationKind::kNormal), +          kind_(WTF::ArrayBufferContents::AllocationKind::kNormal), deleter_(deleter) {} DataHandle(void* allocation_base, size_t allocation_length, @@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents { reinterpret_cast<uintptr_t>(allocation_base_) + allocation_length_); switch (kind_) { -        case AllocationKind::kNormal: +        case WTF::ArrayBufferContents::AllocationKind::kNormal: DCHECK(deleter_); deleter_(data_); return; -        case AllocationKind::kReservation: +        case WTF::ArrayBufferContents::AllocationKind::kReservation: ReleaseReservedMemory(allocation_base_, allocation_length_); return; } --- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig	2017-08-15 12:45:59.433532111 +0000 +++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc	2017-08-15 17:52:59.691328825 +0000 @@ -10,7 +10,7 @@ #include "webrtc/modules/audio_processing/aec3/aec_state.h" -#include <math.h> +#include <cmath> #include <numeric> #include <vector> </del>  No newline at end of file

<del> commit 96c271f8ab2be7ea4199078ea65ac50c6ada4685 Author: Pawel Hajdan, Jr <phajdan.jr@chromium.org> Date:   Wed Jul 26 21:51:54 2017 +0000 wip diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py index 1390560f8e37..ff2ae57c46b0 100755 --- a/tools/gn/bootstrap/bootstrap.py +++ b/tools/gn/bootstrap/bootstrap.py @@ -449,6 +449,7 @@ def write_gn_ninja(path, root_gen_dir, options): 'base/metrics/histogram_base.cc', 'base/metrics/histogram_functions.cc', 'base/metrics/histogram_samples.cc', +      'base/metrics/histogram_snapshot_manager.cc', 'base/metrics/metrics_hashes.cc', 'base/metrics/persistent_histogram_allocator.cc', 'base/metrics/persistent_memory_allocator.cc', @@ -534,7 +535,7 @@ def write_gn_ninja(path, root_gen_dir, options): 'base/trace_event/heap_profiler_allocation_context_tracker.cc', 'base/trace_event/heap_profiler_allocation_register.cc', 'base/trace_event/heap_profiler_event_filter.cc', -      'base/trace_event/heap_profiler_event_writer.cc', +      'base/trace_event/heap_profiler_heap_dump_writer.cc', 'base/trace_event/heap_profiler_serialization_state.cc', 'base/trace_event/heap_profiler_stack_frame_deduplicator.cc', 'base/trace_event/heap_profiler_type_name_deduplicator.cc', </del>  No newline at end of file

stdenv.mkDerivation rec { name = "${product}-${version}"; product = "vivaldi"; <del> version = "1.15.1147.42-1"; </del> <ins> version = "1.15.1147.64-1"; </ins> src = fetchurl { url = "https://downloads.vivaldi.com/stable/${product}-stable_${version}_amd64.deb"; <del> sha256 = "15cajvn2sv05qdp3y538n2xvyy3il49q8zi5928z1mfirjz3dlwh"; </del> <ins> sha256 = "01xbfrrq2kj75cb6grpq9a4y88j1s87h2nnvy1fmyb4a2db6y0ag"; </ins> }; unpackPhase = ''

{ stdenv, fetchurl <del> , dbus-glib, gtk2, gtk3, libexif, libpulseaudio, libXScrnSaver, ninja, nss , pciutils, pkgconfig, python2, xdg_utils </del> <ins> , dbus-glib, gtk3, libexif, libXScrnSaver, ninja, nss , pciutils, pkgconfig, python2, xdg_utils, gn </ins> }: stdenv.mkDerivation rec { name = "${product}-${version}"; product = "vivaldi-ffmpeg-codecs"; <del> version = "61.0.3163.91"; </del> <ins> version = "69.0.3497.73"; </ins> src = fetchurl { url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz"; <del> sha512 = "3f07vwbxllrwy3agqxa6ndcix23vai18i178zscmk0y68flhzffyjdvrwlg7dzlwgiqypj2cyl21qb4qmcay2ilgw9vnr9fql2x0w7p"; </del> <ins> sha512 = "3qyzxdybiszwy62izr35wffnh1a1plg9y536vrmd4b2xl8p4nz18c7439blr0cdzsr5qplgrdl64446a27mkyhbw8c3iy0gb4zgb5j9"; </ins> }; buildInputs = [ ]; nativeBuildInputs = [ <del> dbus-glib gtk2 gtk3 libexif libpulseaudio libXScrnSaver ninja nss pciutils pkgconfig python2 xdg_utils </del> <ins> gtk3 libexif libXScrnSaver ninja nss pciutils python2 xdg_utils gn pkgconfig dbus-glib </ins> ]; patches = [ <del> ./chromium-gn-bootstrap-r14.patch ./chromium-gcc-r1.patch ./chromium-gcc5-r1.patch </del> ]; configurePhase = '' runHook preConfigure <del> local args="ffmpeg_branding="ChromeOS" proprietary_codecs=true enable_hevc_demuxing=true use_gconf=false use_gio=false use_gnome_keyring=false use_kerberos=false use_cups=false use_sysroot=false use_gold=false linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false is_clang=false is_component_build=true is_debug=false symbol_level=0" python tools/gn/bootstrap/bootstrap.py -v -s --no-clean --gn-gen-args "$args" out/Release/gn gen out/Release -v --args="$args" </del> <ins> local args="ffmpeg_branding="ChromeOS" proprietary_codecs=true enable_hevc_demuxing=true use_gnome_keyring=false use_sysroot=false use_gold=false use_allocator="none" linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false enable_nacl=false enable_nacl_nonsfi=false is_clang=false clang_use_chrome_plugins=false is_component_build=true is_debug=false symbol_level=0 use_custom_libcxx=false use_lld=false use_jumbo_build=false" gn gen out/Release -v --args="$args" </ins> runHook postConfigure '';

license     = licenses.lgpl21; maintainers = with maintainers; [ lluchs ]; platforms   = [ "x86_64-linux" ]; <del> broken = true; </del> }; }

path=${prefetch[1]} echo "vivaldi: $vivaldi_version_old -> $vivaldi_version" <ins> echo "$path" </ins> (cd "$root" && update-source-version vivaldi "$vivaldi_version" "$hash") # Check vivaldi-ffmpeg-codecs version. chromium_version_old=$(version vivaldi-ffmpeg-codecs) <del> chromium_version=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/vivaldi-bin | strings | grep -A2 -i '^chrome/' | grep '^[0-9]+.[0-9]+.[1-9][0-9]+.[0-9]+') </del> <ins> chromium_version=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/vivaldi-bin | strings | grep '^[0-9]{2,}.[0-9]+.[0-9]{4,}+.[0-9]+$') </ins> if [[ "$chromium_version" != "$chromium_version_old" ]]; then echo "vivaldi-ffmpeg-codecs: $chromium_version_old -> $chromium_version"