a684f95
%global qt_module qtwebengine
a684f95
a684f95
%global _hardened_build 1
a684f95
a684f95
# package-notes causes FTBFS (#2043178)
a684f95
%undefine _package_note_file
a684f95
a684f95
%global use_system_libwebp 1
a684f95
%global use_system_jsoncpp 1
a684f95
%if 0%{?rhel} && 0%{?rhel} == 9
9e96e7d
%global use_system_libicu 0
a684f95
%else
9e96e7d
%global use_system_libicu 1
a684f95
%endif
a684f95
90a55c3
%if 0%{?fedora} && 0%{?fedora} >= 39
90a55c3
# Bundled python-six is too old to work with Python 3.12+
90a55c3
%global use_system_py_six 1
90a55c3
%endif
90a55c3
def2052
%global use_system_re2 0
a684f95
a684f95
# NEON support on ARM (detected at runtime) - disable this if you are hitting
a684f95
# FTBFS due to e.g. GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495
a684f95
#global arm_neon 1
a684f95
a684f95
# the QMake CONFIG flags to force debugging information to be produced in
a684f95
# release builds, and for all parts of the code
a684f95
%ifarch %{arm} aarch64
a684f95
# the ARM builder runs out of memory during linking with the full setting below,
a684f95
# so omit debugging information for the parts upstream deems it dispensable for
a684f95
# (webcore, v8base)
a684f95
%global debug_config %{nil}
a684f95
%else
a684f95
%global debug_config force_debug_info
a684f95
# webcore_debug v8base_debug
a684f95
%endif
a684f95
a684f95
#global prerelease rc
a684f95
a684f95
# spellchecking dictionary directory
a684f95
%global _qtwebengine_dictionaries_dir %{_qt6_datadir}/qtwebengine_dictionaries
a684f95
a684f95
# exclude plugins
a684f95
%global __provides_exclude ^lib.*plugin\\.so.*$
a684f95
# and designer plugins
a684f95
%global __provides_exclude_from ^%{_qt6_plugindir}/.*\\.so$
a684f95
6b9a5c8
%global examples 1
6b9a5c8
a684f95
Summary: Qt6 - QtWebEngine components
a684f95
Name:    qt6-qtwebengine
def2052
Version: 6.7.0
fdbce72
Release: 2%{?dist}
a684f95
a684f95
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
a684f95
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
a684f95
# The other licenses are from Chromium and the code it bundles
a684f95
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)
a684f95
URL:     http://www.qt.io
a684f95
# cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
a684f95
# ./qtwebengine-release.sh
a684f95
# ./clean_qtwebengine.sh 6.4.1
a684f95
Source0: qtwebengine-everywhere-src-%{version}-clean.tar.xz
a684f95
a684f95
# cleanup scripts used above
a684f95
Source2: clean_qtwebengine.sh
a684f95
Source3: clean_ffmpeg.sh
a684f95
Source4: get_free_ffmpeg_source_files.py
a684f95
# macros
a684f95
Source10: macros.qt6-qtwebengine
a684f95
a684f95
# pulseaudio headers
a684f95
Source20: pulseaudio-12.2-headers.tar.gz
a684f95
a684f95
# workaround FTBFS against kernel-headers-5.2.0+
a684f95
Patch1:  qtwebengine-SIOCGSTAMP.patch
a684f95
Patch2:  qtwebengine-link-pipewire.patch
a684f95
# Fix/workaround FTBFS on aarch64 with newer glibc
a684f95
Patch3: qtwebengine-aarch64-new-stat.patch
a684f95
a684f95
# FTBS warning: elaborated-type-specifier for a scoped enum must not
a684f95
# use the 'class' keyword
a684f95
Patch50: qtwebengine-fix-build.patch
a684f95
a684f95
## Upstream patches:
a684f95
a684f95
## Upstreamable patches:
fdbce72
Patch110: qtwebengine-webrtc-system-openh264.patch
fdbce72
Patch111: qtwebengine-blink-system-openh264.patch
fdbce72
Patch112: qtwebengine-media-system-openh264.patch
a684f95
a684f95
# handled by qt6-srpm-macros, which defines %%qt6_qtwebengine_arches
a684f95
# FIXME use/update qt6_qtwebengine_arches
a684f95
# 32-bit arches not supported (https://bugreports.qt.io/browse/QTBUG-102143)
a684f95
ExclusiveArch: aarch64 x86_64
a684f95
a684f95
BuildRequires: cmake
a684f95
BuildRequires: make
a684f95
BuildRequires: qt6-srpm-macros
a684f95
BuildRequires: qt6-qtbase-devel
a684f95
BuildRequires: qt6-qtbase-private-devel
a684f95
# TODO: check of = is really needed or if >= would be good enough -- rex
a684f95
%{?_qt6:Requires: %{_qt6}%{?_isa} = %{_qt6_version}}
a684f95
BuildRequires: qt6-qtdeclarative-devel
a684f95
BuildRequires: qt6-qtlocation-devel
a684f95
BuildRequires: qt6-qtsensors-devel
a684f95
BuildRequires: qt6-qtsvg-devel
a684f95
BuildRequires: qt6-qttools-static
a684f95
BuildRequires: qt6-qtquickcontrols2-devel
a684f95
BuildRequires: qt6-qtwebchannel-devel
a684f95
# for examples?
a684f95
BuildRequires: ninja-build
a684f95
BuildRequires: cmake
a684f95
BuildRequires: bison
a684f95
BuildRequires: flex
a684f95
BuildRequires: gcc-c++
48d96e6
%if 0%{?rhel} && 0%{?rhel} < 10
dada0fe
BuildRequires: gcc-toolset-13
e139d6d
BuildRequires: gcc-toolset-13-libatomic-devel
48d96e6
%endif
a684f95
# gn links statically (for now)
a684f95
BuildRequires: libstdc++-static
a684f95
BuildRequires: git-core
a684f95
BuildRequires: gperf
a684f95
BuildRequires: krb5-devel
a684f95
%if 0%{?use_system_libicu}
9e96e7d
BuildRequires: libicu-devel >= 68
a684f95
%endif
def2052
BuildRequires: libatomic
a684f95
BuildRequires: libjpeg-devel
a684f95
BuildRequires: nodejs
a684f95
%if 0%{?use_system_re2}
a684f95
BuildRequires: re2-devel
def2052
Provides: bundled(re2)
a684f95
%endif
a684f95
BuildRequires: snappy-devel
a684f95
BuildConflicts: minizip-devel
a684f95
Provides: bundled(minizip) = 2.8.1
a684f95
BuildRequires: pkgconfig(alsa)
a684f95
BuildRequires: pkgconfig(dbus-1)
a684f95
BuildRequires: pkgconfig(egl)
a684f95
BuildRequires: pkgconfig(epoxy)
a684f95
BuildRequires: pkgconfig(expat)
a684f95
BuildRequires: pkgconfig(fontconfig)
a684f95
BuildRequires: pkgconfig(freetype2)
a684f95
BuildRequires: pkgconfig(gbm)
a684f95
BuildRequires: pkgconfig(gio-2.0)
a684f95
BuildRequires: pkgconfig(gl)
a684f95
BuildRequires: pkgconfig(glib-2.0)
a684f95
BuildRequires: pkgconfig(gobject-2.0)
a684f95
BuildRequires: pkgconfig(harfbuzz)
a684f95
%if 0%{?use_system_jsoncpp}
a684f95
BuildRequires: pkgconfig(jsoncpp)
a684f95
%endif
a684f95
BuildRequires: pkgconfig(lcms2)
a684f95
BuildRequires: pkgconfig(libcap)
a684f95
BuildRequires: pkgconfig(libdrm)
a684f95
BuildRequires: pkgconfig(libevent)
a684f95
BuildRequires: pkgconfig(libpci)
a684f95
BuildRequires: pkgconfig(libpipewire-0.3)
a684f95
BuildRequires: pkgconfig(libpng)
a684f95
BuildRequires: pkgconfig(libpulse)
a684f95
BuildRequires: pkgconfig(libudev)
a684f95
%if 0%{?use_system_libwebp}
a684f95
BuildRequires: pkgconfig(libwebp) >= 0.6.0
a684f95
%endif
a684f95
BuildRequires: pkgconfig(nss)
a684f95
BuildRequires: pkgconfig(opus)
a684f95
BuildRequires: pkgconfig(poppler-cpp)
a684f95
BuildRequires: pkgconfig(x11)
a684f95
BuildRequires: pkgconfig(xcomposite)
a684f95
BuildRequires: pkgconfig(xcursor)
a684f95
BuildRequires: pkgconfig(xdamage)
a684f95
BuildRequires: pkgconfig(xext)
a684f95
BuildRequires: pkgconfig(xfixes)
a684f95
BuildRequires: pkgconfig(xi)
a684f95
BuildRequires: pkgconfig(xkbcommon)
a684f95
BuildRequires: pkgconfig(xkbfile)
a684f95
BuildRequires: pkgconfig(xrandr)
a684f95
BuildRequires: pkgconfig(xrender)
a684f95
BuildRequires: pkgconfig(xscrnsaver)
a684f95
BuildRequires: pkgconfig(xshmfence)
a684f95
BuildRequires: pkgconfig(xtst)
a684f95
BuildRequires: pkgconfig(zlib)
a684f95
## https://bugreports.qt.io/browse/QTBUG-59094
a684f95
## requires libxml2 built with icu support
a684f95
#BuildRequires: pkgconfig(libxslt) pkgconfig(libxml-2.0)
a684f95
BuildRequires: perl-interpreter
a684f95
BuildRequires: %{__python3}
a684f95
BuildRequires: python3-html5lib
a684f95
BuildRequires: pkgconfig(vpx) >= 1.8.0
a684f95
BuildRequires: pkgconfig(libavcodec)
a684f95
BuildRequires: pkgconfig(libavformat)
a684f95
BuildRequires: pkgconfig(libavutil)
fdbce72
BuildRequires: pkgconfig(openh264)
a684f95
90a55c3
%if 0%{?fedora} && 0%{?fedora} >= 39
90a55c3
BuildRequires: python3-zombie-imp
90a55c3
%endif
90a55c3
a684f95
# extra (non-upstream) functions needed, see
a684f95
# src/3rdparty/chromium/third_party/sqlite/README.chromium for details
a684f95
#BuildRequires: pkgconfig(sqlite3)
a684f95
dc4cfcf
# Split subpackage
dc4cfcf
Requires: qt6-qtpdf%{?_isa} = %{version}-%{release}
dc4cfcf
a684f95
## Various bundled libraries that Chromium does not support unbundling :-(
a684f95
## Only the parts actually built are listed.
a684f95
## Query for candidates:
a684f95
## grep third_party/ build.log | sed 's!third_party/!\nthird_party/!g' | \
a684f95
## grep third_party/ | sed 's!^third_party/!!g' | sed 's!/.*$!!g' | \
a684f95
## sed 's/\;.*$//g' | sed 's/ .*$//g' | sort | uniq | less
a684f95
## some false positives where only shim headers are generated for some reason
a684f95
## some false positives with dummy placeholder dirs (swiftshader, widevine)
a684f95
## some false negatives where a header-only library is bundled (e.g. x86inc)
a684f95
## Spot's chromium.spec also has a list that I checked.
a684f95
a684f95
# Of course, Chromium itself is bundled. It cannot be unbundled because it is
a684f95
# not a library, but forked (modified) application code.
a684f95
Provides: bundled(chromium) = 102.0.5005.177
a684f95
a684f95
# Bundled in src/3rdparty/chromium/third_party:
a684f95
# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers,
a684f95
# except where specified otherwise.
a684f95
# Note that many of those libraries are git snapshots, so version numbers are
a684f95
# necessarily approximate.
a684f95
# Also note that the list is probably not complete anymore due to Chromium
a684f95
# adding more and more bundled stuff at every release, some of which (but not
a684f95
# all) is actually built in QtWebEngine.
a684f95
# src/3rdparty/chromium/third_party/angle/doc/ChoosingANGLEBranch.md points to
a684f95
# http://omahaproxy.appspot.com/deps.json?version=87.0.4280.144 chromium_branch
a684f95
Provides: bundled(angle)
a684f95
# Google's fork of OpenSSL
a684f95
# We cannot build against NSS instead because it no longer works with NSS 3.21:
a684f95
# HTTPS on, ironically, Google's sites (Google, YouTube, etc.) stops working
a684f95
# completely and produces only ERR_SSL_PROTOCOL_ERROR errors:
a684f95
# http://kaosx.us/phpBB3/viewtopic.php?t=1235
a684f95
# https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1520568
a684f95
# So we have to do what Chromium now defaults to (since 47): a "chimera build",
a684f95
# i.e., use the BoringSSL code and the system NSS certificates.
a684f95
Provides: bundled(boringssl)
a684f95
Provides: bundled(brotli)
a684f95
# Don't get too excited. MPEG and other legally problematic stuff is stripped
a684f95
# out. See clean_qtwebengine.sh, clean_ffmpeg.sh, and
a684f95
# get_free_ffmpeg_source_files.py.
a684f95
# see src/3rdparty/chromium/third_party/ffmpeg/Changelog for the version number
a684f95
Provides: bundled(ffmpeg) = 5.1.2
a684f95
Provides: bundled(hunspell) = 1.6.0
a684f95
Provides: bundled(iccjpeg)
a684f95
# bundled as "khronos", headers only
a684f95
Provides: bundled(khronos_headers)
a684f95
# bundled as "leveldatabase"
a684f95
Provides: bundled(leveldb) = 1.23
a684f95
# bundled as "libjingle_xmpp"
a684f95
Provides: bundled(libjingle)
a684f95
# see src/3rdparty/chromium/third_party/libsrtp/CHANGES for the version number
a684f95
Provides: bundled(libsrtp) = 2.4.0
a684f95
# bundled as "libxml"
a684f95
# see src/3rdparty/chromium/third_party/libxml/linux/include/libxml/xmlversion.h
a684f95
Provides: bundled(libxml2) = 2.9.13
a684f95
# see src/3rdparty/chromium/third_party/libxslt/linux/config.h for version
a684f95
Provides: bundled(libxslt) = 1.1.3
a684f95
Provides: bundled(libyuv) = 1819
a684f95
Provides: bundled(modp_b64)
a684f95
Provides: bundled(ots)
a684f95
Provides: bundled(re2)
a684f95
# see src/3rdparty/chromium/third_party/protobuf/CHANGES.txt for the version
a684f95
Provides: bundled(protobuf) = 3.13.0.1
a684f95
Provides: bundled(qcms) = 4
a684f95
Provides: bundled(skia)
a684f95
# bundled as "smhasher"
a684f95
Provides: bundled(SMHasher) = 0-147
a684f95
Provides: bundled(sqlite) = 3.39.4
a684f95
Provides: bundled(usrsctp)
a684f95
Provides: bundled(webrtc) = 90
a684f95
a684f95
%ifarch %{ix86} x86_64
a684f95
# bundled by ffmpeg and libvpx:
a684f95
# header (for assembly) only
a684f95
Provides: bundled(x86inc)
a684f95
%endif
a684f95
a684f95
# Bundled in src/3rdparty/chromium/base/third_party:
a684f95
# Check src/3rdparty/chromium/third_party/base/*/README.chromium for version
a684f95
# numbers, except where specified otherwise.
a684f95
Provides: bundled(dynamic_annotations) = 4384
a684f95
Provides: bundled(superfasthash) = 0
a684f95
Provides: bundled(symbolize)
a684f95
# bundled as "valgrind", headers only
a684f95
Provides: bundled(valgrind.h)
a684f95
# bundled as "xdg_mime"
a684f95
Provides: bundled(xdg-mime)
a684f95
# bundled as "xdg_user_dirs"
a684f95
Provides: bundled(xdg-user-dirs) = 0.10
a684f95
a684f95
# Bundled in src/3rdparty/chromium/net/third_party:
a684f95
# Check src/3rdparty/chromium/third_party/net/*/README.chromium for version
a684f95
# numbers, except where specified otherwise.
a684f95
Provides: bundled(mozilla_security_manager) = 1.9.2
a684f95
a684f95
# Bundled in src/3rdparty/chromium/url/third_party:
a684f95
# Check src/3rdparty/chromium/third_party/url/*/README.chromium for version
a684f95
# numbers, except where specified otherwise.
a684f95
# bundled as "mozilla", file renamed and modified
a684f95
Provides: bundled(nsURLParsers)
a684f95
a684f95
# Bundled outside of third_party, apparently not considered as such by Chromium:
a684f95
Provides: bundled(mojo)
a684f95
# see src/3rdparty/chromium/v8/include/v8_version.h for the version number
a684f95
Provides: bundled(v8) = 10.2.154.16
a684f95
# bundled by v8 (src/3rdparty/chromium/v8/src/base/ieee754.cc)
a684f95
# The version number is 5.3, the last version that upstream released, years ago:
a684f95
# http://www.netlib.org/fdlibm/readme
a684f95
Provides: bundled(fdlibm) = 5.3
a684f95
a684f95
%{?_qt6_version:Requires: qt6-qtbase%{?_isa} = %{_qt6_version}}
a684f95
a684f95
%description
a684f95
%{summary}.
a684f95
a684f95
%package devel
a684f95
Summary: Development files for %{name}
a684f95
Requires: %{name}%{?_isa} = %{version}-%{release}
a684f95
Requires: qt6-qtbase-devel%{?_isa}
a684f95
Requires: qt6-qtdeclarative-devel%{?_isa}
dc4cfcf
Requires: qt6-qtpdf-devel%{?_isa} = %{version}-%{release}
a684f95
# not arch'd for now, see if can get away with avoiding multilib'ing -- rex
a684f95
Requires: %{name}-devtools = %{version}-%{release}
a684f95
%description devel
a684f95
%{summary}.
a684f95
a684f95
%package devtools
a684f95
Summary: WebEngine devtools_resources
a684f95
Requires: %{name}%{?_isa} = %{version}-%{release}
a684f95
%description devtools
a684f95
Support for remote debugging.
a684f95
6b9a5c8
%if 0%{?examples}
a684f95
%package examples
a684f95
Summary: Example files for %{name}
a684f95
%description examples
a684f95
%{summary}.
6b9a5c8
%endif
a684f95
dc4cfcf
%package -n qt6-qtpdf
dc4cfcf
Summary: Qt6 - QtPdf components
dc4cfcf
%description -n qt6-qtpdf
dc4cfcf
%{summary}.
dc4cfcf
dc4cfcf
%package -n qt6-qtpdf-devel
dc4cfcf
Summary: Development files for qt6-qtpdf
dc4cfcf
Requires: qt6-qtpdf%{?_isa} = %{version}-%{release}
dc4cfcf
Requires: qt6-qtbase-devel%{?_isa}
dc4cfcf
Requires: qt6-qtdeclarative-devel%{?_isa}
dc4cfcf
%description -n qt6-qtpdf-devel
dc4cfcf
%{summary}.
dc4cfcf
dc4cfcf
%package -n qt6-qtpdf-examples
dc4cfcf
Summary: Example files for qt6-qtpdf
dc4cfcf
dc4cfcf
%description -n qt6-qtpdf-examples
dc4cfcf
%{summary}.
dc4cfcf
a684f95
%prep
a684f95
%setup -q -n %{qt_module}-everywhere-src-%{version}%{?prerelease:-%{prerelease}} -a20
a684f95
a684f95
mv pulse src/3rdparty/chromium/
a684f95
a684f95
pushd src/3rdparty/chromium
a684f95
popd
a684f95
a684f95
%patch1 -p1 -b .SIOCGSTAMP
a684f95
%patch2 -p1 -b .link-pipewire
a684f95
%patch3 -p1 -b .aarch64-new-stat
a684f95
a684f95
%patch50 -p1 -b .fix-build.patch
a684f95
a684f95
## upstream patches
a684f95
a684f95
## upstreamable patches
fdbce72
%patch110 -p1 -b .webrtc-system-openh264
fdbce72
%patch111 -p1 -b .blink-system-openh264
fdbce72
%patch112 -p1 -b .media-system-openh264
a684f95
a684f95
# delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn, as we
a684f95
# never cross-compile in native Fedora RPMs, fixes ARM and aarch64 FTBFS
a684f95
sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' \
a684f95
  src/3rdparty/chromium/build/toolchain/linux/BUILD.gn
