diff --git a/.gitignore b/.gitignore index e69de29..9438a84 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/qtwebengine-opensource-src-5.6.0-beta-clean.tar.xz diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh new file mode 100755 index 0000000..9d784cf --- /dev/null +++ b/clean_ffmpeg.sh @@ -0,0 +1,244 @@ +#!/bin/bash +# Copyright 2013 Tomas Popela +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +where=`pwd` + +generated_files=`./process_ffmpeg_gyp.py $1` +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 + +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/atomic_gcc.h \ + libavutil/attributes.h \ + libavutil/audio_fifo.h \ + libavutil/avassert.h \ + libavutil/avutil.h \ + libavutil/bswap.h \ + libavutil/buffer_internal.h \ + libavutil/common.h \ + libavutil/colorspace.h \ + libavutil/cpu_internal.h \ + libavutil/cpu.h \ + libavutil/dynarray.h \ + libavutil/internal.h \ + libavutil/intfloat.h \ + libavutil/intreadwrite.h \ + libavutil/libm.h \ + libavutil/lls.h \ + libavutil/lzo.h \ + libavutil/macros.h \ + libavutil/old_pix_fmts.h \ + libavutil/pixfmt.h \ + libavutil/replaygain.h \ + libavutil/softfloat_tables.h \ + libavutil/thread.h \ + libavutil/timer.h \ + libavutil/timestamp.h \ + libavutil/time_internal.h \ + libavutil/version.h \ + libavutil/x86_cpu.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/avcodec.h \ + libavcodec/blockdsp.h \ + libavcodec/bytestream.h \ + libavcodec/dct.h \ + libavcodec/dsputil.h \ + libavcodec/dv_profile_internal.h \ + libavcodec/error_resilience.h \ + libavcodec/fdctdsp.h \ + libavcodec/flac.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/idctdsp.h \ + libavcodec/internal.h \ + libavcodec/mathops.h \ + libavcodec/me_cmp.h \ + libavcodec/motion_est.h \ + libavcodec/mpegpicture.h \ + libavcodec/mpegutils.h \ + libavcodec/mpegvideo.h \ + libavcodec/mpegvideodsp.h \ + libavcodec/mpegvideoencdsp.h \ + libavcodec/old_codec_ids.h \ + libavcodec/options_table.h \ + libavcodec/pcm_tablegen.h \ + libavcodec/pel_template.c \ + libavcodec/pixblockdsp.h \ + libavcodec/pixels.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/version.h \ + libavcodec/videodsp.h \ + libavcodec/vorbis_parser_internal.h \ + libavcodec/vp3data.h \ + libavcodec/vp3dsp.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/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/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/fft_template.c \ + libavcodec/h264pred_template.c \ + libavcodec/hpel_template.c \ + libavcodec/hpeldsp_template.c \ + libavcodec/mdct_template.c \ + libavcodec/videodsp_template.c \ + libavcodec/h264pred.c \ + libavcodec/hpeldsp.c \ + libavcodec/videodsp.c \ + libavcodec/vp3.c \ + libavcodec/vp3_parser.c \ + libavcodec/vp3dsp.c \ + libavcodec/vp56rac.c \ + libavcodec/vp8.c \ + libavcodec/vp8_parser.c \ + libavcodec/vp8dsp.c \ + chromium/ffmpeg_stub_headers.fragment \ + chromium/ffmpegsumo.sigs" + +other_files=" Changelog \ + COPYING.GPLv2 \ + COPYING.GPLv3 \ + COPYING.LGPLv2.1 \ + COPYING.LGPLv3 \ + CREDITS \ + ffmpeg_generated.gypi \ + ffmpeg.gyp \ + 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 + +prefix="tmp_" + +for f in $files +do + dir_name=`echo $f | sed 's%/[^/]*$%/%'` + if [[ $dir_name == */* ]]; then + tmp_dir_name=$prefix$dir_name + mkdir -p ../tmp_ffmpeg/$tmp_dir_name + else + tmp_dir_name=$f + fi + + cp $f ../tmp_ffmpeg/$tmp_dir_name 2>/dev/null +done + +mkdir -p ../tmp_ffmpeg/tmp_chromium/config +cp -r chromium/config ../tmp_ffmpeg/tmp_chromium + +cd ../tmp_ffmpeg +for tmp_directory in $(find . -type d -name 'tmp_*') +do + new_name=`echo $tmp_directory | sed 's/tmp_//'` + mv $tmp_directory $new_name +done + +cd .. +rm -rf ffmpeg +mv tmp_ffmpeg ffmpeg + +cd $where diff --git a/clean_qtwebengine.sh b/clean_qtwebengine.sh new file mode 100755 index 0000000..0c97005 --- /dev/null +++ b/clean_qtwebengine.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# Copyright 2015 Kevin Kofler +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +if [ -z "$1" ] ; then + echo "usage: ./clean_qtwebengine.sh VERSION" + echo "e.g.: ./clean_qtwebengine.sh 5.6.0" + exit 1 +fi + +DIRNAME="qtwebengine-opensource-src-$1" + +echo "removing $DIRNAME" +rm -rf "$DIRNAME" || exit $? + +if [ -f "$DIRNAME.tar.xz" ] ; then + echo "unpacking $DIRNAME.tar.xz" + 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/third_party/ffmpeg" || exit $? + +echo "repacking as $DIRNAME-clean.tar.xz" +XZ_OPT="-9 -f" tar cJf "$DIRNAME-clean.tar.xz" "$DIRNAME" || exit $? + +echo "removing $DIRNAME" +rm -rf "$DIRNAME" || exit $? + +echo "done" +exit 0 diff --git a/process_ffmpeg_gyp.py b/process_ffmpeg_gyp.py new file mode 100755 index 0000000..abbeedf --- /dev/null +++ b/process_ffmpeg_gyp.py @@ -0,0 +1,43 @@ +#!/usr/bin/python +# Copyright 2013 Tomas Popela +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import sys +import re + +if __name__ == "__main__": + path = "%s/ffmpeg_generated.gypi" % sys.argv[1] + with open(path, "r") as input_file: + content = input_file.read().replace('\n', '') + + brandings = ['ChromeOS', 'ChromiumOS', 'win', 'Chrome'] + output_duplicates = [] + sections = re.findall('\[([^\}]*)\]', content) + for section in sections: + condition = re.findall("'([^']*)'", section) + if not any(x in condition[0] for x in brandings): + for source_file in condition[1:]: + output_duplicates.append( + source_file.replace('<(shared_generated_dir)/', '')) + + output = list(set(output_duplicates)) + output.remove('c_sources') + output.remove('asm_sources') + print ' '.join(output) diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec new file mode 100644 index 0000000..3c68646 --- /dev/null +++ b/qt5-qtwebengine.spec @@ -0,0 +1,356 @@ + +%global qt_module qtwebengine + +%global _hardened_build 1 + +# define to build docs, need to undef this for bootstrapping +# where qt5-qttools builds are not yet available +# only primary archs (for now), allow secondary to bootstrap +%ifarch %{arm} %{ix86} x86_64 +%global docs 1 +%endif + +%global prerelease beta + +Summary: Qt5 - QtWebEngine components +Name: qt5-qtwebengine +Version: 5.6.0 +Release: 0.4.beta%{?dist} + +# 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 (MPLv1.1 or GPLv2 or LGPLv2) +URL: http://www.qt.io +# cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg +# wget http://download.qt.io/development_releases/qt/5.6/5.6.0-beta/submodules/qtwebengine-opensource-src-5.6.0-beta.7z +# ./clean_qtwebengine.sh 5.6.0-beta +Source0: qtwebengine-opensource-src-5.6.0-beta-clean.tar.xz +# cleanup scripts used above +Source1: clean_qtwebengine.sh +Source2: clean_ffmpeg.sh +Source3: process_ffmpeg_gyp.py +# do not compile with -Wno-format, which also bypasses -Werror-format-security +Patch0: qtwebengine-opensource-src-5.6.0-beta-no-format.patch +# some tweaks to linux.pri (system libs, link libpci, run unbundling script) +Patch1: qtwebengine-opensource-src-5.6.0-beta-linux-pri.patch + +BuildRequires: qt5-qtbase-devel >= %{version} +BuildRequires: qt5-qtdeclarative-devel >= %{version} +BuildRequires: qt5-qtxmlpatterns-devel >= %{version} +BuildRequires: qt5-qtlocation-devel >= %{version} +BuildRequires: qt5-qtsensors-devel >= %{version} +BuildRequires: qt5-qtwebchannel-devel >= %{version} +BuildRequires: qt5-qttools-static >= %{version} +BuildRequires: ninja-build +BuildRequires: bison +BuildRequires: gperf +BuildRequires: libicu-devel +BuildRequires: libjpeg-devel +BuildRequires: re2-devel +BuildRequires: snappy-devel +%ifarch %{ix86} x86_64 +BuildRequires: yasm +%endif +BuildRequires: pkgconfig(expat) +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libudev) +%if 0%{?fedora} || 0%{?rhel} > 6 +BuildRequires: pkgconfig(libwebp) +%endif +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: pkgconfig(jsoncpp) +BuildRequires: pkgconfig(protobuf) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(opus) +BuildRequires: pkgconfig(libevent) +BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(flac) +BuildRequires: pkgconfig(minizip) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libxslt) +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(speex) +BuildRequires: pkgconfig(libsrtp) +BuildRequires: perl +BuildRequires: python + +# does not compile against libvpx 1.4.0 (Fedora <= 23), the libvpx 1.5.0 in F24 +# is reported to be built with incompatible options (FIXME: check this) +#BuildRequires: pkgconfig(vpx) +# extra (non-upstream) functions needed, see +# src/3rdparty/chromium/third_party/sqlite/README.chromium for details +#BuildRequires: pkgconfig(sqlite3) + +## Various bundled libraries that Chromium does not support unbundling :-( +## Only the parts actually built are listed. +## Query for candidates: +## grep third_party/ build.log | sed 's!third_party/!\nthird_party/!g' | \ +## grep third_party/ | sed 's!^third_party/!!g' | sed 's!/.*$!!g' | \ +## sed 's/\;.*$//g' | sed 's/ .*$//g' | sort | uniq | less +## some false positives where only shim headers are generated for some reason +## some false positives with dummy placeholder dirs (swiftshader, widevine) +## some false negatives where a header-only library is bundled (e.g. x86inc) +## Spot's chromium.spec also has a list that I checked. + +# Of course, Chromium itself is bundled. It cannot be unbundled because it is +# not a library, but forked (modified) application code. +# Some security fixes are backported, see: +# http://code.qt.io/cgit/qt/qtwebengine-chromium.git/log/?h=45-based +Provides: bundled(chromium) = 45 + +# Bundled in src/3rdparty/chromium/third_party: +# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers, +# except where specified otherwise. +Provides: bundled(angle) = 2422 +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 process_ffmpeg_gyp.py. +# see src/3rdparty/chromium/third_party/ffmpeg/Changelog for the version number +Provides: bundled(ffmpeg) = 2.7 +Provides: bundled(iccjpeg) +# bundled as "khronos", headers only +Provides: bundled(khronos_headers) +# bundled as "leveldatabase" +Provides: bundled(leveldb) = r80 +Provides: bundled(libjingle) = 9564 +Provides: bundled(libvpx) = 1.4.0 +Provides: bundled(libXNVCtrl) = 302.17 +Provides: bundled(libyuv) = 1444 +Provides: bundled(modp_b64) +Provides: bundled(mojo) +# headers only +Provides: bundled(npapi) +Provides: bundled(openmax_dl) = 1.0.2 +Provides: bundled(ots) +Provides: bundled(qcms) = 4 +Provides: bundled(sfntly) = 0-0.1.svn111 +Provides: bundled(skia) +# bundled as "smhasher" +Provides: bundled(SMHasher) = 0-0.1.svn147 +Provides: bundled(sqlite) = 3.8.7.4 +Provides: bundled(usrsctp) = 0-0.1.svn9045 +Provides: bundled(webrtc) = 90 +# header (for assembly) only +Provides: bundled(x86inc) = 0 + +# Bundled in src/3rdparty/chromium/base/third_party: +# Check src/3rdparty/chromium/third_party/base/*/README.chromium for version +# numbers, except where specified otherwise. +Provides: bundled(dmg_fp) +Provides: bundled(dynamic_annotations) = 4384 +# only prtime.cc, a modified version of NSPR's prtime.c, is bundled +Provides: bundled(nspr) +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 +# Ewww... Chromium uses the system NSS, but bundles a heavily patched version of +# its SSL implementation. This might crash and burn sooner or later! +Provides: bundled(nss) = 3.19 + +# 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: +# see src/3rdparty/chromium/v8/include/v8_version.h for the version number +Provides: bundled(v8) = 4.5.103.35 +# bundled by v8 (src/3rdparty/chromium/v8/src/third_party/fdlibm) +# see src/3rdparty/chromium/v8/src/third_party/fdlibm/README.v8 for the version +Provides: bundled(fdlibm) = 5.3 + +%{?_qt5_version:Requires: qt5-qtbase%{?_isa} >= %{_qt5_version}} + + +%description +%{summary}. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: qt5-qtbase-devel%{?_isa} +Requires: qt5-qtdeclarative-devel%{?_isa} +%description devel +%{summary}. + +%package examples +Summary: Example files for %{name} + +%description examples +%{summary}. + + +%if 0%{?docs} +%package doc +Summary: API documentation for %{name} +# for qhelpgenerator +BuildRequires: qt5-qttools-devel +BuildArch: noarch +%description doc +%{summary}. +%endif + + +%prep +%setup -q -n %{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}} +%patch0 -p1 -b .no-format +%patch1 -p1 -b .linux-pri + +%build +export STRIP=strip +export NINJAFLAGS="-v %{_smp_mflags}" +export NINJA_PATH=%{_bindir}/ninja-build + +mkdir %{_target_platform} +pushd %{_target_platform} + +%{qmake_qt5} WEBENGINE_CONFIG+="use_system_icu" .. + +# workaround, disable parallel compilation as it fails to compile in brew +make %{?_smp_mflags} + +%if 0%{?docs} +make %{?_smp_mflags} docs +%endif +popd + +%install +make install INSTALL_ROOT=%{buildroot} -C %{_target_platform} + +%if 0%{?docs} +make install_docs INSTALL_ROOT=%{buildroot} -C %{_target_platform} +%endif + +## .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 +popd + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%{_qt5_libdir}/libQt5*.so.* +%{_qt5_libdir}/qt5/qml/* +%{_qt5_libdir}/qt5/libexec/QtWebEngineProcess +%{_qt5_translationdir}/* + +%{_qt5_datadir}/qtwebengine_resources.pak +%{_qt5_datadir}/qtwebengine_resources_100p.pak +%{_qt5_datadir}/qtwebengine_resources_200p.pak + +%files devel +%{_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 examples +%{_qt5_examplesdir}/ + +%if 0%{?docs} +%files doc +%{_qt5_docdir}/* +%endif + + +%changelog +* Fri Jan 08 2016 Kevin Kofler - 5.6.0-0.4.beta1 +- Fix License tag +- Use %%_qt5_examplesdir macro +- Add Provides: bundled(*) for all the bundled libraries that I found + +* Wed Jan 06 2016 Kevin Kofler - 5.6.0-0.3.beta1 +- linux-pri patch: Add use_system_protobuf, went missing in the 5.6 rebase + +* Wed Jan 06 2016 Kevin Kofler - 5.6.0-0.2.beta1 +- linux-pri patch: Add missing newline at the end of the log line +- Use export for NINJA_PATH (fixes system ninja-build use) + +* Wed Jan 06 2016 Kevin Kofler - 5.6.0-0.1.beta1 +- Readd BR pkgconfig(jsoncpp) because linux.pri now checks for it +- BR yasm only on x86 (i686, x86_64) +- Add dot at the end of %%description +- Rebase no-format patch +- Replace unbundle-gyp.patch with new linux-pri.patch +- Use system ninja-build instead of the bundled one +- Run the unbundling script replace_gyp_files.py in linux.pri rather than here +- Update file list for 5.6.0-beta (no more libffmpegsumo since Chromium 45) + +* Tue Jan 05 2016 Kevin Kofler - 5.5.1-4 +- Remove unused BRs flex, libgcrypt-devel, bzip2-devel, pkgconfig(gio-2.0), + pkgconfig(hunspell), pkgconfig(libpcre), pkgconfig(libssl), + pkgconfig(libcrypto), pkgconfig(jsoncpp), pkgconfig(libmtp), + pkgconfig(libexif), pkgconfig(liblzma), pkgconfig(cairo), pkgconfig(libusb), + perl(version), perl(Digest::MD5), perl(Text::ParseWords), ruby +- Add missing explicit BRs on pkgconfig(x11), pkgconfig(xext), + pkgconfig(xfixes), pkgconfig(xdamage), pkgconfig(egl) +- Fix BR pkgconfig(flac++) to pkgconfig(flac) (libFLAC++ not used, only libFLAC) +- Fix BR python-devel to python +- Remove unused -Duse_system_openssl=1 flag (QtWebEngine uses NSS instead) +- Remove unused -Duse_system_jsoncpp=1 and -Duse_system_libusb=1 flags + +* Mon Jan 04 2016 Kevin Kofler - 5.5.1-3 +- Update file list for 5.5.1 (add qtwebengine_resources_[12]00p.pak) + +* Mon Jan 04 2016 Kevin Kofler - 5.5.1-2 +- Add missing explicit BRs on pkgconfig(expat) and pkgconfig(libxml-2.0) +- Remove unused BR v8-devel (cannot currently be unbundled) + +* Thu Dec 24 2015 Kevin Kofler - 5.5.1-1 +- Update to 5.5.1 +- Remove patent-encumbered codecs in the bundled FFmpeg from the tarball + +* Fri Jul 17 2015 Helio Chissini de Castro - 5.5.0-2 +- Update with unbundle flags. Adapted from original 5.4 Suse package +- Disable vpx and sqlite as unbundle due some compilation issues +- Enable verbose build + +* Fri Jul 17 2015 Helio Chissini de Castro - 5.5.0-1 +- Initial spec + +* Thu Jun 25 2015 Helio Chissini de Castro - 5.5.0-0.2.rc +- Update for official RC1 released packages diff --git a/qtwebengine-opensource-src-5.6.0-beta-linux-pri.patch b/qtwebengine-opensource-src-5.6.0-beta-linux-pri.patch new file mode 100644 index 0000000..723e47c --- /dev/null +++ b/qtwebengine-opensource-src-5.6.0-beta-linux-pri.patch @@ -0,0 +1,24 @@ +diff -ur qtwebengine-opensource-src-5.6.0-beta/src/core/config/linux.pri qtwebengine-opensource-src-5.6.0-beta-linux-pri/src/core/config/linux.pri +--- qtwebengine-opensource-src-5.6.0-beta/src/core/config/linux.pri 2015-12-14 16:27:24.000000000 +0100 ++++ qtwebengine-opensource-src-5.6.0-beta-linux-pri/src/core/config/linux.pri 2016-01-06 04:43:23.115923478 +0100 +@@ -43,3 +43,20 @@ + use?(system_icu): GYP_CONFIG += use_system_icu=1 + use?(system_ffmpeg): GYP_CONFIG += use_system_ffmpeg=1 + ++# some more system packages, that are not checked for for some reason ++GYP_CONFIG += \ ++ use_system_yasm=1 \ ++ use_system_expat=1 \ ++ use_system_re2=1 \ ++ use_system_protobuf=1 ++ ++# link libpci instead of dlopening it, our Qt packaging depends on it anyway ++GYP_CONFIG += linux_link_libpci=1 ++ ++# run the unbundling script Chromium provides ++CHROMIUM_SRC_DIR = "$$QTWEBENGINE_ROOT/$$getChromiumSrcDir()" ++R_G_F_PY = "$$CHROMIUM_SRC_DIR/build/linux/unbundle/replace_gyp_files.py" ++R_G_F_PY_ARGS = ++for (config, GYP_CONFIG): R_G_F_PY_ARGS += "-D $$config" ++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") diff --git a/qtwebengine-opensource-src-5.6.0-beta-no-format.patch b/qtwebengine-opensource-src-5.6.0-beta-no-format.patch new file mode 100644 index 0000000..650854f --- /dev/null +++ b/qtwebengine-opensource-src-5.6.0-beta-no-format.patch @@ -0,0 +1,30 @@ +diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/common.gypi qtwebengine-opensource-src-5.6.0-beta-no-format/src/3rdparty/chromium/build/common.gypi +--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/common.gypi 2015-12-10 18:17:21.000000000 +0100 ++++ qtwebengine-opensource-src-5.6.0-beta-no-format/src/3rdparty/chromium/build/common.gypi 2016-01-05 05:58:55.336938182 +0100 +@@ -3142,11 +3142,6 @@ + # Don't warn about hash_map in third-party code. + '-Wno-deprecated', + ], +- 'cflags': [ +- # Don't warn about printf format problems. +- # This is off by default in gcc but on in Ubuntu's gcc(!). +- '-Wno-format', +- ], + 'cflags_cc!': [ + # Necessary because llvm.org/PR10448 is WONTFIX (crbug.com/90453). + '-Wsign-compare', +diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/config/compiler/BUILD.gn qtwebengine-opensource-src-5.6.0-beta-no-format/src/3rdparty/chromium/build/config/compiler/BUILD.gn +--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/config/compiler/BUILD.gn 2015-12-10 18:17:21.000000000 +0100 ++++ qtwebengine-opensource-src-5.6.0-beta-no-format/src/3rdparty/chromium/build/config/compiler/BUILD.gn 2016-01-05 05:58:55.362938322 +0100 +@@ -1013,11 +1013,6 @@ + } + + if (is_linux || is_android) { +- cflags += [ +- # Don't warn about printf format problems. This is off by default in gcc +- # but on in Ubuntu's gcc(!). +- "-Wno-format", +- ] + cflags_cc += [ + # Don't warn about hash_map in third-party code. + "-Wno-deprecated", diff --git a/sources b/sources index e69de29..42b5fc1 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +60b11851cbe7049dcfadf3fa9472eb79 qtwebengine-opensource-src-5.6.0-beta-clean.tar.xz