diff --git a/.gitignore b/.gitignore index 6a6535c..084698d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/qtbase-everywhere-src-5.11.1.tar.xz +SOURCES/qtbase-everywhere-src-5.12.5.tar.xz diff --git a/.qt5-qtbase.metadata b/.qt5-qtbase.metadata index 97cf0c2..3c4e62e 100644 --- a/.qt5-qtbase.metadata +++ b/.qt5-qtbase.metadata @@ -1 +1 @@ -41c43cfd4713381b4e9f31db11836e9afdc0877e SOURCES/qtbase-everywhere-src-5.11.1.tar.xz +47145a722a8a8457121071f60b4e44fc66c58979 SOURCES/qtbase-everywhere-src-5.12.5.tar.xz diff --git a/SOURCES/qt5-qtbase-5.12.1-firebird.patch b/SOURCES/qt5-qtbase-5.12.1-firebird.patch new file mode 100644 index 0000000..674a5b5 --- /dev/null +++ b/SOURCES/qt5-qtbase-5.12.1-firebird.patch @@ -0,0 +1,29 @@ +diff -up qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json.firebird qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json +--- qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json.firebird 2019-01-28 11:11:52.000000000 -0600 ++++ qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json 2019-02-03 13:41:27.392305128 -0600 +@@ -49,10 +49,11 @@ + "ibase": { + "label": "InterBase", + "test": {}, +- "headers": "ibase.h", ++ "headers": "firebird/ibase.h", + "sources": [ + { "libs": "-lgds32_ms", "condition": "config.win32" }, +- { "libs": "-lgds", "condition": "!config.win32" } ++ { "libs": "-lgds", "condition": "!config.win32" }, ++ { "libs": "-lfbclient", "condition": "!config.win32" } + ] + }, + "mysql": { +diff -up qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/ibase/qsql_ibase_p.h.firebird qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/ibase/qsql_ibase_p.h +--- qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/ibase/qsql_ibase_p.h.firebird 2019-01-28 11:11:52.000000000 -0600 ++++ qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/ibase/qsql_ibase_p.h 2019-02-03 13:27:30.683142996 -0600 +@@ -52,7 +52,7 @@ + // + + #include +-#include ++#include + + #ifdef QT_PLUGIN + #define Q_EXPORT_SQLDRIVER_IBASE diff --git a/SOURCES/qt5-qtbase-5.9.1-firebird.patch b/SOURCES/qt5-qtbase-5.9.1-firebird.patch deleted file mode 100644 index a3510d9..0000000 --- a/SOURCES/qt5-qtbase-5.9.1-firebird.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/src/plugins/sqldrivers/configure.json b/src/plugins/sqldrivers/configure.json -index 234f880..7b13671 100644 ---- a/src/plugins/sqldrivers/configure.json -+++ b/src/plugins/sqldrivers/configure.json -@@ -50,11 +50,12 @@ - "ibase": { - "label": "InterBase", - "test": { -- "include": "ibase.h" -+ "include": "firebird/ibase.h" - }, - "sources": [ - { "libs": "-lgds32_ms", "condition": "config.win32" }, -- { "libs": "-lgds", "condition": "!config.win32" } -+ { "libs": "-lgds", "condition": "!config.win32" }, -+ { "libs": "-lfbclient", "condition": "!config.win32" } - ] - }, - "mysql": { -diff --git a/src/plugins/sqldrivers/ibase/qsql_ibase_p.h b/src/plugins/sqldrivers/ibase/qsql_ibase_p.h -index c7cee41..6a9c56c 100644 ---- a/src/plugins/sqldrivers/ibase/qsql_ibase_p.h -+++ b/src/plugins/sqldrivers/ibase/qsql_ibase_p.h -@@ -52,7 +52,7 @@ - // - - #include --#include -+#include - - #ifdef QT_PLUGIN - #define Q_EXPORT_SQLDRIVER_IBASE diff --git a/SOURCES/qt5-qtbase-CVE-2018-15518.patch b/SOURCES/qt5-qtbase-CVE-2018-15518.patch deleted file mode 100644 index bdd1b64..0000000 --- a/SOURCES/qt5-qtbase-CVE-2018-15518.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h -index 4157fbbd..f8b1ede9 100644 ---- a/src/corelib/serialization/qxmlstream_p.h -+++ b/src/corelib/serialization/qxmlstream_p.h -@@ -1250,7 +1250,7 @@ bool QXmlStreamReaderPrivate::parse() - state_stack[tos] = 0; - return true; - } else if (act > 0) { -- if (++tos == stack_size-1) -+ if (++tos >= stack_size-1) - reallocateStack(); - - Value &val = sym_stack[tos]; diff --git a/SOURCES/qt5-qtbase-CVE-2018-19870.patch b/SOURCES/qt5-qtbase-CVE-2018-19870.patch deleted file mode 100644 index e4080ef..0000000 --- a/SOURCES/qt5-qtbase-CVE-2018-19870.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/src/plugins/imageformats/gif/qgifhandler.cpp b/src/plugins/imageformats/gif/qgifhandler.cpp -index e0f7f44..ebe5964 100644 ---- a/src/plugins/imageformats/gif/qgifhandler.cpp -+++ b/src/plugins/imageformats/gif/qgifhandler.cpp -@@ -354,7 +354,8 @@ int QGIFFormat::decode(QImage *image, const uchar *buffer, int length, - (*image) = QImage(swidth, sheight, format); - bpl = image->bytesPerLine(); - bits = image->bits(); -- memset(bits, 0, image->sizeInBytes()); -+ if (bits) -+ memset(bits, 0, image->sizeInBytes()); - } - - // Check if the previous attempt to create the image failed. If it -@@ -415,6 +416,10 @@ int QGIFFormat::decode(QImage *image, const uchar *buffer, int length, - backingstore = QImage(qMax(backingstore.width(), w), - qMax(backingstore.height(), h), - QImage::Format_RGB32); -+ if (backingstore.isNull()) { -+ state = Error; -+ return -1; -+ } - memset(backingstore.bits(), 0, backingstore.sizeInBytes()); - } - const int dest_bpl = backingstore.bytesPerLine(); diff --git a/SOURCES/qt5-qtbase-CVE-2018-19873.patch b/SOURCES/qt5-qtbase-CVE-2018-19873.patch deleted file mode 100644 index 7e38bf6..0000000 --- a/SOURCES/qt5-qtbase-CVE-2018-19873.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/gui/image/qbmphandler.cpp b/src/gui/image/qbmphandler.cpp -index 587f375c..5dff4ab0 100644 ---- a/src/gui/image/qbmphandler.cpp -+++ b/src/gui/image/qbmphandler.cpp -@@ -188,6 +188,8 @@ static bool read_dib_infoheader(QDataStream &s, BMP_INFOHDR &bi) - if (!(comp == BMP_RGB || (nbits == 4 && comp == BMP_RLE4) || - (nbits == 8 && comp == BMP_RLE8) || ((nbits == 16 || nbits == 32) && comp == BMP_BITFIELDS))) - return false; // weird compression type -+ if (bi.biWidth < 0 || quint64(bi.biWidth) * qAbs(bi.biHeight) > 16384 * 16384) -+ return false; - - return true; - } diff --git a/SOURCES/qt5-qtbase-glibc.patch b/SOURCES/qt5-qtbase-glibc.patch deleted file mode 100644 index 4d8ad13..0000000 --- a/SOURCES/qt5-qtbase-glibc.patch +++ /dev/null @@ -1,73 +0,0 @@ -diff --git a/src/corelib/configure.json b/src/corelib/configure.json -index dfb575da..e87c3fd4 100644 ---- a/src/corelib/configure.json -+++ b/src/corelib/configure.json -@@ -508,7 +508,7 @@ - }, - "getentropy": { - "label": "getentropy()", -- "condition": "config.unix && tests.getentropy", -+ "disable": "true", - "output": [ "privateFeature" ] - }, - "glib": { -@@ -636,7 +636,7 @@ - }, - "renameat2": { - "label": "renameat2()", -- "condition": "config.linux && tests.renameat2", -+ "disable": "true", - "output": [ "privateFeature" ] - }, - "slog2": { -@@ -646,7 +646,7 @@ - }, - "statx": { - "label": "statx() in libc", -- "condition": "config.linux && tests.statx", -+ "disable": "true", - "output": [ "privateFeature" ] - }, - "syslog": { -diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp -index be6ce48d..5b337c0f 100644 ---- a/src/corelib/io/qfilesystemengine_unix.cpp -+++ b/src/corelib/io/qfilesystemengine_unix.cpp -@@ -50,9 +50,10 @@ - #include - #include // for realpath() - #include --#include - #include -+#define renameat2 renameat2_unused - #include -+#undef renameat2 - #include - - #if QT_HAS_INCLUDE() -@@ -91,7 +92,9 @@ extern "C" NSString *NSTemporaryDirectory(); - # include - # include - # include --# include -+#define statx statx_unused -+# include -+#undef statx - - // in case linux/fs.h is too old and doesn't define it: - #ifndef FICLONE -@@ -107,12 +110,12 @@ extern "C" NSString *NSTemporaryDirectory(); - # undef STATX_BASIC_STATS - # else - # if !QT_CONFIG(renameat2) && defined(SYS_renameat2) --static int renameat2(int oldfd, const char *oldpath, int newfd, const char *newpath, unsigned flags) -+extern int renameat2(int oldfd, const char *oldpath, int newfd, const char *newpath, unsigned flags) - { return syscall(SYS_renameat2, oldfd, oldpath, newfd, newpath, flags); } - # endif - - # if !QT_CONFIG(statx) && defined(SYS_statx) --static int statx(int dirfd, const char *pathname, int flag, unsigned mask, struct statx *statxbuf) -+extern int statx(int dirfd, const char *pathname, int flag, unsigned mask, struct statx *statxbuf) - { return syscall(SYS_statx, dirfd, pathname, flag, mask, statxbuf); } - # elif !QT_CONFIG(statx) && !defined(SYS_statx) - # undef STATX_BASIC_STATS diff --git a/SOURCES/qtbase-always-generate-private-includes.patch b/SOURCES/qtbase-always-generate-private-includes.patch deleted file mode 100644 index 9a6423f..0000000 --- a/SOURCES/qtbase-always-generate-private-includes.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf -index 2ed708e0..5d0282a7 100644 ---- a/mkspecs/features/create_cmake.prf -+++ b/mkspecs/features/create_cmake.prf -@@ -28,11 +28,6 @@ CMAKE_OUT_DIR = $$MODULE_BASE_OUTDIR/lib/cmake - - CMAKE_MODULE_NAME = $$cmakeModuleName($${MODULE}) - --!generated_privates { -- isEmpty(SYNCQT.INJECTED_PRIVATE_HEADER_FILES):isEmpty(SYNCQT.PRIVATE_HEADER_FILES): \ -- CMAKE_NO_PRIVATE_INCLUDES = true --} -- - split_incpath { - CMAKE_ADD_SOURCE_INCLUDE_DIRS = true - CMAKE_SOURCE_INCLUDES = \ diff --git a/SOURCES/qtbase-ambiguous-python-shebang.patch b/SOURCES/qtbase-ambiguous-python-shebang.patch index 6304942..8dfd003 100644 --- a/SOURCES/qtbase-ambiguous-python-shebang.patch +++ b/SOURCES/qtbase-ambiguous-python-shebang.patch @@ -1,5 +1,5 @@ diff --git a/mkspecs/features/uikit/devices.py b/mkspecs/features/uikit/devices.py -index 0443e838..3c6ededb 100755 +index 8cdcb370..b0c927ea 100755 --- a/mkspecs/features/uikit/devices.py +++ b/mkspecs/features/uikit/devices.py @@ -1,4 +1,4 @@ @@ -8,3 +8,23 @@ index 0443e838..3c6ededb 100755 ############################################################################# ## +diff --git a/tests/manual/xembed-raster/gtk-embedder.py b/tests/manual/xembed-raster/gtk-embedder.py +index 5c37fd44..86ffa9fd 100755 +--- a/tests/manual/xembed-raster/gtk-embedder.py ++++ b/tests/manual/xembed-raster/gtk-embedder.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + ############################################################################# + ## + ## Copyright (C) 2013 Canonical Ltd. +diff --git a/tests/manual/xembed-widgets/gtk-embedder.py b/tests/manual/xembed-widgets/gtk-embedder.py +index 2a7c92db..93135b14 100755 +--- a/tests/manual/xembed-widgets/gtk-embedder.py ++++ b/tests/manual/xembed-widgets/gtk-embedder.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + ############################################################################# + ## + ## Copyright (C) 2013 Canonical Ltd. diff --git a/SOURCES/qtbase-everywhere-src-5.12.1-qt5gui_cmake_isystem_includes.patch b/SOURCES/qtbase-everywhere-src-5.12.1-qt5gui_cmake_isystem_includes.patch new file mode 100644 index 0000000..ff00e63 --- /dev/null +++ b/SOURCES/qtbase-everywhere-src-5.12.1-qt5gui_cmake_isystem_includes.patch @@ -0,0 +1,14 @@ +diff -up qtbase-everywhere-src-5.12.1/src/gui/Qt5GuiConfigExtras.cmake.in.foo qtbase-everywhere-src-5.12.1/src/gui/Qt5GuiConfigExtras.cmake.in +--- qtbase-everywhere-src-5.12.1/src/gui/Qt5GuiConfigExtras.cmake.in.foo 2019-04-30 15:18:24.886346423 -0500 ++++ qtbase-everywhere-src-5.12.1/src/gui/Qt5GuiConfigExtras.cmake.in 2019-04-30 15:19:48.303873296 -0500 +@@ -66,8 +66,10 @@ unset(_GL_INCDIRS) + # Don\'t check for existence of the "_qt5gui_OPENGL_INCLUDE_DIR" because it is + # optional. + ++if (NOT ${_qt5gui_OPENGL_INCLUDE_DIR} STREQUAL "/usr/include") + list(APPEND Qt5Gui_INCLUDE_DIRS ${_qt5gui_OPENGL_INCLUDE_DIR}) + set_property(TARGET Qt5::Gui APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5gui_OPENGL_INCLUDE_DIR}) ++endif() + + unset(_qt5gui_OPENGL_INCLUDE_DIR CACHE) + diff --git a/SOURCES/qtbase-fdo101667.patch b/SOURCES/qtbase-fdo101667.patch deleted file mode 100644 index 69c6cc4..0000000 --- a/SOURCES/qtbase-fdo101667.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up qtbase-opensource-src-5.9.4/src/corelib/mimetypes/qmimetype.cpp.fdo101667 qtbase-opensource-src-5.9.4/src/corelib/mimetypes/qmimetype.cpp ---- qtbase-opensource-src-5.9.4/src/corelib/mimetypes/qmimetype.cpp.fdo101667 2018-01-16 00:53:43.000000000 -0600 -+++ qtbase-opensource-src-5.9.4/src/corelib/mimetypes/qmimetype.cpp 2018-01-28 07:18:09.502534397 -0600 -@@ -418,6 +418,8 @@ QStringList QMimeType::suffixes() const - */ - QString QMimeType::preferredSuffix() const - { -+ if (isDefault()) // workaround for unwanted *.bin suffix for octet-stream, https://bugs.freedesktop.org/show_bug.cgi?id=101667, fixed upstream in 1.10 -+ return QString(); - const QStringList suffixList = suffixes(); - return suffixList.isEmpty() ? QString() : suffixList.at(0); - } diff --git a/SOURCES/qtbase-hidpi_scale_at_192.patch b/SOURCES/qtbase-hidpi_scale_at_192.patch index 932c3a9..c8139f6 100644 --- a/SOURCES/qtbase-hidpi_scale_at_192.patch +++ b/SOURCES/qtbase-hidpi_scale_at_192.patch @@ -1,13 +1,12 @@ -diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp -index ec0f9ba..6d0d7a6 100644 ---- a/src/plugins/platforms/xcb/qxcbscreen.cpp -+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp -@@ -747,7 +747,7 @@ void QXcbScreen::updateGeometry(const QRect &geometry, uint8_t rotation) - m_sizeMillimeters = sizeInMillimeters(geometry.size(), virtualDpi()); - - qreal dpi = geometry.width() / physicalSize().width() * qreal(25.4); -- m_pixelDensity = qMax(1, qRound(dpi/96)); -+ m_pixelDensity = qMax(1, (int) (dpi/96)); // instead of rounding at 1.5, round at 2.0 (same as GNOME) +diff -up qtbase-everywhere-src-5.12.1/src/plugins/platforms/xcb/qxcbscreen.cpp.hidpi_scale_at_192 qtbase-everywhere-src-5.12.1/src/plugins/platforms/xcb/qxcbscreen.cpp +--- qtbase-everywhere-src-5.12.1/src/plugins/platforms/xcb/qxcbscreen.cpp.hidpi_scale_at_192 2019-02-03 13:21:27.866906481 -0600 ++++ qtbase-everywhere-src-5.12.1/src/plugins/platforms/xcb/qxcbscreen.cpp 2019-02-03 13:23:47.554767565 -0600 +@@ -744,7 +744,7 @@ void QXcbScreen::updateGeometry(const QR + // Use 128 as a reference DPI on small screens. This favors "small UI" over "large UI". + qreal referenceDpi = physicalSize().width() <= 320 ? 128 : 96; + +- m_pixelDensity = qMax(1, qRound(dpi/referenceDpi)); ++ m_pixelDensity = qMax(1, (int) (dpi/referenceDpi)); //instead of rounding at 1.5, round at 2.0 (same as GNOME) m_geometry = geometry; m_availableGeometry = geometry & m_virtualDesktop->workArea(); QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry); diff --git a/SPECS/qt5-qtbase.spec b/SPECS/qt5-qtbase.spec index 67c9dad..654a787 100644 --- a/SPECS/qt5-qtbase.spec +++ b/SPECS/qt5-qtbase.spec @@ -8,6 +8,10 @@ %endif %global openssl -openssl-linked +%global no_feature_statx -no-feature-statx +%global no_feature_renameat2 -no-feature-renameat2 +%global no_feature_getentropy -no-feature-getentropy + # support qtchooser (adds qtchooser .conf file) %global qtchooser 1 %if 0%{?qtchooser} @@ -37,8 +41,8 @@ BuildRequires: pkgconfig(libsystemd) Name: qt5-qtbase Summary: Qt5 - QtBase components -Version: 5.11.1 -Release: 7%{?dist} +Version: 5.12.5 +Release: 4%{?dist} # See LGPL_EXCEPTIONS.txt, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -87,12 +91,9 @@ Patch51: qtbase-hidpi_scale_at_192.patch # 2. Workaround sysmacros.h (pre)defining major/minor a breaking stuff Patch52: qtbase-opensource-src-5.7.1-moc_macros.patch -# QMimeType: remove unwanted *.bin as preferredSuffix for octet-stream -# This leads to an automatically appended .bin when saving a file. -# https://bugs.freedesktop.org/show_bug.cgi?id=101667 -# https://bugs.kde.org/382437 -# Fixed upstream in shared-mime-info 1.10 -Patch53: qtbase-fdo101667.patch +# CMake generates wrong -isystem /usr/include compilations flags with Qt5::Gui +# https://bugzilla.redhat.com/1704474 +Patch53: qtbase-everywhere-src-5.12.1-qt5gui_cmake_isystem_includes.patch # respect QMAKE_LFLAGS_RELEASE when building qmake Patch54: qtbase-qmake_LFLAGS.patch @@ -101,7 +102,7 @@ Patch54: qtbase-qmake_LFLAGS.patch Patch61: qt5-qtbase-cxxflag.patch # support firebird version 3.x -Patch64: qt5-qtbase-5.9.1-firebird.patch +Patch64: qt5-qtbase-5.12.1-firebird.patch # fix for new mariadb Patch65: qtbase-opensource-src-5.9.0-mysql.patch @@ -113,18 +114,6 @@ Patch67: https://bugreports.qt.io/secure/attachment/66353/xcberror_filter.patch Patch68: qtbase-ambiguous-python-shebang.patch -Patch69: qt5-qtbase-glibc.patch - -# Bug 1667860 - CVE-2018-19870 qt5-qtbase: QImage allocation failure in qgifhandler -Patch70: qt5-qtbase-CVE-2018-19870.patch - -# Bug 1667858 - CVE-2018-15518 qt5-qtbase: Double free in QXmlStreamReader -Patch71: qt5-qtbase-CVE-2018-15518.patch - -# Bug 1667859 - CVE-2018-19873 qt5-qtbase: QBmpHandler segmentation fault on malformed BMP file -Patch72: qt5-qtbase-CVE-2018-19873.patch - -Patch100: qtbase-always-generate-private-includes.patch Patch101: qtbase-allow-dbus-not-running-during-build.patch # Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires. @@ -170,7 +159,6 @@ BuildRequires: openssl-devel%{?openssl11: >= 1.1} %endif BuildRequires: pkgconfig(libpulse) pkgconfig(libpulse-mainloop-glib) %if 0%{?fedora} -%global xkbcommon -system-xkbcommon BuildRequires: pkgconfig(libinput) BuildRequires: pkgconfig(xcb-xkb) >= 1.10 BuildRequires: pkgconfig(xkbcommon) >= 0.4.1 @@ -180,13 +168,12 @@ BuildRequires: pkgconfig(xkbcommon-x11) >= 0.4.1 %if 0%{?rhel} == 6 %global xcb -qt-xcb %endif -%global xkbcommon -qt-xkbcommon Provides: bundled(libxkbcommon) = 0.4.1 %endif BuildRequires: pkgconfig(xkeyboard-config) %if 0%{?fedora} || 0%{?rhel} > 6 %global egl 1 -BuildRequires: pkgconfig(egl) +BuildRequires: libEGL-devel BuildRequires: pkgconfig(gbm) BuildRequires: pkgconfig(glesv2) %global sqlite -system-sqlite @@ -207,6 +194,7 @@ BuildRequires: libicu-devel BuildRequires: pkgconfig(xcb) pkgconfig(xcb-glx) pkgconfig(xcb-icccm) pkgconfig(xcb-image) pkgconfig(xcb-keysyms) pkgconfig(xcb-renderutil) BuildRequires: pkgconfig(zlib) BuildRequires: perl-generators +BuildRequires: python3 BuildRequires: qt5-rpm-macros %if 0%{?build_tests} @@ -255,7 +243,6 @@ BuildArch: noarch %package devel Summary: Development files for %{name} -Provides: %{name}-private-devel = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-gui%{?_isa} %if 0%{?egl} @@ -269,6 +256,16 @@ Requires: clang >= 3.7.0 %description devel %{summary}. +%package private-devel +Summary: Development files for %{name} private APIs +# upgrade path, when private-devel was introduced +Obsoletes: %{name}-devel < 5.12.1-3 +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +# QtPrintSupport/private requires cups/ppd.h +Requires: cups-devel +%description private-devel +%{summary}. + %package examples Summary: Programming examples for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} @@ -328,7 +325,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %package postgresql Summary: PostgreSQL driver for Qt5's SQL classes -BuildRequires: postgresql-devel +BuildRequires: libpq-devel Requires: %{name}%{?_isa} = %{version}-%{release} %description postgresql %{summary}. @@ -363,12 +360,13 @@ Qt5 libraries used for drawing widgets and OpenGL items. ## upstream fixes %patch4 -p1 -b .QTBUG-35459 -%patch8 -p1 -b .tell-the-truth-about-private-api +# omit '-b .tell-the-truth-about-private-api' so it doesn't end up in installed files -- rdieter +%patch8 -p1 %patch50 -p1 -b .QT_VERSION_CHECK %patch51 -p1 -b .hidpi_scale_at_192 %patch52 -p1 -b .moc_macros -# %patch53 -p1 -b .fdo101667 +%patch53 -p1 -b .qt5gui_cmake_isystem_includes %patch54 -p1 -b .qmake_LFLAGS %patch61 -p1 -b .qt5-qtbase-cxxflag %patch64 -p1 -b .firebird @@ -377,17 +375,10 @@ Qt5 libraries used for drawing widgets and OpenGL items. %endif # FIXME/REBASE #patch67 -p1 -b .xcberror_filter -%patch68 -p1 -b .ambiguous-python-shebang -%patch69 -p1 -b .qtbase-glibc -%patch70 -p1 -b .CVE-2018-19870 -%patch71 -p1 -b .CVE-2018-15518 -%patch72 -p1 -b .CVE-2018-19873 +%patch68 -p1 -%patch100 -p1 -b .always-generate-private-includes %patch101 -p1 -b .qtbase-allow-dbus-not-running-during-build -rm -fv mkspecs/features/uikit/devices.py.ambiguous-python-shebang - # move some bundled libs to ensure they're not accidentally used pushd src/3rdparty mkdir UNUSED @@ -473,6 +464,9 @@ export MAKEFLAGS="%{?_smp_mflags}" -system-zlib \ %{?use_gold_linker} \ -no-directfb \ + %{?no_feature_renameat2} \ + %{?no_feature_statx} \ + %{?no_feature_getentropy} \ QMAKE_CFLAGS_RELEASE="${CFLAGS:-$RPM_OPT_FLAGS}" \ QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS:-$RPM_OPT_FLAGS}" \ QMAKE_LFLAGS_RELEASE="${LDFLAGS:-$RPM_LD_FLAGS}" @@ -496,9 +490,20 @@ make install INSTALL_ROOT=%{buildroot} %if 0%{?build_tests} # Install tests for gating -pushd tests -make install INSTALL_ROOT=%{buildroot} -popd +mkdir -p %{buildroot}%{_qt5_libdir}/qt5 +find ./tests -not -path '*/\.*' -type d | while read LINE +do + mkdir -p "%{buildroot}%{_qt5_libdir}/qt5/$LINE" +done +find ./tests -not -path '*/\.*' -not -name '*.h' -not -name '*.cpp' -not -name '*.pro' -not -name 'uic_wrapper.sh' -not -name 'Makefile' -type f | while read LINE +do + cp -r --parents "$LINE" %{buildroot}%{_qt5_libdir}/qt5/ +done + +# Remove tests which will produce error when checking rpath +rm -rf %{buildroot}%{_qt5_libdir}/qt5/tests/auto/corelib/plugin/qpluginloader/elftest +# Remove android stuff which will just add us dependencies on Perl modules +rm -rf %{buildroot}%{_qt5_libdir}/qt5/tests/auto/android %endif install -m644 -p -D %{SOURCE1} %{buildroot}%{_qt5_datadir}/qtlogging.ini @@ -606,6 +611,9 @@ mkdir -p %{buildroot}%{_qt5_headerdir}/QtXcb install -m 644 src/plugins/platforms/xcb/*.h %{buildroot}%{_qt5_headerdir}/QtXcb/ %check +# verify Qt5.pc +export PKG_CONFIG_PATH=%{buildroot}%{_libdir}/pkgconfig +test "$(pkg-config --modversion Qt5)" = "%{version}" %if 0%{?tests} ## see tests/README for expected environment (running a plasma session essentially) ## we are not quite there yet @@ -666,7 +674,9 @@ fi %endif %files -%license LICENSE.LGPL* LGPL_EXCEPTION.txt LICENSE.FDL +%license LICENSE.FDL +%license LICENSE.GPL* +%license LICENSE.LGPL* %if 0%{?qtchooser} %dir %{_sysconfdir}/xdg/qtchooser # not editable config files, so not using %%config here @@ -699,7 +709,10 @@ fi %{_qt5_docdir}/global/ %{_qt5_importdir}/ %{_qt5_translationdir}/ -%dir %{_qt5_prefix}/ +%if "%{_qt5_prefix}" != "%{_prefix}" + %dir %{_qt5_prefix}/ +%endif +%dir %{_qt5_archdatadir}/ %dir %{_qt5_datadir}/ %{_qt5_datadir}/qtlogging.ini %dir %{_qt5_libexecdir}/ @@ -833,6 +846,14 @@ fi %{_qt5_libdir}/libQt5EglFsKmsSupport.so %endif +## private-devel globs +# keep mkspecs/modules stuff in -devel for now, https://bugzilla.redhat.com/show_bug.cgi?id=1705280 +%{_qt5_archdatadir}/mkspecs/modules/qt_lib_*_private.pri +%exclude %{_qt5_headerdir}/*/%{version}/*/private/ + +%files private-devel +%{_qt5_headerdir}/*/%{version}/*/private/ +#{_qt5_archdatadir}/mkspecs/modules/qt_lib_*_private.pri %files static %{_qt5_libdir}/libQt5Bootstrap.*a @@ -917,8 +938,7 @@ fi %{_qt5_libdir}/cmake/Qt5Sql/Qt5Sql_QTDSDriverPlugin.cmake %endif -%post gui -p /sbin/ldconfig -%postun gui -p /sbin/ldconfig +%ldconfig_scriptlets gui %files gui %dir %{_sysconfdir}/X11/xinit @@ -984,15 +1004,27 @@ fi %{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QXcbIntegrationPlugin.cmake %{_qt5_plugindir}/xcbglintegrations/libqxcb-glx-integration.so %{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QXcbGlxIntegrationPlugin.cmake -%{_qt5_plugindir}/platformthemes/libqflatpak.so +%{_qt5_plugindir}/platformthemes/libqxdgdesktopportal.so %{_qt5_plugindir}/platformthemes/libqgtk3.so -%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QFlatpakThemePlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QXdgDesktopPortalThemePlugin.cmake %{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QGtk3ThemePlugin.cmake %{_qt5_plugindir}/printsupport/libcupsprintersupport.so %{_qt5_libdir}/cmake/Qt5PrintSupport/Qt5PrintSupport_QCupsPrinterSupportPlugin.cmake %changelog +* Wed Nov 27 2019 Jan Grulich - 5.12-5-4 +- Fix build on RHEL 7 kernel + Resolves: bz#1733135 + +* Thu Nov 07 2019 Jan Grulich - 5.12-5-2 +- Remove Android specific test to avoid unnecessary dependencies + Resolves: bz#1733135 + +* Tue Oct 29 2019 Jan Grulich - 5.12-5-1 +- 5.12.5 + sync with Fedora + Resolves: bz#1733135 + * Wed May 22 2019 Jan Grulich - 5.11-1-7 - Move libQt5EglFSDeviceIntegration lib out of the -devel subpkg Resolves: bz#1692970