a684f95
90a55c3
%if 0%{?use_system_py_six}
90a55c3
rm src/3rdparty/chromium/third_party/six/src/six.py
90a55c3
rm src/3rdparty/chromium/third_party/catapult/third_party/six/six.py
90a55c3
rm src/3rdparty/chromium/third_party/wpt_tools/wpt/tools/third_party/six/six.py
90a55c3
90a55c3
ln -s /usr/lib/python%{python3_version}/site-packages/six.py src/3rdparty/chromium/third_party/six/src/six.py
90a55c3
ln -s /usr/lib/python%{python3_version}/site-packages/six.py src/3rdparty/chromium/third_party/catapult/third_party/six/six.py
90a55c3
ln -s /usr/lib/python%{python3_version}/site-packages/six.py src/3rdparty/chromium/third_party/wpt_tools/wpt/tools/third_party/six/six.py
90a55c3
%endif
90a55c3
a684f95
%if 0%{?use_system_re2}
a684f95
# http://bugzilla.redhat.com/1337585
a684f95
# can't just delete, but we'll overwrite with system headers to be on the safe side
a684f95
cp -bv /usr/include/re2/*.h src/3rdparty/chromium/third_party/re2/src/re2/
a684f95
%endif
a684f95
a684f95
# copy the Chromium license so it is installed with the appropriate name
a684f95
cp -p src/3rdparty/chromium/LICENSE LICENSE.Chromium
a684f95
a684f95
# consider doing this as part of the tarball creation step instead?  rdieter
a684f95
# fix/workaround
a684f95
# fatal error: QtWebEngineCore/qtwebenginecoreglobal.h: No such file or directory
b69eb44
# if [ ! -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h" ]; then
b69eb44
# {_qt6_libexecdir}/syncqt -version {version}
b69eb44
# fi
b69eb44
#
b69eb44
# # abort if this doesn't get created by syncqt.pl
b69eb44
# test -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h"
a684f95
a684f95
a684f95
%build
48d96e6
%if 0%{?rhel} && 0%{?rhel} < 10
dada0fe
. /opt/rh/gcc-toolset-13/enable
48d96e6
%endif
a684f95
export STRIP=strip
a684f95
export NINJAFLAGS="%{__ninja_common_opts}"
a684f95
export NINJA_PATH=%{__ninja}
a684f95
a684f95
%cmake_qt6 \
a684f95
  -DCMAKE_TOOLCHAIN_FILE:STRING="%{_libdir}/cmake/Qt6/qt.toolchain.cmake" \
a684f95
  -DFEATURE_qtpdf_build:BOOL=ON \
a684f95
  -DFEATURE_webengine_developer_build:BOOL=OFF \
a684f95
  -DFEATURE_webengine_embedded_build:BOOL=OFF \
a684f95
  -DFEATURE_webengine_extensions:BOOL=ON \
a684f95
  -DFEATURE_webengine_kerberos:BOOL=ON \
a684f95
  -DFEATURE_webengine_native_spellchecker:BOOL=OFF \
a684f95
  -DFEATURE_webengine_printing_and_pdf:BOOL=ON \
fdbce72
  -DFEATURE_webengine_proprietary_codecs:BOOL=ON \
a684f95
  -DFEATURE_webengine_system_icu:BOOL=%{?use_system_libicu} \
a684f95
  -DFEATURE_webengine_system_libevent:BOOL=ON \
a684f95
  -DFEATURE_webengine_system_ffmpeg:BOOL=ON \
a684f95
  -DFEATURE_webengine_webrtc:BOOL=ON \
a684f95
  -DFEATURE_webengine_webrtc_pipewire:BOOL=ON \
6b9a5c8
  -DQT_BUILD_EXAMPLES:BOOL=%{?examples:ON}%{!?examples:OFF} \
6b9a5c8
  -DQT_INSTALL_EXAMPLES_SOURCES=%{?examples:ON}%{!?examples:OFF}
a684f95
a684f95
%cmake_build
a684f95
a684f95
a684f95
%install
a684f95
%cmake_install
a684f95
a684f95
# rpm macros
a684f95
install -p -m644 -D %{SOURCE10} \
a684f95
  %{buildroot}%{_rpmmacrodir}/macros.qt6-qtwebengine
a684f95
sed -i \
a684f95
  -e "s|@@NAME@@|%{name}|g" \
a684f95
  -e "s|@@EPOCH@@|%{?epoch}%{!?epoch:0}|g" \
a684f95
  -e "s|@@VERSION@@|%{version}|g" \
a684f95
  -e "s|@@EVR@@|%{?epoch:%{epoch:}}%{version}-%{release}|g" \
a684f95
  %{buildroot}%{_rpmmacrodir}/macros.qt6-qtwebengine
a684f95
a684f95
# .prl/.la file love
a684f95
# nuke .prl reference(s) to %%buildroot, excessive (.la-like) libs
a684f95
pushd %{buildroot}%{_qt6_libdir}
a684f95
for prl_file in libQt6*.prl ; do
a684f95
  sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${prl_file}
a684f95
  if [ -f "$(basename ${prl_file} .prl).so" ]; then
a684f95
    rm -fv "$(basename ${prl_file} .prl).la"
a684f95
    sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file}
a684f95
  fi
a684f95
done
a684f95
# explicitly omit, at least until there's a real library installed associated with it -- rex
a684f95
rm -fv Qt6WebEngineCore.la
a684f95
popd
a684f95
a684f95
mkdir -p %{buildroot}%{_qtwebengine_dictionaries_dir}
a684f95
a684f95
# adjust cmake dep(s) to allow for using the same Qt6 that was used to build it
a684f95
# using the lesser of %%version, %%_qt6_version
a684f95
%global lesser_version $(echo -e "%{version}\\n%{_qt6_version}" | sort -V | head -1)
a684f95
sed -i -e "s|%{version} \${_Qt6WebEngine|%{lesser_version} \${_Qt6WebEngine|" \
a684f95
  %{buildroot}%{_qt6_libdir}/cmake/Qt6WebEngine*/Qt6WebEngine*Config.cmake
