qt6-base/qt6-base.spec

1175 lines
39 KiB
RPMSpec

#
# spec file for package qt6-base
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define real_version 6.0.2
%define short_version 6.0
%define tar_name qtbase-everywhere-src
%define tar_suffix %{nil}
#
%global qt6_flavor @BUILD_FLAVOR@%{nil}
%if "%{qt6_flavor}" == "docs"
%define pkg_suffix -docs
%endif
#
%ifarch %{arm} aarch64
%global with_gles 1
%endif
Name: qt6-base%{?pkg_suffix}
Version: 6.0.2
Release: 0
Summary: Qt 6 core components (Core, Gui, Widgets, Network...)
License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 OR LGPL-3.0-only
URL: https://www.qt.io
Source: https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz
Source99: qt6-base-rpmlintrc
# Patches 0-100 are upstream patches #
# Patches 100-200 are openSUSE and/or non-upstream(able) patches #
Patch100: fix-fixqt4headers.patch
Patch101: 0001-Tell-the-truth-about-private-API.patch
##
BuildRequires: cmake >= 3.18.3
BuildRequires: cups-devel
BuildRequires: gcc-c++
BuildRequires: libicu-devel
BuildRequires: libmysqlclient-devel
BuildRequires: libproxy-devel
# Feature is disabled by default
# BuildRequires: lksctp-tools-devel
BuildRequires: pcre2-devel
BuildRequires: perl
BuildRequires: pkgconfig
BuildRequires: postgresql-server-devel
BuildRequires: qt6-macros
BuildRequires: xmlstarlet
BuildRequires: cmake(double-conversion)
BuildRequires: pkgconfig(atspi-2)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(harfbuzz)
BuildRequires: pkgconfig(krb5-gssapi)
BuildRequires: pkgconfig(libb2)
BuildRequires: pkgconfig(libbrotlicommon)
BuildRequires: pkgconfig(libbrotlidec)
BuildRequires: pkgconfig(libbrotlienc)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libinput)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(libturbojpeg)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(mtdev)
BuildRequires: pkgconfig(odbc)
BuildRequires: pkgconfig(opengl)
BuildRequires: pkgconfig(openssl) >= 1.1.1
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(tslib)
BuildRequires: pkgconfig(vulkan)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-cursor)
BuildRequires: pkgconfig(wayland-egl)
BuildRequires: pkgconfig(wayland-server)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-cursor)
BuildRequires: pkgconfig(xcb-icccm)
BuildRequires: pkgconfig(xcb-image)
BuildRequires: pkgconfig(xcb-keysyms)
BuildRequires: pkgconfig(xcb-renderutil)
BuildRequires: pkgconfig(xcb-util)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xkbcommon-x11)
BuildRequires: pkgconfig(xrender)
BuildRequires: pkgconfig(zlib)
%if 0%{?with_gles}
BuildRequires: Mesa-libGLESv3-devel
BuildRequires: pkgconfig(glesv2)
%endif
# Not available for armv7l, s390x and riscv64
%ifnarch %{arm} s390x riscv64
BuildRequires: pkgconfig(lttng-ust)
%endif
%if "%{qt6_flavor}" == "docs"
BuildRequires: qt6-tools
%{qt6_doc_packages}
%endif
%description
Qt is a set of libraries for developing applications.
This package contains base tools, like string, xml, and network
handling.
%if !%{qt6_docs_flavor}
%package devel
Summary: Qt 6 base development meta package
Requires: qt6-base-common-devel
Requires: cmake(Qt6Concurrent) = %{real_version}
Requires: cmake(Qt6Core) = %{real_version}
Requires: cmake(Qt6DBus) = %{real_version}
Requires: cmake(Qt6Gui) = %{real_version}
Requires: cmake(Qt6Network) = %{real_version}
Requires: cmake(Qt6OpenGL) = %{real_version}
Requires: cmake(Qt6OpenGLWidgets) = %{real_version}
Requires: cmake(Qt6PrintSupport) = %{real_version}
Requires: cmake(Qt6Sql) = %{real_version}
Requires: cmake(Qt6Test) = %{real_version}
Requires: cmake(Qt6Widgets) = %{real_version}
Requires: cmake(Qt6Xml) = %{real_version}
BuildArch: noarch
%description devel
This meta-package requires all the qt6-base development packages.
%package private-devel
Summary: Qt 6 base unstable ABI meta package
Requires: qt6-base-devel = %{version}
Requires: qt6-core-private-devel = %{version}
Requires: qt6-dbus-private-devel = %{version}
Requires: qt6-gui-private-devel = %{version}
Requires: qt6-kmssupport-private-devel = %{version}
Requires: qt6-network-private-devel = %{version}
Requires: qt6-opengl-private-devel = %{version}
Requires: qt6-platformsupport-private-devel = %{version}
Requires: qt6-printsupport-private-devel = %{version}
Requires: qt6-sql-private-devel = %{version}
Requires: qt6-test-private-devel = %{version}
Requires: qt6-widgets-private-devel = %{version}
Requires: qt6-xml-private-devel = %{version}
BuildArch: noarch
%description private-devel
This meta-package requires all the qt6-base development packages that do not
have any ABI or API guarantees.
%package common-devel
Summary: Qt 6 Core development utilities
Requires: cmake
Requires: gcc-c++
Requires: pkgconfig
Requires: qt6-macros
%description common-devel
Qt 6 Core development utilities.
It contains the qtbase utilities and definitions.
%package -n libQt6Concurrent6
Summary: Qt 6 Concurrent library
Requires: libQt6Core6 = %{version}
%description -n libQt6Concurrent6
The QtConcurrent namespace provides high-level APIs that help write
multi-threaded programs without using low-level threading primitives
such as mutexes, read-write locks, wait conditions, or semaphores.
Programs written with QtConcurrent automatically adjust the number of
threads used according to the number of processor cores available.
QtConcurrent includes functional programming style APIs for parallel
list processing, including a MapReduce and FilterReduce
implementation for shared-memory (non-distributed) systems, and
classes for managing asynchronous computations in GUI applications.
%package -n qt6-concurrent-devel
Summary: Development files for the Qt 6 Concurrent library
Requires: libQt6Concurrent6 = %{version}
Requires: cmake(Qt6Core) = %{real_version}
%description -n qt6-concurrent-devel
Development files for the Qt 6 Concurrent library.
%package -n libQt6Core6
Summary: Qt 6 Core library
Recommends: qt6-translations
%description -n libQt6Core6
The Qt 6 Core library. It adds these features to C++:
* a mechanism for object communication called signals and slots
* queryable and designable object properties
* hierarchical and queryable object trees that organize
* object ownership in a natural way with guarded pointers (QPointer)
* a dynamic cast that works across library boundaries
%package -n qt6-core-devel
Summary: Development files for the Qt 6 Core library
Requires: libQt6Core6 = %{version}
Requires: qt6-base-common-devel = %{version}
%description -n qt6-core-devel
Development files for the Qt 6 Core library.
%package -n qt6-core-private-devel
Summary: Non-ABI stable API for the Qt 6 Core library
Requires: cmake(Qt6Core) = %{real_version}
%description -n qt6-core-private-devel
This package provides private headers of libQt6Core that do not have any
ABI or API guarantees.
%package -n libQt6DBus6
Summary: Qt6 D-Bus library
Requires: libQt6Core6 = %{version}
%description -n libQt6DBus6
The Qt D-Bus module is a library that can be used to perform
inter-process communication using the D-Bus protocol.
%package -n qt6-dbus-devel
Summary: Development files for the Qt 6 D-Bus library
Requires: libQt6DBus6 = %{version}
Requires: cmake(Qt6Core) = %{real_version}
%description -n qt6-dbus-devel
Development files for the Qt 6 D-Bus library. This package also
contains Qt6's qdbusxml2cpp and qdbuscpp2xml binaries.
%package -n qt6-dbus-private-devel
Summary: Non-ABI stable API for the Qt 6 D-Bus library
Requires: qt6-core-private-devel = %{version}
Requires: cmake(Qt6DBus) = %{real_version}
%description -n qt6-dbus-private-devel
This package provides private headers of libQt6DBus that do not have any
ABI or API guarantees.
%package -n libQt6Gui6
Summary: Qt 6 GUI related libraries
Requires: libQt6Core6 = %{version}
Requires: libQt6DBus6 = %{version}
Recommends: qt6-imageformats = %{version}
%description -n libQt6Gui6
The Qt GUI module provides classes for windowing system integration,
event handling, OpenGL and OpenGL ES integration, 2D graphics, basic
imaging, fonts and text. These classes are used internally by Qt's
user interface code and can also be used directly, for instance, to
write applications using low-level OpenGL ES graphics APIs.
For application developers writing user interfaces, Qt provides
higher level APIs, like Qt Quick, which are much more suitable than
the enablers found in the Qt GUI module.
%package -n qt6-gui-devel
Summary: Development files for the Qt 6 GUI libraries
Requires: libQt6Gui6 = %{version}
Requires: cmake(Qt6Core) = %{real_version}
Requires: pkgconfig(atspi-2)
Requires: pkgconfig(egl)
Requires: pkgconfig(libdrm)
Requires: pkgconfig(vulkan)
Requires: pkgconfig(xkbcommon) >= 0.4.1
%if 0%{?with_gles}
Requires: Mesa-libGLESv3-devel
Requires: pkgconfig(gbm)
Requires: pkgconfig(glesv2)
%else
Requires: pkgconfig(gl)
%endif
%description -n qt6-gui-devel
Development files for the Qt 6 GUI libraries.
%package -n qt6-gui-private-devel
Summary: Non-ABI stable API for the Qt 6 GUI libraries
Requires: libQt6Gui6 = %{version}
Requires: qt6-core-private-devel = %{version}
Requires: pkgconfig(xkbcommon)
%description -n qt6-gui-private-devel
This package provides private headers of libQt6Gui that do not have any
ABI or API guarantees.
%package -n libQt6Network6
Summary: Qt 6 Network library
Requires: libQt6Core6 = %{version}
Requires: libQt6DBus6 = %{version}
%description -n libQt6Network6
Qt Network provides a set of APIs for programming applications that
use TCP/IP. Operations such as requests, cookies, and sending data
over HTTP are handled by various C++ classes.
%package -n qt6-network-devel
Summary: Development files for the Qt 6 Network library
Requires: libQt6Network6 = %{version}
Requires: cmake(Qt6Core) = %{real_version}
# Until https://bugreports.qt.io/browse/QTBUG-87776 is fixed, CMake will
# report the optional WrapOpenSSL dependency is not found. This is expected.
# openSSL is only needed for the private link target.
%description -n qt6-network-devel
Development files for the Qt 6 Network library.
%package -n qt6-network-private-devel
Summary: Non-ABI stable API for the Qt 6 Network library
Requires: qt6-core-private-devel = %{version}
Requires: cmake(Qt6Network) = %{real_version}
Requires: pkgconfig(openssl) >= 1.1.1
%description -n qt6-network-private-devel
This package provides private headers of libQt6Network that do not have any
ABI or API guarantees.
%package -n libQt6OpenGL6
Summary: Qt 6 OpenGL library
Requires: libQt6Widgets6 = %{version}
%description -n libQt6OpenGL6
The Qt OpenGL module provides an OpenGL widget class that can be used
like any other Qt widget, except that it opens an OpenGL display
buffer where the OpenGL API can be used to render the contents.
%package -n qt6-opengl-devel
Summary: Development files for the Qt 6 OpenGL library
Requires: libQt6OpenGL6 = %{version}
Requires: cmake(Qt6Core) = %{real_version}
Requires: cmake(Qt6Gui) = %{real_version}
Requires: cmake(Qt6OpenGLWidgets) = %{real_version}
%if 0%{?with_gles}
Requires: Mesa-libGLESv3-devel
Requires: pkgconfig(glesv2)
%else
Requires: pkgconfig(gl)
%endif
%description -n qt6-opengl-devel
Development files for the Qt 6 OpenGL library.
%package -n qt6-opengl-private-devel
Summary: Non-ABI stable API for the Qt 6 OpenGL library
Requires: qt6-core-private-devel = %{version}
Requires: qt6-gui-private-devel = %{version}
Requires: cmake(Qt6OpenGL) = %{real_version}
%description -n qt6-opengl-private-devel
This package provides private headers of libQt6OpenGL that do not have any
ABI or API guarantees.
%package -n libQt6OpenGLWidgets6
Summary: Qt 6 OpenGLWidgets library
Requires: libQt6Widgets6 = %{version}
# FIXME
%description -n libQt6OpenGLWidgets6
The Qt OpenGL Widgets module provides an OpenGLWidgets class that can be used
like any other Qt widget, except that it opens an OpenGL display
buffer where the OpenGL API can be used to render the contents.
%package -n qt6-openglwidgets-devel
Summary: Development files for the Qt 6 OpenGLWidgets library
Requires: libQt6OpenGLWidgets6 = %{version}
Requires: cmake(Qt6Core) = %{real_version}
Requires: cmake(Qt6Gui) = %{real_version}
Requires: cmake(Qt6Widgets) = %{real_version}
%if 0%{?with_gles}
Requires: Mesa-libGLESv3-devel
Requires: pkgconfig(glesv2)
%else
Requires: pkgconfig(gl)
%endif
%description -n qt6-openglwidgets-devel
Development files for the Qt 6 OpenGLWidgets library.
%package -n libQt6PrintSupport6
Summary: Qt 6 PrintSupport library
Requires: libQt6Widgets6 = %{version}
Recommends: qt6-printsupport-cups = %{version}
%description -n libQt6PrintSupport6
An abstraction over the platform-specific printing systems. Using
this library, Qt applications can print to attached printers and
across networks to remote printers. Qt's printing system also
supports PDF file generation, providing the foundation for basic
report generation facilities.
%package -n qt6-printsupport-devel
Summary: Development files for the Qt 6 PrintSupport library
Requires: libQt6PrintSupport6 = %{version}
Requires: cmake(Qt6Core) = %{real_version}
Requires: cmake(Qt6Gui) = %{real_version}
Requires: cmake(Qt6Widgets) = %{real_version}
%description -n qt6-printsupport-devel
Development files for the Qt 6 PrintSupport library.
%package -n qt6-printsupport-private-devel
Summary: Non-ABI stable API for the Qt 6 PrintSupport library
# Includes <cups/ppd.h> in qprint_p.h
Requires: cups-devel
Requires: qt6-core-private-devel = %{version}
Requires: qt6-gui-private-devel = %{version}
Requires: qt6-widgets-private-devel = %{version}
Requires: cmake(Qt6PrintSupport) = %{real_version}
%description -n qt6-printsupport-private-devel
This package provides private headers of libQt6PrintSupport that do not have any
ABI or API guarantees.
%package -n libQt6Sql6
Summary: Qt 6 SQL related library
Requires: libQt6Core6 = %{version}
%description -n libQt6Sql6
A Qt 6 library which is used for connection with an SQL server. You
will need also a plugin package for a supported SQL server.
%package -n qt6-sql-devel
Summary: Development files for the Qt 6 SQL library
Requires: libQt6Sql6 = %{version}
Requires: cmake(Qt6Core) = %{real_version}
Suggests: qt6-sql-mysql = %{version}
Suggests: qt6-sql-postgresql = %{version}
Suggests: qt6-sql-sqlite = %{version}
Suggests: qt6-sql-unixODBC = %{version}
%description -n qt6-sql-devel
Development files for the Qt 6 SQL library
%package -n qt6-sql-private-devel
Summary: Non-ABI stable API for the Qt 6 SQL library
Requires: qt6-core-private-devel = %{version}
Requires: cmake(Qt6Sql) = %{real_version}
%description -n qt6-sql-private-devel
This package provides private headers of libQt6Sql that do not have any
ABI or API guarantees.
%package -n libQt6Test6
Summary: Qt 6 Test library
Requires: libQt6Core6 = %{version}
%description -n libQt6Test6
Qt Test is a framework for unit testing Qt based applications and
libraries. Qt Test provides functionality commonly found in unit
testing frameworks as well as extensions for testing graphical user
interfaces.
%package -n qt6-test-devel
Summary: Development files for the Qt 6 Test library
Requires: libQt6Test6 = %{version}
Requires: cmake(Qt6Core) = %{real_version}
%description -n qt6-test-devel
Development files for the Qt 6 Test library.
%package -n qt6-test-private-devel
Summary: Non-ABI stable API for the Qt 6 Test library
Requires: qt6-core-private-devel = %{version}
Requires: cmake(Qt6Test) = %{real_version}
%description -n qt6-test-private-devel
This package provides private headers of libQt6Test that do not have any
ABI or API guarantees.
%package -n libQt6Widgets6
Summary: Qt 6 Widgets library
Requires: libQt6Gui6 = %{version}
%description -n libQt6Widgets6
The Qt Widgets library provides a set of UI elements to create classic
desktop-style user interfaces.
%package -n qt6-widgets-devel
Summary: Development files for the Qt 6 Widgets library
Requires: libQt6Widgets6 = %{version}
Requires: cmake(Qt6Core) = %{real_version}
Requires: cmake(Qt6Gui) = %{real_version}
%description -n qt6-widgets-devel
Development files for the Qt 6 Widgets library.
%package -n qt6-widgets-private-devel
Summary: Non-ABI stable API for the Qt 6 Widgets library
Requires: qt6-core-private-devel = %{version}
Requires: qt6-gui-private-devel = %{version}
Requires: cmake(Qt6Widgets) = %{real_version}
%description -n qt6-widgets-private-devel
This package provides private headers of libQt6Widgets that do not have any
ABI or API guarantees.
%package -n libQt6Xml6
Summary: Qt 6 XML library
Requires: libQt6Core6 = %{version}
%description -n libQt6Xml6
The Qt XML module provides C++ implementations of the SAX and DOM
standards for XML.
%package -n qt6-xml-devel
Summary: Development files for the Qt 6 XML library
Requires: libQt6Xml6 = %{version}
Requires: qt6-core-private-devel
Requires: cmake(Qt6Core) = %{real_version}
%description -n qt6-xml-devel
Development files for the Qt 6 XML library.
(The module is not actively maintained anymore. Please use the
QXmlStreamReader and QXmlStreamWriter classes in Qt Core instead.)
%package -n qt6-xml-private-devel
Summary: Non-ABI stable API for the Qt 6 XML library
Requires: qt6-core-private-devel = %{version}
Requires: cmake(Qt6Xml) = %{real_version}
%description -n qt6-xml-private-devel
This package provides private headers of libQt6Xml that do not have any
ABI or API guarantees.
%package -n qt6-docs-common
Summary: Common files for building documentation
BuildArch: noarch
%description -n qt6-docs-common
This package contains common files used for building Qt documentation.
### Static libraries ###
%package -n qt6-kmssupport-devel-static
Summary: Qt KMSSupport module
Requires: qt6-core-private-devel = %{version}
Requires: qt6-gui-private-devel = %{version}
Requires: cmake(Qt6Core) = %{real_version}
Requires: cmake(Qt6Gui) = %{real_version}
%description -n qt6-kmssupport-devel-static
Qt module to support Kernel Mode Setting.
%package -n qt6-kmssupport-private-devel
Summary: Non-ABI stable API for the Qt 6 KMSSupport library
Requires: qt6-kmssupport-devel-static = %{version}
%description -n qt6-kmssupport-private-devel
This package provides private headers of libQt6KmsSupport that do not have any
ABI or API guarantees.
%package -n qt6-platformsupport-devel-static
Summary: Qt PlatformSupport module
Requires: cmake(Qt6Core) = %{real_version}
Requires: cmake(Qt6DBus) = %{real_version}
Requires: cmake(Qt6Gui) = %{real_version}
Requires: pkgconfig(atspi-2)
Requires: pkgconfig(egl)
Requires: pkgconfig(fontconfig)
Requires: pkgconfig(freetype2)
Requires: pkgconfig(gl)
Requires: pkgconfig(glib-2.0)
Requires: pkgconfig(libinput)
Requires: pkgconfig(libudev)
Requires: pkgconfig(mtdev)
Requires: pkgconfig(tslib)
Requires: pkgconfig(x11)
Requires: pkgconfig(xext)
Requires: pkgconfig(xkbcommon) >= 0.4.1
Requires: pkgconfig(xkbcommon-x11) >= 0.4.1
Requires: pkgconfig(xrender)
%description -n qt6-platformsupport-devel-static
Qt PlatformSupport module.
%package -n qt6-platformsupport-private-devel
Summary: Non-ABI stable API for the Qt6 PlatformSupport library
Requires: qt6-core-private-devel = %{version}
Requires: qt6-gui-private-devel = %{version}
Requires: qt6-platformsupport-devel-static = %{version}
%description -n qt6-platformsupport-private-devel
This package provides private headers of libQt6PlatformSupport that do not have
any ABI or API guarantees.
### Plugins ###
%package -n qt6-platformtheme-gtk3
Summary: Qt 6 GTK3 plugin
Requires: libQt6Gui6 = %{version}
Supplements: (libQt6Gui6 and libgtk-3-0)
%description -n qt6-platformtheme-gtk3
Qt 6 plugin for better integration with GTK3-based desktop environments.
%package -n qt6-platformtheme-xdgdesktopportal
Summary: Qt 6 XDG Desktop Portal Plugin
Requires: libQt6Gui6 = %{version}
%description -n qt6-platformtheme-xdgdesktopportal
Qt 6 plugin for integration with Flatpak and Snap.
%package -n qt6-printsupport-cups
Summary: Qt 6 CUPS plugin
Requires: libQt6PrintSupport6 = %{version}
%description -n qt6-printsupport-cups
The Qt printsupport CUPS plugin.
%package -n qt6-sql-mysql
Summary: Qt 6 MySQL support
Requires: libQt6Sql6 = %{version}
%description -n qt6-sql-mysql
A plugin to access MySQL servers in Qt applications.
%package -n qt6-sql-postgresql
Summary: Qt 6 PostgreSQL plugin
Requires: libQt6Sql6 = %{version}
%description -n qt6-sql-postgresql
A plugin to access PostgreSQL servers in Qt applications.
The QPSQL driver supports version 9 and higher of the PostgreSQL
server.
%package -n qt6-sql-sqlite
Summary: Qt 6 SQLite plugin
Requires: libQt6Sql6 = %{version}
%description -n qt6-sql-sqlite
A plugin to access SQLite databases in Qt applications.
SQLite is an in-process database, which means that it is not
necessary to have a database server. SQLite operates on a single
file, which must be set as the database name when opening a
connection.
%package -n qt6-sql-unixODBC
Summary: Qt 6 unixODBC plugin
Requires: libQt6Sql6 = %{version}
%description -n qt6-sql-unixODBC
A plugin to connect to an ODBC driver manager in Qt applications and
access the available data sources. Note that you also need to install
and configure ODBC drivers for the ODBC driver manager that is
installed on your system.
%{qt6_examples_package}
%endif
%prep
%autosetup -p1 -n %{tar_name}-%{real_version}%{tar_suffix}
# We don't want to use these 3rdparty libraries
rm -r src/3rdparty/{double-conversion,libjpeg,libpng,freetype,harfbuzz-ng,sqlite,xcb,zlib}
# Empty file used for the meta packages
cat >> meta_package << EOF
This is a meta package, it does not contain any file
EOF
%build
%define _lto_cflags %{nil}
# NOTE: ltcg causes linker errors on ppc64
%cmake_qt6 \
%ifnarch ppc64
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
%endif
-DQT_FEATURE_journald=ON \
-DQT_FEATURE_libproxy=ON \
-DQT_FEATURE_openssl_linked=ON \
-DQT_FEATURE_reduce_relocations=OFF \
-DQT_FEATURE_relocatable=OFF \
-DQT_FEATURE_system_sqlite=ON \
-DQT_FEATURE_enable_new_dtags=ON \
%if 0%{?with_gles}
-DQT_FEATURE_opengles2=ON \
-DQT_FEATURE_opengles3=ON
%endif
%{qt6_build}
%install
%{qt6_install}
%if !%{qt6_docs_flavor}
# Empty folders provided by libQt6Core6 and qt6-core-common-devel
mkdir -p %{buildroot}%{_qt6_sysconfdir}
mkdir -p %{buildroot}%{_qt6_testsdir}
mkdir -p %{buildroot}%{_qt6_translationsdir}
%{qt6_link_executables}
# This is not an executable, no need to have a symlink
rm %{buildroot}%{_bindir}/qt-cmake-private-install.cmake6
# rpmlint
# E: env-script-interpreter
sed -i 's#env perl#perl#' %{buildroot}%{_qt6_libexecdir}/syncqt.pl
# syncqt is installed in both %%_qt6_bindir and %%_qt6_libexecdir
# QtSyncQtHelpers.cmake needs the libexec one...and qmake the other one.
# Creating a symlink is not necessary
rm %{buildroot}%{_bindir}/syncqt.pl6
rm %{buildroot}%{_qt6_bindir}/syncqt.pl
ln -s %{_qt6_libexecdir}/syncqt.pl %{buildroot}%{_qt6_bindir}/syncqt.pl
# Internal static library. Should not be installed
rm %{buildroot}%{_qt6_descriptionsdir}/Core_qobject.json
rm %{buildroot}%{_qt6_libdir}/libQt6Core_qobject.a
rm %{buildroot}%{_qt6_libdir}/libQt6Core_qobject.prl
rm -r %{buildroot}%{_qt6_cmakedir}/Qt6Core_qobject
# Static library created by an example
rm %{buildroot}%{_prefix}/lib/libpnp_basictools.a
# CMake modules for plugins are not useful
rm %{buildroot}%{_qt6_cmakedir}/*/*Plugin{Config,ConfigVersion,Dependencies,Targets*}.cmake
# There are no private headers
rm %{buildroot}%{_qt6_mkspecsdir}/modules/qt_lib_concurrent_private.pri
rm %{buildroot}%{_qt6_mkspecsdir}/modules/qt_lib_eglfs_kms_support_private.pri
rm %{buildroot}%{_qt6_mkspecsdir}/modules/qt_lib_openglwidgets_private.pri
rm %{buildroot}%{_qt6_mkspecsdir}/modules/qt_lib_xcb_qpa_lib_private.pri
# These files are only useful for the Qt continuous integration
rm %{buildroot}%{_qt6_libexecdir}/ensure_pro_file.cmake
rm %{buildroot}%{_qt6_libexecdir}/android_*.sh
# This is only for Apple platforms and has a python2 dep
rm -r %{buildroot}%{_qt6_mkspecsdir}/features/uikit
%post -n libQt6Concurrent6 -p /sbin/ldconfig
%post -n libQt6Core6 -p /sbin/ldconfig
%post -n libQt6DBus6 -p /sbin/ldconfig
%post -n libQt6Gui6 -p /sbin/ldconfig
%post -n libQt6Network6 -p /sbin/ldconfig
%post -n libQt6OpenGL6 -p /sbin/ldconfig
%post -n libQt6OpenGLWidgets6 -p /sbin/ldconfig
%post -n libQt6PrintSupport6 -p /sbin/ldconfig
%post -n libQt6Sql6 -p /sbin/ldconfig
%post -n libQt6Test6 -p /sbin/ldconfig
%post -n libQt6Widgets6 -p /sbin/ldconfig
%post -n libQt6Xml6 -p /sbin/ldconfig
%postun -n libQt6Concurrent6 -p /sbin/ldconfig
%postun -n libQt6Core6 -p /sbin/ldconfig
%postun -n libQt6DBus6 -p /sbin/ldconfig
%postun -n libQt6Gui6 -p /sbin/ldconfig
%postun -n libQt6Network6 -p /sbin/ldconfig
%postun -n libQt6OpenGL6 -p /sbin/ldconfig
%postun -n libQt6OpenGLWidgets6 -p /sbin/ldconfig
%postun -n libQt6PrintSupport6 -p /sbin/ldconfig
%postun -n libQt6Sql6 -p /sbin/ldconfig
%postun -n libQt6Test6 -p /sbin/ldconfig
%postun -n libQt6Widgets6 -p /sbin/ldconfig
%postun -n libQt6Xml6 -p /sbin/ldconfig
%files devel
%doc meta_package
%files private-devel
%doc meta_package
%files common-devel
# qt6-base-common-devel 'provides' the development related directories
%dir %{_qt6_cmakedir}
%dir %{_qt6_cmakedir}/Qt6BuildInternals
%dir %{_qt6_cmakedir}/Qt6BuildInternals/StandaloneTests
%dir %{_qt6_descriptionsdir}
%dir %{_qt6_includedir}
%dir %{_qt6_metatypesdir}
%dir %{_qt6_mkspecsdir}
%dir %{_qt6_mkspecsdir}/modules
%{_bindir}/androiddeployqt6
%{_bindir}/androidtestrunner6
%{_bindir}/cmake_automoc_parser6
%{_bindir}/moc6
%{_bindir}/qdbuscpp2xml6
%{_bindir}/qdbusxml2cpp6
%{_bindir}/qlalr6
%{_bindir}/qmake6
%{_bindir}/qt-cmake6
%{_bindir}/qt-cmake-private6
%{_bindir}/qt-cmake-standalone-test6
%{_bindir}/qt-configure-module6
%{_bindir}/qt-internal-configure-tests6
%{_bindir}/qvkgen6
%{_bindir}/rcc6
%{_bindir}/tracegen6
%{_bindir}/uic6
%{_qt6_bindir}/androiddeployqt
%{_qt6_bindir}/androidtestrunner
%{_qt6_bindir}/cmake_automoc_parser
%{_qt6_bindir}/moc
%{_qt6_bindir}/qdbuscpp2xml
%{_qt6_bindir}/qdbusxml2cpp
%{_qt6_bindir}/qlalr
%{_qt6_bindir}/qmake
%{_qt6_bindir}/qt-cmake
%{_qt6_bindir}/qt-cmake-private
%{_qt6_bindir}/qt-cmake-private-install.cmake
%{_qt6_bindir}/qt-cmake-standalone-test
%{_qt6_bindir}/qt-configure-module
%{_qt6_bindir}/qt-internal-configure-tests
%{_qt6_bindir}/qvkgen
%{_qt6_bindir}/rcc
%{_qt6_bindir}/syncqt.pl
%{_qt6_bindir}/tracegen
%{_qt6_bindir}/uic
%{_qt6_cmakedir}/Qt6/
%{_qt6_cmakedir}/Qt6BuildInternals/Qt6BuildInternalsConfig.cmake
%{_qt6_cmakedir}/Qt6BuildInternals/QtBuildInternalsExtra.cmake
%{_qt6_cmakedir}/Qt6BuildInternals/QtStandaloneTestTemplateProject/
%{_qt6_cmakedir}/Qt6BuildInternals/StandaloneTests/QtBaseTestsConfig.cmake
%{_qt6_cmakedir}/Qt6HostInfo/
%{_qt6_libexecdir}/syncqt.pl
%{_qt6_mkspecsdir}/*
%exclude %{_qt6_mkspecsdir}/modules/*.pri
%files -n libQt6Concurrent6
%{_qt6_libdir}/libQt6Concurrent.so.*
%files -n qt6-concurrent-devel
%{_qt6_cmakedir}/Qt6Concurrent/
%{_qt6_descriptionsdir}/Concurrent.json
%{_qt6_includedir}/QtConcurrent/
%{_qt6_libdir}/libQt6Concurrent.prl
%{_qt6_libdir}/libQt6Concurrent.so
%{_qt6_mkspecsdir}/modules/qt_lib_concurrent.pri
%files -n libQt6Core6
%license LICENSE.*
# libQt6Core6 'provides' the runtime directories except
# %%_qt6_importsdir and %%qt6_qmldir, owned by libQt6Qml6 and
# %%_qt6_docdir, owned by all documentation packages
%dir %{_qt6_archdatadir}
%dir %{_qt6_bindir}
%dir %{_qt6_datadir}
%dir %{_qt6_examplesdir}
%dir %{_qt6_libexecdir}
%dir %{_qt6_pluginsdir}
%dir %{_qt6_sysconfdir}
%dir %{_qt6_testsdir}
%dir %{_qt6_translationsdir}
%{_qt6_libdir}/libQt6Core.so.*
%files -n qt6-core-devel
%{_qt6_cmakedir}/Qt6Core/
%{_qt6_cmakedir}/Qt6CoreTools/
%{_qt6_descriptionsdir}/Core.json
%{_qt6_includedir}/QtCore/
%{_qt6_libdir}/libQt6Core.prl
%{_qt6_libdir}/libQt6Core.so
%{_qt6_metatypesdir}/qt6core_*_metatypes.json
%{_qt6_mkspecsdir}/modules/qt_lib_core.pri
%exclude %{_qt6_includedir}/QtCore/%{real_version}
%files -n qt6-core-private-devel
%dir %{_qt6_includedir}/QtCore/
%{_qt6_includedir}/QtCore/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_core_private.pri
%{_qt6_mkspecsdir}/modules/qt_lib_core_qobject_private.pri
%files -n libQt6DBus6
%{_qt6_libdir}/libQt6DBus.so.*
%files -n qt6-dbus-devel
%{_qt6_cmakedir}/Qt6DBus/
%{_qt6_cmakedir}/Qt6DBusTools/
%{_qt6_descriptionsdir}/DBus.json
%{_qt6_includedir}/QtDBus/
%{_qt6_libdir}/libQt6DBus.prl
%{_qt6_libdir}/libQt6DBus.so
%{_qt6_mkspecsdir}/modules/qt_lib_dbus.pri
%exclude %{_qt6_includedir}/QtDBus/%{real_version}
%files -n qt6-dbus-private-devel
%dir %{_qt6_includedir}/QtDBus
%{_qt6_includedir}/QtDBus/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_dbus_private.pri
%files -n libQt6Gui6
%dir %{_qt6_pluginsdir}/platformthemes
%{_qt6_libdir}/libQt6EglFSDeviceIntegration.so.*
%{_qt6_libdir}/libQt6EglFsKmsGbmSupport.so.*
%{_qt6_libdir}/libQt6EglFsKmsSupport.so.*
%{_qt6_libdir}/libQt6Gui.so.*
%{_qt6_libdir}/libQt6XcbQpa.so.*
%{_qt6_pluginsdir}/egldeviceintegrations/
%{_qt6_pluginsdir}/generic/
%{_qt6_pluginsdir}/imageformats/
%{_qt6_pluginsdir}/platforminputcontexts/
%{_qt6_pluginsdir}/platforms/
%{_qt6_pluginsdir}/xcbglintegrations/
%files -n qt6-gui-devel
%{_qt6_cmakedir}/Qt6EglFSDeviceIntegration/
%{_qt6_cmakedir}/Qt6EglFsKmsGbmSupport/
%{_qt6_cmakedir}/Qt6EglFsKmsSupport/
%{_qt6_cmakedir}/Qt6Gui/
%{_qt6_cmakedir}/Qt6GuiTools/
%{_qt6_cmakedir}/Qt6XcbQpa/
%{_qt6_descriptionsdir}/EglFSDeviceIntegration.json
%{_qt6_descriptionsdir}/EglFsKmsGbmSupport.json
%{_qt6_descriptionsdir}/EglFsKmsSupport.json
%{_qt6_descriptionsdir}/Gui.json
%{_qt6_descriptionsdir}/XcbQpa.json
%{_qt6_includedir}/QtEglFSDeviceIntegration/
%{_qt6_includedir}/QtEglFsKmsGbmSupport/
%{_qt6_includedir}/QtEglFsKmsSupport/
%{_qt6_includedir}/QtGui/
%{_qt6_libdir}/libQt6EglFSDeviceIntegration.prl
%{_qt6_libdir}/libQt6EglFSDeviceIntegration.so
%{_qt6_libdir}/libQt6EglFsKmsGbmSupport.prl
%{_qt6_libdir}/libQt6EglFsKmsGbmSupport.so
%{_qt6_libdir}/libQt6EglFsKmsSupport.prl
%{_qt6_libdir}/libQt6EglFsKmsSupport.so
%{_qt6_libdir}/libQt6Gui.prl
%{_qt6_libdir}/libQt6Gui.so
%{_qt6_libdir}/libQt6XcbQpa.prl
%{_qt6_libdir}/libQt6XcbQpa.so
%{_qt6_metatypesdir}/qt6gui_*_metatypes.json
%{_qt6_mkspecsdir}/modules/qt_lib_gui.pri
%exclude %{_qt6_includedir}/QtEglFSDeviceIntegration/%{real_version}
%exclude %{_qt6_includedir}/QtEglFsKmsGbmSupport/%{real_version}
%exclude %{_qt6_includedir}/QtEglFsKmsSupport/%{real_version}
%exclude %{_qt6_includedir}/QtGui/%{real_version}
%files -n qt6-gui-private-devel
%dir %{_qt6_includedir}/QtEglFSDeviceIntegration
%dir %{_qt6_includedir}/QtEglFsKmsGbmSupport
%dir %{_qt6_includedir}/QtEglFsKmsSupport
%dir %{_qt6_includedir}/QtGui
%{_qt6_includedir}/QtEglFSDeviceIntegration/%{real_version}/
%{_qt6_includedir}/QtEglFsKmsGbmSupport/%{real_version}/
%{_qt6_includedir}/QtEglFsKmsSupport/%{real_version}/
%{_qt6_includedir}/QtGui/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_eglfs_kms_gbm_support_private.pri
%{_qt6_mkspecsdir}/modules/qt_lib_eglfsdeviceintegration_private.pri
%{_qt6_mkspecsdir}/modules/qt_lib_gui_private.pri
%files -n libQt6Network6
%{_qt6_libdir}/libQt6Network.so.*
%files -n qt6-network-devel
%{_qt6_cmakedir}/Qt6Network/
%{_qt6_descriptionsdir}/Network.json
%{_qt6_includedir}/QtNetwork/
%{_qt6_libdir}/libQt6Network.prl
%{_qt6_libdir}/libQt6Network.so
%{_qt6_mkspecsdir}/modules/qt_lib_network.pri
%exclude %{_qt6_includedir}/QtNetwork/%{real_version}
%files -n qt6-network-private-devel
%dir %{_qt6_includedir}/QtNetwork
%{_qt6_includedir}/QtNetwork/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_network_private.pri
%files -n libQt6OpenGL6
%{_qt6_libdir}/libQt6OpenGL.so.*
%files -n qt6-opengl-devel
%{_qt6_cmakedir}/Qt6OpenGL/
%{_qt6_descriptionsdir}/OpenGL.json
%{_qt6_includedir}/QtOpenGL/
%{_qt6_libdir}/libQt6OpenGL.prl
%{_qt6_libdir}/libQt6OpenGL.so
%{_qt6_mkspecsdir}/modules/qt_lib_opengl.pri
%exclude %{_qt6_includedir}/QtOpenGL/%{real_version}
%files -n qt6-opengl-private-devel
%dir %{_qt6_includedir}/QtOpenGL
%{_qt6_includedir}/QtOpenGL/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_opengl_private.pri
%files -n libQt6OpenGLWidgets6
%{_qt6_libdir}/libQt6OpenGLWidgets.so.*
%files -n qt6-openglwidgets-devel
%{_qt6_cmakedir}/Qt6OpenGLWidgets/
%{_qt6_descriptionsdir}/OpenGLWidgets.json
%{_qt6_includedir}/QtOpenGLWidgets/
%{_qt6_libdir}/libQt6OpenGLWidgets.prl
%{_qt6_libdir}/libQt6OpenGLWidgets.so
%{_qt6_mkspecsdir}/modules/qt_lib_openglwidgets.pri
%files -n libQt6PrintSupport6
%dir %{_qt6_pluginsdir}/printsupport
%{_qt6_libdir}/libQt6PrintSupport.so.*
%files -n qt6-printsupport-devel
%{_qt6_cmakedir}/Qt6PrintSupport/
%{_qt6_descriptionsdir}/PrintSupport.json
%{_qt6_includedir}/QtPrintSupport/
%{_qt6_libdir}/libQt6PrintSupport.prl
%{_qt6_libdir}/libQt6PrintSupport.so
%{_qt6_mkspecsdir}/modules/qt_lib_printsupport.pri
%exclude %{_qt6_includedir}/QtPrintSupport/%{real_version}
%files -n qt6-printsupport-private-devel
%dir %{_qt6_includedir}/QtPrintSupport
%{_qt6_includedir}/QtPrintSupport/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_printsupport_private.pri
%files -n libQt6Sql6
%dir %{_qt6_pluginsdir}/sqldrivers
%{_qt6_libdir}/libQt6Sql.so.*
%files -n qt6-sql-devel
%{_qt6_cmakedir}/Qt6Sql/
%{_qt6_descriptionsdir}/Sql.json
%{_qt6_includedir}/QtSql/
%{_qt6_libdir}/libQt6Sql.prl
%{_qt6_libdir}/libQt6Sql.so
%{_qt6_mkspecsdir}/modules/qt_lib_sql.pri
%exclude %{_qt6_includedir}/QtSql/%{real_version}
%files -n qt6-sql-private-devel
%dir %{_qt6_includedir}/QtSql
%{_qt6_includedir}/QtSql/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_sql_private.pri
%files -n libQt6Test6
%{_qt6_libdir}/libQt6Test.so.*
%files -n qt6-test-devel
%{_qt6_cmakedir}/Qt6Test/
%{_qt6_descriptionsdir}/Test.json
%{_qt6_includedir}/QtTest/
%{_qt6_libdir}/libQt6Test.prl
%{_qt6_libdir}/libQt6Test.so
%{_qt6_mkspecsdir}/modules/qt_lib_testlib.pri
%exclude %{_qt6_includedir}/QtTest/%{real_version}
%files -n qt6-test-private-devel
%dir %{_qt6_includedir}/QtTest
%{_qt6_includedir}/QtTest/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_testlib_private.pri
%files -n libQt6Widgets6
%{_qt6_libdir}/libQt6Widgets.so.*
%files -n qt6-widgets-devel
%{_qt6_cmakedir}/Qt6Widgets/
%{_qt6_descriptionsdir}/Widgets.json
%{_qt6_cmakedir}/Qt6WidgetsTools/
%{_qt6_includedir}/QtWidgets/
%{_qt6_libdir}/libQt6Widgets.prl
%{_qt6_libdir}/libQt6Widgets.so
%{_qt6_metatypesdir}/qt6widgets_*_metatypes.json
%{_qt6_mkspecsdir}/modules/qt_lib_widgets.pri
%exclude %{_qt6_includedir}/QtWidgets/%{real_version}
%files -n qt6-widgets-private-devel
%dir %{_qt6_includedir}/QtWidgets
%{_qt6_includedir}/QtWidgets/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_widgets_private.pri
%files -n libQt6Xml6
%{_qt6_libdir}/libQt6Xml.so.*
%files -n qt6-xml-devel
%{_qt6_cmakedir}/Qt6Xml/
%{_qt6_descriptionsdir}/Xml.json
%{_qt6_includedir}/QtXml/
%{_qt6_libdir}/libQt6Xml.prl
%{_qt6_libdir}/libQt6Xml.so
%{_qt6_mkspecsdir}/modules/qt_lib_xml.pri
%exclude %{_qt6_includedir}/QtXml/%{real_version}
%files -n qt6-xml-private-devel
%dir %{_qt6_includedir}/QtXml
%{_qt6_includedir}/QtXml/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_xml_private.pri
%files -n qt6-docs-common
%dir %{_qt6_docdir}
%{_qt6_docdir}/config/
%{_qt6_docdir}/global/
### Static libraries ###
%files -n qt6-kmssupport-devel-static
%{_qt6_cmakedir}/Qt6KmsSupport/
%{_qt6_descriptionsdir}/KmsSupport.json
%{_qt6_includedir}/QtKmsSupport/
%{_qt6_libdir}/libQt6KmsSupport.a
%{_qt6_libdir}/libQt6KmsSupport.prl
%exclude %{_qt6_includedir}/QtKmsSupport/%{real_version}
%files -n qt6-kmssupport-private-devel
%dir %{_qt6_includedir}/QtKmsSupport
%{_qt6_includedir}/QtKmsSupport/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_kms_support_private.pri
%files -n qt6-platformsupport-devel-static
%{_qt6_cmakedir}/Qt6DeviceDiscoverySupport/
%{_qt6_cmakedir}/Qt6FbSupport/
%{_qt6_cmakedir}/Qt6InputSupport/
%{_qt6_descriptionsdir}/DeviceDiscoverySupport.json
%{_qt6_descriptionsdir}/FbSupport.json
%{_qt6_descriptionsdir}/InputSupport.json
%{_qt6_includedir}/QtDeviceDiscoverySupport/
%{_qt6_includedir}/QtFbSupport/
%{_qt6_includedir}/QtInputSupport/
%{_qt6_libdir}/libQt6DeviceDiscoverySupport.a
%{_qt6_libdir}/libQt6DeviceDiscoverySupport.prl
%{_qt6_libdir}/libQt6FbSupport.a
%{_qt6_libdir}/libQt6FbSupport.prl
%{_qt6_libdir}/libQt6InputSupport.a
%{_qt6_libdir}/libQt6InputSupport.prl
%exclude %{_qt6_includedir}/QtDeviceDiscoverySupport/%{real_version}
%exclude %{_qt6_includedir}/QtFbSupport/%{real_version}
%exclude %{_qt6_includedir}/QtInputSupport/%{real_version}
%files -n qt6-platformsupport-private-devel
%dir %{_qt6_includedir}/QtDeviceDiscoverySupport
%dir %{_qt6_includedir}/QtFbSupport
%dir %{_qt6_includedir}/QtInputSupport
%{_qt6_includedir}/QtDeviceDiscoverySupport/%{real_version}/
%{_qt6_includedir}/QtFbSupport/%{real_version}/
%{_qt6_includedir}/QtInputSupport/%{real_version}/
%{_qt6_mkspecsdir}/modules/qt_lib_devicediscovery_support_private.pri
%{_qt6_mkspecsdir}/modules/qt_lib_fb_support_private.pri
%{_qt6_mkspecsdir}/modules/qt_lib_input_support_private.pri
### Plugins ###
%files -n qt6-platformtheme-gtk3
%{_qt6_pluginsdir}/platformthemes/libqgtk3.so
%files -n qt6-platformtheme-xdgdesktopportal
%{_qt6_pluginsdir}/platformthemes/libqxdgdesktopportal.so
%files -n qt6-printsupport-cups
%{_qt6_pluginsdir}/printsupport/libcupsprintersupport.so
%files -n qt6-sql-mysql
%{_qt6_pluginsdir}/sqldrivers/libqsqlmysql.so
%files -n qt6-sql-postgresql
%{_qt6_pluginsdir}/sqldrivers/libqsqlpsql.so
%files -n qt6-sql-sqlite
%{_qt6_pluginsdir}/sqldrivers/libqsqlite.so
%files -n qt6-sql-unixODBC
%{_qt6_pluginsdir}/sqldrivers/libqsqlodbc.so
%endif
%changelog