diff --git a/0001-add-pagesize-64k-support.patch b/0001-add-pagesize-64k-support.patch new file mode 100644 index 0000000000000000000000000000000000000000..e7f8e73d9e159fe2b95a42981d1d6415cdf2c795 --- /dev/null +++ b/0001-add-pagesize-64k-support.patch @@ -0,0 +1,114 @@ +From 481f91521af752751ed7d965686145a1b08ae491 Mon Sep 17 00:00:00 2001 +From: root +Date: Thu, 9 Feb 2023 10:14:27 +0800 +Subject: [PATCH] add pagesize 64k support + +--- + .../partition_allocator/page_allocator_constants.h | 6 ++++-- + .../partition_allocator/partition_alloc_constants.h | 4 +++- + src/3rdparty/chromium/build/config/BUILD.gn | 4 ++++ + src/3rdparty/chromium/build/config/features.gni | 2 ++ + .../third_party/blink/renderer/platform/heap/heap_page.h | 2 +- + src/core/config/linux.pri | 7 +++++++ + 6 files changed, 21 insertions(+), 4 deletions(-) + +diff --git a/src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator_constants.h b/src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator_constants.h +index 555700a7d..55933b6f3 100644 +--- a/src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator_constants.h ++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator_constants.h +@@ -10,7 +10,7 @@ + #include "build/build_config.h" + + namespace base { +-#if defined(OS_WIN) || defined(ARCH_CPU_PPC64) ++#if defined(OS_WIN) || defined(ARCH_CPU_PPC64) || defined (PAGESIZE_64K) + static constexpr size_t kPageAllocationGranularityShift = 16; // 64KB + #elif defined(_MIPS_ARCH_LOONGSON) + static constexpr size_t kPageAllocationGranularityShift = 14; // 16KB +@@ -24,7 +24,9 @@ static constexpr size_t kPageAllocationGranularityOffsetMask = + static constexpr size_t kPageAllocationGranularityBaseMask = + ~kPageAllocationGranularityOffsetMask; + +-#if defined(_MIPS_ARCH_LOONGSON) ++#if defined(PAGESIZE_64K) ++static const size_t kSystemPageSize = 65536; ++#elif defined(_MIPS_ARCH_LOONGSON) + static constexpr size_t kSystemPageSize = 16384; + #elif defined(ARCH_CPU_PPC64) + // Modern ppc64 systems support 4KB and 64KB page sizes. +diff --git a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h +index fbc851c15..b6efa1f2b 100644 +--- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h ++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h +@@ -35,7 +35,9 @@ static const size_t kBucketShift = (kAllocationGranularity == 8) ? 3 : 2; + // other constant values, we pack _all_ `PartitionRootGeneric::Alloc` sizes + // perfectly up against the end of a system page. + +-#if defined(_MIPS_ARCH_LOONGSON) ++#if defined(PAGESIZE_64K) ++static const size_t kPartitionPageShift = 18; // 256KB ++#elif defined(_MIPS_ARCH_LOONGSON) + static const size_t kPartitionPageShift = 16; // 64 KiB + #elif defined(ARCH_CPU_PPC64) + static const size_t kPartitionPageShift = 18; // 256 KiB +diff --git a/src/3rdparty/chromium/build/config/BUILD.gn b/src/3rdparty/chromium/build/config/BUILD.gn +index e2462f189..5fc344311 100644 +--- a/src/3rdparty/chromium/build/config/BUILD.gn ++++ b/src/3rdparty/chromium/build/config/BUILD.gn +@@ -112,6 +112,10 @@ config("feature_flags") { + defines += [ "TOOLKIT_QT" ] + } + ++ if (use_pagesize_64k) { ++ defines += [ "PAGESIZE_64K" ] ++ } ++ + # ============================================== + # PLEASE DO NOT ADD MORE THINGS TO THIS LIST + # ============================================== +diff --git a/src/3rdparty/chromium/build/config/features.gni b/src/3rdparty/chromium/build/config/features.gni +index 390e9f006..8810f76f3 100644 +--- a/src/3rdparty/chromium/build/config/features.gni ++++ b/src/3rdparty/chromium/build/config/features.gni +@@ -33,6 +33,8 @@ declare_args() { + use_gio = is_linux && !is_chromeos && !is_chromecast + + use_qt = false ++ ++ use_pagesize_64k = false + } + # + # ============================================= +diff --git a/src/3rdparty/chromium/third_party/blink/renderer/platform/heap/heap_page.h b/src/3rdparty/chromium/third_party/blink/renderer/platform/heap/heap_page.h +index f9f007611..ce16abc38 100644 +--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/heap/heap_page.h ++++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/heap/heap_page.h +@@ -69,7 +69,7 @@ constexpr size_t kBlinkPageBaseMask = ~kBlinkPageOffsetMask; + constexpr size_t kBlinkPagesPerRegion = 10; + + // TODO(nya): Replace this with something like #if ENABLE_NACL. +-#if defined(ARCH_CPU_PPC64) ++#if defined(ARCH_CPU_PPC64) || defined(PAGESIZE_64K) + // NaCl's system page size is 64 KiB. This causes a problem in Oilpan's heap + // layout because Oilpan allocates two guard pages for each Blink page (whose + // size is kBlinkPageSize = 2^17 = 128 KiB). So we don't use guard pages in +diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri +index 26d0dcf7d..99bb779fb 100644 +--- a/src/core/config/linux.pri ++++ b/src/core/config/linux.pri +@@ -1,5 +1,12 @@ + include(common.pri) + ++get_pagesize_res = $$system( getconf PAGESIZE ) ++message(system kernel pagesize is $$get_pagesize_res) ++equals(get_pagesize_res , 65536){ ++ message("system kernel pagesize is 64k,set use_pagesize_64k true.") ++ gn_args += use_pagesize_64k=true ++} ++ + qtConfig(webengine-embedded-build) { + gn_args += is_desktop_linux=false + } +-- +2.31.1 + diff --git a/README.md b/README.md deleted file mode 100644 index 1fa98e56ded55f4c171db20feb82b1fdad4f53f8..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,12 +0,0 @@ -Anolis OS -======================================= -# 代码仓库说明 -## 分支说明 ->进行代码开发工作时,请注意选择当前版本对应的分支 -* aX分支为对应大版本的主分支,如a8分支对应当前最新版本 -* aX.Y分支为对应小版本的维护分支,如a8.2分支对应8.2版本 -## 开发流程 -1. 首先fork目标分支到自己的namespace -2. 在自己的fork分支上做出修改 -3. 向对应的仓库中提交merge request,源分支为fork分支 - diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh new file mode 100755 index 0000000000000000000000000000000000000000..bb28dd4ba33e3fe7b70e2e0d7bdda4c5409cc3b7 --- /dev/null +++ b/clean_ffmpeg.sh @@ -0,0 +1,352 @@ +#!/bin/bash +# Copyright 2013 Tomas Popela +# Copyright 2016-2017 Kevin Kofler +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +where=`pwd` + +generated_files=`./get_free_ffmpeg_source_files.py $1 0` +generated_files_headers="${generated_files//.c/.h}" +generated_files_headers="${generated_files_headers//.S/.h}" +generated_files_headers="${generated_files_headers//.asm/.h}" + +cd $1/third_party/ffmpeg + +header_files=" libavutil/x86/asm.h \ + libavutil/x86/bswap.h \ + libavutil/x86/cpu.h \ + libavutil/x86/emms.h \ + libavutil/x86/intmath.h \ + libavutil/x86/intreadwrite.h \ + libavutil/x86/timer.h \ + libavutil/aarch64/asm.S \ + libavutil/aarch64/bswap.h \ + libavutil/aarch64/timer.h \ + libavutil/arm/asm.S \ + libavutil/arm/bswap.h \ + libavutil/arm/cpu.h \ + libavutil/arm/float_dsp_arm.h \ + libavutil/arm/intmath.h \ + libavutil/arm/intreadwrite.h \ + libavutil/arm/timer.h \ + libavutil/ppc/cpu.h \ + libavutil/ppc/float_dsp_altivec.h \ + libavutil/ppc/float_dsp_vsx.h \ + libavutil/ppc/intreadwrite.h \ + libavutil/ppc/timer.h \ + libavutil/ppc/util_altivec.h \ + libavutil/aes_internal.h \ + libavutil/atomic.h \ + libavutil/atomic_gcc.h \ + libavutil/attributes.h \ + libavutil/audio_fifo.h \ + libavutil/avassert.h \ + libavutil/avutil.h \ + libavutil/bswap.h \ + libavutil/buffer_internal.h \ + libavutil/common.h \ + libavutil/colorspace.h \ + libavutil/cpu_internal.h \ + libavutil/cpu.h \ + libavutil/dynarray.h \ + libavutil/ffmath.h \ + libavutil/fixed_dsp.h \ + libavutil/float_dsp.h \ + libavutil/hwcontext_internal.h \ + libavutil/imgutils.h \ + libavutil/imgutils_internal.h \ + libavutil/internal.h \ + libavutil/intfloat.h \ + libavutil/intreadwrite.h \ + libavutil/libm.h \ + libavutil/lls.h \ + libavutil/lzo.h \ + libavutil/macros.h \ + libavutil/mem_internal.h \ + libavcodec/mlp_parse.h \ + libavutil/old_pix_fmts.h \ + libavutil/pixfmt.h \ + libavutil/qsort.h \ + libavutil/replaygain.h \ + libavutil/softfloat_tables.h \ + libavutil/thread.h \ + libavutil/timer.h \ + libavutil/timestamp.h \ + libavutil/time_internal.h \ + libavutil/tx_priv.h \ + libavutil/tx_template.c \ + libavutil/version.h \ + libavutil/x86_cpu.h + libavcodec/aarch64/neon.S \ + libavcodec/aarch64/vp8dsp.h \ + libavcodec/x86/constants.h \ + libavcodec/x86/dsputil_x86.h \ + libavcodec/x86/fft.h \ + libavcodec/x86/fpel.h \ + libavcodec/x86/hpeldsp.h \ + libavcodec/x86/inline_asm.h \ + libavcodec/x86/mathops.h \ + libavcodec/x86/vp56_arith.h \ + libavcodec/arm/mathops.h \ + libavcodec/arm/neon.S \ + libavcodec/arm/videodsp_arm.h \ + libavcodec/arm/vp56_arith.h \ + libavcodec/arm/vp8.h \ + libavcodec/arm/vp8dsp.h \ + libavcodec/ppc/fft_vsx.h \ + libavcodec/ppc/hpeldsp_altivec.h \ + libavcodec/ppc/mathops.h \ + libavcodec/aac_ac3_parser.h \ + libavcodec/ac3_parser_internal.h \ + libavcodec/ac3.h \ + libavcodec/adts_header.h \ + libavcodec/avcodec.h \ + libavcodec/blockdsp.h \ + libavcodec/bytestream.h \ + libavcodec/dct.h \ + libavcodec/dct32.h \ + libavcodec/dsputil.h \ + libavcodec/dv_profile_internal.h \ + libavcodec/error_resilience.h \ + libavcodec/fdctdsp.h \ + libavcodec/flac.h \ + libavcodec/flacdsp.h \ + libavcodec/fft.h \ + libavcodec/fft-internal.h \ + libavcodec/fft_table.h \ + libavcodec/frame_thread_encoder.h \ + libavcodec/get_bits.h \ + libavcodec/h263dsp.h \ + libavcodec/h264chroma.h \ + libavcodec/h264pred.h \ + libavcodec/hpeldsp.h \ + libavcodec/hwaccel.h \ + libavcodec/hwaccels.h \ + libavcodec/idctdsp.h \ + libavcodec/internal.h \ + libavcodec/mathops.h \ + libavcodec/mdct15.h \ + libavcodec/me_cmp.h \ + libavcodec/motion_est.h \ + libavcodec/mpegaudio_tablegen.h \ + libavcodec/mpegaudiodectab.h \ + libavcodec/mpegaudiodsp.h \ + libavcodec/mpeg12.h \ + libavcodec/mpeg12data.h \ + libavcodec/mpeg12vlc.h \ + libavcodec/mpegpicture.h \ + libavcodec/mpegutils.h \ + libavcodec/mpegvideo.h \ + libavcodec/mpegvideodata.h \ + libavcodec/mpegvideodsp.h \ + libavcodec/mpegvideoencdsp.h \ + libavcodec/old_codec_ids.h \ + libavcodec/options_table.h \ + libavcodec/opus_celt.h \ + libavcodec/opusdsp.h \ + libavcodec/opus_pvq.h \ + libavcodec/opus_rc.h \ + libavcodec/pcm_tablegen.h \ + libavcodec/pel_template.c \ + libavcodec/pixblockdsp.h \ + libavcodec/pixels.h \ + libavcodec/png.h \ + libavcodec/pthread_internal.h \ + libavcodec/put_bits.h \ + libavcodec/qpeldsp.h \ + libavcodec/ratecontrol.h \ + libavcodec/rectangle.h \ + libavcodec/rl.h \ + libavcodec/rnd_avg.h \ + libavcodec/thread.h \ + libavcodec/tpel_template.c \ + libavcodec/unary.h \ + libavcodec/version.h \ + libavcodec/videodsp.h \ + libavcodec/vlc.h \ + libavcodec/vorbis_parser_internal.h \ + libavcodec/vorbisdsp.h \ + libavcodec/vp3data.h \ + libavcodec/vp3dsp.h \ + libavcodec/vp4data.h \ + libavcodec/vp56.h \ + libavcodec/vp56dsp.h \ + libavcodec/vp8data.h \ + libavcodec/vp8.h \ + libavcodec/vp8dsp.h \ + libavformat/audiointerleave.h \ + libavformat/avio_internal.h \ + libavformat/avformat.h \ + libavformat/dv.h \ + libavformat/internal.h \ + libavformat/pcm.h \ + libavformat/rdt.h \ + libavformat/rtp.h \ + libavformat/rtpdec.h \ + libavformat/spdif.h \ + libavformat/srtp.h \ + libavformat/options_table.h \ + libavformat/version.h \ + libavformat/w64.h \ + libswresample/swresample.h \ + libswresample/version.h \ + compat/va_copy.h " + +manual_files=" libavutil/x86/x86inc.asm \ + libavutil/x86/x86util.asm \ + libavcodec/x86/hpeldsp_rnd_template.c \ + libavcodec/x86/rnd_template.c \ + libavcodec/x86/autorename_libavcodec_x86_videodsp_init.c \ + libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c \ + libavcodec/x86/constants.c \ + libavcodec/x86/fft_init.c \ + libavcodec/x86/h264_intrapred_init.c \ + libavcodec/x86/hpeldsp_init.c \ + libavcodec/x86/videodsp_init.c \ + libavcodec/x86/vorbisdsp_init.c \ + libavcodec/x86/vp3dsp_init.c \ + libavcodec/x86/vp8dsp_init.c \ + libavutil/x86/autorename_libavutil_x86_cpu.c \ + libavutil/x86/autorename_libavutil_x86_float_dsp_init.c \ + libavutil/x86/cpu.c \ + libavutil/x86/float_dsp_init.c \ + libavutil/x86/lls_init.c \ + libavcodec/x86/deinterlace.asm \ + libavcodec/x86/fft.asm \ + libavcodec/x86/fpel.asm \ + libavcodec/x86/h264_intrapred.asm \ + libavcodec/x86/h264_intrapred_10bit.asm \ + libavcodec/x86/hpeldsp.asm \ + libavcodec/x86/videodsp.asm \ + libavcodec/x86/vorbisdsp.asm \ + libavcodec/x86/vp3dsp.asm \ + libavcodec/x86/vp8dsp.asm \ + libavcodec/x86/vp8dsp_loopfilter.asm \ + libavutil/x86/cpuid.asm \ + libavutil/x86/float_dsp.asm \ + libavutil/x86/lls.asm \ + libavcodec/bit_depth_template.c \ + libavcodec/dct32_template.c \ + libavcodec/fft_template.c \ + libavcodec/h264pred_template.c \ + libavcodec/hpel_template.c \ + libavcodec/hpeldsp_template.c \ + libavcodec/mdct_template.c \ + libavcodec/mpegaudiodec_template.c \ + libavcodec/mpegaudiodsp_template.c + libavcodec/mpegaudiodsp.c \ + libavcodec/videodsp_template.c \ + libavcodec/flacdec.c \ + libavcodec/flacdsp.c \ + libavcodec/flacdsp_template.c \ + libavcodec/flacdsp_lpc_template.c \ + libavcodec/h264pred.c \ + libavcodec/hpeldsp.c \ + libavcodec/videodsp.c \ + libavcodec/vorbisdsp.c \ + libavcodec/vp3.c \ + libavcodec/vp3_parser.c \ + libavcodec/vp3dsp.c \ + libavcodec/vp56rac.c \ + libavcodec/vp8.c \ + libavcodec/vp8_parser.c \ + libavcodec/vp8dsp.c \ + libavutil/cpu.c \ + libavutil/fixed_dsp.c \ + libavutil/float_dsp.c \ + libavutil/imgutils.c \ + libavutil/aarch64/float_dsp_neon.S \ + libavutil/arm/cpu.c \ + libavutil/arm/float_dsp_neon.S \ + libavformat/options.c \ + libavformat/pcm.c \ + libavformat/utils.c \ + libavcodec/utils.c \ + libavcodec/aarch64/fft_neon.S \ + libavcodec/aarch64/hpeldsp_neon.S \ + libavcodec/aarch64/h264pred_neon.S \ + libavcodec/aarch64/mdct_neon.S \ + libavcodec/aarch64/vorbisdsp_neon.S \ + libavcodec/aarch64/vp8dsp_neon.S \ + libavcodec/arm/vorbisdsp_neon.S \ + libavcodec/arm/mdct_neon.S \ + libavcodec/arm/fft_neon.S \ + libavcodec/arm/vp8dsp_neon.S \ + libavutil/ppc/cpu.c \ + libavutil/ppc/float_dsp_altivec.c \ + libavutil/ppc/float_dsp_init.c \ + libavutil/ppc/float_dsp_vsx.c \ + libavcodec/ppc/fft_altivec.S \ + libavcodec/ppc/fft_init.c \ + libavcodec/ppc/fft_vsx.c \ + libavcodec/ppc/hpeldsp_altivec.c \ + libavcodec/ppc/mpegaudiodsp_altivec.c \ + libavcodec/ppc/videodsp.c \ + libavcodec/ppc/vorbisdsp_altivec.c \ + libavcodec/ppc/vp3dsp_altivec.c \ + libavcodec/ppc/vp8dsp_altivec.c \ + chromium/ffmpeg_stub_headers.fragment \ + chromium/ffmpegsumo.sigs" + +other_files=" BUILD.gn \ + Changelog \ + COPYING.GPLv2 \ + COPYING.GPLv3 \ + COPYING.LGPLv2.1 \ + COPYING.LGPLv3 \ + CREDITS \ + CREDITS.chromium \ + ffmpeg.gyp \ + ffmpeg_generated.gypi \ + ffmpeg_generated.gni \ + ffmpeg_options.gni \ + ffmpegsumo.ver \ + INSTALL \ + LICENSE \ + MAINTAINERS \ + OWNERS \ + README \ + README.chromium \ + RELEASE \ + xcode_hack.c " + +files=$generated_files$manual_files$other_files$generated_files_headers$header_files + +for f in $files +do + dir_name=`dirname $f`/ + if [[ $dir_name == ./ ]]; then + dir_name= + else + mkdir -p ../tmp_ffmpeg/$dir_name + fi + + cp -p $f ../tmp_ffmpeg/$dir_name 2>/dev/null +done + +# whole directory +mkdir -p ../tmp_ffmpeg/chromium +cp -pr chromium/config ../tmp_ffmpeg/chromium/ + +cd .. +rm -rf ffmpeg +mv tmp_ffmpeg ffmpeg + +cd $where diff --git a/clean_qtwebengine.sh b/clean_qtwebengine.sh new file mode 100755 index 0000000000000000000000000000000000000000..bc462b86a43c400b62e0a84ae5ed411d44604c33 --- /dev/null +++ b/clean_qtwebengine.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# Copyright 2015-2017 Kevin Kofler +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +if [ -z "$1" ] ; then + echo "usage: ./clean_qtwebengine.sh VERSION" + echo "e.g.: ./clean_qtwebengine.sh 5.14.1" + exit 1 +fi + +DIRNAME="qtwebengine-everywhere-src-$1" + +echo "removing $DIRNAME" +rm -rf "$DIRNAME" || exit $? + +if [ -f "$DIRNAME.tar.xz" ] ; then + echo "unpacking $DIRNAME.tar.xz" + XZ_OPT="-T 4" tar xJf "$DIRNAME.tar.xz" || exit $? +elif [ -f "$DIRNAME.tar.bz2" ] ; then + echo "unpacking $DIRNAME.tar.bz2" + tar xjf "$DIRNAME.tar.bz2" || exit $? +elif [ -f "$DIRNAME.tar.gz" ] ; then + echo "unpacking $DIRNAME.tar.gz" + tar xzf "$DIRNAME.tar.gz" || exit $? +elif [ -f "$DIRNAME.7z" ] ; then + echo "unpacking $DIRNAME.7z" + if type 7za >/dev/null 2>/dev/null ; then + 7za x "$DIRNAME.7z" || exit $? + elif type 7z >/dev/null 2>/dev/null ; then + 7z x "$DIRNAME.7z" || exit $? + else + echo "error: p7zip required" + exit 1 + fi +else + echo "error: no archive for $DIRNAME found" + exit 1 +fi + +echo "running clean_ffmpeg.sh" +./clean_ffmpeg.sh "$DIRNAME/src/3rdparty/chromium" || exit $? + +echo "ripping out openh264 sources" +rm -rf "$DIRNAME/src/3rdparty/chromium/third_party/openh264/src" || exit $? + +echo "repacking as $DIRNAME-clean.tar.xz" +XZ_OPT="-9 -T 4" tar cJf "$DIRNAME-clean.tar.xz" "$DIRNAME" || exit $? + +echo "removing $DIRNAME" +rm -rf "$DIRNAME" || exit $? + +echo "done" +exit 0 diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py new file mode 100755 index 0000000000000000000000000000000000000000..899e77454603cd765ab4dbeed6de2deb4823e344 --- /dev/null +++ b/get_free_ffmpeg_source_files.py @@ -0,0 +1,82 @@ +#!/usr/bin/python2 +# Copyright 2015 Tomas Popela +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import sys +import re + +def append_sources (input_sources, output_sources): + + # Get the source files. + source_files = re.findall(r"\"(.*?)\"", input_sources) + output_sources += source_files + + +def parse_sources(input_sources, output_sources, arch_not_arm): + + # Get the type of sources in one group and sources itself in the other one. + blocks = re.findall(r"(ffmpeg[^\s]*).*?\[(.*?)]", input_sources, re.DOTALL) + for block in blocks: + if (arch_not_arm): + if not 'ffmpeg_gas_sources' in block[0]: + append_sources (block[1], output_sources) + else: + append_sources (block[1], output_sources) + + +def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm): + + with open(gyni_path, "r") as input_file: + content = input_file.read().replace('\n', '') + + output_sources = [] + # Get all the sections. + sections = re.findall(r"if (.*?})", content, re.DOTALL) + for section in sections: + # Get all the conditions (first group) and sources (second group) for the + # current section. + blocks = re.findall(r"(\(.*?\))\s\{(.*?)\}", section, re.DOTALL) + for block in blocks: + conditions = re.findall(r"\(?\((.*?)\)", block[0]) + inserted = False + for condition in conditions: + if inserted: + break + limitations = ['ffmpeg_branding == "Chrome"', 'ffmpeg_branding == "ChromeOS"'] + if ('use_linux_config' in condition) and not any(limitation in condition for limitation in limitations): + if (arch_not_arm): + if ('x64' in condition) or ('x86' in condition): + parse_sources (block[1], output_sources, arch_not_arm) + inserted = True + else: + parse_sources (block[1], output_sources, arch_not_arm) + inserted = True + + if len(output_sources) == 0: + sys.stderr.write("Something went wrong, no sources parsed!\n") + sys.exit(1) + + print ' '.join(output_sources) + + +if __name__ == "__main__": + + path = "%s/third_party/ffmpeg/ffmpeg_generated.gni" % sys.argv[1] + parse_ffmpeg_gyni_file (path, False if sys.argv[2] == "0" else True) diff --git a/macros.qt5-qtwebengine b/macros.qt5-qtwebengine new file mode 100644 index 0000000000000000000000000000000000000000..5b2f86b6d311c1a0bbc2c6f0afdb55b9887ad664 --- /dev/null +++ b/macros.qt5-qtwebengine @@ -0,0 +1,4 @@ +%_qt5_qtwebengine @@NAME@@ +%_qt5_qtwebengine_epoch @@EPOCH@@ +%_qt5_qtwebengine_version @@VERSION@@ +%_qt5_qtwebengine_evr @@EVR@@ diff --git a/pulseaudio-12.2-headers.tar.gz b/pulseaudio-12.2-headers.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..251e70e17ed15010f523ab92b0a997fecd389900 Binary files /dev/null and b/pulseaudio-12.2-headers.tar.gz differ diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec new file mode 100644 index 0000000000000000000000000000000000000000..d38472c3bad2cf4460e5bb0eb196d27ffbc31f8e --- /dev/null +++ b/qt5-qtwebengine.spec @@ -0,0 +1,1239 @@ +Excludearch:loongarch64 +%global qt_module qtwebengine + +%global _hardened_build 1 + +# define to build docs, need to undef this for bootstrapping +# where qt5-qttools (qt5-doctools) builds are not yet available +%global docs 1 + +%if 0%{?fedora} +# need libvpx >= 1.8.0 (need commit 297dfd869609d7c3c5cd5faa3ebc7b43a394434e) +%global use_system_libvpx 1 +%endif +%if 0%{?fedora} > 30 || 0%{?epel} > 7 +# need libwebp >= 0.6.0 +%global use_system_libwebp 1 +%global use_system_jsoncpp 1 +%global use_system_re2 1 +%endif + +%if 0%{?fedora} > 31 && 0%{?fedora} < 33 +# need libicu >= 64, only currently available on f32+ +%global use_system_libicu 1 +%endif + +# NEON support on ARM (detected at runtime) - disable this if you are hitting +# FTBFS due to e.g. GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495 +#global arm_neon 1 + +# the QMake CONFIG flags to force debugging information to be produced in +# release builds, and for all parts of the code +%ifarch %{arm} aarch64 +# the ARM builder runs out of memory during linking with the full setting below, +# so omit debugging information for the parts upstream deems it dispensable for +# (webcore, v8base) +%global debug_config %{nil} +%else +%global debug_config force_debug_info +# webcore_debug v8base_debug +%endif + +#global prerelease rc + +# spellchecking dictionary directory +%global _qtwebengine_dictionaries_dir %{_qt5_datadir}/qtwebengine_dictionaries + +%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) + +# exclude plugins +%global __provides_exclude ^lib.*plugin\\.so.*$ +# and designer plugins +%global __provides_exclude_from ^%{_qt5_plugindir}/.*\\.so$ + +Summary: Qt5 - QtWebEngine components +Name: qt5-qtwebengine +Version: 5.15.2 +Release: 1%{?dist}.04 + +# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details +# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html +# The other licenses are from Chromium and the code it bundles +License: (LGPLv2 with exceptions or GPLv3 with exceptions) and BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2) +URL: http://www.qt.io +# leaned tarball with patent-encumbered codecs removed from the bundled FFmpeg +# wget http://download.qt.io/official_releases/qt/5.15/5.15.1/submodules/qtwebengine-everywhere-src-5.15.1.tar.xz +# ./clean_qtwebengine.sh 5.15.1 +Source0: qtwebengine-everywhere-src-%{version}-clean.tar.xz +# cleanup scripts used above +Source1: clean_qtwebengine.sh +Source2: clean_ffmpeg.sh +Source3: get_free_ffmpeg_source_files.py +# macros +Source10: macros.qt5-qtwebengine + +# pulseaudio headers +Source20: pulseaudio-12.2-headers.tar.gz + +# some tweaks to linux.pri (system yasm, link libpci, run unbundling script) +Patch0: qtwebengine-everywhere-src-5.10.0-linux-pri.patch +# quick hack to avoid checking for the nonexistent icudtl.dat and silence the +# resulting warnings - not upstreamable as is because it removes the fallback +# mechanism for the ICU data directory (which is not used in our builds because +# we use the system ICU, which embeds the data statically) completely +Patch1: qtwebengine-everywhere-src-5.11.0-no-icudtl-dat.patch +# fix extractCFlag to also look in QMAKE_CFLAGS_RELEASE, needed to detect the +# ARM flags with our %%qmake_qt5 macro, including for the next patch +Patch2: qtwebengine-opensource-src-5.12.4-fix-extractcflag.patch +# disable NEON vector instructions on ARM where the NEON code FTBFS due to +# GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495 +Patch3: qtwebengine-opensource-src-5.9.0-no-neon.patch +# workaround FTBFS against kernel-headers-5.2.0+ +Patch4: qtwebengine-SIOCGSTAMP.patch +# fix build when using qt < 5.14 +Patch5: qtwebengine-5.14-1-QT_DEPRECATED_VERSION.patch +# remove Android dependencies from openmax_dl ARM NEON detection (detect.c) +Patch10: qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch +# Force verbose output from the GN bootstrap process +Patch21: qtwebengine-everywhere-src-5.12.0-gn-bootstrap-verbose.patch +# Fix/workaround FTBFS on aarch64 with newer glibc +Patch24: qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch +# Use Python2 +Patch26: qtwebengine-everywhere-5.13.2-use-python2.patch +# Missing #includes for gcc-11 +Patch27: qtwebengine-gcc11.patch +Patch100: 0001-add-pagesize-64k-support.patch +## Upstream patches: + +%if 0%{?fedora} || 0%{?epel} > 7 +# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches +ExclusiveArch: %{qt5_qtwebengine_arches} +%endif + +BuildRequires: qt5-qtbase-devel +BuildRequires: qt5-qtbase-private-devel +# TODO: check of = is really needed or if >= would be good enough -- rex +%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}} +BuildRequires: qt5-qtdeclarative-devel +BuildRequires: qt5-qtxmlpatterns-devel +BuildRequires: qt5-qtlocation-devel +BuildRequires: qt5-qtsensors-devel +BuildRequires: qt5-qtsvg-devel +BuildRequires: qt5-qtwebchannel-devel +BuildRequires: qt5-qttools-static +# for examples? +BuildRequires: qt5-qtquickcontrols2-devel +BuildRequires: ninja-build +BuildRequires: cmake +BuildRequires: bison +BuildRequires: flex +BuildRequires: gcc-c++ +# gn links statically (for now) +BuildRequires: libstdc++-static +BuildRequires: git-core +BuildRequires: gperf +BuildRequires: krb5-devel +%if 0%{?use_system_libicu} +BuildRequires: libicu-devel >= 64 +%endif +BuildRequires: libjpeg-devel +%if 0%{?use_system_re2} +BuildRequires: re2-devel +%endif +BuildRequires: snappy-devel +%ifarch %{ix86} x86_64 +BuildRequires: yasm +%endif +BuildRequires: pkgconfig(expat) +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(egl) +%if 0%{?use_system_jsoncpp} +BuildRequires: pkgconfig(jsoncpp) +%endif +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libudev) +%if 0%{?use_system_libwebp} +BuildRequires: pkgconfig(libwebp) >= 0.6.0 +%endif +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(opus) +BuildRequires: pkgconfig(protobuf) +BuildRequires: pkgconfig(libevent) +BuildRequires: pkgconfig(zlib) +%if 0%{?fedora} && 0%{?fedora} < 30 +BuildRequires: pkgconfig(minizip) +%else +Provides: bundled(minizip) = 1.2 +%endif +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xi) +BuildRequires: pkgconfig(xcursor) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xfixes) +BuildRequires: pkgconfig(xrender) +BuildRequires: pkgconfig(xdamage) +BuildRequires: pkgconfig(xcomposite) +BuildRequires: pkgconfig(xtst) +BuildRequires: pkgconfig(xrandr) +BuildRequires: pkgconfig(xscrnsaver) +BuildRequires: pkgconfig(libcap) +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(alsa) +BuildRequires: pkgconfig(libpci) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(nss) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(xkbcommon) +## https://bugreports.qt.io/browse/QTBUG-59094 +#BuildRequires: pkgconfig(libxslt) pkgconfig(libxml-2.0) +BuildRequires: perl-interpreter +# fesco exception to allow python2 use: https://pagure.io/fesco/issue/2208 +# per https://fedoraproject.org/wiki/Changes/RetirePython2#FESCo_exceptions +# Only the interpreter is needed +%if 0%{?fedora} > 29 || 0%{?rhel} > 8 +BuildRequires: %{__python2} +%else +BuildRequires: python2 +BuildRequires: python2-rpm-macros +%endif +%if 0%{?use_system_libvpx} +BuildRequires: pkgconfig(vpx) >= 1.7.0 +%endif + +# extra (non-upstream) functions needed, see +# src/3rdparty/chromium/third_party/sqlite/README.chromium for details +#BuildRequires: pkgconfig(sqlite3) + +## Various bundled libraries that Chromium does not support unbundling :-( +## Only the parts actually built are listed. +## Query for candidates: +## grep third_party/ build.log | sed 's!third_party/!\nthird_party/!g' | \ +## grep third_party/ | sed 's!^third_party/!!g' | sed 's!/.*$!!g' | \ +## sed 's/\;.*$//g' | sed 's/ .*$//g' | sort | uniq | less +## some false positives where only shim headers are generated for some reason +## some false positives with dummy placeholder dirs (swiftshader, widevine) +## some false negatives where a header-only library is bundled (e.g. x86inc) +## Spot's chromium.spec also has a list that I checked. + +# Of course, Chromium itself is bundled. It cannot be unbundled because it is +# not a library, but forked (modified) application code. +# Some security fixes (up to version 64.0.3282.140) are backported, see: +# http://code.qt.io/cgit/qt/qtwebengine-chromium.git/log/?h=61-based +# see dist/changes-5.10.1 for the version numbers (base, security fixes) and for +# a list of CVEs fixed by the added security backports +# See Patch101 for additional fixes applied (up to version 65.0.3325.146) +Provides: bundled(chromium) = 61.0.3163.140 + +# Bundled in src/3rdparty/chromium/third_party: +# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers, +# except where specified otherwise. +Provides: bundled(angle) = 2422 +# Google's fork of OpenSSL +# We cannot build against NSS instead because it no longer works with NSS 3.21: +# HTTPS on, ironically, Google's sites (Google, YouTube, etc.) stops working +# completely and produces only ERR_SSL_PROTOCOL_ERROR errors: +# http://kaosx.us/phpBB3/viewtopic.php?t=1235 +# https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1520568 +# So we have to do what Chromium now defaults to (since 47): a "chimera build", +# i.e., use the BoringSSL code and the system NSS certificates. +Provides: bundled(boringssl) +Provides: bundled(brotli) +# Don't get too excited. MPEG and other legally problematic stuff is stripped +# out. See clean_qtwebengine.sh, clean_ffmpeg.sh, and +# get_free_ffmpeg_source_files.py. +# see src/3rdparty/chromium/third_party/ffmpeg/Changelog for the version number +Provides: bundled(ffmpeg) = 3.3 +Provides: bundled(hunspell) = 1.6.0 +Provides: bundled(iccjpeg) +# bundled as "khronos", headers only +Provides: bundled(khronos_headers) +# bundled as "leveldatabase" +Provides: bundled(leveldb) = 1.20 +# bundled as "libjingle_xmpp" +Provides: bundled(libjingle) +# see src/3rdparty/chromium/third_party/libsrtp/CHANGES for the version number +Provides: bundled(libsrtp) = 2.1.0 +%if !0%{?use_system_libvpx} +# claims "Version: 1.6.0", but according to the fine print, this is actually a +# snapshot from master from after the 1.6.1 release +Provides: bundled(libvpx) = 1.6.1 +%endif +%if !0%{?use_system_libwebp} +Provides: bundled(libwebp) = 0.6.0 +%endif +# bundled as "libxml" +# see src/3rdparty/chromium/third_party/libxml/linux/include/libxml/xmlversion.h +Provides: bundled(libxml2) = 2.9.4 +# see src/3rdparty/chromium/third_party/libxslt/linux/config.h for version +Provides: bundled(libxslt) = 1.1.29 +Provides: bundled(libXNVCtrl) = 302.17 +Provides: bundled(libyuv) = 1658 +Provides: bundled(modp_b64) +Provides: bundled(openmax_dl) = 1.0.2 +Provides: bundled(ots) +# see src/3rdparty/chromium/third_party/protobuf/CHANGES.txt for the version +#Provides: bundled(protobuf) = 3.0.0-0.1.beta3 +Provides: bundled(qcms) = 4 +Provides: bundled(sfntly) +Provides: bundled(skia) +# bundled as "smhasher" +Provides: bundled(SMHasher) = 0-0.1.svn147 +Provides: bundled(sqlite) = 3.20 +Provides: bundled(usrsctp) +Provides: bundled(webrtc) = 90 + +%ifarch %{ix86} x86_64 +# bundled by ffmpeg and libvpx: +# header (for assembly) only +Provides: bundled(x86inc) +%endif + +# Bundled in src/3rdparty/chromium/base/third_party: +# Check src/3rdparty/chromium/third_party/base/*/README.chromium for version +# numbers, except where specified otherwise. +Provides: bundled(dmg_fp) +Provides: bundled(dynamic_annotations) = 4384 +Provides: bundled(superfasthash) = 0 +Provides: bundled(symbolize) +# bundled as "valgrind", headers only +Provides: bundled(valgrind.h) +# bundled as "xdg_mime" +Provides: bundled(xdg-mime) +# bundled as "xdg_user_dirs" +Provides: bundled(xdg-user-dirs) = 0.10 + +# Bundled in src/3rdparty/chromium/net/third_party: +# Check src/3rdparty/chromium/third_party/net/*/README.chromium for version +# numbers, except where specified otherwise. +Provides: bundled(mozilla_security_manager) = 1.9.2 + +# Bundled in src/3rdparty/chromium/url/third_party: +# Check src/3rdparty/chromium/third_party/url/*/README.chromium for version +# numbers, except where specified otherwise. +# bundled as "mozilla", file renamed and modified +Provides: bundled(nsURLParsers) + +# Bundled outside of third_party, apparently not considered as such by Chromium: +Provides: bundled(mojo) +# see src/3rdparty/chromium/v8/include/v8_version.h for the version number +Provides: bundled(v8) = 6.1.534.44 +# bundled by v8 (src/3rdparty/chromium/v8/src/base/ieee754.cc) +# The version number is 5.3, the last version that upstream released, years ago: +# http://www.netlib.org/fdlibm/readme +Provides: bundled(fdlibm) = 5.3 + +%{?_qt5_version:Requires: qt5-qtbase%{?_isa} = %{_qt5_version}} + +%if 0%{?rhel} == 7 +BuildRequires: devtoolset-7-toolchain +%endif + +%description +%{summary}. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: qt5-qtbase-devel%{?_isa} +Requires: qt5-qtdeclarative-devel%{?_isa} +# not arch'd for now, see if can get away with avoiding multilib'ing -- rex +Requires: %{name}-devtools = %{version}-%{release} +%description devel +%{summary}. + +%package devtools +Summary: WebEngine devtools_resources +Requires: %{name}%{?_isa} = %{version}-%{release} +%description devtools +Support for remote debugging. + +%package examples +Summary: Example files for %{name} + +%description examples +%{summary}. + + +%if 0%{?docs} +%package doc +Summary: API documentation for %{name} +BuildRequires: qt5-qdoc +BuildRequires: qt5-qhelpgenerator +BuildRequires: qt5-qtbase-doc +Requires: qt5-qtbase-doc +BuildRequires: qt5-qtxmlpatterns-doc +Requires: qt5-qtxmlpatterns-doc +BuildRequires: qt5-qtdeclarative-doc +Requires: qt5-qtdeclarative-doc +BuildArch: noarch +%description doc +%{summary}. +%endif + + +%prep +%setup -q -n %{qt_module}-everywhere-src-%{version}%{?prerelease:-%{prerelease}} -a20 + +mv pulse src/3rdparty/chromium/ + +pushd src/3rdparty/chromium +popd + +%patch0 -p1 -b .linux-pri +%if 0%{?use_system_libicu} +%patch1 -p1 -b .no-icudtl-dat +%endif +%patch2 -p1 -b .fix-extractcflag +%if !0%{?arm_neon} +%patch3 -p1 -b .no-neon +%endif +%patch4 -p1 -b .SIOCGSTAMP +#patch5 -p1 -b .QT_DEPRECATED_VERSION + +## upstream patches + +#patch10 -p1 -b .openmax-dl-neon +## NEEDSWORK +#patch21 -p1 -b .gn-bootstrap-verbose +%patch24 -p1 -b .aarch64-new-stat +%patch26 -p1 -b .use-python2 +%patch27 -p1 -b .gcc11 +%patch100 -p1 + +# the xkbcommon config/feature was renamed in 5.12, so need to adjust QT_CONFIG references +# when building on older Qt releases +%if "%{_qt5_version}" < "5.12.0" +sed -i -e 's|QT_CONFIG(xkbcommon)|QT_CONFIG(xkbcommon_evdev)|g' src/core/web_event_factory.cpp +%endif + +# fix // in #include in content/renderer/gpu to avoid debugedit failure +#sed -i -e 's!gpu//!gpu/!g' \ +# src/3rdparty/chromium/content/renderer/gpu/compositor_forwarding_message_filter.cc +# and another one in 2 files in WebRTC +sed -i -e 's!audio_processing//!audio_processing/!g' \ + src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/utility/ooura_fft.cc \ + src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc + +# remove ./ from #line commands in ANGLE to avoid debugedit failure (?) +#sed -i -e 's!\./!!g' \ +# src/3rdparty/chromium/third_party/angle/src/compiler/preprocessor/Tokenizer.cpp \ +# src/3rdparty/chromium/third_party/angle/src/compiler/translator/glslang_lex.cpp + +# delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn, as we +# never cross-compile in native Fedora RPMs, fixes ARM and aarch64 FTBFS +sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' \ + src/3rdparty/chromium/build/toolchain/linux/BUILD.gn + +%if 0%{?use_system_re2} +# http://bugzilla.redhat.com/1337585 +# can't just delete, but we'll overwrite with system headers to be on the safe side +cp -bv /usr/include/re2/*.h src/3rdparty/chromium/third_party/re2/src/re2/ +%endif + +%if 0 +#ifarch x86_64 +# enable this to force -g2 on x86_64 (most arches run out of memory with -g2) +# DISABLED BECAUSE OF: +# /usr/lib/rpm/find-debuginfo.sh: line 188: 3619 Segmentation fault +# (core dumped) eu-strip --remove-comment $r $g -f "$1" "$2" +sed -i -e 's/symbol_level=1/symbol_level=2/g' src/core/config/common.pri +%endif + +# generate qtwebengine-3rdparty.qdoc, it is missing from the tarball +pushd src/3rdparty +%{__python2} chromium/tools/licenses.py \ + --file-template ../../tools/about_credits.tmpl \ + --entry-template ../../tools/about_credits_entry.tmpl \ + credits >../webengine/doc/src/qtwebengine-3rdparty.qdoc +popd + +# copy the Chromium license so it is installed with the appropriate name +cp -p src/3rdparty/chromium/LICENSE LICENSE.Chromium + + +%build +%if 0%{?rhel} == 7 +. /opt/rh/devtoolset-7/enable +%endif + +export STRIP=strip +export NINJAFLAGS="%{__ninja_common_opts}" +export NINJA_PATH=%{__ninja} + +%{qmake_qt5} \ + %{?debug_config:CONFIG+="%{debug_config}}" \ + CONFIG+="link_pulseaudio use_gold_linker" \ + %{?use_system_libicu:QMAKE_EXTRA_ARGS+="-system-webengine-icu"} \ + QMAKE_EXTRA_ARGS+="-webengine-kerberos" \ + . + +# avoid %%make_build for now, the -O flag buffers output from intermediate build steps done via ninja +make %{?_smp_mflags} + +%if 0%{?docs} +%make_build docs +%endif + +%install +make install INSTALL_ROOT=%{buildroot} + +%if 0%{?docs} +make install_docs INSTALL_ROOT=%{buildroot} +%endif + +# rpm macros +install -p -m644 -D %{SOURCE10} \ + %{buildroot}%{rpm_macros_dir}/macros.qt5-qtwebengine +sed -i \ + -e "s|@@NAME@@|%{name}|g" \ + -e "s|@@EPOCH@@|%{?epoch}%{!?epoch:0}|g" \ + -e "s|@@VERSION@@|%{version}|g" \ + -e "s|@@EVR@@|%{?epoch:%{epoch:}}%{version}-%{release}|g" \ + %{buildroot}%{rpm_macros_dir}/macros.qt5-qtwebengine + +# hardlink files to {_bindir} +mkdir -p %{buildroot}%{_bindir} +pushd %{buildroot}%{_qt5_bindir} +for i in * ; do + ln -v ${i} %{buildroot}%{_bindir}/${i} +done +popd + +## .prl/.la file love +# nuke .prl reference(s) to %%buildroot, excessive (.la-like) libs +pushd %{buildroot}%{_qt5_libdir} +for prl_file in libQt5*.prl ; do + sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${prl_file} + if [ -f "$(basename ${prl_file} .prl).so" ]; then + rm -fv "$(basename ${prl_file} .prl).la" + sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file} + fi +done +# explicitly omit, at least until there's a real library installed associated with it -- rex +rm -fv Qt5WebEngineCore.la +popd + +mkdir -p %{buildroot}%{_qtwebengine_dictionaries_dir} + +# adjust cmake dep(s) to allow for using the same Qt5 that was used to build it +# using the lesser of %%version, %%_qt5_version +%global lesser_version $(echo -e "%{version}\\n%{_qt5_version}" | sort -V | head -1) +sed -i -e "s|%{version} \${_Qt5WebEngine|%{lesser_version} \${_Qt5WebEngine|" \ + %{buildroot}%{_qt5_libdir}/cmake/Qt5WebEngine*/Qt5WebEngine*Config.cmake + + +%ldconfig_scriptlets + +%filetriggerin -- %{_datadir}/myspell +while read filename ; do + case "$filename" in + *.dic) + bdicname=%{_qtwebengine_dictionaries_dir}/`basename -s .dic "$filename"`.bdic + %{_qt5_bindir}/qwebengine_convert_dict "$filename" "$bdicname" &> /dev/null || : + ;; + esac +done + +%files +%license LICENSE.* src/webengine/doc/src/qtwebengine-3rdparty.qdoc +%{_qt5_libdir}/libQt5*.so.* +%{_bindir}/qwebengine_convert_dict +%{_qt5_bindir}/qwebengine_convert_dict +%{_qt5_libdir}/qt5/qml/* +%{_qt5_libdir}/qt5/libexec/QtWebEngineProcess +%{_qt5_plugindir}/designer/libqwebengineview.so +%{_qt5_plugindir}/imageformats/libqpdf.so +%dir %{_qt5_datadir}/resources/ +%if ! 0%{?use_system_libicu} +%{_qt5_datadir}/resources/icudtl.dat +%endif +%{_qt5_datadir}/resources/qtwebengine_resources_100p.pak +%{_qt5_datadir}/resources/qtwebengine_resources_200p.pak +%{_qt5_datadir}/resources/qtwebengine_resources.pak +%dir %{_qtwebengine_dictionaries_dir} +%dir %{_qt5_translationdir}/qtwebengine_locales +%lang(am) %{_qt5_translationdir}/qtwebengine_locales/am.pak +%lang(ar) %{_qt5_translationdir}/qtwebengine_locales/ar.pak +%lang(bg) %{_qt5_translationdir}/qtwebengine_locales/bg.pak +%lang(bn) %{_qt5_translationdir}/qtwebengine_locales/bn.pak +%lang(ca) %{_qt5_translationdir}/qtwebengine_locales/ca.pak +%lang(cs) %{_qt5_translationdir}/qtwebengine_locales/cs.pak +%lang(da) %{_qt5_translationdir}/qtwebengine_locales/da.pak +%lang(de) %{_qt5_translationdir}/qtwebengine_locales/de.pak +%lang(el) %{_qt5_translationdir}/qtwebengine_locales/el.pak +%lang(en) %{_qt5_translationdir}/qtwebengine_locales/en-GB.pak +%lang(en) %{_qt5_translationdir}/qtwebengine_locales/en-US.pak +%lang(es) %{_qt5_translationdir}/qtwebengine_locales/es-419.pak +%lang(es) %{_qt5_translationdir}/qtwebengine_locales/es.pak +%lang(et) %{_qt5_translationdir}/qtwebengine_locales/et.pak +%lang(fa) %{_qt5_translationdir}/qtwebengine_locales/fa.pak +%lang(fi) %{_qt5_translationdir}/qtwebengine_locales/fi.pak +%lang(fil) %{_qt5_translationdir}/qtwebengine_locales/fil.pak +%lang(fr) %{_qt5_translationdir}/qtwebengine_locales/fr.pak +%lang(gu) %{_qt5_translationdir}/qtwebengine_locales/gu.pak +%lang(he) %{_qt5_translationdir}/qtwebengine_locales/he.pak +%lang(hi) %{_qt5_translationdir}/qtwebengine_locales/hi.pak +%lang(hr) %{_qt5_translationdir}/qtwebengine_locales/hr.pak +%lang(hu) %{_qt5_translationdir}/qtwebengine_locales/hu.pak +%lang(id) %{_qt5_translationdir}/qtwebengine_locales/id.pak +%lang(it) %{_qt5_translationdir}/qtwebengine_locales/it.pak +%lang(ja) %{_qt5_translationdir}/qtwebengine_locales/ja.pak +%lang(kn) %{_qt5_translationdir}/qtwebengine_locales/kn.pak +%lang(ko) %{_qt5_translationdir}/qtwebengine_locales/ko.pak +%lang(lt) %{_qt5_translationdir}/qtwebengine_locales/lt.pak +%lang(lv) %{_qt5_translationdir}/qtwebengine_locales/lv.pak +%lang(ml) %{_qt5_translationdir}/qtwebengine_locales/ml.pak +%lang(mr) %{_qt5_translationdir}/qtwebengine_locales/mr.pak +%lang(ms) %{_qt5_translationdir}/qtwebengine_locales/ms.pak +%lang(nb) %{_qt5_translationdir}/qtwebengine_locales/nb.pak +%lang(nl) %{_qt5_translationdir}/qtwebengine_locales/nl.pak +%lang(pl) %{_qt5_translationdir}/qtwebengine_locales/pl.pak +%lang(pt_BR) %{_qt5_translationdir}/qtwebengine_locales/pt-BR.pak +%lang(pt_PT) %{_qt5_translationdir}/qtwebengine_locales/pt-PT.pak +%lang(ro) %{_qt5_translationdir}/qtwebengine_locales/ro.pak +%lang(ru) %{_qt5_translationdir}/qtwebengine_locales/ru.pak +%lang(sk) %{_qt5_translationdir}/qtwebengine_locales/sk.pak +%lang(sl) %{_qt5_translationdir}/qtwebengine_locales/sl.pak +%lang(sr) %{_qt5_translationdir}/qtwebengine_locales/sr.pak +%lang(sv) %{_qt5_translationdir}/qtwebengine_locales/sv.pak +%lang(sw) %{_qt5_translationdir}/qtwebengine_locales/sw.pak +%lang(ta) %{_qt5_translationdir}/qtwebengine_locales/ta.pak +%lang(te) %{_qt5_translationdir}/qtwebengine_locales/te.pak +%lang(th) %{_qt5_translationdir}/qtwebengine_locales/th.pak +%lang(tr) %{_qt5_translationdir}/qtwebengine_locales/tr.pak +%lang(uk) %{_qt5_translationdir}/qtwebengine_locales/uk.pak +%lang(vi) %{_qt5_translationdir}/qtwebengine_locales/vi.pak +%lang(zh_CN) %{_qt5_translationdir}/qtwebengine_locales/zh-CN.pak +%lang(zh_TW) %{_qt5_translationdir}/qtwebengine_locales/zh-TW.pak + +%files devel +%{rpm_macros_dir}/macros.qt5-qtwebengine +%{_qt5_headerdir}/Qt*/ +%{_qt5_libdir}/libQt5*.so +%{_qt5_libdir}/libQt5*.prl +#{_qt5_libdir}/Qt5WebEngineCore.la +%{_qt5_libdir}/cmake/Qt5*/ +%{_qt5_libdir}/pkgconfig/Qt5*.pc +%{_qt5_archdatadir}/mkspecs/modules/*.pri + +%files devtools +%{_qt5_datadir}/resources/qtwebengine_devtools_resources.pak + +%files examples +%{_qt5_examplesdir}/ + +%if 0%{?docs} +%files doc +%{_qt5_docdir}/* +%endif + + +%changelog +* Wed Mar 01 2023 liweiganga - 5.15.2-1.04 +- feat: modify patch100 + +* Thu Feb 09 2023 mahailiang - 5.15.2-1.03 +- feat: add pagesize 64k support + +* Wed Jan 11 2023 liweiganga - 5.15.2-1.02 +- rebuild: rebuild (libevent) + +* Tue Dec 06 2022 binyanling - 5.15.2-1.01 +- arch:Excludearch loongarch64 + +* Fri Nov 20 09:12:35 CET 2020 Jan Grulich - 5.15.2-1 +- 5.15.2 + +* Wed Nov 04 2020 Jeff Law - 5.15.1-3 +- Fix missing #includes for gcc-11 + +* Wed Sep 23 12:52:56 CEST 2020 Jan Grulich - 5.15.1-2 +- Rebuild (libevent) + +* Fri Sep 11 2020 Jan Grulich - 5.15.1-1 +- 5.15.1 + +* Fri Sep 04 2020 Than Ngo - 5.15.0-4 +- Fix FTBFS + +* Sat Aug 01 2020 Fedora Release Engineering - 5.15.0-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 5.15.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jun 10 2020 Rex Dieter - 5.15.0-1 +- 5.15.0 +- f33's icu-67.x currently not compatible, use bundled icu + +* Sat Apr 04 2020 Rex Dieter - 5.14.2-2 +- rebuild (qt5) + +* Wed Apr 01 2020 Rex Dieter - 5.14.2-1 +- 5.14.2 + +* Wed Mar 25 2020 Rex Dieter - 5.14.1-1 +- 5.14.1 +- use_system_icu on f32+ +- drop upstreamed patches + +* Wed Mar 25 2020 Ankur Sinha - 5.13.2-4 +- Add patch to allow clock_nanosleep in Linux sandbox (Chromium) + +* Fri Feb 21 2020 Troy Dawson - 5.13.2-3 +- Patch 3rd party chromium, fix FTBFS (#1799084) + +* Wed Jan 08 2020 Than Ngo - 5.13.2-2 +- merged Pull-Request, keep ppc files in ffmpeg + +* Mon Dec 09 2019 Jan Grulich - 5.13.2-1 +- 5.13.2 + +* Mon Dec 02 2019 Rex Dieter - 5.12.6-1 +- 5.12.6 + +* Wed Oct 02 2019 Rex Dieter - 5.12.5-2 +- explicitly omit QtWebEngineCore.la from packaging + +* Thu Sep 26 2019 Rex Dieter - 5.12.5-1 +- 5.12.5 + +* Tue Sep 24 2019 Jan Grulich - 5.12.4-10 +- rebuild (qt5) + +* Wed Aug 14 2019 Rex Dieter - 5.12.4-9 +- rebuild (re2) + +* Mon Aug 12 2019 Rex Dieter - 5.12.4-8 +- CONFIG+=link_pulseaudio + +* Wed Aug 07 2019 Rex Dieter - 5.12.4-7 +- rebuild (re2, #1672014#c10) +- build using bundled pulse headers, workaround FTBFS bug #1729806 + +* Fri Jul 26 2019 Fedora Release Engineering - 5.12.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jun 26 2019 Rex Dieter - 5.12.4-5 +- pull in some upstream fixes + +* Tue Jun 25 2019 Rex Dieter - 5.12.4-4 +- rebuild (qt5) + +* Tue Jun 18 2019 Rex Dieter - 5.12.4-3 +- fix-extractcflag.patch rebased + +* Mon Jun 17 2019 Rex Dieter - 5.12.4-2 +- rebuild (qt5) + +* Mon Jun 17 2019 Rex Dieter - 5.12.4-1 +- 5.12.4 + +* Tue Jun 11 2019 Jan Grulich - 5.12.3-4 +- rebuild (qt5) + +* Tue Jun 04 2019 Jan Grulich - 5.12.3-3 +- rebuild (qt5) + +* Sun May 12 2019 Rex Dieter - 5.12.3-2 +- rebuild (icu) + +* Thu Apr 18 2019 Rex Dieter - 5.12.3-1 +- 5.12.3 + +* Mon Mar 25 2019 Rex Dieter - 5.12.2-2 +- revert bundled libxml2/libxslt + +* Mon Mar 25 2019 Rex Dieter - 5.12.2-1 +- 5.12.2 +- use system libxml2/libxslt + +* Sun Feb 24 2019 Rex Dieter - 5.12.1-1 +- 5.12.1 +- enable kerberos support + +* Tue Feb 05 2019 Björn Esser - 5.11.3-5 +- rebuilt (libvpx) + +* Sat Feb 02 2019 Fedora Release Engineering - 5.11.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 03 2019 Rex Dieter - 5.11.3-3 +- -devtools subpkg, workaround multilib conflicts (#1663299) + +* Tue Dec 11 2018 Rex Dieter - 5.11.3-2 +- rebuild (Qt5) + +* Tue Dec 04 2018 Rex Dieter - 5.11.3-1 +- 5.11.3 + +* Wed Sep 26 2018 Rex Dieter - 5.11.2-2 +- avoid using %%make_build for now + +* Mon Sep 24 2018 Rex Dieter - 5.11.2-1 +- 5.11.2 + +* Mon Sep 24 2018 Rex Dieter - 5.11.1-8 +- use bundled minizip on f30+ (#1632196) + +* Fri Sep 21 2018 Jan Grulich - 5.11.1-7 +- rebuild (qt5) + +* Tue Sep 18 2018 Rex Dieter - 5.11.1-6 +- cleaner (imo) minizip deps, workaround rhbz#1630448 + +* Tue Aug 28 2018 Patrik Novotný - 5.11.1-5 +- change requires to minizip-compat(-devel), rhbz#1609830, rhbz#1615381 + +* Sun Jul 15 2018 Rex Dieter - 5.11.1-4 +- BR: /usr/bin/python + +* Sat Jul 14 2018 Fedora Release Engineering - 5.11.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 10 2018 Pete Walter - 5.11.1-2 +- Rebuild for ICU 62 + +* Fri Jun 22 2018 Rex Dieter - 5.11.1-1 +- 5.11.1 + +* Wed Jun 20 2018 Rex Dieter - 5.11.0-2 +- rebuild (qt5) + +* Thu Jun 14 2018 Rex Dieter - 5.11.0-1 +- 5.11.0 +- drop shadow build (to match other qt5 packages where it has been problematic) +- drop upstreamed patches +- rebase no-icudtl-dat.patch +- pull in upstream gcc8 FTBFS fix +- update clean_ffmpeg whitelist +- patches needswork: system-nspr-prtime,system-icu-utf,no-sse2,skia-neon,icu59 +- minimal debug/debuginfo (for now) +- use macros %%make_build %%ldconfig_scriptlets %%__ninja %%__ninja_common_opts + +* Sun May 27 2018 Rex Dieter - 5.10.1-7 +- rebuild (qt5 5.11.0) +- Add patch by spot from the Fedora Chromium RPM for FTBFS with GCC 8 on i686 +- include 0027-Fix-compilation-of-simplebrowser-example.patch (5.11 branch) + +* Mon Apr 30 2018 Pete Walter - 5.10.1-6 +- Rebuild for ICU 61.1 + +* Sun Mar 18 2018 Iryna Shcherbina - 5.10.1-5 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Sun Mar 18 2018 Kevin Kofler - 5.10.1-4 +- Fix (from 5.9.5) for incomplete, ineffective fix for CVE-2018-6033 in 5.10.1 + +* Sat Mar 17 2018 Kevin Kofler - 5.10.1-3 +- Forward-port security backports from 5.9.5 LTS (up to Chromium 65.0.3325.146) + +* Fri Feb 23 2018 Kevin Kofler - 5.10.1-2 +- Drop -fabi-version=11 workaround, gcc-8.0.1-0.16.fc28 should fix this + +* Sun Feb 18 2018 Kevin Kofler - 5.10.1-1 +- Update to 5.10.1 +- Rediff (unfuzz) no-sse2 patch + +* Fri Feb 16 2018 Rex Dieter - 5.10.0-6 +- workaround FTBFS, build with -fabi-version=11 (#1545918) + +* Sat Feb 10 2018 Kevin Kofler - 5.10.0-5 +- Reenable system libvpx on F28+, Rawhide (future F28) has libvpx 1.7.0 now + +* Fri Feb 09 2018 Fedora Release Engineering - 5.10.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Jan 26 2018 Tom Callaway - 5.10.0-3 +- rebuild for new libvpx + +* Sat Dec 30 2017 Rex Dieter - 5.10.0-2 +- rebuild (qt-5.10.0) + +* Thu Dec 28 2017 Kevin Kofler - 5.10.0-1 +- Update to 5.10.0 +- Update version numbers of bundled stuff +- Drop support for Fedora < 26 (in particular, WEBENGINE_CONFIG F25 workarounds) +- Drop qt57 patch, support for Qt 5.7 was completely dropped upstream +- Update get_free_ffmpeg_source_files.py from Fedora Chromium packaging +- Update clean_ffmpeg.sh whitelist (sync from Fedora Chromium packaging) +- clean_qtwebengine.sh: Update for the changed tarball naming scheme +- Use QMAKE_EXTRA_ARGS instead of the removed WEBENGINE_CONFIG +- Rebase linux-pri, system-nspr-prtime, system-icu-utf, no-sse2, skia-neon and + gn-bootstrap-verbose patches +- In particular, restore the removed V8 x87 backend in the no-sse2 patch +- Re-backport no-aspirational-scripts from upstream (undo 5.9 backport) +- Disable system libvpx support for now, requires unreleased libvpx (1.6.2+) +- Add new BuildRequires: flex (required) and pkgconfig(lcms2) (unbundled) +- Forward-port missing parts of 5.9 ICU>=59 build fix (QTBUG-60886, QTBUG-65090) +- Reduce debugging info on ARM also on F27+ (as on F26- since 5.9.0) + +* Tue Dec 19 2017 Rex Dieter - 5.9.3-5 +- properly escape newline in lesser_version hack + +* Thu Dec 14 2017 Rex Dieter - 5.9.3-4 +- adjust Qt5WebEngineCoreConfig.cmake unconditionally + +* Sat Dec 02 2017 Kevin Kofler - 5.9.3-3 +- Drop support for Unicode "aspirational scripts", fixes #error with ICU >= 60 + +* Thu Nov 30 2017 Pete Walter - 5.9.3-2 +- Rebuild for ICU 60.1 + +* Sun Nov 26 2017 Kevin Kofler - 5.9.3-1 +- Update to 5.9.3 +- Enable docs on F27 + +* Sun Nov 26 2017 Rex Dieter - 5.9.2-3 +- rebuild (qt5) + +* Sat Oct 14 2017 Kevin Kofler - 5.9.2-2 +- linux-pri patch: Do not call the Chromium unbundling script on re2, + QtWebEngine now auto-detects and uses the system re2 out of the box +- Drop system-re2 patch (patching the no longer used unbundle/re2.gn), the + QtWebEngine re2/BUILD.gn is already correct +- Explicitly force use_system_re2, the autodetection does not work on F25 +- Fix FTBFS with Qt 5.7 + +* Tue Oct 10 2017 Rex Dieter - 5.9.2-1 +- Update to 5.9.2 +- Add BuildRequires: qt5-qtquickcontrols2-devel for the examples +- Rebase linux-pri patch +- Drop qt57 and qtbug-61521 patches, fixed upstream +- arm-fpu-fix patch: Drop the host tools hunk added in 5.9.0-2, fixed upstream + +* Mon Oct 09 2017 Rex Dieter - 5.9.1-5 +- rebuild (qt5) + +* Thu Aug 03 2017 Fedora Release Engineering - 5.9.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 5.9.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jul 19 2017 Rex Dieter - 5.9.1-2 +- rebuild (qt5) + +* Sat Jul 01 2017 Kevin Kofler - 5.9.1-1 +- Update to 5.9.1 +- Rebase qtbug-61521 patch (drop the parts that are already in 5.9.1) +- Drop backported GN aarch64 patches already included in 5.9.1 +- no-sse2 patch: Upstream added 2 examples, add -Wl,-rpath-link to them too + +* Mon Jun 26 2017 Kevin Kofler - 5.9.0-4 +- Add a hunk to the QTBUG-61521 fix according to the upstream review + +* Sun Jun 25 2017 Kevin Kofler - 5.9.0-3 +- Fix broken binary compatibility for C memory management functions (incomplete + upstream fix for QTBUG-60565) (QTBUG-61521) + +* Tue Jun 13 2017 Kevin Kofler - 5.9.0-2 +- arm-fpu-fix patch: Also build the host tools (i.e., GN) with the correct FPU + +* Mon Jun 12 2017 Kevin Kofler - 5.9.0-1 +- Update to 5.9.0 +- Update version numbers of bundled stuff +- Use bundled libsrtp and protobuf, Chromium dropped unbundling support for them +- Use bundled libxml2 and libxslt, QtWebEngine 5.9 requires a libxml2 built with + ICU due to https://bugreports.qt.io/browse/QTBUG-59094, Fedora libxml2 is not +- Add missing Provides: bundled(hunspell) for the spellchecking added in 5.8 +- Rebase linux-pri, no-neon, system-icu-utf, no-sse2, arm-fpu-fix, + openmax-dl-neon and webrtc-neon-detect patches (port to GN) +- Sync system-nspr-prtime patch with Debian (they ported it to GN) +- Rebase fix-extractcflag patch +- Restore NEON runtime detection in Skia, drop old skia-neon patch (rewritten) +- Drop webrtc-neon, v8-gcc7, pdfium-gcc7, wtf-gcc7, fix-open-in-new-tab and + fix-dead-keys patches, fixed upstream +- Update system libvpx/libwebp version requirements (libvpx now F25+ only) +- Drop the flag hacks (-g1 -fno-delete-null-pointer-checks), fixed upstream +- Force verbose output from the GN bootstrap process +- Backport upstream patch to fix GN FTBFS on aarch64 (QTBUG-61128) +- Backport patch to fix FTBFS with GCC on aarch64 from upstream Chromium +- Fix src/3rdparty/chromium/build/linux/unbundle/re2.gn +- Delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn +- Reduce debugging info on ARM on F26- + +* Sat May 13 2017 Rex Dieter - 5.8.0-14 +- fix rpm macros + +* Thu May 11 2017 Rex Dieter - 5.8.0-13 +- apply Qt5WebEngineCoreConfig.cmake hack only on < f27 + +* Wed May 10 2017 Rex Dieter - 5.8.0-12 +- rebuild (Qt-5.9), disable docs for f27+ + +* Fri Apr 28 2017 Kevin Kofler - 5.8.0-11 +- Backport upstream fix for non-functional dead keys in text fields + +* Tue Apr 25 2017 Kevin Kofler - 5.8.0-10 +- Backport upstream fix for blank pages when a link opens in a new tab + +* Mon Apr 17 2017 Rex Dieter - 5.8.0-9 +- +macros.qt5-qtwebengine + +* Mon Apr 10 2017 Rex Dieter - 5.8.0-8 +- Qt5WebEngineCoreConfig.cmake: fix when using Qt < %%version (#1438877) + +* Tue Apr 04 2017 Kevin Kofler - 5.8.0-7 +- File trigger: silence qwebengine_convert_dict output and ignore its exit code + +* Mon Apr 03 2017 Rex Dieter - 5.8.0-6 +- build docs on all archs + +* Fri Mar 31 2017 Kevin Kofler - 5.8.0-5 +- Enable use_spellchecker explicitly so that it is also enabled on Qt 5.7 +- Use file triggers to automatically convert system hunspell dictionaries + +* Fri Mar 31 2017 Kevin Kofler - 5.8.0-4 +- Fix no-sse2 patch FTBFS (on i686) + +* Thu Mar 30 2017 Rex Dieter - 5.8.0-3 +- make buildable against qt5 < 5.8 too + +* Tue Mar 07 2017 Kevin Kofler - 5.8.0-2 +- Fix FTBFS in the WTF part of Blink/WebKit with GCC 7 + +* Mon Mar 06 2017 Kevin Kofler - 5.8.0-1 +- Update to 5.8.0 +- Update version numbers of bundled stuff +- Rebase (unfuzz) system-nspr-prtime and system-icu-utf patches +- Drop system-icu54 patch, ICU 5.4 no longer supported +- Rebase the webrtc-neon-detect patch (backported portions no longer needed) +- Rebase the no-sse2 patch +- Update clean_ffmpeg.sh: autorename* files now #include the unrenamed ones +- Update -docs BuildRequires and Requires (Helio Castro) +- Fix FTBFS in V8 with GCC 7 (by Ben Noordhuis, backported from Chromium RPM) +- Fix FTBFS in PDFium with GCC 7: backport upstream cleanup removing that code +- Generate qtwebengine-3rdparty.qdoc, it is missing from the tarball +- Work around missing qt5_qtwebengine_arches macro on F24 +- Upstream added a qwebengine_convert_dict executable, package it + +* Sat Feb 11 2017 Fedora Release Engineering - 5.7.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 01 2017 Sandro Mani - 5.7.1-7 +- Rebuild (libwebp) + +* Thu Jan 26 2017 Orion Poplawski - 5.7.1-6 +- Rebuild for protobuf 3.2.0 + +* Mon Jan 02 2017 Rex Dieter - 5.7.1-5 +- filter (designer) plugin provides + +* Thu Dec 08 2016 Kevin Kofler - 5.7.1-4 +- Respun tarball (now really includes the page margin fix) +- Change qt5-qtbase dependency from >= to = + +* Sun Dec 04 2016 Kevin Kofler - 5.7.1-3 +- Ship the license files + +* Sun Dec 04 2016 Kevin Kofler - 5.7.1-2 +- clean_qtwebengine.sh: Rip out openh264 sources +- Rebase no-neon patch, add new arm-fpu-fix patch where no-neon not wanted +- Try enabling arm_neon unconditionally, #1282495 should be fixed even in F23 +- Remove Android dependencies from openmax_dl ARM NEON detection (detect.c) +- Set CFLAGS, unset both CFLAGS and CXXFLAGS between qmake and make +- chromium-skia: build SkUtilsArm.cpp also on non-Android ARM +- webrtc: backport CPU feature detection for ARM Linux, enable it for Chromium + +* Thu Nov 10 2016 Helio Chissini de Castro - 5.7.1-1 +- New upstream version + +* Wed Sep 14 2016 Rex Dieter - 5.7.0-8 +- ExclusiveArch: %%{qt5_qtwebengine_arches} (defined by qt5-srpm-macros) + +* Fri Sep 09 2016 Kevin Kofler - 5.7.0-7 +- apply the correct page margins from the QPageLayout to Chromium printing + +* Sat Aug 13 2016 Kevin Kofler - 5.7.0-6 +- Fix crash when building against glibc 2.24 (#1364781) (upstream patch) + +* Sun Jul 31 2016 Rex Dieter - 5.7.0-5 +- BR: cmake (for cmake autoprovides support mostly) + +* Tue Jul 26 2016 Kevin Kofler - 5.7.0-4 +- Restore system-icu54 patch, the fix was lost upstream + +* Sat Jul 23 2016 Christian Dersch - 5.7.0-3 +- Rebuilt for libvpx.so.4 soname bump + +* Wed Jul 20 2016 Kevin Kofler - 5.7.0-2 +- clean_ffmpeg.sh: Whitelist libavutil/aarch64/timer.h (#1358428) + +* Mon Jul 18 2016 Kevin Kofler - 5.7.0-1 +- Update to 5.7.0 +- Update version numbers of bundled stuff +- Update system libvpx/libwebp version requirements (now F24+ only) +- Drop no-format patch, fixed upstream (they stopped passing -Wno-format) +- Rebase linux-pri patch (use_system_protobuf is now a qmake flag) +- Rebase system-nspr-prtime, system-icu-utf and no-sse2 patches +- Fix ARM NEON handling in webrtc gyp files (honor arm_neon=0) + +* Tue Jun 14 2016 Rex Dieter - 5.6.1-3 +- rebuild (glibc) + +* Sun Jun 12 2016 Rex Dieter - 5.6.1-2 +- add versioned qt5-qtbase runtime dep + +* Sat Jun 11 2016 Kevin Kofler - 5.6.1-1 +- Update to 5.6.1 +- Rebase linux-pri patch (drop the parts already fixed upstream) +- Drop backported chimera-nss-init patch, already applied upstream +- Rebase no-sse2 patch (the core_module.pro change) +- Add the new designer/libqwebengineview.so plugin to the file list + +* Mon Jun 06 2016 Rex Dieter - 5.6.0-8 +- workaround stackmashing runtime errors in re2-related bundled headers (#1337585) + +* Sat May 21 2016 Rex Dieter - 5.6.0-7 +- rebuild (pciutuils) + +* Wed May 18 2016 Rex Dieter 5.6.0-6 +- BR: git-core + +* Fri Apr 15 2016 David Tardon - 5.6.0-5 +- rebuild for ICU 57.1 + +* Fri Apr 08 2016 Than Ngo - 5.6.0-4 +- drop ppc ppc64 ppc64le from ExclusiveArch, it's not supported yet + +* Thu Mar 24 2016 Kevin Kofler - 5.6.0-3 +- Build with CONFIG+="webcore_debug v8base_debug force_debug_info" +- Force -fno-delete-null-pointer-checks through CXXFLAGS, Qt flags not used here +- Use -g1 instead of -g on non-x86_64 to avoid memory exhaustion +- Work around debugedit failure by removing "./" from #line commands and + changing "//" to "/" in an #include command + +* Fri Mar 18 2016 Kevin Kofler - 5.6.0-2 +- Avoid checking for the nonexistent icudtl.dat and silence the warnings + +* Thu Mar 17 2016 Kevin Kofler - 5.6.0-1 +- Update to 5.6.0 (final) +- Drop system-icu54 patch, fixed upstream + +* Thu Feb 25 2016 Kevin Kofler - 5.6.0-0.19.rc +- Update to 5.6.0 RC +- Rebase linux-pri and no-sse2 patches +- Remove BuildRequires pkgconfig(flac), pkgconfig(speex), no longer needed +- Update file list for 5.6.0 RC (resources now in resources/ subdirectory) +- Tag translations with correct %%lang tags + +* Wed Feb 24 2016 Kevin Kofler - 5.6.0-0.18.beta +- no-sse2 patch: Fix FFT (RealFourier) in webrtc on non-SSE2 x86 + +* Tue Feb 23 2016 Kevin Kofler - 5.6.0-0.17.beta +- Fix FTBFS on aarch64: Respin tarball with fixed clean_ffmpeg.sh (#1310753). + +* Thu Feb 04 2016 Fedora Release Engineering - 5.6.0-0.16.beta +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jan 19 2016 Kevin Kofler - 5.6.0-0.15.beta +- Build V8 as a shared library on i686 to allow for swappable backends +- Build both the x87 version and the SSE2 version of V8 on i686 +- Add the private library directory to the file list on i686 +- Add Provides/Requires filtering for libv8.so (i686) and for plugins + +* Sun Jan 17 2016 Kevin Kofler - 5.6.0-0.14.beta +- Do not require SSE2 on i686 + +* Thu Jan 14 2016 Kevin Kofler - 5.6.0-0.13.beta +- Drop nss321 backport (and the related nss-headers patch), it did not help +- Do an NSS/BoringSSL "chimera build" as will be the default in Chromium 47 +- Update License accordingly (add "OpenSSL") +- Fix the "chimera build" to call EnsureNSSHttpIOInit (backport from Chromium) + +* Wed Jan 13 2016 Kevin Kofler - 5.6.0-0.12.beta +- Update forked NSS SSL code to 3.21, match system NSS (backport from Chromium) + +* Wed Jan 13 2016 Kevin Kofler - 5.6.0-0.11.beta +- Add an (optimistic) ExclusiveArch list because of V8 (tracking bug: #1298011) + +* Tue Jan 12 2016 Kevin Kofler - 5.6.0-0.10.beta +- Unbundle prtime.cc, use the system NSPR instead (which is already required) +- Unbundle icu_utf.cc, use the system ICU instead (which is already required) + +* Mon Jan 11 2016 Kevin Kofler - 5.6.0-0.9.beta +- linux-pri.patch: Set icu_use_data_file_flag=0 for system ICU + +* Mon Jan 11 2016 Kevin Kofler - 5.6.0-0.8.beta +- Build against the system libvpx also on F23 (1.4.0), worked in Copr + +* Mon Jan 11 2016 Kevin Kofler - 5.6.0-0.7.beta +- Use the system libvpx on F24+ (1.5.0) +- Fixes to Provides: bundled(*): libwebp if bundled, x86inc only on x86 + +* Sun Jan 10 2016 Kevin Kofler - 5.6.0-0.6.beta +- Fix extractCFlag to also look in QMAKE_CFLAGS_RELEASE (needed for ARM) +- Fix FTBFS on ARM: Disable NEON due to #1282495 (GCC bug) + +* Sat Jan 09 2016 Kevin Kofler - 5.6.0-0.5.beta +- Fix FTBFS on ARM: linux-pri patch: Set use_system_yasm only on x86_64 and i386 +- Fix FTBFS on ARM: Respin tarball with: clean_ffmpeg.sh: Add missing ARM files + +* Sat Jan 09 2016 Kevin Kofler - 5.6.0-0.4.beta.1 +- Use more specific BuildRequires for docs (thanks to rdieter) +- Fix FTBFS against ICU 54 (F22/F23), thanks to spot for the Chromium fix + +* Fri Jan 08 2016 Kevin Kofler - 5.6.0-0.4.beta +- Fix License tag +- Use %%_qt5_examplesdir macro +- Add Provides: bundled(*) for all the bundled libraries that I found + +* Wed Jan 06 2016 Kevin Kofler - 5.6.0-0.3.beta +- linux-pri patch: Add use_system_protobuf, went missing in the 5.6 rebase + +* Wed Jan 06 2016 Kevin Kofler - 5.6.0-0.2.beta +- linux-pri patch: Add missing newline at the end of the log line +- Use export for NINJA_PATH (fixes system ninja-build use) + +* Wed Jan 06 2016 Kevin Kofler - 5.6.0-0.1.beta +- Readd BR pkgconfig(jsoncpp) because linux.pri now checks for it +- BR yasm only on x86 (i686, x86_64) +- Add dot at the end of %%description +- Rebase no-format patch +- Replace unbundle-gyp.patch with new linux-pri.patch +- Use system ninja-build instead of the bundled one +- Run the unbundling script replace_gyp_files.py in linux.pri rather than here +- Update file list for 5.6.0-beta (no more libffmpegsumo since Chromium 45) + +* Tue Jan 05 2016 Kevin Kofler - 5.5.1-4 +- Remove unused BRs flex, libgcrypt-devel, bzip2-devel, pkgconfig(gio-2.0), + pkgconfig(hunspell), pkgconfig(libpcre), pkgconfig(libssl), + pkgconfig(libcrypto), pkgconfig(jsoncpp), pkgconfig(libmtp), + pkgconfig(libexif), pkgconfig(liblzma), pkgconfig(cairo), pkgconfig(libusb), + perl(version), perl(Digest::MD5), perl(Text::ParseWords), ruby +- Add missing explicit BRs on pkgconfig(x11), pkgconfig(xext), + pkgconfig(xfixes), pkgconfig(xdamage), pkgconfig(egl) +- Fix BR pkgconfig(flac++) to pkgconfig(flac) (libFLAC++ not used, only libFLAC) +- Fix BR python-devel to python +- Remove unused -Duse_system_openssl=1 flag (QtWebEngine uses NSS instead) +- Remove unused -Duse_system_jsoncpp=1 and -Duse_system_libusb=1 flags + +* Mon Jan 04 2016 Kevin Kofler - 5.5.1-3 +- Update file list for 5.5.1 (add qtwebengine_resources_[12]00p.pak) + +* Mon Jan 04 2016 Kevin Kofler - 5.5.1-2 +- Add missing explicit BRs on pkgconfig(expat) and pkgconfig(libxml-2.0) +- Remove unused BR v8-devel (cannot currently be unbundled) + +* Thu Dec 24 2015 Kevin Kofler - 5.5.1-1 +- Update to 5.5.1 +- Remove patent-encumbered codecs in the bundled FFmpeg from the tarball + +* Fri Jul 17 2015 Helio Chissini de Castro - 5.5.0-2 +- Update with unbundle flags. Adapted from original 5.4 Suse package +- Disable vpx and sqlite as unbundle due some compilation issues +- Enable verbose build + +* Fri Jul 17 2015 Helio Chissini de Castro - 5.5.0-1 +- Initial spec + +* Thu Jun 25 2015 Helio Chissini de Castro - 5.5.0-0.2.rc +- Update for official RC1 released packages diff --git a/qtwebengine-5.14-1-QT_DEPRECATED_VERSION.patch b/qtwebengine-5.14-1-QT_DEPRECATED_VERSION.patch new file mode 100644 index 0000000000000000000000000000000000000000..69b1bbfd1be6553cacbb1ee6714b2514606fcc18 --- /dev/null +++ b/qtwebengine-5.14-1-QT_DEPRECATED_VERSION.patch @@ -0,0 +1,17 @@ +diff -up qtwebengine-everywhere-src-5.14.1.orig/src/webenginewidgets/api/qwebenginedownloaditem.h.QT_DEPRECATED qtwebengine-everywhere-src-5.14.1.orig/src/webenginewidgets/api/qwebenginedownloaditem.h +--- qtwebengine-everywhere-src-5.14.1.orig/src/webenginewidgets/api/qwebenginedownloaditem.h.QT_DEPRECATED 2020-01-20 05:17:16.000000000 -0600 ++++ qtwebengine-everywhere-src-5.14.1.orig/src/webenginewidgets/api/qwebenginedownloaditem.h 2020-03-24 15:42:03.558394148 -0500 +@@ -119,9 +119,13 @@ public: + QUrl url() const; + QString mimeType() const; + #if QT_DEPRECATED_SINCE(5, 14) ++#if QT_VERSION >= QT_VERSION_CHECK(5,14,0) + QT_DEPRECATED_VERSION_X(5, 14, "Use downloadDirectory() and downloadFileName() instead") ++#endif + QString path() const; ++#if QT_VERSION >= QT_VERSION_CHECK(5,14,0) + QT_DEPRECATED_VERSION_X(5, 14, "Use setDownloadDirectory() and setDownloadFileName() instead") ++#endif + void setPath(QString path); + #endif + bool isFinished() const; diff --git a/qtwebengine-SIOCGSTAMP.patch b/qtwebengine-SIOCGSTAMP.patch new file mode 100644 index 0000000000000000000000000000000000000000..7609f8545a514786e6f400f910e6aaee97278b58 --- /dev/null +++ b/qtwebengine-SIOCGSTAMP.patch @@ -0,0 +1,16 @@ +diff --git a/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc b/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc +index c38d7fdfa..0a8b0fd8b 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc ++++ b/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc +@@ -72,6 +72,11 @@ typedef void* SockOptArg; + + #if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__) + ++// Seems that kernel 5.2.0 renames this define to SIOCGSTAMP_OLD ++#ifndef SIOCGSTAMP ++#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ ++#endif ++ + int64_t GetSocketRecvTimestamp(int socket) { + struct timeval tv_ioctl; + int ret = ioctl(socket, SIOCGSTAMP, &tv_ioctl); diff --git a/qtwebengine-everywhere-5.13.2-use-python2.patch b/qtwebengine-everywhere-5.13.2-use-python2.patch new file mode 100644 index 0000000000000000000000000000000000000000..91a17ae75e62c3c16a8709c6a1906b499aee7358 --- /dev/null +++ b/qtwebengine-everywhere-5.13.2-use-python2.patch @@ -0,0 +1,13 @@ +diff --git a/src/webengine/module.pro b/src/webengine/module.pro +index 49a1086b2..afc89d49e 100644 +--- a/src/webengine/module.pro ++++ b/src/webengine/module.pro +@@ -76,7 +76,7 @@ qtConfig(webengine-testsupport) { + python = $$pythonPathForShell() + chromium_attributions.commands = \ + cd $$shell_quote($$shell_path($$PWD/../3rdparty)) && \ +- $$python chromium/tools/licenses.py \ ++ python2 chromium/tools/licenses.py \ + --file-template ../../tools/about_credits.tmpl \ + --entry-template ../../tools/about_credits_entry.tmpl credits \ + $$shell_quote($$shell_path($$OUT_PWD/chromium_attributions.qdoc)) diff --git a/qtwebengine-everywhere-src-5.10.0-linux-pri.patch b/qtwebengine-everywhere-src-5.10.0-linux-pri.patch new file mode 100644 index 0000000000000000000000000000000000000000..a4dc33431ebd1a4c8b929237dba9b4cda5466bfd --- /dev/null +++ b/qtwebengine-everywhere-src-5.10.0-linux-pri.patch @@ -0,0 +1,24 @@ +diff --git a/src/buildtools/config/linux.pri b/src/buildtools/config/linux.pri +index 56c18bd..cb17c7a 100644 +--- a/src/buildtools/config/linux.pri ++++ b/src/buildtools/config/linux.pri +@@ -176,3 +176,19 @@ host_build { + } + gn_args += use_glib=false + } ++ ++# yasm is only used on x86, and passing use_system_yasm makes the build fail on ++# other architectures (e.g., ARM), so make it conditional on the architecture ++contains(QT_ARCH, "x86_64")|contains(QT_ARCH, "i386") { ++ gn_args += use_system_yasm=true ++} ++ ++# link libpci instead of dlopening it, our Qt packaging depends on it anyway ++gn_args += linux_link_libpci=true ++ ++# run the unbundling script Chromium provides ++CHROMIUM_SRC_DIR = "$$QTWEBENGINE_ROOT/$$getChromiumSrcDir()" ++R_G_F_PY = "$$CHROMIUM_SRC_DIR/build/linux/unbundle/replace_gn_files.py" ++R_G_F_PY_ARGS = "--system-libraries yasm" ++log("Running python2 $$R_G_F_PY $$R_G_F_PY_ARGS$${EOL}") ++!system("python2 $$R_G_F_PY $$R_G_F_PY_ARGS"): error("-- unbundling failed") diff --git a/qtwebengine-everywhere-src-5.11.0-no-icudtl-dat.patch b/qtwebengine-everywhere-src-5.11.0-no-icudtl-dat.patch new file mode 100644 index 0000000000000000000000000000000000000000..e035dffe7330275dfb7d6ec7a54e67f3e7877fb8 --- /dev/null +++ b/qtwebengine-everywhere-src-5.11.0-no-icudtl-dat.patch @@ -0,0 +1,34 @@ +diff --git a/src/core/web_engine_library_info.cpp b/src/core/web_engine_library_info.cpp +index 1c8316430..a1c27d28f 100644 +--- a/src/core/web_engine_library_info.cpp ++++ b/src/core/web_engine_library_info.cpp +@@ -259,29 +259,12 @@ QString dictionariesPath() + + QString resourcesDataPath() + { +- static bool initialized = false; + static QString potentialResourcesPath = + #if defined(OS_MACOSX) && defined(QT_MAC_FRAMEWORK_BUILD) + getResourcesPath(frameworkBundle()); + #else + QLibraryInfo::location(QLibraryInfo::DataPath) % QLatin1String("/resources"); + #endif +- if (!initialized) { +- initialized = true; +- if (!QFileInfo::exists(potentialResourcesPath % QLatin1String("/qtwebengine_resources.pak"))) { +- qWarning("Qt WebEngine resources not found at %s. Trying parent directory...", qPrintable(potentialResourcesPath)); +- potentialResourcesPath = QLibraryInfo::location(QLibraryInfo::DataPath); +- } +- if (!QFileInfo::exists(potentialResourcesPath % QLatin1String("/qtwebengine_resources.pak"))) { +- qWarning("Qt WebEngine resources not found at %s. Trying application directory...", qPrintable(potentialResourcesPath)); +- potentialResourcesPath = QCoreApplication::applicationDirPath(); +- } +- if (!QFileInfo::exists(potentialResourcesPath % QLatin1String("/qtwebengine_resources.pak"))) { +- qWarning("Qt WebEngine resources not found at %s. Trying fallback directory... The application MAY NOT work.", qPrintable(potentialResourcesPath)); +- potentialResourcesPath = fallbackDir(); +- } +- } +- + return potentialResourcesPath; + } + } // namespace diff --git a/qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch b/qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch new file mode 100644 index 0000000000000000000000000000000000000000..2b17be4dce221bcccd67e138cdb54c46aa45faae --- /dev/null +++ b/qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch @@ -0,0 +1,12 @@ +diff -up qtwebengine-everywhere-src-5.11.3/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat qtwebengine-everywhere-src-5.11.3/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h +--- qtwebengine-everywhere-src-5.11.3/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-19 12:55:45.000000000 -0600 ++++ qtwebengine-everywhere-src-5.11.3/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-12-08 21:16:39.931896244 -0600 +@@ -5,6 +5,8 @@ + #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_ + #define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_ + ++#define __ARCH_WANT_NEW_STAT ++ + #include + + #if !defined(__NR_io_setup) diff --git a/qtwebengine-everywhere-src-5.12.0-gn-bootstrap-verbose.patch b/qtwebengine-everywhere-src-5.12.0-gn-bootstrap-verbose.patch new file mode 100644 index 0000000000000000000000000000000000000000..ef1012fefa77976705f115cae20f778d3e7c098a --- /dev/null +++ b/qtwebengine-everywhere-src-5.12.0-gn-bootstrap-verbose.patch @@ -0,0 +1,13 @@ +diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro +index b6bf9cfc4..30f92e6ac 100644 +--- a/src/buildtools/gn.pro ++++ b/src/buildtools/gn.pro +@@ -18,7 +18,7 @@ build_pass|!debug_and_release { + src_3rd_party_dir = $$absolute_path("$${getChromiumSrcDir()}/../", "$$QTWEBENGINE_ROOT") + gn_bootstrap = $$system_path($$absolute_path(gn/build/gen.py, $$src_3rd_party_dir)) + +- gn_gen_args = --no-last-commit-position --out-path $$out_path \ ++ gn_gen_args = --no-last-commit-position --verbose --out-path $$out_path \ + --cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \ + --ld \"$$which($$QMAKE_LINK)\" + diff --git a/qtwebengine-everywhere-src-5.15.2-clean.tar.xz b/qtwebengine-everywhere-src-5.15.2-clean.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..f24275f3a1f55152b17b008c7c949012523c28f3 Binary files /dev/null and b/qtwebengine-everywhere-src-5.15.2-clean.tar.xz differ diff --git a/qtwebengine-gcc11.patch b/qtwebengine-gcc11.patch new file mode 100644 index 0000000000000000000000000000000000000000..7910b3906b59917a5e07ac3b0f4a3675bd383678 --- /dev/null +++ b/qtwebengine-gcc11.patch @@ -0,0 +1,40 @@ +diff --git a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc +index fd651958f..1e8d0606c 100644 +--- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc ++++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc +@@ -14,9 +14,9 @@ + * limitations under the License. + */ + ++#include + #include "src/trace_processor/containers/string_pool.h" + +-#include + + #include "perfetto/base/logging.h" + #include "perfetto/ext/base/utils.h" +diff --git a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc +index 80dcf5b24..b0037ec34 100644 +--- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc ++++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc +@@ -14,6 +14,7 @@ + * limitations under the License. + */ + ++#include + #include "src/trace_processor/db/column.h" + + #include "src/trace_processor/db/compare.h" +diff --git a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/heap_graph_walker.cc b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/heap_graph_walker.cc +index fc9e41558..0e5bd92f4 100644 +--- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/heap_graph_walker.cc ++++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/heap_graph_walker.cc +@@ -14,6 +14,8 @@ + * limitations under the License. + */ + ++#include ++ + #include "src/trace_processor/importers/proto/heap_graph_walker.h" + #include "perfetto/base/logging.h" + diff --git a/qtwebengine-opensource-src-5.12.4-fix-extractcflag.patch b/qtwebengine-opensource-src-5.12.4-fix-extractcflag.patch new file mode 100644 index 0000000000000000000000000000000000000000..fcbc6b5dfce508657b85167580b14b09c1f72961 --- /dev/null +++ b/qtwebengine-opensource-src-5.12.4-fix-extractcflag.patch @@ -0,0 +1,11 @@ +diff --git a/src/buildtools/config/functions.pri b/src/buildtools/config/functions.pri +index 8c11faa16..191d3d623 100644 +--- a/src/buildtools/config/functions.pri ++++ b/src/buildrools/config/functions.pri +@@ -1,5 +1,5 @@ + defineReplace(qtwebengine_extractCFlag) { +- CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS ++ CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS $$QMAKE_CFLAGS_RELEASE + OPTION = $$find(CFLAGS, $$1) + OPTION = $$split(OPTION, =) + PARAM = $$member(OPTION, 1) diff --git a/qtwebengine-opensource-src-5.9.0-no-neon.patch b/qtwebengine-opensource-src-5.9.0-no-neon.patch new file mode 100644 index 0000000000000000000000000000000000000000..308c5bc1d641b33e6f98f277947728e7001686e8 --- /dev/null +++ b/qtwebengine-opensource-src-5.9.0-no-neon.patch @@ -0,0 +1,15 @@ +diff --git a/src/buildtools/config/linux.pri b/src/buildtools/config/linux.pri +index f45c418fe..f6c7b714e 100644 +--- a/src/buildtools/config/linux.pri ++++ b/src/buildtools/config/linux.pri +@@ -87,7 +87,9 @@ contains(QT_ARCH, "arm") { + gn_args += arm_use_neon=false + # If the toolchain does not explicitly specify to use NEON instructions + # we use arm_neon_optional for ARMv7 +- equals(MARMV, 7): gn_args += arm_optionally_use_neon=true ++ # Disable NEON entirely for now, if set in the specfile, e.g., to ++ # work around some build failure. ++ # equals(MARMV, 7): gn_args += arm_optionally_use_neon=true + } + } + diff --git a/qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch b/qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch new file mode 100644 index 0000000000000000000000000000000000000000..09803b29219cfda7335097df3b5b22f954a7140b --- /dev/null +++ b/qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch @@ -0,0 +1,97 @@ +diff --git a/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn b/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn +index 96a59c7c7..d5470f284 100644 +--- a/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn ++++ b/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn +@@ -208,12 +208,6 @@ if (current_cpu == "arm") { + ] + if (arm_optionally_use_neon) { + # Run-time NEON detection. +- deps = [ +- "//third_party/android_tools:cpu_features", +- ] +- +- # To get the __android_log_print routine +- libs = [ "log" ] + + # Detection routine + sources += [ "sp/src/arm/detect.c" ] +diff --git a/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c b/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c +index 57bfe4089..94a3f7ddc 100644 +--- a/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c ++++ b/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c +@@ -9,13 +9,57 @@ + * + */ + +-#include +- +-#include "android/log.h" + #include "dl/sp/api/omxSP.h" + ++// For ArmCpuCaps() ++#include ++#include ++ ++// based on libvpx arm_cpudetect.c ++static int ArmCpuCaps(const char* cpuinfo_name) { ++ char cpuinfo_line[512]; ++ FILE* f = fopen(cpuinfo_name, "r"); ++ if (!f) { ++ // Assume Neon if /proc/cpuinfo is unavailable. ++ // This will occur for Chrome sandbox for Pepper or Render process. ++ return 1; ++ } ++ while (fgets(cpuinfo_line, sizeof(cpuinfo_line) - 1, f)) { ++ if (memcmp(cpuinfo_line, "Features", 8) == 0) { ++ char* p = strstr(cpuinfo_line, " neon"); ++ if (p && (p[5] == ' ' || p[5] == '\n')) { ++ fclose(f); ++ return 1; ++ } ++ // aarch64 uses asimd for Neon. ++ p = strstr(cpuinfo_line, " asimd"); ++ if (p && (p[6] == ' ' || p[6] == '\n')) { ++ fclose(f); ++ return 1; ++ } ++ } ++ } ++ fclose(f); ++ return 0; ++} ++ + int omxSP_HasArmNeon() { +- return (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0; ++#if defined(__arm__) || defined(__aarch64__) ++// gcc -mfpu=neon defines __ARM_NEON__ ++// __ARM_NEON__ generates code that requires Neon. NaCL also requires Neon. ++// For Linux, /proc/cpuinfo can be tested but without that assume Neon. ++#if defined(__ARM_NEON__) || defined(__native_client__) || !defined(__linux__) ++ return 1; ++// For aarch64(arm64), /proc/cpuinfo's feature is not complete, e.g. no neon ++// flag in it. ++// So for aarch64, neon enabling is hard coded here. ++#elif defined(__aarch64__) ++ return 1; ++#else ++ // Linux arm parse text file for neon detect. ++ return ArmCpuCaps("/proc/cpuinfo"); ++#endif ++#endif // __arm__ + } + + static void SetFFTRoutines() { +@@ -24,13 +68,9 @@ static void SetFFTRoutines() { + * forward and inverse FFTs + */ + if (omxSP_HasArmNeon()) { +- __android_log_print(ANDROID_LOG_INFO, "OpenMAX DL FFT", +- "Using NEON FFT"); + omxSP_FFTFwd_RToCCS_F32 = omxSP_FFTFwd_RToCCS_F32_Sfs; + omxSP_FFTInv_CCSToR_F32 = omxSP_FFTInv_CCSToR_F32_Sfs; + } else { +- __android_log_print(ANDROID_LOG_INFO, "OpenMAX DL FFT", +- "Using non-NEON FFT"); + omxSP_FFTFwd_RToCCS_F32 = omxSP_FFTFwd_RToCCS_F32_Sfs_vfp; + omxSP_FFTInv_CCSToR_F32 = omxSP_FFTInv_CCSToR_F32_Sfs_vfp; + }