diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2022-06-01 11:44:17 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2022-06-01 12:03:47 +0200 |
commit | 9dd923ee0825e6277f6ac48bee93324450f69f82 (patch) | |
tree | b69dbf2f96ccbbcda22fd8c396d9895bf0062cd5 /dev-libs/kreport | |
parent | dev-util/dbus-test-runner: EAPI-8, python3.10, fix warnings (diff) | |
download | gentoo-9dd923ee0825e6277f6ac48bee93324450f69f82.tar.gz gentoo-9dd923ee0825e6277f6ac48bee93324450f69f82.tar.bz2 gentoo-9dd923ee0825e6277f6ac48bee93324450f69f82.zip |
dev-libs/kreport: EAPI-8, python3.10, GCC-12, backport "3.2.1" fixes
- Fix commit 20ac57b5bde469aa43aa530c9fb006a2ed0328fc missing to disable
Qt5Webkit.
Closes: https://bugs.gentoo.org/845660
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'dev-libs/kreport')
5 files changed, 344 insertions, 0 deletions
diff --git a/dev-libs/kreport/files/kreport-3.2.0-Q_REQUIRED_RESULT-placing.patch b/dev-libs/kreport/files/kreport-3.2.0-Q_REQUIRED_RESULT-placing.patch new file mode 100644 index 000000000000..bb90243c688e --- /dev/null +++ b/dev-libs/kreport/files/kreport-3.2.0-Q_REQUIRED_RESULT-placing.patch @@ -0,0 +1,54 @@ +From b37de83728dc7463dea37f71417560ae602f615d Mon Sep 17 00:00:00 2001 +From: Jaroslaw Staniek <staniek@kde.org> +Date: Sat, 1 Feb 2020 19:07:52 +0100 +Subject: [PATCH] TRIVIAL Move Q_REQUIRED_RESULT to correct place + +This can fix builds for newer MSVC +--- + src/common/KReportDataSource.h | 2 +- + src/common/KReportPluginManager.h | 2 +- + src/wrtembed/KReportDesigner.h | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/common/KReportDataSource.h b/src/common/KReportDataSource.h +index 4761af6c..89490b47 100644 +--- a/src/common/KReportDataSource.h ++++ b/src/common/KReportDataSource.h +@@ -124,7 +124,7 @@ public: + //! Creates a new instance with data source. Default implementation returns @c nullptr. + //! @a source is implementation-specific identifier. + //! Owner of the returned pointer is the caller. +- virtual KReportDataSource* create(const QString &source) const Q_REQUIRED_RESULT; ++ virtual Q_REQUIRED_RESULT KReportDataSource* create(const QString &source) const; + + private: + Q_DISABLE_COPY(KReportDataSource) +diff --git a/src/common/KReportPluginManager.h b/src/common/KReportPluginManager.h +index a8c4efcf..9ea01804 100644 +--- a/src/common/KReportPluginManager.h ++++ b/src/common/KReportPluginManager.h +@@ -49,7 +49,7 @@ class KREPORT_EXPORT KReportPluginManager : public QObject + + KReportPluginInterface* plugin(const QString& id) const; + +- QList<QAction*> createActions(QObject *parent) Q_REQUIRED_RESULT; ++ Q_REQUIRED_RESULT QList<QAction*> createActions(QObject *parent); + + private: + // class for access to the constructor +diff --git a/src/wrtembed/KReportDesigner.h b/src/wrtembed/KReportDesigner.h +index 404c8fd4..b5b64a30 100644 +--- a/src/wrtembed/KReportDesigner.h ++++ b/src/wrtembed/KReportDesigner.h +@@ -106,7 +106,7 @@ public: + @return Pointer to a new report section section object, ownership is transferred to + the caller + */ +- KReportDesignerSection* createSection() Q_REQUIRED_RESULT; ++ Q_REQUIRED_RESULT KReportDesignerSection* createSection(); + + /** + @brief Deletes the section specified +-- +GitLab + diff --git a/dev-libs/kreport/files/kreport-3.2.0-fix-cmake-config.patch b/dev-libs/kreport/files/kreport-3.2.0-fix-cmake-config.patch new file mode 100644 index 000000000000..625a05bd7f21 --- /dev/null +++ b/dev-libs/kreport/files/kreport-3.2.0-fix-cmake-config.patch @@ -0,0 +1,35 @@ +From 4ce3e8a857f2540909e1c23b73beef62eb3ab5fa Mon Sep 17 00:00:00 2001 +From: jordi fita i mas <jfita@infoblitz.com> +Date: Sat, 11 Apr 2020 22:37:20 +0200 +Subject: [PATCH] Add Qt5PrintSupport and KF5CoreAddons dependencies to CMake + config + +Reviewers: staniek + +Reviewed By: staniek + +Subscribers: staniek + +Tags: #kreport + +Differential Revision: https://phabricator.kde.org/D28736 +--- + src/KReportConfig.cmake.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/KReportConfig.cmake.in b/src/KReportConfig.cmake.in +index 7d74122b..9828fcc1 100644 +--- a/src/KReportConfig.cmake.in ++++ b/src/KReportConfig.cmake.in +@@ -20,6 +20,8 @@ include(CMakeFindDependencyMacro) + find_dependency(Qt5Core @REQUIRED_QT_VERSION@) + find_dependency(Qt5Widgets @REQUIRED_QT_VERSION@) + find_dependency(Qt5Xml @REQUIRED_QT_VERSION@) ++find_dependency(Qt5PrintSupport @REQUIRED_QT_VERSION@) ++find_dependency(KF5CoreAddons @REQUIRED_KF5_VERSION@) + find_dependency(KPropertyWidgets @REQUIRED_KPROPERTY_VERSION@) + + include("${CMAKE_CURRENT_LIST_DIR}/KReportTargets.cmake") +-- +GitLab + diff --git a/dev-libs/kreport/files/kreport-3.2.0-fix-insane-delay.patch b/dev-libs/kreport/files/kreport-3.2.0-fix-insane-delay.patch new file mode 100644 index 000000000000..cf059f0ca829 --- /dev/null +++ b/dev-libs/kreport/files/kreport-3.2.0-fix-insane-delay.patch @@ -0,0 +1,166 @@ +From 779479c5474e080a857b2d80bdc86b9cab6531a0 Mon Sep 17 00:00:00 2001 +From: Jaroslaw Staniek <staniek@kde.org> +Date: Fri, 1 Nov 2019 19:54:00 +0100 +Subject: [PATCH] Fix insane delay in report items creation + +Summary: +Fix insane delay in report items creation by not instantiating hi-resolution QPrinter object for each item. + +To be honest I am not understanding the whole word-wrapping algorithm used here. + +Test Plan: +Approach 1: Run KEXI and create report with large number of pages. Use at +least one text element. +Before the fix there's noticeable O(N) delay. + +Approach 2: Also if we enter static value for the text item the kreportexample +app, there is noticeable delay on each key press before this fix. + +Expected: all is smooth after the fix. + +Reviewers: piggz + +Reviewed By: piggz + +Subscribers: Kexi-Devel-list + +Tags: #kreport + +Differential Revision: https://phabricator.kde.org/D25108 +--- + src/CMakeLists.txt | 2 ++ + src/common/KReportUtils_p.cpp | 14 +++++++++++--- + src/common/KReportUtils_p.h | 12 +++++++++++- + src/items/text/KReportItemText.cpp | 11 ++++++----- + 4 files changed, 30 insertions(+), 9 deletions(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index e15d5ca6..1cf0b389 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -198,6 +198,8 @@ target_link_libraries(KReportUtilsPrivate + Qt5::Widgets + KF5::ConfigGui + KF5::WidgetsAddons ++ PRIVATE ++ Qt5::PrintSupport + ) + + ecm_setup_version(${PROJECT_VERSION} +diff --git a/src/common/KReportUtils_p.cpp b/src/common/KReportUtils_p.cpp +index 5ac288bb..0fd90c2f 100644 +--- a/src/common/KReportUtils_p.cpp ++++ b/src/common/KReportUtils_p.cpp +@@ -1,5 +1,5 @@ + /* This file is part of the KDE project +- Copyright (C) 2015-2016 Jarosław Staniek <staniek@kde.org> ++ Copyright (C) 2015-2019 Jarosław Staniek <staniek@kde.org> + Copyright (C) 2016 Adam Pigg <adam@piggz.co.uk> + + This library is free software; you can redistribute it and/or +@@ -26,13 +26,14 @@ + #include <KMessageBox> + + #include <QApplication> ++#include <QDebug> + #include <QDir> + #include <QFileInfo> ++#include <QGlobalStatic> ++#include <QPrinter> + #include <QRegularExpression> + #include <QResource> + #include <QStandardPaths> +-#include <QDebug> +-#include <QGlobalStatic> + + #ifdef Q_WS_X11 + #include <QX11Info> +@@ -329,6 +330,13 @@ int dpiY() + return s_instance->m_dpiY; + } + ++Q_GLOBAL_STATIC_WITH_ARGS(QPrinter, s_printerInstance, (QPrinter::HighResolution)) ++ ++QPrinter* highResolutionPrinter() ++{ ++ return s_printerInstance; ++} ++ + PageLayout::PageLayout() : QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF(0,0,0,0)) + { + } +diff --git a/src/common/KReportUtils_p.h b/src/common/KReportUtils_p.h +index 1d223f6e..9e4b111b 100644 +--- a/src/common/KReportUtils_p.h ++++ b/src/common/KReportUtils_p.h +@@ -1,5 +1,5 @@ + /* This file is part of the KDE project +- Copyright (C) 2015-2016 Jarosław Staniek <staniek@kde.org> ++ Copyright (C) 2015-2019 Jarosław Staniek <staniek@kde.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public +@@ -26,6 +26,8 @@ + #include <QRect> + #include <QStandardPaths> + ++class QPrinter; ++ + const bool DEFAULT_SHOW_GRID = true; + const bool DEFAULT_SNAP_TO_GRID = true; + const int DEFAULT_GRID_DIVISIONS = 4; +@@ -173,6 +175,14 @@ int dpiX(); + + int dpiY(); + ++/*! ++ * Returns a high-resolution printer ++ * ++ * The QPrinter(QPrinter::HighResolution)) instance is created on first call. ++ * The global printer helps to optimize access to QPrinter when report items need it. ++ */ ++QPrinter* highResolutionPrinter(); ++ + //! This class is wrapper that fixes a critical QTBUG-47551 bug in default constructor of QPageLayout + //! Default constructor of QPageLayout does not initialize units. + //! https://bugreports.qt.io/browse/QTBUG-47551 +diff --git a/src/items/text/KReportItemText.cpp b/src/items/text/KReportItemText.cpp +index 29f63998..e05088fa 100644 +--- a/src/items/text/KReportItemText.cpp ++++ b/src/items/text/KReportItemText.cpp +@@ -1,5 +1,6 @@ + /* This file is part of the KDE project + * Copyright (C) 2007-2008 by Adam Pigg (adam@piggz.co.uk) ++ * Copyright (C) 2019 Jarosław Staniek <staniek@kde.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -17,8 +18,9 @@ + + #include "KReportItemText.h" + #include "KReportRenderObjects.h" +-#include "kreportplugin_debug.h" + #include "KReportUtils.h" ++#include "KReportUtils_p.h" ++#include "kreportplugin_debug.h" + + #include <KPropertyListData> + #include <KPropertySet> +@@ -217,11 +219,10 @@ int KReportItemText::renderSimpleData(OROPage *page, OROSection *section, const + int pos = 0; + QChar separator; + QRegularExpression re(QLatin1String("\\s")); +- QPrinter prnt(QPrinter::HighResolution); +- QFontMetricsF fm(font(), &prnt); ++ const QFontMetricsF fm(font(), KReportPrivate::highResolutionPrinter()); + +- // int intRectWidth = (int)(trf.width() * prnt.resolution()) - 10; +- int intRectWidth = (int)((size().width() / 72) * prnt.resolution()); ++ const int intRectWidth ++ = (int)((size().width() / 72) * KReportPrivate::highResolutionPrinter()->resolution()); + int intLineCounter = 0; + qreal intBaseTop = trf.top(); + qreal intRectHeight = trf.height(); +-- +GitLab + diff --git a/dev-libs/kreport/files/kreport-3.2.0-gcc12.patch b/dev-libs/kreport/files/kreport-3.2.0-gcc12.patch new file mode 100644 index 000000000000..ce48a27f1dc3 --- /dev/null +++ b/dev-libs/kreport/files/kreport-3.2.0-gcc12.patch @@ -0,0 +1,26 @@ +From 4b4b94f0bafcb49cefb1e453edd04a46d6ceacce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=96mer=20Fad=C4=B1l=20Usta?= <omerusta@gmail.com> +Date: Thu, 12 May 2022 05:01:48 +0000 +Subject: [PATCH] Fix build with GCC 12 (standard attributes in middle of + decl-specifiers) + +--- + src/common/KReportDataSource.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/common/KReportDataSource.h b/src/common/KReportDataSource.h +index 89490b47..0e45b644 100644 +--- a/src/common/KReportDataSource.h ++++ b/src/common/KReportDataSource.h +@@ -124,7 +124,7 @@ public: + //! Creates a new instance with data source. Default implementation returns @c nullptr. + //! @a source is implementation-specific identifier. + //! Owner of the returned pointer is the caller. +- virtual Q_REQUIRED_RESULT KReportDataSource* create(const QString &source) const; ++ Q_REQUIRED_RESULT virtual KReportDataSource* create(const QString &source) const; + + private: + Q_DISABLE_COPY(KReportDataSource) +-- +GitLab + diff --git a/dev-libs/kreport/kreport-3.2.0-r3.ebuild b/dev-libs/kreport/kreport-3.2.0-r3.ebuild new file mode 100644 index 000000000000..7eb744926983 --- /dev/null +++ b/dev-libs/kreport/kreport-3.2.0-r3.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_QTHELP="true" +ECM_TEST="true" +PYTHON_COMPAT=( python3_{8..10} ) +KFMIN=5.82.0 +QTMIN=5.15.2 +VIRTUALX_REQUIRED="test" +inherit ecm kde.org python-any-r1 + +DESCRIPTION="Framework for creation and generation of reports in multiple formats" +HOMEPAGE="https://community.kde.org/KReport" + +if [[ ${KDE_BUILD_TYPE} = release ]]; then + SRC_URI="mirror://kde/stable/${PN}/src/${P}.tar.xz" + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="LGPL-2+" +SLOT="5/4" +IUSE="marble +scripting" + +RDEPEND=" + >=dev-libs/kproperty-${PV}:5= + >=dev-qt/qtgui-${QTMIN}:5 + >=dev-qt/qtprintsupport-${QTMIN}:5 + >=dev-qt/qtwidgets-${QTMIN}:5 + >=dev-qt/qtxml-${QTMIN}:5 + >=kde-frameworks/kconfig-${KFMIN}:5 + >=kde-frameworks/kcoreaddons-${KFMIN}:5 + >=kde-frameworks/kguiaddons-${KFMIN}:5 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 + marble? ( kde-apps/marble:5= ) + scripting? ( >=dev-qt/qtdeclarative-${QTMIN}:5 ) +" +DEPEND="${RDEPEND} + ${PYTHON_DEPS} +" + +PATCHES=( + "${FILESDIR}/${P}-gcc10.patch" + "${FILESDIR}/${P}-fix-insane-delay.patch" + "${FILESDIR}/${P}-fix-cmake-config.patch" + "${FILESDIR}/${P}-Q_REQUIRED_RESULT-placing.patch" # gcc12-patch dep + "${FILESDIR}/${P}-gcc12.patch" +) + +pkg_setup() { + python-any-r1_pkg_setup + ecm_pkg_setup +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebKitWidgets=ON + $(cmake_use_find_package marble Marble) + -DKREPORT_SCRIPTING=$(usex scripting) + ) + ecm_src_configure +} |