!25 update upstream version to 5.15.10
From: @peijiankang Reviewed-by: @dou33 Signed-off-by: @dou33
This commit is contained in:
commit
6ee2d23de5
12
chromium-angle-nullptr.patch
Normal file
12
chromium-angle-nullptr.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp.nullptr qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp
|
||||||
|
--- qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp.nullptr 2021-12-15 10:09:27.000000000 -0600
|
||||||
|
+++ qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp 2022-01-19 08:52:02.659577615 -0600
|
||||||
|
@@ -254,7 +254,7 @@ std::string GetGLSLTypeString(GLenum typ
|
||||||
|
return "mat4";
|
||||||
|
default:
|
||||||
|
UNREACHABLE();
|
||||||
|
- return nullptr;
|
||||||
|
+ return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
12
chromium-hunspell-nullptr.patch
Normal file
12
chromium-hunspell-nullptr.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx.nullptr qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx
|
||||||
|
--- qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx.nullptr 2021-12-15 10:09:27.000000000 -0600
|
||||||
|
+++ qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx 2022-01-19 10:30:40.845051982 -0600
|
||||||
|
@@ -1725,7 +1725,7 @@ std::string HunspellImpl::get_xml_par(co
|
||||||
|
if (end == '>')
|
||||||
|
end = '<';
|
||||||
|
else if (end != '\'' && end != '"')
|
||||||
|
- return 0; // bad XML
|
||||||
|
+ return dest; // bad XML
|
||||||
|
for (par++; *par != '\0' && *par != end; ++par) {
|
||||||
|
dest.push_back(*par);
|
||||||
|
}
|
||||||
364
clean_ffmpeg.sh
Executable file
364
clean_ffmpeg.sh
Executable file
@ -0,0 +1,364 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2013 Tomas Popela <tpopela@redhat.com>
|
||||||
|
# Copyright 2016-2017 Kevin Kofler <Kevin@tigcc.ticalc.org>
|
||||||
|
# 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/cpu.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 \
|
||||||
|
libavcodec/bsf_internal.h \
|
||||||
|
libavcodec/codec.h \
|
||||||
|
libavcodec/codec_desc.h \
|
||||||
|
libavcodec/codec_id.h \
|
||||||
|
libavcodec/codec_par.h \
|
||||||
|
libavcodec/decode.h \
|
||||||
|
libavcodec/hwconfig.h \
|
||||||
|
libavcodec/internal.h \
|
||||||
|
libavcodec/packet.h \
|
||||||
|
libavcodec/packet_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/cpu.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
|
||||||
70
clean_qtwebengine.sh
Executable file
70
clean_qtwebengine.sh
Executable file
@ -0,0 +1,70 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2015-2017 Kevin Kofler <Kevin@tigcc.ticalc.org>
|
||||||
|
# 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.15.8"
|
||||||
|
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="-8 -T 2" tar cJf "$DIRNAME-clean.tar.xz" "$DIRNAME" || exit $?
|
||||||
|
|
||||||
|
echo "removing $DIRNAME"
|
||||||
|
rm -rf "$DIRNAME" || exit $?
|
||||||
|
|
||||||
|
echo "done"
|
||||||
|
exit 0
|
||||||
82
get_free_ffmpeg_source_files.py
Executable file
82
get_free_ffmpeg_source_files.py
Executable file
@ -0,0 +1,82 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
# Copyright 2015 Tomas Popela <tpopela@redhat.com>
|
||||||
|
# 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)
|
||||||
4
macros.qt5-qtwebengine
Normal file
4
macros.qt5-qtwebengine
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
%_qt5_qtwebengine @@NAME@@
|
||||||
|
%_qt5_qtwebengine_epoch @@EPOCH@@
|
||||||
|
%_qt5_qtwebengine_version @@VERSION@@
|
||||||
|
%_qt5_qtwebengine_evr @@EVR@@
|
||||||
BIN
pulseaudio-12.2-headers.tar.gz
Normal file
BIN
pulseaudio-12.2-headers.tar.gz
Normal file
Binary file not shown.
BIN
python2.7-2.7.18-19.el9.1.aarch64.rpm
Normal file
BIN
python2.7-2.7.18-19.el9.1.aarch64.rpm
Normal file
Binary file not shown.
BIN
python2.7-2.7.18-19.el9.1.src.rpm
Normal file
BIN
python2.7-2.7.18-19.el9.1.src.rpm
Normal file
Binary file not shown.
BIN
python2.7-2.7.18-19.el9.1.x86_64.rpm
Normal file
BIN
python2.7-2.7.18-19.el9.1.x86_64.rpm
Normal file
Binary file not shown.
@ -1,161 +1,560 @@
|
|||||||
%define _binaries_in_noarch_packages_terminate_build 0
|
%global qt_module qtwebengine
|
||||||
|
|
||||||
%global _hardened_build 1
|
%global _hardened_build 1
|
||||||
%global __provides_exclude ^lib.*plugin\\.so.*|libv8\\.so$
|
|
||||||
%global __requires_exclude ^libv8\\.so$
|
# package-notes causes FTBFS (#2043178)
|
||||||
|
%undefine _package_note_file
|
||||||
|
|
||||||
|
# define to build docs, may need to undef this for bootstrapping
|
||||||
|
# where qt5-qttools (qt5-doctools) builds are not yet available
|
||||||
|
%global docs 0
|
||||||
|
|
||||||
|
# need libvpx >= 1.8.0 (need commit 297dfd869609d7c3c5cd5faa3ebc7b43a394434e)
|
||||||
|
%global use_system_libvpx 0
|
||||||
|
# For screen sharing on Wayland, currently Fedora only thing - no epel
|
||||||
|
#global pipewire 1
|
||||||
|
# need libwebp >= 0.6.0
|
||||||
|
%global use_system_libwebp 1
|
||||||
|
%global use_system_jsoncpp 1
|
||||||
|
#%global use_system_re2 0
|
||||||
|
|
||||||
|
# need libicu >= 65, only currently available on f33+
|
||||||
|
%global use_system_libicu 1
|
||||||
|
|
||||||
|
# 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$
|
%global __provides_exclude_from ^%{_qt5_plugindir}/.*\\.so$
|
||||||
|
|
||||||
Name: qt5-qtwebengine
|
|
||||||
Version: 5.11.1
|
|
||||||
Release: 10
|
|
||||||
Summary: Qt5 - QtWebEngine components
|
Summary: Qt5 - QtWebEngine components
|
||||||
|
Name: qt5-qtwebengine
|
||||||
|
Version: 5.15.10
|
||||||
|
Release: 1
|
||||||
|
|
||||||
|
# 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)
|
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
|
URL: http://www.qt.io
|
||||||
|
# cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
|
||||||
|
# ./qtwebengine-release.sh
|
||||||
|
# ./clean_qtwebengine.sh 5.15.1
|
||||||
Source0: qtwebengine-everywhere-src-%{version}-clean.tar.xz
|
Source0: qtwebengine-everywhere-src-%{version}-clean.tar.xz
|
||||||
# some tweaks to linux.pri (system yasm, link libpci, run unbundling script)
|
# release script used above
|
||||||
# From: https://github.com/rpmfusion/qt5-qtwebengine-freeworld/blob/master/qtwebengine-everywhere-src-5.10.0-linux-pri.patch
|
Source1: qtwebengine-release.sh
|
||||||
Patch0000: qtwebengine-everywhere-src-5.10.0-linux-pri.patch
|
# cleanup scripts used above
|
||||||
# quick hack to avoid checking for the nonexistent icudtl.dat and silence the
|
Source2: clean_qtwebengine.sh
|
||||||
# resulting warnings - not upstreamable as is because it removes the fallback
|
Source3: clean_ffmpeg.sh
|
||||||
# mechanism for the ICU data directory (which is not used in our builds because
|
Source4: get_free_ffmpeg_source_files.py
|
||||||
# we use the system ICU, which embeds the data statically) completely
|
# macros
|
||||||
# From: https://github.com/rpmfusion/qt5-qtwebengine-freeworld/blob/master/qtwebengine-everywhere-src-5.11.0-no-icudtl-dat.patch
|
Source10: macros.qt5-qtwebengine
|
||||||
Patch0001: qtwebengine-everywhere-src-5.11.0-no-icudtl-dat.patch
|
|
||||||
|
# pulseaudio headers
|
||||||
|
Source20: pulseaudio-12.2-headers.tar.gz
|
||||||
|
|
||||||
|
## Python2 Sources
|
||||||
|
## src.rpm is Fedora spec with tests and tkinter turned off
|
||||||
|
## binary rpms have been built on epel9
|
||||||
|
Source100: python2.7-2.7.18-19.el9.1.src.rpm
|
||||||
|
Source101: python2.7-2.7.18-19.el9.1.aarch64.rpm
|
||||||
|
Source102: python2.7-2.7.18-19.el9.1.x86_64.rpm
|
||||||
|
|
||||||
# fix extractCFlag to also look in QMAKE_CFLAGS_RELEASE, needed to detect the
|
# 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
|
# ARM flags with our %%qmake_qt5 macro, including for the next patch
|
||||||
# From: https://gitlab.com/unity-mageia/qtwebengine5/-/blob/master/qtwebengine-opensource-src-5.9.0-fix-extractcflag.patch
|
Patch2: qtwebengine-opensource-src-5.12.4-fix-extractcflag.patch
|
||||||
Patch0002: qtwebengine-opensource-src-5.9.0-fix-extractcflag.patch
|
# disable NEON vector instructions on ARM where the NEON code FTBFS due to
|
||||||
# fix missing ARM -mfpu setting
|
# GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495
|
||||||
# From: https://gitlab.com/unity-mageia/qtwebengine5/-/blob/master/qtwebengine-opensource-src-5.9.2-arm-fpu-fix.patch
|
Patch3: qtwebengine-opensource-src-5.9.0-no-neon.patch
|
||||||
Patch0003: qtwebengine-opensource-src-5.9.2-arm-fpu-fix.patch
|
# workaround FTBFS against kernel-headers-5.2.0+
|
||||||
# remove Android dependencies from openmax_dl ARM NEON detection (detect.c)
|
Patch4: qtwebengine-SIOCGSTAMP.patch
|
||||||
# From: https://gitlab.com/unity-mageia/qtwebengine5/-/blob/master/qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch
|
# fix build when using qt < 5.14
|
||||||
Patch0004: qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch
|
Patch5: qtwebengine-5.15.0-QT_DEPRECATED_VERSION.patch
|
||||||
# webrtc: enable the CPU feature detection for ARM Linux also for Chromium
|
# gcc-12 FTBFS "use of deleted function"
|
||||||
# From: https://gitlab.com/unity-mageia/qtwebengine5/-/blob/master/qtwebengine-opensource-src-5.9.0-webrtc-neon-detect.patch
|
Patch6: chromium-angle-nullptr.patch
|
||||||
Patch0005: qtwebengine-opensource-src-5.9.0-webrtc-neon-detect.patch
|
Patch7: chromium-hunspell-nullptr.patch
|
||||||
# Force verbose output from the GN bootstrap process
|
Patch8: qtwebengine-everywhere-5.15.8-libpipewire-0.3.patch
|
||||||
# From: https://gitlab.com/unity-mageia/qtwebengine5/-/blob/master/qtwebengine-everywhere-src-5.10.0-gn-bootstrap-verbose.patch
|
# Fix/workaround FTBFS on aarch64 with newer glibc
|
||||||
Patch0006: qtwebengine-everywhere-src-5.10.0-gn-bootstrap-verbose.patch
|
Patch24: qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
|
||||||
# Fix FTBFS with GCC 8 on i686: GCC8 has changed the alignof operator to return
|
# Use Python2
|
||||||
# the minimal alignment required by the target ABI instead of the preferred
|
Patch26: qtwebengine-everywhere-5.15.5-use-python2.patch
|
||||||
# alignment. This means int64_t is now 4 on i686 (instead of 8). Use __alignof__
|
# FTBFS TRUE/FALSE undeclared
|
||||||
# to get the value we expect (and chromium checks for). Patch by spot.
|
Patch31: qtwebengine-everywhere-src-5.15.5-TRUE.patch
|
||||||
# From: https://gitlab.com/unity-mageia/qtwebengine5/-/blob/master/qtwebengine-everywhere-src-5.10.1-gcc8-alignof.patch
|
Patch32: qtwebengine-skia-missing-includes.patch
|
||||||
Patch0009: qtwebengine-everywhere-src-5.10.1-gcc8-alignof.patch
|
# Fix QtWebEngine on Apple M1 hardware (patch from Arch Linux ARM)
|
||||||
Patch0010: qtwebengine-everywhere-src-5.11.1-fix-U16_NEXT-calls.patch
|
## Cf. https://bugreports.qt.io/browse/QTBUG-108674
|
||||||
Patch6000: qtwebengine-fix-pluse-stubs.patch
|
## Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2144200
|
||||||
|
## From: https://chromium-review.googlesource.com/c/chromium/src/+/3545665
|
||||||
|
Patch33: qtwebengine-5.15-Backport-of-16k-page-support-on-aarch64.patch
|
||||||
|
|
||||||
BuildRequires: qt5-qtbase-devel qt5-qtbase-private-devel qt5-qtdeclarative-devel qt5-qtxmlpatterns-devel
|
## Upstream patches:
|
||||||
BuildRequires: qt5-qtlocation-devel qt5-qtsensors-devel qt5-qtwebchannel-devel qt5-qttools-static
|
# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches
|
||||||
BuildRequires: qt5-qtquickcontrols2-devel ninja-build cmake bison flex git-core gperf libicu-devel
|
#ExclusiveArch: %{qt5_qtwebengine_arches}
|
||||||
BuildRequires: libjpeg-devel re2-devel snappy-devel pkgconfig(expat) pkgconfig(gobject-2.0)
|
|
||||||
BuildRequires: pkgconfig(fontconfig) pkgconfig(freetype2) pkgconfig(gl) pkgconfig(egl) pkgconfig(libpng)
|
BuildRequires: make
|
||||||
BuildRequires: pkgconfig(libudev) pkgconfig(libwebp) >= 0.6.0 pkgconfig(harfbuzz) pkgconfig(libdrm)
|
BuildRequires: qt5-qtbase-devel
|
||||||
BuildRequires: pkgconfig(opus) pkgconfig(libevent) pkgconfig(zlib) pkgconfig(minizip) pkgconfig(x11)
|
BuildRequires: qt5-qtbase-private-devel
|
||||||
BuildRequires: pkgconfig(xi) pkgconfig(xcursor) pkgconfig(xext) pkgconfig(xfixes) pkgconfig(xrender)
|
# TODO: check of = is really needed or if >= would be good enough -- rex
|
||||||
BuildRequires: pkgconfig(xdamage) pkgconfig(xcomposite) pkgconfig(xtst) pkgconfig(xrandr) pkgconfig(xscrnsaver)
|
%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}}
|
||||||
BuildRequires: pkgconfig(libcap) pkgconfig(libpulse) pkgconfig(alsa) pkgconfig(libpci) pkgconfig(dbus-1)
|
BuildRequires: qt5-qtdeclarative-devel
|
||||||
BuildRequires: pkgconfig(nss) pkgconfig(lcms2) perl-interpreter python2 pkgconfig(glib-2.0)
|
BuildRequires: qt5-qtxmlpatterns-devel
|
||||||
Provides: bundled(chromium) = 61.0.3163.140 bundled(angle) = 2422 bundled(boringssl) bundled(brotli)
|
BuildRequires: qt5-qtlocation-devel
|
||||||
Provides: bundled(ffmpeg) = 3.3 bundled(hunspell) = 1.6.0 bundled(iccjpeg) bundled(khronos_headers)
|
BuildRequires: qt5-qtsensors-devel
|
||||||
Provides: bundled(leveldb) = 1.20 bundled(libjingle) bundled(libsrtp) = 2.1.0 bundled(libvpx) = 1.6.1
|
BuildRequires: qt5-qtsvg-devel
|
||||||
Provides: bundled(libxml2) = 2.9.4 bundled(libxslt) = 1.1.29 bundled(libXNVCtrl) = 302.17
|
BuildRequires: qt5-qtwebchannel-devel
|
||||||
Provides: bundled(libyuv) = 1658 bundled(modp_b64) bundled(openmax_dl) = 1.0.2 bundled(ots)
|
BuildRequires: qt5-qttools-static
|
||||||
Provides: bundled(protobuf) = 3.0.0-0.1.beta3 bundled(qcms) = 4 bundled(sfntly) bundled(skia)
|
# for examples?
|
||||||
Provides: bundled(SMHasher) = 0-0.1.svn147 bundled(sqlite) = 3.20 bundled(usrsctp) bundled(webrtc) = 90
|
BuildRequires: qt5-qtquickcontrols2-devel
|
||||||
Provides: bundled(dmg_fp) bundled(dynamic_annotations) = 4384 bundled(superfasthash) = 0 bundled(symbolize)
|
BuildRequires: ninja-build
|
||||||
Provides: bundled(valgrind.h) bundled(xdg-mime) bundled(xdg-user-dirs) = 0.10 bundled(nsURLParsers)
|
BuildRequires: cmake
|
||||||
Provides: bundled(mozilla_security_manager) = 1.9.2 bundled(mojo) bundled(v8) = 6.1.534.44 bundled(fdlibm) = 5.3
|
BuildRequires: bison
|
||||||
%ifarch x86_64
|
BuildRequires: flex
|
||||||
BuildRequires: yasm
|
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 >= 65
|
||||||
|
%endif
|
||||||
|
BuildRequires: libjpeg-devel
|
||||||
|
BuildRequires: nodejs
|
||||||
|
#%if 0%{?use_system_re2}
|
||||||
|
#BuildRequires: re2-devel
|
||||||
|
#%endif
|
||||||
|
%if 0%{?pipewire}
|
||||||
|
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||||
|
%endif
|
||||||
|
BuildRequires: snappy-devel
|
||||||
|
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(libevent)
|
||||||
|
BuildRequires: pkgconfig(poppler-cpp)
|
||||||
|
BuildRequires: pkgconfig(zlib)
|
||||||
|
BuildConflicts: minizip-devel
|
||||||
|
Provides: bundled(minizip) = 1.2
|
||||||
|
|
||||||
|
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)
|
||||||
|
BuildRequires: pkgconfig(xkbfile)
|
||||||
|
## https://bugreports.qt.io/browse/QTBUG-59094
|
||||||
|
## requires libxml2 built with icu support
|
||||||
|
#BuildRequires: pkgconfig(libxslt) pkgconfig(libxml-2.0)
|
||||||
|
BuildRequires: perl-interpreter
|
||||||
|
# Only the interpreter is needed
|
||||||
|
BuildRequires: python3
|
||||||
|
%if 0%{?use_system_libvpx}
|
||||||
|
BuildRequires: pkgconfig(vpx) >= 1.8.0
|
||||||
|
%endif
|
||||||
|
BuildRequires: libtirpc
|
||||||
|
BuildRequires: libnsl2
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
Provides: bundled(chromium) = 87.0.4280.144
|
||||||
|
|
||||||
|
# Bundled in src/3rdparty/chromium/third_party:
|
||||||
|
# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers,
|
||||||
|
# except where specified otherwise.
|
||||||
|
# Note that many of those libraries are git snapshots, so version numbers are
|
||||||
|
# necessarily approximate.
|
||||||
|
# Also note that the list is probably not complete anymore due to Chromium
|
||||||
|
# adding more and more bundled stuff at every release, some of which (but not
|
||||||
|
# all) is actually built in QtWebEngine.
|
||||||
|
# src/3rdparty/chromium/third_party/angle/doc/ChoosingANGLEBranch.md points to
|
||||||
|
# http://omahaproxy.appspot.com/deps.json?version=87.0.4280.144 chromium_branch
|
||||||
|
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) = 4.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.22
|
||||||
|
# bundled as "libjingle_xmpp"
|
||||||
|
Provides: bundled(libjingle)
|
||||||
|
# see src/3rdparty/chromium/third_party/libsrtp/CHANGES for the version number
|
||||||
|
Provides: bundled(libsrtp) = 2.2.0
|
||||||
|
%if !0%{?use_system_libvpx}
|
||||||
|
Provides: bundled(libvpx) = 1.8.2
|
||||||
|
%endif
|
||||||
|
%if !0%{?use_system_libwebp}
|
||||||
|
Provides: bundled(libwebp) = 1.1.0-28-g55a080e5
|
||||||
|
%endif
|
||||||
|
# bundled as "libxml"
|
||||||
|
# see src/3rdparty/chromium/third_party/libxml/linux/include/libxml/xmlversion.h
|
||||||
|
# post 2.9.9 snapshot?, 2.9.9-0b3c64d9f2f3e9ce1a98d8f19ee7a763c87e27d5
|
||||||
|
Provides: bundled(libxml2) = 2.9.10
|
||||||
|
# see src/3rdparty/chromium/third_party/libxslt/linux/config.h for version
|
||||||
|
Provides: bundled(libxslt) = 1.1.34
|
||||||
|
Provides: bundled(libXNVCtrl) = 302.17
|
||||||
|
Provides: bundled(libyuv) = 1768
|
||||||
|
Provides: bundled(modp_b64)
|
||||||
|
Provides: bundled(ots)
|
||||||
|
Provides: bundled(re2)
|
||||||
|
# see src/3rdparty/chromium/third_party/protobuf/CHANGES.txt for the version
|
||||||
|
Provides: bundled(protobuf) = 3.9.0
|
||||||
|
Provides: bundled(qcms) = 4
|
||||||
|
Provides: bundled(skia)
|
||||||
|
# bundled as "smhasher"
|
||||||
|
Provides: bundled(SMHasher) = 0-147
|
||||||
|
Provides: bundled(sqlite) = 3.35.5
|
||||||
|
Provides: bundled(usrsctp)
|
||||||
|
Provides: bundled(webrtc) = 90
|
||||||
|
|
||||||
|
%ifarch %{ix86} x86_64
|
||||||
|
# bundled by ffmpeg and libvpx:
|
||||||
|
# header (for assembly) only
|
||||||
Provides: bundled(x86inc)
|
Provides: bundled(x86inc)
|
||||||
%endif
|
%endif
|
||||||
%{?_qt5:Requires: %{_qt5} = %{_qt5_version}}
|
|
||||||
%{?_qt5_version:Requires: qt5-qtbase = %{_qt5_version}}
|
# 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(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) = 8.7.220.35
|
||||||
|
# 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%{?use_system_icu}
|
||||||
|
# Those versions were built with bundled ICU and want the data file.
|
||||||
|
Conflicts: qt5-qtwebengine-freeworld < 5.15.2-2
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Qt5 - QtWebEngine components.
|
%{summary}.
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development files for qt5-qtwebengine
|
Summary: Development files for %{name}
|
||||||
Requires: qt5-qtwebengine = %{version}-%{release} qt5-qtbase-devel qt5-qtdeclarative-devel
|
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
|
%description devel
|
||||||
Qt5 - QtWebEngine components.
|
%{summary}.
|
||||||
|
|
||||||
|
%package devtools
|
||||||
|
Summary: WebEngine devtools_resources
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
%description devtools
|
||||||
|
Support for remote debugging.
|
||||||
|
|
||||||
%package examples
|
%package examples
|
||||||
Summary: Example files for qt5-qtwebengine
|
Summary: Example files for %{name}
|
||||||
|
|
||||||
%description examples
|
%description examples
|
||||||
Example files for qt5-qtwebengine.
|
%{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
|
%prep
|
||||||
%autosetup -n qtwebengine-everywhere-src-%{version}%{?prerelease:-%{prerelease}} -p1
|
%setup -q -n %{qt_module}-everywhere-src-%{version}%{?prerelease:-%{prerelease}} -a20
|
||||||
sed -i -e 's!gpu//!gpu/!g' src/3rdparty/chromium/content/renderer/gpu/compositor_forwarding_message_filter.cc
|
|
||||||
sed -i -e 's!audio_processing//!audio_processing/!g' src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/utility/ooura_fft.cc \
|
mv pulse src/3rdparty/chromium/
|
||||||
src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc
|
|
||||||
sed -i -e 's!\./!!g' src/3rdparty/chromium/third_party/angle/src/compiler/preprocessor/Tokenizer.cpp \
|
pushd src/3rdparty/chromium
|
||||||
src/3rdparty/chromium/third_party/angle/src/compiler/translator/glslang_lex.cpp
|
popd
|
||||||
sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' src/3rdparty/chromium/build/toolchain/linux/BUILD.gn
|
|
||||||
cp -bv /usr/include/re2/*.h src/3rdparty/chromium/third_party/re2/src/re2/
|
# Install python2 from rpms
|
||||||
cd src/3rdparty
|
mkdir python2
|
||||||
python2 chromium/tools/licenses.py --file-template ../../tools/about_credits.tmpl \
|
pushd python2
|
||||||
--entry-template ../../tools/about_credits_entry.tmpl credits >../webengine/doc/src/qtwebengine-3rdparty.qdoc
|
%ifarch aarch64
|
||||||
cd -
|
rpm2cpio %{SOURCE101} | cpio -idm
|
||||||
|
%endif
|
||||||
|
%ifarch x86_64
|
||||||
|
rpm2cpio %{SOURCE102} | cpio -idm
|
||||||
|
%endif
|
||||||
|
popd
|
||||||
|
|
||||||
|
%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
|
||||||
|
%patch6 -p1 -b .angle_nullptr
|
||||||
|
%patch7 -p1 -b .hunspell_nullptr
|
||||||
|
#if 0%{?pipewire}
|
||||||
|
%patch8 -p1 -b .libpipewire-0.3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
## upstream patches
|
||||||
|
%patch24 -p1 -b .aarch64-new-stat
|
||||||
|
%patch26 -p1 -b .use-python2
|
||||||
|
%patch31 -p1 -b .TRUE
|
||||||
|
%patch32 -p1 -b .skia-missing-includes
|
||||||
|
%patch33 -p1 -b .aarch64-16kb-support
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
%if 0%{?docs}
|
||||||
|
# generate qtwebengine-3rdparty.qdoc, it is missing from the tarball
|
||||||
|
pushd src/3rdparty
|
||||||
|
%{__python3} 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
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# copy the Chromium license so it is installed with the appropriate name
|
||||||
cp -p src/3rdparty/chromium/LICENSE LICENSE.Chromium
|
cp -p src/3rdparty/chromium/LICENSE LICENSE.Chromium
|
||||||
|
|
||||||
|
# consider doing this as part of the tarball creation step instead? rdieter
|
||||||
|
# fix/workaround
|
||||||
|
# fatal error: QtWebEngineCore/qtwebenginecoreglobal.h: No such file or directory
|
||||||
|
if [ ! -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h" ]; then
|
||||||
|
%_qt5_bindir/syncqt.pl -version %{version}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# abort if this doesn't get created by syncqt.pl
|
||||||
|
test -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h"
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
# python2 path
|
||||||
|
export PATH=$(pwd)/python2/usr/bin:$PATH
|
||||||
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/python2/usr/lib64
|
||||||
|
|
||||||
export STRIP=strip
|
export STRIP=strip
|
||||||
export NINJAFLAGS="%{__ninja_common_opts}"
|
export NINJAFLAGS="%{__ninja_common_opts}"
|
||||||
export NINJA_PATH=%{__ninja}
|
export NINJA_PATH=%{__ninja}
|
||||||
%{qmake_qt5} CONFIG+="force_debug_info" QMAKE_EXTRA_ARGS+="-system-webengine-icu" .
|
|
||||||
%make_build
|
%{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" \
|
||||||
|
%{?pipewire:QMAKE_EXTRA_ARGS+="-webengine-webrtc-pipewire"} \
|
||||||
|
.
|
||||||
|
|
||||||
|
# avoid %%make_build for now, the -O flag buffers output from intermediate build steps done via ninja
|
||||||
|
make
|
||||||
|
|
||||||
|
%if 0%{?docs}
|
||||||
|
%make_build docs
|
||||||
|
%endif
|
||||||
|
|
||||||
%install
|
%install
|
||||||
make install INSTALL_ROOT=%{buildroot}
|
make install INSTALL_ROOT=%{buildroot}
|
||||||
echo -e "%_qt5_qtwebengine @@NAME@@\n%_qt5_qtwebengine_epoch @@EPOCH@@\n%_qt5_qtwebengine_version @@VERSION@@\n%_qt5_qtwebengine_evr @@EVR@@" > macros.qt5-qtwebengine
|
|
||||||
install -p -m644 -D macros.qt5-qtwebengine %{buildroot}%(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)/macros.qt5-qtwebengine
|
%if 0%{?docs}
|
||||||
rm -f macros.qt5-qtwebengine
|
make install_docs INSTALL_ROOT=%{buildroot}
|
||||||
sed -i -e "s|@@NAME@@|qt5-qtwebengine|g" -e "s|@@EPOCH@@|%{?epoch}%{!?epoch:0}|g" -e "s|@@VERSION@@|%{version}|g" \
|
%endif
|
||||||
-e "s|@@EVR@@|%{?epoch:%{epoch:}}%{version}-%{release}|g" %{buildroot}%(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || \
|
|
||||||
d=%{_sysconfdir}/rpm; echo $d)/macros.qt5-qtwebengine
|
# rpm macros
|
||||||
install -d %{buildroot}%{_bindir}
|
install -p -m644 -D %{SOURCE10} \
|
||||||
cd %{buildroot}%{_qt5_bindir}
|
%{buildroot}%{rpm_macros_dir}/macros.qt5-qtwebengine
|
||||||
for i in * ; do ln -v ${i} %{buildroot}%{_bindir}/${i}; done
|
sed -i \
|
||||||
cd -
|
-e "s|@@NAME@@|%{name}|g" \
|
||||||
cd %{buildroot}%{_qt5_libdir}
|
-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
|
||||||
|
|
||||||
|
## .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
|
for prl_file in libQt5*.prl ; do
|
||||||
sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${prl_file}
|
sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${prl_file}
|
||||||
if [ -f "$(basename ${prl_file} .prl).so" ]; then
|
if [ -f "$(basename ${prl_file} .prl).so" ]; then
|
||||||
rm -fv "$(basename ${prl_file} .prl).la"; sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file}
|
rm -fv "$(basename ${prl_file} .prl).la"
|
||||||
|
sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
cd -
|
# explicitly omit, at least until there's a real library installed associated with it -- rex
|
||||||
install -d %{buildroot}%{_qt5_datadir}/qtwebengine_dictionaries
|
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)
|
%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
|
sed -i -e "s|%{version} \${_Qt5WebEngine|%{lesser_version} \${_Qt5WebEngine|" \
|
||||||
|
%{buildroot}%{_qt5_libdir}/cmake/Qt5WebEngine*/Qt5WebEngine*Config.cmake
|
||||||
|
|
||||||
%post -p /sbin/ldconfig
|
|
||||||
%postun -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%filetriggerin -- %{_datadir}/myspell
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
|
%filetriggerin -- %{_datadir}/hunspell
|
||||||
while read filename ; do
|
while read filename ; do
|
||||||
case "$filename" in
|
case "$filename" in
|
||||||
*.dic)
|
*.dic)
|
||||||
bdicname=%{_qt5_datadir}/qtwebengine_dictionaries/`basename -s .dic "$filename"`.bdic
|
bdicname=%{_qtwebengine_dictionaries_dir}/`basename -s .dic "$filename"`.bdic
|
||||||
%{_qt5_bindir}/qwebengine_convert_dict "$filename" "$bdicname" &> /dev/null || :
|
%{_qt5_bindir}/qwebengine_convert_dict "$filename" "$bdicname" &> /dev/null || :
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%doc LICENSE.* src/webengine/doc/src/qtwebengine-3rdparty.qdoc
|
%license LICENSE.*
|
||||||
%{_bindir}/qwebengine_convert_dict
|
%if 0%{?docs}
|
||||||
|
%license src/webengine/doc/src/qtwebengine-3rdparty.qdoc
|
||||||
|
%endif
|
||||||
|
%{_qt5_libdir}/libQt5*.so.*
|
||||||
%{_qt5_bindir}/qwebengine_convert_dict
|
%{_qt5_bindir}/qwebengine_convert_dict
|
||||||
%{_qt5_libdir}/{libQt5*.so.*,qt5/qml/*,qt5/libexec/QtWebEngineProcess}
|
%{_qt5_libdir}/qt5/qml/*
|
||||||
|
%{_qt5_libdir}/qt5/libexec/QtWebEngineProcess
|
||||||
%{_qt5_plugindir}/designer/libqwebengineview.so
|
%{_qt5_plugindir}/designer/libqwebengineview.so
|
||||||
%{_qt5_datadir}/resources/
|
%{_qt5_plugindir}/imageformats/libqpdf.so
|
||||||
%dir %{_qt5_datadir}/qtwebengine_dictionaries
|
%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
|
%dir %{_qt5_translationdir}/qtwebengine_locales
|
||||||
%lang(am) %{_qt5_translationdir}/qtwebengine_locales/am.pak
|
%lang(am) %{_qt5_translationdir}/qtwebengine_locales/am.pak
|
||||||
%lang(ar) %{_qt5_translationdir}/qtwebengine_locales/ar.pak
|
%lang(ar) %{_qt5_translationdir}/qtwebengine_locales/ar.pak
|
||||||
@ -212,15 +611,30 @@ done
|
|||||||
%lang(zh_TW) %{_qt5_translationdir}/qtwebengine_locales/zh-TW.pak
|
%lang(zh_TW) %{_qt5_translationdir}/qtwebengine_locales/zh-TW.pak
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)/macros.qt5-qtwebengine
|
%{rpm_macros_dir}/macros.qt5-qtwebengine
|
||||||
%{_qt5_headerdir}/Qt*/
|
%{_qt5_headerdir}/Qt*/
|
||||||
%{_qt5_libdir}/{libQt5*.so,libQt5*.prl,cmake/Qt5*/,pkgconfig/Qt5*.pc}
|
%{_qt5_libdir}/libQt5*.so
|
||||||
|
%{_qt5_libdir}/libQt5*.prl
|
||||||
|
%{_qt5_libdir}/cmake/Qt5*/
|
||||||
|
%{_qt5_libdir}/pkgconfig/Qt5*.pc
|
||||||
%{_qt5_archdatadir}/mkspecs/modules/*.pri
|
%{_qt5_archdatadir}/mkspecs/modules/*.pri
|
||||||
|
|
||||||
|
%files devtools
|
||||||
|
%{_qt5_datadir}/resources/qtwebengine_devtools_resources.pak
|
||||||
|
|
||||||
%files examples
|
%files examples
|
||||||
%{_qt5_examplesdir}/
|
%{_qt5_examplesdir}/
|
||||||
|
|
||||||
|
%if 0%{?docs}
|
||||||
|
%files doc
|
||||||
|
%{_qt5_docdir}/*
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Dec 16 2022 peijiankang <peijiankang@kylinos.cn> -5.15.10-1
|
||||||
|
- update upstream version to 5.15.10
|
||||||
|
|
||||||
* Fri Jul 24 2020 maminjie <maminjie1@huawei.com> -5.11.1-10
|
* Fri Jul 24 2020 maminjie <maminjie1@huawei.com> -5.11.1-10
|
||||||
- Fix the build error for U16_NEXT calls
|
- Fix the build error for U16_NEXT calls
|
||||||
|
|
||||||
|
|||||||
372
qtwebengine-5.15-Backport-of-16k-page-support-on-aarch64.patch
Normal file
372
qtwebengine-5.15-Backport-of-16k-page-support-on-aarch64.patch
Normal file
@ -0,0 +1,372 @@
|
|||||||
|
From 0e827b4f741e57538c24d90b63659dbdb0992cb0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jorrit Jongma <jorrit@jongma.org>
|
||||||
|
Date: Tue, 12 Apr 2022 17:09:34 +0000
|
||||||
|
Subject: [PATCH] [Backport] [PA] Support 16kb pagesize on Linux+ARM64
|
||||||
|
|
||||||
|
This makes the system pagesize a run-time property.
|
||||||
|
|
||||||
|
ARM64 supports 4kb, 16kb, and 64kb page sizes. Previously, only 4kb
|
||||||
|
was supported by Chromium. This patch adds 16kb support, as is used
|
||||||
|
for example by Asahi Linux on M1 Macs. The rare 64kb case is still
|
||||||
|
not supported due to further changes needed to SlotSpanMetadata.
|
||||||
|
|
||||||
|
The implementation follows the changes made to support run-time page
|
||||||
|
size on macOS. On macOS, the required constants are conveniently
|
||||||
|
injected before any code runs, while on Linux a function call is
|
||||||
|
needed, complicating initialization.
|
||||||
|
|
||||||
|
The new PageCharacteristics structure holds the page size and shift
|
||||||
|
as std::atomic<int> which are initialized on first use.
|
||||||
|
|
||||||
|
Bug: 1301788
|
||||||
|
Change-Id: I8ceead40de53ba7a2ec248bd6ef46f2a521dd29c
|
||||||
|
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3545665
|
||||||
|
Reviewed-by: Benoit Lize <lizeb@chromium.org>
|
||||||
|
Reviewed-by: Mark Mentovai <mark@chromium.org>
|
||||||
|
Commit-Queue: Mark Mentovai <mark@chromium.org>
|
||||||
|
Cr-Commit-Position: refs/heads/main@{#991588}
|
||||||
|
|
||||||
|
(adapted from commit a704c3a94179e6f3abb28f090d096ced72657d7c)
|
||||||
|
|
||||||
|
Bug-Fedora: 2144200
|
||||||
|
Task-number: QTBUG-108674
|
||||||
|
---
|
||||||
|
.../address_space_randomization.h | 15 ++++++
|
||||||
|
.../page_allocator_constants.h | 51 +++++++++++++++++-
|
||||||
|
.../partition_address_space.cc | 6 +++
|
||||||
|
.../partition_allocator/partition_alloc.cc | 2 +-
|
||||||
|
.../partition_alloc_constants.h | 5 +-
|
||||||
|
.../address_space_randomization.h | 15 ++++++
|
||||||
|
.../partition_allocator/page_allocator.cc | 8 +++
|
||||||
|
.../page_allocator_constants.h | 52 ++++++++++++++++++-
|
||||||
|
.../partition_allocator/partition_alloc.cc | 2 +-
|
||||||
|
.../partition_alloc_constants.h | 5 +-
|
||||||
|
10 files changed, 153 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/3rdparty/chromium/base/allocator/partition_allocator/address_space_randomization.h b/src/3rdparty/chromium/base/allocator/partition_allocator/address_space_randomization.h
|
||||||
|
index e77003eab25..31ac05b86f5 100644
|
||||||
|
--- a/src/3rdparty/chromium/base/allocator/partition_allocator/address_space_randomization.h
|
||||||
|
+++ b/src/3rdparty/chromium/base/allocator/partition_allocator/address_space_randomization.h
|
||||||
|
@@ -119,6 +119,21 @@ AslrMask(uintptr_t bits) {
|
||||||
|
return AslrAddress(0x20000000ULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ #elif defined(OS_LINUX)
|
||||||
|
+
|
||||||
|
+ // Linux on arm64 can use 39, 42, 48, or 52-bit user space, depending on
|
||||||
|
+ // page size and number of levels of translation pages used. We use
|
||||||
|
+ // 39-bit as base as all setups should support this, lowered to 38-bit
|
||||||
|
+ // as ASLROffset() could cause a carry.
|
||||||
|
+ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE uintptr_t
|
||||||
|
+ ASLRMask() {
|
||||||
|
+ return AslrMask(38);
|
||||||
|
+ }
|
||||||
|
+ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE uintptr_t
|
||||||
|
+ ASLROffset() {
|
||||||
|
+ return AslrAddress(0x1000000000ULL);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
#else
|
||||||
|
|
||||||
|
// ARM64 on Linux has 39-bit user space. Use 38 bits since ASLROffset()
|
||||||
|
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 c42fe2835ff..dc7486608b9 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
|
||||||
|
@@ -24,6 +24,31 @@
|
||||||
|
// elimination.
|
||||||
|
#define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR __attribute__((const))
|
||||||
|
|
||||||
|
+#elif defined(OS_LINUX) && defined(ARCH_CPU_ARM64)
|
||||||
|
+// This should work for all POSIX (if needed), but currently all other
|
||||||
|
+// supported OS/architecture combinations use either hard-coded values
|
||||||
|
+// (such as x86) or have means to determine these values without needing
|
||||||
|
+// atomics (such as macOS on arm64).
|
||||||
|
+
|
||||||
|
+// Page allocator constants are run-time constant
|
||||||
|
+#define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR __attribute__((const))
|
||||||
|
+
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#include <atomic>
|
||||||
|
+
|
||||||
|
+namespace base::internal {
|
||||||
|
+
|
||||||
|
+// Holds the current page size and shift, where size = 1 << shift
|
||||||
|
+// Use PageAllocationGranularity(), PageAllocationGranularityShift()
|
||||||
|
+// to initialize and retrieve these values safely.
|
||||||
|
+struct PageCharacteristics {
|
||||||
|
+ std::atomic<int> size;
|
||||||
|
+ std::atomic<int> shift;
|
||||||
|
+};
|
||||||
|
+extern PageCharacteristics page_characteristics;
|
||||||
|
+
|
||||||
|
+} // namespace base::internal
|
||||||
|
+
|
||||||
|
#else
|
||||||
|
|
||||||
|
// When defined, page size constants are fixed at compile time. When not
|
||||||
|
@@ -36,11 +61,17 @@
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+namespace base {
|
||||||
|
+// Forward declaration, implementation below
|
||||||
|
+PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
|
||||||
|
+PageAllocationGranularity();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
#if !defined(OS_APPLE)
|
||||||
|
|
||||||
|
-constexpr ALWAYS_INLINE int PageAllocationGranularityShift() {
|
||||||
|
+PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE int PageAllocationGranularityShift() {
|
||||||
|
#if defined(OS_WIN) || defined(ARCH_CPU_PPC64)
|
||||||
|
// Modern ppc64 systems support 4kB (shift = 12) and 64kB (shift = 16) page
|
||||||
|
// sizes. Since 64kB is the de facto standard on the platform and binaries
|
||||||
|
@@ -49,6 +80,15 @@ constexpr ALWAYS_INLINE int PageAllocationGranularityShift() {
|
||||||
|
return 16; // 64kB
|
||||||
|
#elif defined(_MIPS_ARCH_LOONGSON)
|
||||||
|
return 14; // 16kB
|
||||||
|
+#elif defined(OS_LINUX) && defined(ARCH_CPU_ARM64)
|
||||||
|
+ // arm64 supports 4kb (shift = 12), 16kb (shift = 14), and 64kb (shift = 16)
|
||||||
|
+ // page sizes. Retrieve from or initialize cache.
|
||||||
|
+ int shift = base::internal::page_characteristics.shift.load(std::memory_order_relaxed);
|
||||||
|
+ if (UNLIKELY(shift == 0)) {
|
||||||
|
+ shift = __builtin_ctz((int)base::PageAllocationGranularity());
|
||||||
|
+ base::internal::page_characteristics.shift.store(shift, std::memory_order_relaxed);
|
||||||
|
+ }
|
||||||
|
+ return shift;
|
||||||
|
#else
|
||||||
|
return 12; // 4kB
|
||||||
|
#endif
|
||||||
|
@@ -64,6 +104,15 @@ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
|
||||||
|
PageAllocationGranularity() {
|
||||||
|
#if defined(OS_APPLE)
|
||||||
|
return vm_page_size;
|
||||||
|
+#elif defined(OS_LINUX) && defined(ARCH_CPU_ARM64)
|
||||||
|
+ // arm64 supports 4kb, 16kb, and 64kb page sizes. Retrieve from or
|
||||||
|
+ // initialize cache.
|
||||||
|
+ int size = internal::page_characteristics.size.load(std::memory_order_relaxed);
|
||||||
|
+ if (UNLIKELY(size == 0)) {
|
||||||
|
+ size = getpagesize();
|
||||||
|
+ internal::page_characteristics.size.store(size, std::memory_order_relaxed);
|
||||||
|
+ }
|
||||||
|
+ return size;
|
||||||
|
#else
|
||||||
|
return 1ULL << PageAllocationGranularityShift();
|
||||||
|
#endif
|
||||||
|
diff --git a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_address_space.cc b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_address_space.cc
|
||||||
|
index 03883bcb113..90efc51c838 100644
|
||||||
|
--- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_address_space.cc
|
||||||
|
+++ b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_address_space.cc
|
||||||
|
@@ -75,6 +75,12 @@ void PartitionAddressSpace::UninitForTesting() {
|
||||||
|
internal::AddressPoolManager::GetInstance()->ResetForTesting();
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if defined(OS_LINUX) && defined(ARCH_CPU_ARM64)
|
||||||
|
+
|
||||||
|
+PageCharacteristics page_characteristics;
|
||||||
|
+
|
||||||
|
+#endif // defined(OS_LINUX) && defined(ARCH_CPU_ARM64)
|
||||||
|
+
|
||||||
|
#endif // defined(PA_HAS_64_BITS_POINTERS)
|
||||||
|
|
||||||
|
} // namespace internal
|
||||||
|
diff --git a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc.cc b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc.cc
|
||||||
|
index daeb6d5cb17..7c434b5e697 100644
|
||||||
|
--- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc.cc
|
||||||
|
+++ b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc.cc
|
||||||
|
@@ -522,7 +522,7 @@ static size_t PartitionPurgePage(internal::PartitionPage<thread_safe>* page,
|
||||||
|
#if defined(PAGE_ALLOCATOR_CONSTANTS_ARE_CONSTEXPR)
|
||||||
|
constexpr size_t kMaxSlotCount =
|
||||||
|
(PartitionPageSize() * kMaxPartitionPagesPerSlotSpan) / SystemPageSize();
|
||||||
|
-#elif defined(OS_APPLE)
|
||||||
|
+#elif defined(OS_APPLE) || (defined(OS_LINUX) && defined(ARCH_CPU_ARM64))
|
||||||
|
// It's better for slot_usage to be stack-allocated and fixed-size, which
|
||||||
|
// demands that its size be constexpr. On OS_APPLE, PartitionPageSize() is
|
||||||
|
// always SystemPageSize() << 2, so regardless of what the run time page size
|
||||||
|
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 c8268ec30a0..f03ba1e4ab4 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
|
||||||
|
@@ -57,10 +57,11 @@ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE int
|
||||||
|
PartitionPageShift() {
|
||||||
|
return 18; // 256 KiB
|
||||||
|
}
|
||||||
|
-#elif defined(OS_APPLE)
|
||||||
|
+#elif defined(OS_APPLE) || \
|
||||||
|
+ (defined(OS_LINUX) && defined(ARCH_CPU_ARM64))
|
||||||
|
PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE int
|
||||||
|
PartitionPageShift() {
|
||||||
|
- return vm_page_shift + 2;
|
||||||
|
+ return PageAllocationGranularityShift() + 2;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE int
|
||||||
|
diff --git a/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/address_space_randomization.h b/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/address_space_randomization.h
|
||||||
|
index 28c8271fd68..3957e0cdf76 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/address_space_randomization.h
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/address_space_randomization.h
|
||||||
|
@@ -120,6 +120,21 @@ AslrMask(uintptr_t bits) {
|
||||||
|
return AslrAddress(0x20000000ULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ #elif defined(OS_LINUX)
|
||||||
|
+
|
||||||
|
+ // Linux on arm64 can use 39, 42, 48, or 52-bit user space, depending on
|
||||||
|
+ // page size and number of levels of translation pages used. We use
|
||||||
|
+ // 39-bit as base as all setups should support this, lowered to 38-bit
|
||||||
|
+ // as ASLROffset() could cause a carry.
|
||||||
|
+ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE uintptr_t
|
||||||
|
+ ASLRMask() {
|
||||||
|
+ return AslrMask(38);
|
||||||
|
+ }
|
||||||
|
+ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE uintptr_t
|
||||||
|
+ ASLROffset() {
|
||||||
|
+ return AslrAddress(0x1000000000ULL);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
#else
|
||||||
|
|
||||||
|
// ARM64 on Linux has 39-bit user space. Use 38 bits since kASLROffset
|
||||||
|
diff --git a/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator.cc b/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator.cc
|
||||||
|
index 91d00d2fbca..597d5f84cb1 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator.cc
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator.cc
|
||||||
|
@@ -255,5 +255,13 @@ uint32_t GetAllocPageErrorCode() {
|
||||||
|
return s_allocPageErrorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if defined(OS_LINUX) && defined(ARCH_CPU_ARM64)
|
||||||
|
+
|
||||||
|
+namespace internal {
|
||||||
|
+PageCharacteristics page_characteristics;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#endif // defined(OS_LINUX) && defined(ARCH_CPU_ARM64)
|
||||||
|
+
|
||||||
|
} // namespace base
|
||||||
|
} // namespace pdfium
|
||||||
|
diff --git a/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator_constants.h b/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator_constants.h
|
||||||
|
index fdc65ac47b7..f826308839d 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator_constants.h
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator_constants.h
|
||||||
|
@@ -24,6 +24,31 @@
|
||||||
|
// elimination.
|
||||||
|
#define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR __attribute__((const))
|
||||||
|
|
||||||
|
+#elif defined(OS_LINUX) && defined(ARCH_CPU_ARM64)
|
||||||
|
+// This should work for all POSIX (if needed), but currently all other
|
||||||
|
+// supported OS/architecture combinations use either hard-coded values
|
||||||
|
+// (such as x86) or have means to determine these values without needing
|
||||||
|
+// atomics (such as macOS on arm64).
|
||||||
|
+
|
||||||
|
+// Page allocator constants are run-time constant
|
||||||
|
+#define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR __attribute__((const))
|
||||||
|
+
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#include <atomic>
|
||||||
|
+
|
||||||
|
+namespace pdfium::base::internal {
|
||||||
|
+
|
||||||
|
+// Holds the current page size and shift, where size = 1 << shift
|
||||||
|
+// Use PageAllocationGranularity(), PageAllocationGranularityShift()
|
||||||
|
+// to initialize and retrieve these values safely.
|
||||||
|
+struct PageCharacteristics {
|
||||||
|
+ std::atomic<int> size;
|
||||||
|
+ std::atomic<int> shift;
|
||||||
|
+};
|
||||||
|
+extern PageCharacteristics page_characteristics;
|
||||||
|
+
|
||||||
|
+} // namespace base::internal
|
||||||
|
+
|
||||||
|
#else
|
||||||
|
|
||||||
|
// When defined, page size constants are fixed at compile time. When not
|
||||||
|
@@ -37,11 +62,18 @@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace pdfium {
|
||||||
|
+
|
||||||
|
+namespace base {
|
||||||
|
+// Forward declaration, implementation below
|
||||||
|
+PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
|
||||||
|
+PageAllocationGranularity();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
#if !defined(OS_APPLE)
|
||||||
|
|
||||||
|
-constexpr ALWAYS_INLINE int PageAllocationGranularityShift() {
|
||||||
|
+PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE int PageAllocationGranularityShift() {
|
||||||
|
#if defined(OS_WIN) || defined(ARCH_CPU_PPC64)
|
||||||
|
// Modern ppc64 systems support 4kB (shift = 12) and 64kB (shift = 16) page
|
||||||
|
// sizes. Since 64kB is the de facto standard on the platform and binaries
|
||||||
|
@@ -50,6 +82,15 @@ constexpr ALWAYS_INLINE int PageAllocationGranularityShift() {
|
||||||
|
return 16; // 64kB
|
||||||
|
#elif defined(_MIPS_ARCH_LOONGSON)
|
||||||
|
return 14; // 16kB
|
||||||
|
+#elif defined(OS_LINUX) && defined(ARCH_CPU_ARM64)
|
||||||
|
+ // arm64 supports 4kb (shift = 12), 16kb (shift = 14), and 64kb (shift = 16)
|
||||||
|
+ // page sizes. Retrieve from or initialize cache.
|
||||||
|
+ int shift = base::internal::page_characteristics.shift.load(std::memory_order_relaxed);
|
||||||
|
+ if (UNLIKELY(shift == 0)) {
|
||||||
|
+ shift = __builtin_ctz((int)base::PageAllocationGranularity());
|
||||||
|
+ base::internal::page_characteristics.shift.store(shift, std::memory_order_relaxed);
|
||||||
|
+ }
|
||||||
|
+ return shift;
|
||||||
|
#else
|
||||||
|
return 12; // 4kB
|
||||||
|
#endif
|
||||||
|
@@ -65,6 +106,15 @@ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
|
||||||
|
PageAllocationGranularity() {
|
||||||
|
#if defined(OS_APPLE)
|
||||||
|
return vm_page_size;
|
||||||
|
+#elif defined(OS_LINUX) && defined(ARCH_CPU_ARM64)
|
||||||
|
+ // arm64 supports 4kb, 16kb, and 64kb page sizes. Retrieve from or
|
||||||
|
+ // initialize cache.
|
||||||
|
+ int size = internal::page_characteristics.size.load(std::memory_order_relaxed);
|
||||||
|
+ if (UNLIKELY(size == 0)) {
|
||||||
|
+ size = getpagesize();
|
||||||
|
+ internal::page_characteristics.size.store(size, std::memory_order_relaxed);
|
||||||
|
+ }
|
||||||
|
+ return size;
|
||||||
|
#else
|
||||||
|
return 1ULL << PageAllocationGranularityShift();
|
||||||
|
#endif
|
||||||
|
diff --git a/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc.cc b/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc.cc
|
||||||
|
index 2e5e87fa7e6..89b9f6217a6 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc.cc
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc.cc
|
||||||
|
@@ -486,7 +486,7 @@ static size_t PartitionPurgePage(internal::PartitionPage* page, bool discard) {
|
||||||
|
#if defined(PAGE_ALLOCATOR_CONSTANTS_ARE_CONSTEXPR)
|
||||||
|
constexpr size_t kMaxSlotCount =
|
||||||
|
(PartitionPageSize() * kMaxPartitionPagesPerSlotSpan) / SystemPageSize();
|
||||||
|
-#elif defined(OS_APPLE)
|
||||||
|
+#elif defined(OS_APPLE) || (defined(OS_LINUX) && defined(ARCH_CPU_ARM64))
|
||||||
|
// It's better for slot_usage to be stack-allocated and fixed-size, which
|
||||||
|
// demands that its size be constexpr. On OS_APPLE, PartitionPageSize() is
|
||||||
|
// always SystemPageSize() << 2, so regardless of what the run time page size
|
||||||
|
diff --git a/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc_constants.h b/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc_constants.h
|
||||||
|
index 71d63ba4146..a6d83626741 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc_constants.h
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc_constants.h
|
||||||
|
@@ -50,10 +50,11 @@ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE int
|
||||||
|
PartitionPageShift() {
|
||||||
|
return 18; // 256 KiB
|
||||||
|
}
|
||||||
|
-#elif defined(OS_APPLE)
|
||||||
|
+#elif defined(OS_APPLE) || \
|
||||||
|
+ (defined(OS_LINUX) && defined(ARCH_CPU_ARM64))
|
||||||
|
PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE int
|
||||||
|
PartitionPageShift() {
|
||||||
|
- return vm_page_shift + 2;
|
||||||
|
+ return PageAllocationGranularityShift() + 2;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE int
|
||||||
|
--
|
||||||
|
2.38.1
|
||||||
|
|
||||||
17
qtwebengine-5.15.0-QT_DEPRECATED_VERSION.patch
Normal file
17
qtwebengine-5.15.0-QT_DEPRECATED_VERSION.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
diff -up qtwebengine-everywhere-src-5.15.5/src/webenginewidgets/api/qwebenginedownloaditem.h.QT_DEPRECATED_VERSION qtwebengine-everywhere-src-5.15.5/src/webenginewidgets/api/qwebenginedownloaditem.h
|
||||||
|
--- qtwebengine-everywhere-src-5.15.5/src/webenginewidgets/api/qwebenginedownloaditem.h.QT_DEPRECATED_VERSION 2021-06-24 07:34:27.991417071 -0500
|
||||||
|
+++ qtwebengine-everywhere-src-5.15.5/src/webenginewidgets/api/qwebenginedownloaditem.h 2021-06-24 07:36:28.996937357 -0500
|
||||||
|
@@ -120,9 +120,13 @@ public:
|
||||||
|
QString mimeType() const;
|
||||||
|
#if QT_DEPRECATED_SINCE(5, 14)
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||||
|
+#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);
|
||||||
|
#else
|
||||||
|
QT_DEPRECATED_X("Use downloadDirectory() and downloadFileName() instead")
|
||||||
16
qtwebengine-SIOCGSTAMP.patch
Normal file
16
qtwebengine-SIOCGSTAMP.patch
Normal file
@ -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);
|
||||||
35
qtwebengine-everywhere-5.15.5-use-python2.patch
Normal file
35
qtwebengine-everywhere-5.15.5-use-python2.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
diff --git a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
|
||||||
|
index 8af373102..b551c0fe2 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
|
||||||
|
@@ -83,7 +83,7 @@ def _MinifyJS(input_js):
|
||||||
|
|
||||||
|
with tempfile.NamedTemporaryFile() as _:
|
||||||
|
args = [
|
||||||
|
- 'python',
|
||||||
|
+ 'python2',
|
||||||
|
rjsmin_path
|
||||||
|
]
|
||||||
|
p = subprocess.Popen(args,
|
||||||
|
@@ -203,7 +203,7 @@ def _MinifyCSS(css_text):
|
||||||
|
os.path.join(py_vulcanize_path, 'third_party', 'rcssmin', 'rcssmin.py'))
|
||||||
|
|
||||||
|
with tempfile.NamedTemporaryFile() as _:
|
||||||
|
- rcssmin_args = ['python', rcssmin_path]
|
||||||
|
+ rcssmin_args = ['python2', rcssmin_path]
|
||||||
|
p = subprocess.Popen(rcssmin_args,
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
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))
|
||||||
24
qtwebengine-everywhere-5.15.8-libpipewire-0.3.patch
Normal file
24
qtwebengine-everywhere-5.15.8-libpipewire-0.3.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
diff -up qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn.libpipewire-0.3 qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn
|
||||||
|
--- qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn.libpipewire-0.3 2021-12-15 10:09:27.000000000 -0600
|
||||||
|
+++ qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn 2022-02-18 09:43:31.402923179 -0600
|
||||||
|
@@ -202,7 +202,7 @@ if (is_linux || is_chromeos) {
|
||||||
|
|
||||||
|
if (rtc_link_pipewire) {
|
||||||
|
pkg_config("pipewire") {
|
||||||
|
- packages = [ "libpipewire-0.2" ]
|
||||||
|
+ packages = [ "libpipewire-0.3" ]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
# When libpipewire is not directly linked, use stubs to allow for dlopening of
|
||||||
|
diff -up qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/webrtc.gni.libpipewire-0.3 qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||||
|
--- qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/webrtc.gni.libpipewire-0.3 2021-12-15 10:09:27.000000000 -0600
|
||||||
|
+++ qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/webrtc.gni 2022-02-18 12:35:13.895009491 -0600
|
||||||
|
@@ -115,7 +115,7 @@ declare_args() {
|
||||||
|
rtc_use_pipewire = is_desktop_linux && use_sysroot
|
||||||
|
|
||||||
|
# Set this to link PipeWire directly instead of using the dlopen.
|
||||||
|
- rtc_link_pipewire = false
|
||||||
|
+ rtc_link_pipewire = true
|
||||||
|
|
||||||
|
# Enable to use the Mozilla internal settings.
|
||||||
|
build_with_mozilla = false
|
||||||
@ -1,12 +0,0 @@
|
|||||||
diff -ur qtwebengine-everywhere-src-5.10.0/src/buildtools/gn.pro qtwebengine-everywhere-src-5.10.0-gn-bootstrap-verbose/src/buildtools/gn.pro
|
|
||||||
--- qtwebengine-everywhere-src-5.10.0/src/buildtools/gn.pro 2017-11-29 09:42:29.000000000 +0100
|
|
||||||
+++ qtwebengine-everywhere-src-5.10.0-gn-bootstrap-verbose/src/buildtools/gn.pro 2017-12-25 18:51:46.953799125 +0100
|
|
||||||
@@ -25,7 +25,7 @@
|
|
||||||
gn_args = $$replace(gn_args, "use_incremental_linking=true ", "")
|
|
||||||
}
|
|
||||||
|
|
||||||
- gn_configure = $$system_quote($$gn_bootstrap) --shadow --gn-gen-args=$$gn_args $$ninja_path
|
|
||||||
+ gn_configure = $$system_quote($$gn_bootstrap) --verbose --shadow --gn-gen-args=$$gn_args $$ninja_path
|
|
||||||
!system("cd $$system_quote($$system_path($$dirname(out))) && $$pythonPathForSystem() $$gn_configure") {
|
|
||||||
error("GN build error!")
|
|
||||||
}
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
diff -ur qtwebengine-everywhere-src-5.10.0/src/core/config/linux.pri qtwebengine-everywhere-src-5.10.0-linux-pri/src/core/config/linux.pri
|
|
||||||
--- qtwebengine-everywhere-src-5.10.0/src/core/config/linux.pri 2017-11-29 09:42:29.000000000 +0100
|
|
||||||
+++ qtwebengine-everywhere-src-5.10.0-linux-pri/src/core/config/linux.pri 2017-12-25 12:07:40.262411459 +0100
|
|
||||||
@@ -157,3 +157,19 @@
|
|
||||||
#qtConfig(webengine-system-jsoncpp): gn_args += use_system_jsoncpp=true
|
|
||||||
#qtConfig(webengine-system-libsrtp: gn_args += use_system_libsrtp=true
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+# 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 python $$R_G_F_PY $$R_G_F_PY_ARGS$${EOL}")
|
|
||||||
+!system("python $$R_G_F_PY $$R_G_F_PY_ARGS"): error("-- unbundling failed")
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
diff -up qtwebengine-everywhere-src-5.10.1/src/3rdparty/chromium/mojo/public/c/system/macros.h.gcc8-alignof qtwebengine-everywhere-src-5.10.1/src/3rdparty/chromium/mojo/public/c/system/macros.h
|
|
||||||
--- qtwebengine-everywhere-src-5.10.1/src/3rdparty/chromium/mojo/public/c/system/macros.h.gcc8-alignof 2018-05-15 14:58:46.448912634 -0400
|
|
||||||
+++ qtwebengine-everywhere-src-5.10.1/src/3rdparty/chromium/mojo/public/c/system/macros.h 2018-05-15 14:58:52.041784613 -0400
|
|
||||||
@@ -18,7 +18,13 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Like the C++11 |alignof| operator.
|
|
||||||
-#if __cplusplus >= 201103L
|
|
||||||
+#if defined(__GNUC__) && __GNUC__ >= 8
|
|
||||||
+// GCC 8 has changed the alignof operator to return the minimal alignment
|
|
||||||
+// required by the target ABI, instead of the preferred alignment.
|
|
||||||
+// This means that on 32-bit x86, it will return 4 instead of 8.
|
|
||||||
+// Use __alignof__ instead to avoid this.
|
|
||||||
+#define MOJO_ALIGNOF(type) __alignof__(type)
|
|
||||||
+#elif __cplusplus >= 201103L
|
|
||||||
#define MOJO_ALIGNOF(type) alignof(type)
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
#define MOJO_ALIGNOF(type) __alignof__(type)
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
diff -up qtwebengine-everywhere-src-5.11.0/src/core/web_engine_library_info.cpp.no-icudtl-dat qtwebengine-everywhere-src-5.11.0/src/core/web_engine_library_info.cpp
|
|
||||||
--- qtwebengine-everywhere-src-5.11.0/src/core/web_engine_library_info.cpp.no-icudtl-dat 2018-06-14 09:23:48.931195271 -0500
|
|
||||||
+++ qtwebengine-everywhere-src-5.11.0/src/core/web_engine_library_info.cpp 2018-06-14 09:27:26.248014325 -0500
|
|
||||||
@@ -258,28 +258,12 @@ QString dictionariesPath()
|
|
||||||
|
|
||||||
QString icuDataPath()
|
|
||||||
{
|
|
||||||
- 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("/icudtl.dat"))) {
|
|
||||||
- qWarning("Qt WebEngine ICU data not found at %s. Trying parent directory...", qPrintable(potentialResourcesPath));
|
|
||||||
- potentialResourcesPath = QLibraryInfo::location(QLibraryInfo::DataPath);
|
|
||||||
- }
|
|
||||||
- if (!QFileInfo::exists(potentialResourcesPath % QLatin1String("/icudtl.dat"))) {
|
|
||||||
- qWarning("Qt WebEngine ICU data not found at %s. Trying application directory...", qPrintable(potentialResourcesPath));
|
|
||||||
- potentialResourcesPath = QCoreApplication::applicationDirPath();
|
|
||||||
- }
|
|
||||||
- if (!QFileInfo::exists(potentialResourcesPath % QLatin1String("/icudtl.dat"))) {
|
|
||||||
- qWarning("Qt WebEngine ICU data not found at %s. Trying fallback directory... The application MAY NOT work.", qPrintable(potentialResourcesPath));
|
|
||||||
- potentialResourcesPath = fallbackDir();
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
|
|
||||||
return potentialResourcesPath;
|
|
||||||
}
|
|
||||||
@ -1,25 +0,0 @@
|
|||||||
From 2b1230ac17f65fab59d2ad71e3b2b27a7071f125 Mon Sep 17 00:00:00 2001
|
|
||||||
From: maminjie <maminjie1@huawei.com>
|
|
||||||
Date: Thu, 23 Jul 2020 18:11:45 +0800
|
|
||||||
Subject: [PATCH] fix U16_NEXT calls
|
|
||||||
|
|
||||||
---
|
|
||||||
.../chromium/third_party/WebKit/Source/core/dom/Document.cpp | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/core/dom/Document.cpp b/src/3rdparty/chromium/third_party/WebKit/Source/core/dom/Document.cpp
|
|
||||||
index 7a4260bd3..004ccfd10 100644
|
|
||||||
--- a/src/3rdparty/chromium/third_party/WebKit/Source/core/dom/Document.cpp
|
|
||||||
+++ b/src/3rdparty/chromium/third_party/WebKit/Source/core/dom/Document.cpp
|
|
||||||
@@ -5415,7 +5415,7 @@ static ParseQualifiedNameResult ParseQualifiedNameInternal(
|
|
||||||
|
|
||||||
for (unsigned i = 0; i < length;) {
|
|
||||||
UChar32 c;
|
|
||||||
- U16_NEXT(characters, i, length, c)
|
|
||||||
+ U16_NEXT(characters, i, length, c);
|
|
||||||
if (c == ':') {
|
|
||||||
if (saw_colon)
|
|
||||||
return ParseQualifiedNameResult(kQNMultipleColons);
|
|
||||||
--
|
|
||||||
2.23.0
|
|
||||||
|
|
||||||
12
qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
Normal file
12
qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
Normal file
@ -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 <asm-generic/unistd.h>
|
||||||
|
|
||||||
|
#if !defined(__NR_io_setup)
|
||||||
Binary file not shown.
12
qtwebengine-everywhere-src-5.15.5-TRUE.patch
Normal file
12
qtwebengine-everywhere-src-5.15.5-TRUE.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/libxml/src/encoding.c.TRUE qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/libxml/src/encoding.c
|
||||||
|
--- qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/libxml/src/encoding.c.TRUE 2021-05-28 07:05:45.000000000 -0500
|
||||||
|
+++ qtwebengine-everywhere-src-5.15.5/src/3rdparty/chromium/third_party/libxml/src/encoding.c 2021-06-24 09:44:41.592468805 -0500
|
||||||
|
@@ -2004,7 +2004,7 @@ xmlEncOutputChunk(xmlCharEncodingHandler
|
||||||
|
#ifdef LIBXML_ICU_ENABLED
|
||||||
|
else if (handler->uconv_out != NULL) {
|
||||||
|
ret = xmlUconvWrapper(handler->uconv_out, 0, out, outlen, in, inlen,
|
||||||
|
- TRUE);
|
||||||
|
+ 1);
|
||||||
|
}
|
||||||
|
#endif /* LIBXML_ICU_ENABLED */
|
||||||
|
else {
|
||||||
@ -1,54 +0,0 @@
|
|||||||
From 0a041a9441219398a668a74f5ae0f5b698299237 Mon Sep 17 00:00:00 2001
|
|
||||||
Subject: [PATCH] fix pluse stubs
|
|
||||||
|
|
||||||
---
|
|
||||||
src/3rdparty/chromium/media/audio/pulse/pulse.sigs | 12 ++++++------
|
|
||||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/3rdparty/chromium/media/audio/pulse/pulse.sigs b/src/3rdparty/chromium/media/audio/pulse/pulse.sigs
|
|
||||||
index 522efcb..bb15185 100644
|
|
||||||
--- a/src/3rdparty/chromium/media/audio/pulse/pulse.sigs
|
|
||||||
+++ b/src/3rdparty/chromium/media/audio/pulse/pulse.sigs
|
|
||||||
@@ -23,11 +23,11 @@ pa_operation* pa_context_get_server_info(pa_context* c, pa_server_info_cb_t cb,
|
|
||||||
pa_operation* pa_context_get_source_info_by_index(pa_context* c, uint32_t idx, pa_source_info_cb_t cb, void* userdata);
|
|
||||||
pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
|
|
||||||
pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
|
|
||||||
-pa_context_state_t pa_context_get_state(pa_context* c);
|
|
||||||
+pa_context_state_t pa_context_get_state(const pa_context* c);
|
|
||||||
pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
|
|
||||||
pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
|
|
||||||
void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
|
|
||||||
-pa_operation_state_t pa_operation_get_state(pa_operation* o);
|
|
||||||
+pa_operation_state_t pa_operation_get_state(const pa_operation* o);
|
|
||||||
void pa_context_unref(pa_context* c);
|
|
||||||
void pa_operation_unref(pa_operation* o);
|
|
||||||
int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes);
|
|
||||||
@@ -37,21 +37,21 @@ pa_operation* pa_stream_cork(pa_stream* s, int b, pa_stream_success_cb_t cb, voi
|
|
||||||
int pa_stream_disconnect(pa_stream* s);
|
|
||||||
int pa_stream_drop(pa_stream *p);
|
|
||||||
pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata);
|
|
||||||
-uint32_t pa_stream_get_device_index(pa_stream* s);
|
|
||||||
+uint32_t pa_stream_get_device_index(const pa_stream* s);
|
|
||||||
int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative);
|
|
||||||
-pa_stream_state_t pa_stream_get_state(pa_stream* p);
|
|
||||||
+pa_stream_state_t pa_stream_get_state(const pa_stream* p);
|
|
||||||
pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map);
|
|
||||||
pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p);
|
|
||||||
pa_proplist* pa_proplist_new(void);
|
|
||||||
void pa_proplist_free(pa_proplist* p);
|
|
||||||
int pa_proplist_sets(pa_proplist* p, const char* key, const char* value);
|
|
||||||
-size_t pa_stream_readable_size(pa_stream *p);
|
|
||||||
+size_t pa_stream_readable_size(const pa_stream *p);
|
|
||||||
int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes);
|
|
||||||
void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata);
|
|
||||||
void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata);
|
|
||||||
int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek);
|
|
||||||
void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata);
|
|
||||||
void pa_stream_unref(pa_stream* s);
|
|
||||||
-int pa_context_errno(pa_context *c);
|
|
||||||
+int pa_context_errno(const pa_context *c);
|
|
||||||
const char* pa_strerror(int error);
|
|
||||||
pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v);
|
|
||||||
--
|
|
||||||
2.23.0
|
|
||||||
|
|
||||||
11
qtwebengine-opensource-src-5.12.4-fix-extractcflag.patch
Normal file
11
qtwebengine-opensource-src-5.12.4-fix-extractcflag.patch
Normal file
@ -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)
|
||||||
@ -1,12 +0,0 @@
|
|||||||
diff -ur qtwebengine-opensource-src-5.9.0/mkspecs/features/functions.prf qtwebengine-opensource-src-5.9.0-fix-extractcflag/mkspecs/features/functions.prf
|
|
||||||
--- qtwebengine-opensource-src-5.9.0/mkspecs/features/functions.prf 2017-05-19 06:22:04.000000000 +0200
|
|
||||||
+++ qtwebengine-opensource-src-5.9.0-fix-extractcflag/mkspecs/features/functions.prf 2017-06-08 00:36:16.303520106 +0200
|
|
||||||
@@ -302,7 +302,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
defineReplace(extractCFlag) {
|
|
||||||
- CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS
|
|
||||||
+ CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS $$QMAKE_CFLAGS_RELEASE
|
|
||||||
OPTION = $$find(CFLAGS, $$1)
|
|
||||||
OPTION = $$split(OPTION, =)
|
|
||||||
return ($$member(OPTION, 1))
|
|
||||||
15
qtwebengine-opensource-src-5.9.0-no-neon.patch
Normal file
15
qtwebengine-opensource-src-5.9.0-no-neon.patch
Normal file
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -1,92 +0,0 @@
|
|||||||
diff -ur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn qtwebengine-opensource-src-5.9.0-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn
|
|
||||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
|
||||||
+++ qtwebengine-opensource-src-5.9.0-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn 2017-06-10 02:41:10.317340598 +0200
|
|
||||||
@@ -196,9 +196,6 @@
|
|
||||||
]
|
|
||||||
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 -ur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c qtwebengine-opensource-src-5.9.0-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c
|
|
||||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c 2017-05-18 16:51:44.000000000 +0200
|
|
||||||
+++ qtwebengine-opensource-src-5.9.0-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c 2017-06-10 02:38:30.593809570 +0200
|
|
||||||
@@ -9,13 +9,57 @@
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
-#include <cpu-features.h>
|
|
||||||
-
|
|
||||||
-#include "android/log.h"
|
|
||||||
#include "dl/sp/api/omxSP.h"
|
|
||||||
|
|
||||||
+// For ArmCpuCaps()
|
|
||||||
+#include <stdio.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+
|
|
||||||
+// 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 @@
|
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
diff -ur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn qtwebengine-opensource-src-5.9.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn
|
|
||||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
|
||||||
+++ qtwebengine-opensource-src-5.9.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2017-06-10 13:20:14.959007488 +0200
|
|
||||||
@@ -93,9 +93,7 @@
|
|
||||||
if (is_linux) {
|
|
||||||
defines += [ "WEBRTC_THREAD_RR" ]
|
|
||||||
|
|
||||||
- if (!build_with_chromium) {
|
|
||||||
- deps += [ ":cpu_features_linux" ]
|
|
||||||
- }
|
|
||||||
+ deps += [ ":cpu_features_linux" ]
|
|
||||||
|
|
||||||
libs += [ "rt" ]
|
|
||||||
}
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
diff -ur qtwebengine-opensource-src-5.9.0/src/core/config/linux.pri qtwebengine-opensource-src-5.9.0-arm-fpu-fix/src/core/config/linux.pri
|
|
||||||
--- qtwebengine-opensource-src-5.9.0/src/core/config/linux.pri 2017-05-19 06:22:04.000000000 +0200
|
|
||||||
+++ qtwebengine-opensource-src-5.9.0-arm-fpu-fix/src/core/config/linux.pri 2017-06-13 14:51:26.986633933 +0200
|
|
||||||
@@ -64,6 +64,7 @@
|
|
||||||
gn_args += arm_use_neon=true
|
|
||||||
} else {
|
|
||||||
MFPU = $$extractCFlag("-mfpu=.*")
|
|
||||||
+ !isEmpty(MFPU): gn_args += arm_fpu=\"$$MFPU\"
|
|
||||||
!isEmpty(MFPU):contains(MFPU, ".*neon.*") {
|
|
||||||
gn_args += arm_use_neon=true
|
|
||||||
} else {
|
|
||||||
15
qtwebengine-release.sh
Executable file
15
qtwebengine-release.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -x
|
||||||
|
VERSION=5.15.8
|
||||||
|
CHROMIUMHASH=`wget https://code.qt.io/cgit/qt/qtwebengine.git/tree/src/3rdparty?h=$VERSION -q --content-on-error -O - | grep "Bad object name: " | sed 's/^.*Bad object name: \([0-9a-f]\{40\}\).*$/\1/g'`
|
||||||
|
rm -rf qtwebengine-$VERSION qtwebengine-$VERSION.tar.gz qtwebengine-chromium-$CHROMIUMHASH qtwebengine-chromium-$CHROMIUMHASH.tar.gz qtwebengine-everywhere-src-$VERSION
|
||||||
|
wget https://github.com/qt/qtwebengine/archive/$VERSION.tar.gz -O qtwebengine-$VERSION.tar.gz || exit $?
|
||||||
|
tar xzf qtwebengine-$VERSION.tar.gz || exit $?
|
||||||
|
wget https://github.com/qt/qtwebengine-chromium/archive/$CHROMIUMHASH.tar.gz -O qtwebengine-chromium-$CHROMIUMHASH.tar.gz || exit $?
|
||||||
|
tar xzf qtwebengine-chromium-$CHROMIUMHASH.tar.gz || exit $?
|
||||||
|
mv qtwebengine-$VERSION qtwebengine-everywhere-src-$VERSION || exit $?
|
||||||
|
(cd qtwebengine-everywhere-src-$VERSION ; syncqt.pl -version $VERSION ) || exit $?
|
||||||
|
rmdir qtwebengine-everywhere-src-$VERSION/src/3rdparty || exit $?
|
||||||
|
mv qtwebengine-chromium-$CHROMIUMHASH qtwebengine-everywhere-src-$VERSION/src/3rdparty || exit $?
|
||||||
|
XZ_OPT="-9 -T2" tar cJf qtwebengine-everywhere-src-$VERSION.tar.xz qtwebengine-everywhere-src-$VERSION || exit $?
|
||||||
|
rm -rf qtwebengine-$VERSION qtwebengine-$VERSION.tar.gz qtwebengine-chromium-$CHROMIUMHASH qtwebengine-chromium-$CHROMIUMHASH.tar.gz qtwebengine-everywhere-src-$VERSION
|
||||||
15
qtwebengine-skia-missing-includes.patch
Normal file
15
qtwebengine-skia-missing-includes.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
diff --git a/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp b/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
|
||||||
|
index 7260365..503ed08 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
|
||||||
|
@@ -8,6 +8,10 @@
|
||||||
|
|
||||||
|
#include "include/utils/SkParse.h"
|
||||||
|
|
||||||
|
+#include <string.h>
|
||||||
|
+#include <algorithm>
|
||||||
|
+#include <iterator>
|
||||||
|
+
|
||||||
|
static constexpr const char* gColorNames[] = {
|
||||||
|
"aliceblue",
|
||||||
|
"antiquewhite",
|
||||||
695
test
Normal file
695
test
Normal file
@ -0,0 +1,695 @@
|
|||||||
|
%global qt_module qtwebengine
|
||||||
|
|
||||||
|
%global _hardened_build 1
|
||||||
|
|
||||||
|
# package-notes causes FTBFS (#2043178)
|
||||||
|
%undefine _package_note_file
|
||||||
|
|
||||||
|
# define to build docs, may need to undef this for bootstrapping
|
||||||
|
# where qt5-qttools (qt5-doctools) builds are not yet available
|
||||||
|
%global docs 0
|
||||||
|
|
||||||
|
#%if 0%{?fedora}
|
||||||
|
# need libvpx >= 1.8.0 (need commit 297dfd869609d7c3c5cd5faa3ebc7b43a394434e)
|
||||||
|
%global use_system_libvpx 0
|
||||||
|
# For screen sharing on Wayland, currently Fedora only thing - no epel
|
||||||
|
#global pipewire 1
|
||||||
|
#%endif
|
||||||
|
#%if 0%{?fedora} > 30 || 0%{?epel} > 7
|
||||||
|
# need libwebp >= 0.6.0
|
||||||
|
%global use_system_libwebp 1
|
||||||
|
%global use_system_jsoncpp 1
|
||||||
|
#%if 0%{?rhel} && 0%{?rhel} == 9
|
||||||
|
#%global use_system_re2 0
|
||||||
|
#%else
|
||||||
|
#%global use_system_re2 1
|
||||||
|
#%endif
|
||||||
|
#%endif
|
||||||
|
|
||||||
|
#%if 0%{?fedora} > 32
|
||||||
|
# need libicu >= 65, only currently available on f33+
|
||||||
|
%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.10
|
||||||
|
Release: 1
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
|
||||||
|
# ./qtwebengine-release.sh
|
||||||
|
# ./clean_qtwebengine.sh 5.15.1
|
||||||
|
Source0: qtwebengine-everywhere-src-%{version}-clean.tar.xz
|
||||||
|
# release script used above
|
||||||
|
Source1: qtwebengine-release.sh
|
||||||
|
# cleanup scripts used above
|
||||||
|
Source2: clean_qtwebengine.sh
|
||||||
|
Source3: clean_ffmpeg.sh
|
||||||
|
Source4: get_free_ffmpeg_source_files.py
|
||||||
|
# macros
|
||||||
|
Source10: macros.qt5-qtwebengine
|
||||||
|
|
||||||
|
# pulseaudio headers
|
||||||
|
Source20: pulseaudio-12.2-headers.tar.gz
|
||||||
|
|
||||||
|
## Python2 Sources
|
||||||
|
## src.rpm is Fedora spec with tests and tkinter turned off
|
||||||
|
## binary rpms have been built on epel9
|
||||||
|
Source100: python2.7-2.7.18-19.el9.1.src.rpm
|
||||||
|
Source101: python2.7-2.7.18-19.el9.1.aarch64.rpm
|
||||||
|
Source102: python2.7-2.7.18-19.el9.1.x86_64.rpm
|
||||||
|
|
||||||
|
# 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.15.0-QT_DEPRECATED_VERSION.patch
|
||||||
|
# gcc-12 FTBFS "use of deleted function"
|
||||||
|
Patch6: chromium-angle-nullptr.patch
|
||||||
|
Patch7: chromium-hunspell-nullptr.patch
|
||||||
|
Patch8: qtwebengine-everywhere-5.15.8-libpipewire-0.3.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.15.5-use-python2.patch
|
||||||
|
# FTBFS TRUE/FALSE undeclared
|
||||||
|
Patch31: qtwebengine-everywhere-src-5.15.5-TRUE.patch
|
||||||
|
Patch32: qtwebengine-skia-missing-includes.patch
|
||||||
|
# Fix QtWebEngine on Apple M1 hardware (patch from Arch Linux ARM)
|
||||||
|
## Cf. https://bugreports.qt.io/browse/QTBUG-108674
|
||||||
|
## Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2144200
|
||||||
|
## From: https://chromium-review.googlesource.com/c/chromium/src/+/3545665
|
||||||
|
Patch33: qtwebengine-5.15-Backport-of-16k-page-support-on-aarch64.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: make
|
||||||
|
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 >= 65
|
||||||
|
%endif
|
||||||
|
BuildRequires: libjpeg-devel
|
||||||
|
BuildRequires: nodejs
|
||||||
|
#%if 0%{?use_system_re2}
|
||||||
|
#BuildRequires: re2-devel
|
||||||
|
#%endif
|
||||||
|
%if 0%{?pipewire}
|
||||||
|
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||||
|
%endif
|
||||||
|
BuildRequires: snappy-devel
|
||||||
|
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(libevent)
|
||||||
|
BuildRequires: pkgconfig(poppler-cpp)
|
||||||
|
BuildRequires: pkgconfig(zlib)
|
||||||
|
#%if 0%{?fedora} && 0%{?fedora} < 30
|
||||||
|
#BuildRequires: pkgconfig(minizip)
|
||||||
|
#%else
|
||||||
|
BuildConflicts: minizip-devel
|
||||||
|
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)
|
||||||
|
BuildRequires: pkgconfig(xkbfile)
|
||||||
|
## https://bugreports.qt.io/browse/QTBUG-59094
|
||||||
|
## requires libxml2 built with icu support
|
||||||
|
#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
|
||||||
|
#%if 0%{?rhel} && 0%{?rhel} == 9
|
||||||
|
BuildRequires: python3
|
||||||
|
#%else
|
||||||
|
#BuildRequires: %{__python2}
|
||||||
|
#%endif
|
||||||
|
#%else
|
||||||
|
#BuildRequires: python2
|
||||||
|
#BuildRequires: python2-rpm-macros
|
||||||
|
#%endif
|
||||||
|
%if 0%{?use_system_libvpx}
|
||||||
|
BuildRequires: pkgconfig(vpx) >= 1.8.0
|
||||||
|
%endif
|
||||||
|
# For python on EPEL9, These get pulled in via python2
|
||||||
|
BuildRequires: libtirpc
|
||||||
|
BuildRequires: libnsl2
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
Provides: bundled(chromium) = 87.0.4280.144
|
||||||
|
|
||||||
|
# Bundled in src/3rdparty/chromium/third_party:
|
||||||
|
# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers,
|
||||||
|
# except where specified otherwise.
|
||||||
|
# Note that many of those libraries are git snapshots, so version numbers are
|
||||||
|
# necessarily approximate.
|
||||||
|
# Also note that the list is probably not complete anymore due to Chromium
|
||||||
|
# adding more and more bundled stuff at every release, some of which (but not
|
||||||
|
# all) is actually built in QtWebEngine.
|
||||||
|
# src/3rdparty/chromium/third_party/angle/doc/ChoosingANGLEBranch.md points to
|
||||||
|
# http://omahaproxy.appspot.com/deps.json?version=87.0.4280.144 chromium_branch
|
||||||
|
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) = 4.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.22
|
||||||
|
# bundled as "libjingle_xmpp"
|
||||||
|
Provides: bundled(libjingle)
|
||||||
|
# see src/3rdparty/chromium/third_party/libsrtp/CHANGES for the version number
|
||||||
|
Provides: bundled(libsrtp) = 2.2.0
|
||||||
|
%if !0%{?use_system_libvpx}
|
||||||
|
Provides: bundled(libvpx) = 1.8.2
|
||||||
|
%endif
|
||||||
|
%if !0%{?use_system_libwebp}
|
||||||
|
Provides: bundled(libwebp) = 1.1.0-28-g55a080e5
|
||||||
|
%endif
|
||||||
|
# bundled as "libxml"
|
||||||
|
# see src/3rdparty/chromium/third_party/libxml/linux/include/libxml/xmlversion.h
|
||||||
|
# post 2.9.9 snapshot?, 2.9.9-0b3c64d9f2f3e9ce1a98d8f19ee7a763c87e27d5
|
||||||
|
Provides: bundled(libxml2) = 2.9.10
|
||||||
|
# see src/3rdparty/chromium/third_party/libxslt/linux/config.h for version
|
||||||
|
Provides: bundled(libxslt) = 1.1.34
|
||||||
|
Provides: bundled(libXNVCtrl) = 302.17
|
||||||
|
Provides: bundled(libyuv) = 1768
|
||||||
|
Provides: bundled(modp_b64)
|
||||||
|
Provides: bundled(ots)
|
||||||
|
Provides: bundled(re2)
|
||||||
|
# see src/3rdparty/chromium/third_party/protobuf/CHANGES.txt for the version
|
||||||
|
Provides: bundled(protobuf) = 3.9.0
|
||||||
|
Provides: bundled(qcms) = 4
|
||||||
|
Provides: bundled(skia)
|
||||||
|
# bundled as "smhasher"
|
||||||
|
Provides: bundled(SMHasher) = 0-147
|
||||||
|
Provides: bundled(sqlite) = 3.35.5
|
||||||
|
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(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) = 8.7.220.35
|
||||||
|
# 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%{?use_system_icu}
|
||||||
|
# Those versions were built with bundled ICU and want the data file.
|
||||||
|
Conflicts: qt5-qtwebengine-freeworld < 5.15.2-2
|
||||||
|
%endif
|
||||||
|
|
||||||
|
#%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
|
||||||
|
|
||||||
|
#%if 0%{?rhel} && 0%{?rhel} == 9
|
||||||
|
# Install python2 from rpms
|
||||||
|
mkdir python2
|
||||||
|
pushd python2
|
||||||
|
%ifarch aarch64
|
||||||
|
rpm2cpio %{SOURCE101} | cpio -idm
|
||||||
|
%endif
|
||||||
|
%ifarch x86_64
|
||||||
|
rpm2cpio %{SOURCE102} | cpio -idm
|
||||||
|
%endif
|
||||||
|
popd
|
||||||
|
#%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
|
||||||
|
%patch6 -p1 -b .angle_nullptr
|
||||||
|
%patch7 -p1 -b .hunspell_nullptr
|
||||||
|
#if 0%{?pipewire}
|
||||||
|
%patch8 -p1 -b .libpipewire-0.3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
## upstream patches
|
||||||
|
%patch24 -p1 -b .aarch64-new-stat
|
||||||
|
%patch26 -p1 -b .use-python2
|
||||||
|
%patch31 -p1 -b .TRUE
|
||||||
|
%patch32 -p1 -b .skia-missing-includes
|
||||||
|
%patch33 -p1 -b .aarch64-16kb-support
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
%if 0%{?docs}
|
||||||
|
# generate qtwebengine-3rdparty.qdoc, it is missing from the tarball
|
||||||
|
pushd src/3rdparty
|
||||||
|
%{__python3} 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
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# copy the Chromium license so it is installed with the appropriate name
|
||||||
|
cp -p src/3rdparty/chromium/LICENSE LICENSE.Chromium
|
||||||
|
|
||||||
|
# consider doing this as part of the tarball creation step instead? rdieter
|
||||||
|
# fix/workaround
|
||||||
|
# fatal error: QtWebEngineCore/qtwebenginecoreglobal.h: No such file or directory
|
||||||
|
if [ ! -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h" ]; then
|
||||||
|
%_qt5_bindir/syncqt.pl -version %{version}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# abort if this doesn't get created by syncqt.pl
|
||||||
|
test -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h"
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
#%if 0%{?rhel} == 7
|
||||||
|
#. /opt/rh/devtoolset-7/enable
|
||||||
|
#%endif
|
||||||
|
|
||||||
|
# python2 path
|
||||||
|
export PATH=$(pwd)/python2/usr/bin:$PATH
|
||||||
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/python2/usr/lib64
|
||||||
|
|
||||||
|
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" \
|
||||||
|
%{?pipewire:QMAKE_EXTRA_ARGS+="-webengine-webrtc-pipewire"} \
|
||||||
|
.
|
||||||
|
|
||||||
|
# avoid %%make_build for now, the -O flag buffers output from intermediate build steps done via ninja
|
||||||
|
make
|
||||||
|
|
||||||
|
%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
|
||||||
|
|
||||||
|
## .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
|
||||||
|
|
||||||
|
#%if 0%{?fedora} > 35 || 0%{?epel} > 9
|
||||||
|
%filetriggerin -- %{_datadir}/hunspell
|
||||||
|
#%else
|
||||||
|
#%filetriggerin -- %{_datadir}/myspell
|
||||||
|
#%endif
|
||||||
|
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.*
|
||||||
|
%if 0%{?docs}
|
||||||
|
%license src/webengine/doc/src/qtwebengine-3rdparty.qdoc
|
||||||
|
%endif
|
||||||
|
%{_qt5_libdir}/libQt5*.so.*
|
||||||
|
%{_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}/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
|
||||||
|
* Fri Dec 16 2022 peijiankang <peijiankang@kylinos.cn> -5.15.10-1
|
||||||
|
- update upstream version to 5.15.10
|
||||||
|
|
||||||
|
* Fri Jul 24 2020 maminjie <maminjie1@huawei.com> -5.11.1-10
|
||||||
|
- Fix the build error for U16_NEXT calls
|
||||||
|
|
||||||
|
* Sun Jun 28 2020 huanghaitao <huanghaitao8@huawei.com> -5.11.1-9
|
||||||
|
- Fix the build errors with conflicting declaration of C
|
||||||
|
|
||||||
|
* Sat Jun 20 2020 huanghaitao <huanghaitao8@huawei.com> -5.11.1-8
|
||||||
|
- Solved the unresolved problem
|
||||||
|
|
||||||
|
* Wed Mar 18 2020 gulining <gulining1@huawei.com> - 5.11.1-7
|
||||||
|
- Fix build error
|
||||||
|
|
||||||
|
* Wed Mar 18 2020 yanglijin <yanglijin@huawei.com> - 5.11.1-6
|
||||||
|
- Remove help package
|
||||||
|
|
||||||
|
* Fri Mar 6 2020 Ling Yang <lingyang2@huawei.com> - 5.11.1-5
|
||||||
|
- Package Init
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user