a684f95
a684f95
a684f95
%if 0%{?rhel} && 0%{?rhel} < 10
a684f95
%filetriggerin -- %{_datadir}/myspell
a684f95
%else
a684f95
%filetriggerin -- %{_datadir}/hunspell
a684f95
%endif
a684f95
a684f95
while read filename ; do
a684f95
  case "$filename" in
a684f95
    *.dic)
a684f95
      bdicname=%{_qtwebengine_dictionaries_dir}/`basename -s .dic "$filename"`.bdic
a684f95
      %{_qt6_libdir}/qt6/libexec/qwebengine_convert_dict "$filename" "$bdicname" &> /dev/null || :
a684f95
      ;;
a684f95
  esac
a684f95
done
a684f95
a684f95
%files
a684f95
%license LICENSE.*
a684f95
%{_qt6_libdir}/libQt6WebEngineCore.so.*
a684f95
%{_qt6_libdir}/libQt6WebEngineQuick.so.*
a684f95
%{_qt6_libdir}/libQt6WebEngineQuickDelegatesQml.so.*
a684f95
%{_qt6_libdir}/libQt6WebEngineWidgets.so.*
a684f95
%{_qt6_libdir}/qt6/libexec/gn
a684f95
%{_qt6_libdir}/qt6/libexec/qwebengine_convert_dict
a684f95
%{_qt6_libdir}/qt6/libexec/QtWebEngineProcess
def2052
%{_qt6_libdir}/qt6/libexec/webenginedriver
a684f95
%dir %{_qt6_libdir}/qt6/qml/QtWebEngine
a684f95
%{_qt6_libdir}/qt6/qml/QtWebEngine/*
a684f95
%dir %{_qt6_datadir}/resources/
d5c3f17
%{_qt6_datadir}/resources/v8_context_snapshot.bin
a684f95
%{_qt6_datadir}/resources/qtwebengine_resources.pak
a684f95
%{_qt6_datadir}/resources/qtwebengine_resources_100p.pak
a684f95
%{_qt6_datadir}/resources/qtwebengine_resources_200p.pak
9e96e7d
%if ! 0%{?use_system_libicu}
9e96e7d
%{_qt6_datadir}/resources/icudtl.dat
9e96e7d
%endif
a684f95
%dir %{_qtwebengine_dictionaries_dir}
a684f95
%dir %{_qt6_translationdir}/qtwebengine_locales
a684f95
%lang(am) %{_qt6_translationdir}/qtwebengine_locales/am.pak
a684f95
%lang(ar) %{_qt6_translationdir}/qtwebengine_locales/ar.pak
a684f95
%lang(bg) %{_qt6_translationdir}/qtwebengine_locales/bg.pak
a684f95
%lang(bn) %{_qt6_translationdir}/qtwebengine_locales/bn.pak
a684f95
%lang(ca) %{_qt6_translationdir}/qtwebengine_locales/ca.pak
a684f95
%lang(cs) %{_qt6_translationdir}/qtwebengine_locales/cs.pak
a684f95
%lang(da) %{_qt6_translationdir}/qtwebengine_locales/da.pak
a684f95
%lang(de) %{_qt6_translationdir}/qtwebengine_locales/de.pak
a684f95
%lang(el) %{_qt6_translationdir}/qtwebengine_locales/el.pak
a684f95
%lang(en) %{_qt6_translationdir}/qtwebengine_locales/en-GB.pak
a684f95
%lang(en) %{_qt6_translationdir}/qtwebengine_locales/en-US.pak
a684f95
%lang(es) %{_qt6_translationdir}/qtwebengine_locales/es-419.pak
a684f95
%lang(es) %{_qt6_translationdir}/qtwebengine_locales/es.pak
a684f95
%lang(et) %{_qt6_translationdir}/qtwebengine_locales/et.pak
a684f95
%lang(fa) %{_qt6_translationdir}/qtwebengine_locales/fa.pak
a684f95
%lang(fi) %{_qt6_translationdir}/qtwebengine_locales/fi.pak
a684f95
%lang(fil) %{_qt6_translationdir}/qtwebengine_locales/fil.pak
a684f95
%lang(fr) %{_qt6_translationdir}/qtwebengine_locales/fr.pak
a684f95
%lang(gu) %{_qt6_translationdir}/qtwebengine_locales/gu.pak
a684f95
%lang(he) %{_qt6_translationdir}/qtwebengine_locales/he.pak
a684f95
%lang(hi) %{_qt6_translationdir}/qtwebengine_locales/hi.pak
a684f95
%lang(hr) %{_qt6_translationdir}/qtwebengine_locales/hr.pak
a684f95
%lang(hu) %{_qt6_translationdir}/qtwebengine_locales/hu.pak
a684f95
%lang(id) %{_qt6_translationdir}/qtwebengine_locales/id.pak
a684f95
%lang(it) %{_qt6_translationdir}/qtwebengine_locales/it.pak
a684f95
%lang(ja) %{_qt6_translationdir}/qtwebengine_locales/ja.pak
a684f95
%lang(kn) %{_qt6_translationdir}/qtwebengine_locales/kn.pak
a684f95
%lang(ko) %{_qt6_translationdir}/qtwebengine_locales/ko.pak
a684f95
%lang(lt) %{_qt6_translationdir}/qtwebengine_locales/lt.pak
a684f95
%lang(lv) %{_qt6_translationdir}/qtwebengine_locales/lv.pak
a684f95
%lang(ml) %{_qt6_translationdir}/qtwebengine_locales/ml.pak
a684f95
%lang(mr) %{_qt6_translationdir}/qtwebengine_locales/mr.pak
a684f95
%lang(ms) %{_qt6_translationdir}/qtwebengine_locales/ms.pak
a684f95
%lang(nb) %{_qt6_translationdir}/qtwebengine_locales/nb.pak
a684f95
%lang(nl) %{_qt6_translationdir}/qtwebengine_locales/nl.pak
a684f95
%lang(pl) %{_qt6_translationdir}/qtwebengine_locales/pl.pak
a684f95
%lang(pt_BR) %{_qt6_translationdir}/qtwebengine_locales/pt-BR.pak
a684f95
%lang(pt_PT) %{_qt6_translationdir}/qtwebengine_locales/pt-PT.pak
a684f95
%lang(ro) %{_qt6_translationdir}/qtwebengine_locales/ro.pak
a684f95
%lang(ru) %{_qt6_translationdir}/qtwebengine_locales/ru.pak
a684f95
%lang(sk) %{_qt6_translationdir}/qtwebengine_locales/sk.pak
a684f95
%lang(sl) %{_qt6_translationdir}/qtwebengine_locales/sl.pak
a684f95
%lang(sr) %{_qt6_translationdir}/qtwebengine_locales/sr.pak
a684f95
%lang(sv) %{_qt6_translationdir}/qtwebengine_locales/sv.pak
a684f95
%lang(sw) %{_qt6_translationdir}/qtwebengine_locales/sw.pak
a684f95
%lang(ta) %{_qt6_translationdir}/qtwebengine_locales/ta.pak
a684f95
%lang(te) %{_qt6_translationdir}/qtwebengine_locales/te.pak
a684f95
%lang(th) %{_qt6_translationdir}/qtwebengine_locales/th.pak
a684f95
%lang(tr) %{_qt6_translationdir}/qtwebengine_locales/tr.pak
a684f95
%lang(uk) %{_qt6_translationdir}/qtwebengine_locales/uk.pak
a684f95
%lang(vi) %{_qt6_translationdir}/qtwebengine_locales/vi.pak
a684f95
%lang(zh_CN) %{_qt6_translationdir}/qtwebengine_locales/zh-CN.pak
a684f95
%lang(zh_TW) %{_qt6_translationdir}/qtwebengine_locales/zh-TW.pak
a684f95
a684f95
%files devel
a684f95
%{_rpmmacrodir}/macros.qt6-qtwebengine
a684f95
%dir %{_qt6_headerdir}/QtWebEngineCore
a684f95
%{_qt6_headerdir}/QtWebEngineCore/*
a684f95
%dir %{_qt6_headerdir}/QtWebEngineQuick
a684f95
%{_qt6_headerdir}/QtWebEngineQuick/*
a684f95
%dir %{_qt6_headerdir}/QtWebEngineWidgets
a684f95
%{_qt6_headerdir}/QtWebEngineWidgets/*
dc4cfcf
%{_qt6_libdir}/qt6/metatypes/qt6webengine*.json
dc4cfcf
%{_qt6_libdir}/qt6/modules/WebEngine*.json
a684f95
%{_qt6_libdir}/libQt6WebEngineCore.so
a684f95
%{_qt6_libdir}/libQt6WebEngineQuick.so
a684f95
%{_qt6_libdir}/libQt6WebEngineQuickDelegatesQml.so
a684f95
%{_qt6_libdir}/libQt6WebEngineWidgets.so
a684f95
%{_qt6_libdir}/libQt6WebEngineCore.prl
a684f95
%{_qt6_libdir}/libQt6WebEngineQuick.prl
a684f95
%{_qt6_libdir}/libQt6WebEngineQuickDelegatesQml.prl
a684f95
%{_qt6_libdir}/libQt6WebEngineWidgets.prl
a684f95
%{_qt6_libdir}/cmake/Qt6/*.cmake
dc4cfcf
%{_qt6_libdir}/cmake/Qt6BuildInternals/StandaloneTests/QtWebEngine*
dc4cfcf
%{_qt6_libdir}/cmake/Qt6Qml/QmlPlugins/Qt6qtwebengine*.cmake
a684f95
%dir %{_qt6_libdir}/cmake/Qt6Designer
dc4cfcf
%{_qt6_libdir}/cmake/Qt6Designer/Qt6QWebEngine*.cmake
a684f95
%dir %{_qt6_libdir}/cmake/Qt6WebEngineQuick
a684f95
%{_qt6_libdir}/cmake/Qt6WebEngineQuick/*.cmake
a684f95
%dir %{_qt6_libdir}/cmake/Qt6WebEngineWidgets
a684f95
%{_qt6_libdir}/cmake/Qt6WebEngineWidgets/*.cmake
a684f95
%dir %{_qt6_libdir}/cmake/Qt6WebEngineCore
a684f95
%{_qt6_libdir}/cmake/Qt6WebEngineCore/*.cmake
a684f95
%dir %{_qt6_libdir}/cmake/Qt6WebEngineCoreTools
a684f95
%{_qt6_libdir}/cmake/Qt6WebEngineCoreTools/*.cmake
a684f95
%dir %{_qt6_libdir}/cmake/Qt6WebEngineQuickDelegatesQml
a684f95
%{_qt6_libdir}/cmake/Qt6WebEngineQuickDelegatesQml/*.cmake
a684f95
%{_qt6_libdir}/pkgconfig/Qt6WebEngineCore.pc
a684f95
%{_qt6_libdir}/pkgconfig/Qt6WebEngineQuick.pc
a684f95
%{_qt6_libdir}/pkgconfig/Qt6WebEngineQuickDelegatesQml.pc
a684f95
%{_qt6_libdir}/pkgconfig/Qt6WebEngineWidgets.pc
dc4cfcf
%{_qt6_archdatadir}/mkspecs/modules/qt_lib_webengine*.pri
4bbc8e8
%{_qt6_plugindir}/designer/libqwebengineview.so
a684f95
a684f95
%files devtools
a684f95
%{_qt6_datadir}/resources/qtwebengine_devtools_resources.pak
a684f95
6b9a5c8
%if 0%{?examples}
a684f95
%files examples
dc4cfcf
%{_qt6_examplesdir}/webengine*
6b9a5c8
%endif
a684f95
dc4cfcf
%files -n qt6-qtpdf
dc4cfcf
%license LICENSE.*
dc4cfcf
%{_qt6_libdir}/libQt6Pdf.so.*
dc4cfcf
%{_qt6_libdir}/libQt6PdfQuick.so.*
dc4cfcf
%{_qt6_libdir}/libQt6PdfWidgets.so.*
dc4cfcf
%dir %{_qt6_libdir}/qt6/qml/QtQuick/Pdf
dc4cfcf
%{_qt6_libdir}/qt6/qml/QtQuick/Pdf/*
dc4cfcf
%{_qt6_plugindir}/imageformats/libqpdf.so
dc4cfcf
dc4cfcf
%files -n qt6-qtpdf-devel
dc4cfcf
%dir %{_qt6_headerdir}/QtPdf
dc4cfcf
%{_qt6_headerdir}/QtPdf/*
dc4cfcf
%dir %{_qt6_headerdir}/QtPdfQuick
dc4cfcf
%{_qt6_headerdir}/QtPdfQuick/*
dc4cfcf
%dir %{_qt6_headerdir}/QtPdfWidgets
dc4cfcf
%{_qt6_headerdir}/QtPdfWidgets/*
dc4cfcf
%{_qt6_libdir}/qt6/metatypes/qt6pdf*.json
dc4cfcf
%{_qt6_libdir}/qt6/modules/Pdf*.json
dc4cfcf
%{_qt6_libdir}/libQt6Pdf.so
dc4cfcf
%{_qt6_libdir}/libQt6PdfQuick.so
dc4cfcf
%{_qt6_libdir}/libQt6PdfWidgets.so
dc4cfcf
%{_qt6_libdir}/libQt6Pdf.prl
dc4cfcf
%{_qt6_libdir}/libQt6PdfQuick.prl
dc4cfcf
%{_qt6_libdir}/libQt6PdfWidgets.prl
dc4cfcf
%{_qt6_libdir}/cmake/Qt6Gui/Qt6QPdf*.cmake
dc4cfcf
%dir %{_qt6_libdir}/cmake/Qt6Pdf
dc4cfcf
%{_qt6_libdir}/cmake/Qt6Pdf/*.cmake
dc4cfcf
%dir %{_qt6_libdir}/cmake/Qt6PdfQuick
dc4cfcf
%{_qt6_libdir}/cmake/Qt6PdfQuick/*.cmake
dc4cfcf
%dir %{_qt6_libdir}/cmake/Qt6PdfWidgets
dc4cfcf
%{_qt6_libdir}/cmake/Qt6PdfWidgets/*.cmake
dc4cfcf
%{_qt6_libdir}/cmake/Qt6Qml/QmlPlugins/Qt6Pdf*.cmake
dc4cfcf
%{_qt6_libdir}/pkgconfig/Qt6Pdf.pc
dc4cfcf
%{_qt6_libdir}/pkgconfig/Qt6PdfQuick.pc
dc4cfcf
%{_qt6_libdir}/pkgconfig/Qt6PdfWidgets.pc
dc4cfcf
%{_qt6_archdatadir}/mkspecs/modules/qt_lib_pdf*.pri
dc4cfcf
ba369a7
%if 0%{?examples}
dc4cfcf
%files -n qt6-qtpdf-examples
dc4cfcf
%{_qt6_examplesdir}/pdf*
ba369a7
%endif
a684f95
a684f95
%changelog
fdbce72
* Wed Apr 24 2024 Jan Grulich <jgrulich@redhat.com> - 6.7.0-2
fdbce72
- Rework and enable openh264 patches
fdbce72
def2052
* Wed Apr 03 2024 Jan Grulich <jgrulich@redhat.com> - 6.7.0-1
def2052
- 6.7.0
def2052
4bbc8e8
* Sun Mar 3 2024 Marie Loise Nolden <loise@kde.org> - 6.6.2-3
4bbc8e8
- move qt designer plugin to -devel 
4bbc8e8
- remove old doc package code (docs are in qt6-doc)
4bbc8e8
6b9a5c8
* Mon Feb 19 2024 Jan Grulich <jgrulich@redhat.com> - 6.6.2-2
6b9a5c8
- Examples: also install source files
6b9a5c8
bcb85e4
* Thu Feb 15 2024 Jan Grulich <jgrulich@redhat.com> - 6.6.2-1
bcb85e4
- 6.6.2
bcb85e4
40941eb
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.6.1-2
40941eb
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
40941eb
e7a3b4d
* Tue Nov 28 2023 Jan Grulich <jgrulich@redhat.com> - 6.6.1-1
e7a3b4d
- 6.6.1
e7a3b4d
d5c3f17
* Fri Oct 27 2023 Jan Grulich <jgrulich@redhat.com> - 6.6.0-2
d5c3f17
- Move v8_context_snapshot file to correct subpackage
d5c3f17
6c9da4f
* Wed Oct 11 2023 Jan Grulich <jgrulich@redhat.com> - 6.6.0-1
6c9da4f
- 6.6.0
6c9da4f
88e6fec
* Sun Oct 01 2023 Justin Zobel <justin.zobel@gmail.com> - 6.5.3-1
88e6fec
- new version
88e6fec
dc4cfcf
* Tue Sep 05 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 6.5.2-2
dc4cfcf
- Separate qtpdf subpackages
dc4cfcf
f3ed167
* Mon Jul 24 2023 Jan Grulich <jgrulich@redhat.com> - 6.5.2-1
f3ed167
- 6.5.2
f3ed167
57204b2
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.5.1-4
57204b2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
57204b2
90a55c3
* Thu Jul 13 2023 František Zatloukal <fzatlouk@redhat.com> - 6.5.1-3
90a55c3
- Python 3.12 Fixes
90a55c3
a166533
* Tue Jul 11 2023 František Zatloukal <fzatlouk@redhat.com> - 6.5.1-2
a166533
- Rebuilt for ICU 73.2
a166533
2221063
* Thu May 25 2023 Jan Grulich <jgrulich@redhat.com> - 6.5.1-1
2221063
- 6.5.1
2221063
b69eb44
* Tue Apr 04 2023 Jan Grulich <jgrulich@redhat.com> - 6.5.0-1
b69eb44
- 6.5.0
b69eb44
78415c7
* Fri Mar 24 2023 Jan Grulich <jgrulich@redhat.com> - 6.4.3-1
78415c7
- 6.4.3
78415c7
c3c0414
* Sun Mar 12 2023 Neal Gompa <ngompa@fedoraproject.org> - 6.4.2-4
c3c0414
- Rebuild for ffmpeg 6.0
c3c0414
5597169
* Sat Feb 25 2023 Marek Kasik <mkasik@redhat.com> - 6.4.2-3
5597169
- Rebuild for freetype-2.13.0
5597169
ede49a6
* Wed Feb 15 2023 Tom Callaway <spot@fedoraproject.org> - 6.4.2-2
ede49a6
- rebuild for libvpx
ede49a6
78415c7
* Mon Jan 16 2023 Jan Grulich <jgrulich@redhat.com> - 6.4.2-1
78415c7
a684f95
- Initial package