summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRepository mirror & CI <repomirrorci@gentoo.org>2023-01-28 23:01:57 +0000
committerRepository mirror & CI <repomirrorci@gentoo.org>2023-01-28 23:01:57 +0000
commitbed895b4cfbbe7b0296698766af787852929066a (patch)
tree50677057ce03b23bfc12196ad867f50d7bd06f55
parent2023-01-28 22:46:57 UTC (diff)
parentdev-util/opencl-headers: drop 2022.01.04, 2022.05.18-r1 (diff)
downloadgentoo-bed895b4cfbbe7b0296698766af787852929066a.tar.gz
gentoo-bed895b4cfbbe7b0296698766af787852929066a.tar.bz2
gentoo-bed895b4cfbbe7b0296698766af787852929066a.zip
Merge updates from master
-rw-r--r--dev-libs/opencl-icd-loader/Manifest2
-rw-r--r--dev-libs/opencl-icd-loader/opencl-icd-loader-2022.01.04.ebuild39
-rw-r--r--dev-libs/opencl-icd-loader/opencl-icd-loader-2022.05.18-r1.ebuild41
-rw-r--r--dev-util/opencl-headers/Manifest2
-rw-r--r--dev-util/opencl-headers/opencl-headers-2022.01.04.ebuild24
-rw-r--r--dev-util/opencl-headers/opencl-headers-2022.05.18-r1.ebuild29
-rw-r--r--kde-apps/akonadi-calendar/akonadi-calendar-22.08.3-r1.ebuild53
-rw-r--r--kde-apps/akonadi-calendar/akonadi-calendar-22.12.1-r1.ebuild (renamed from kde-apps/akonadi-calendar/akonadi-calendar-22.12.1.ebuild)2
-rw-r--r--kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-convert-event-start-time-to-local-tz.patch33
-rw-r--r--kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-fix-hidpi-scaling.patch32
-rw-r--r--kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-fix-kalendarac-crash.patch36
-rw-r--r--kde-apps/kmail/files/kmail-22.08.3-fix-crash-on-replay-msg-w-user-template.patch38
-rw-r--r--kde-apps/kmail/files/kmail-22.08.3-fix-crash-on-startup.patch47
-rw-r--r--kde-apps/kmail/files/kmail-22.08.3-fix-open-detailed-progress-bar.patch52
-rw-r--r--kde-apps/kmail/files/kmail-22.08.3-fix-random-text-in-config-settings.patch29
-rw-r--r--kde-apps/kmail/files/kmail-22.08.3-remove-removed-ShowUserAgent.patch41
-rw-r--r--kde-apps/kmail/kmail-22.08.3-r2.ebuild123
-rw-r--r--kde-apps/kmail/kmail-22.12.1-r2.ebuild (renamed from kde-apps/kmail/kmail-22.12.1-r1.ebuild)4
-rw-r--r--kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch49
-rw-r--r--kde-apps/kmailtransport/kmailtransport-22.08.3-r1.ebuild47
-rw-r--r--kde-apps/libkgapi/files/libkgapi-22.08.3-AccountManager-dont-keep-finished-promises-in-cache.patch27
-rw-r--r--kde-apps/libkgapi/files/libkgapi-22.08.3-dont-cache-promises-for-AccountManager-findAccount.patch75
-rw-r--r--kde-apps/libkgapi/libkgapi-22.08.3-r1.ebuild49
-rw-r--r--sci-libs/opencascade/Manifest1
-rw-r--r--sci-libs/opencascade/files/opencascade-7.5.1-0001-allow-default-search-path-for-Qt5.patch26
-rw-r--r--sci-libs/opencascade/files/opencascade-7.5.1-0002-remove-unnecessary-Qt5-check.patch28
-rw-r--r--sci-libs/opencascade/files/opencascade-7.5.1-0003-add-Gentoo-configuration-type.patch26
-rw-r--r--sci-libs/opencascade/files/opencascade-7.5.1-fix-AllValues-name-collision-with-vtk-9.0.patch172
-rw-r--r--sci-libs/opencascade/opencascade-7.5.3-r8.ebuild176
29 files changed, 737 insertions, 566 deletions
diff --git a/dev-libs/opencl-icd-loader/Manifest b/dev-libs/opencl-icd-loader/Manifest
index bb8d45218a47..b274b47fa96d 100644
--- a/dev-libs/opencl-icd-loader/Manifest
+++ b/dev-libs/opencl-icd-loader/Manifest
@@ -1,3 +1 @@
-DIST opencl-icd-loader-2022.01.04.tar.gz 81969 BLAKE2B 20018654ae1e9566d806f4d1de64301e0f023ffad2d432c852d4dcf7e323c9c1d60f2aa49a1290cc1263e0e9386b7b0ae4095341f9aaffd6a27edf53b1d1b49e SHA512 060769ed8c84d906b2feacb4be5402c67b5cd561dc2334b384a731e66f301840ad2fc2ed143d32cfeab246d91a6c1f5377b6c9db4d8fc0571a90838c575aca01
-DIST opencl-icd-loader-2022.05.18.tar.gz 86968 BLAKE2B 24931d9f59e885ea5673c774c30632735392a9994545d87737ac392566af991385f25a5b71a8f79b4dd271c6675667088123d25c015fbc843378641f19791ffa SHA512 a02cfef224f552294f029ad5ffda8901cc486cedaab8e7b47723eec59d215488bce4d255bd6350980e8fbcf7f71c73939b10ebb2b7cfd51c5b8051079e2b3af7
DIST opencl-icd-loader-2022.09.30.tar.gz 87782 BLAKE2B 78d4c19d71c212dbe43a22d9e9504f9d22c3c5b5d078b9aa5625462c5591b87fdd472532d80e594b2a4e7dca1f10a5093bd4dbe661a23c3dbe254868b07e7b40 SHA512 0e7161f61c58f4d05f2a5f611560da1e57dfcc95184d25676cdc19f6e2136eca11cad4a87c769f2bff416928efa168220300749dc7607151a0e34a6c1b751295
diff --git a/dev-libs/opencl-icd-loader/opencl-icd-loader-2022.01.04.ebuild b/dev-libs/opencl-icd-loader/opencl-icd-loader-2022.01.04.ebuild
deleted file mode 100644
index 4ae2ca46c9e0..000000000000
--- a/dev-libs/opencl-icd-loader/opencl-icd-loader-2022.01.04.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake-multilib
-
-MY_PN="OpenCL-ICD-Loader"
-MY_P="${MY_PN}-${PV}"
-
-DESCRIPTION="Official Khronos OpenCL ICD Loader"
-HOMEPAGE="https://github.com/KhronosGroup/OpenCL-ICD-Loader"
-SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ppc64 x86"
-IUSE="test"
-
-RESTRICT="!test? ( test )"
-
-DEPEND=">=dev-util/opencl-headers-2022.01.04
- !dev-libs/ocl-icd"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/${MY_P}"
-
-multilib_src_configure() {
- local mycmakeargs=(
- -DBUILD_TESTING=$(usex test)
- -DOPENCL_ICD_LOADER_HEADERS_DIR="${EPREFIX}/usr/include"
- )
- cmake_src_configure
-}
-
-multilib_src_test() {
- OCL_ICD_FILENAMES="${BUILD_DIR}/test/driver_stub/libOpenCLDriverStub.so" \
- cmake_src_test
-}
diff --git a/dev-libs/opencl-icd-loader/opencl-icd-loader-2022.05.18-r1.ebuild b/dev-libs/opencl-icd-loader/opencl-icd-loader-2022.05.18-r1.ebuild
deleted file mode 100644
index 082f069a5031..000000000000
--- a/dev-libs/opencl-icd-loader/opencl-icd-loader-2022.05.18-r1.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake-multilib
-
-MY_PN="OpenCL-ICD-Loader"
-MY_P="${MY_PN}-${PV}"
-
-DESCRIPTION="Official Khronos OpenCL ICD Loader"
-HOMEPAGE="https://github.com/KhronosGroup/OpenCL-ICD-Loader"
-SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc64 ~x86"
-IUSE="test"
-
-RESTRICT="!test? ( test )"
-
-RDEPEND="!dev-libs/ocl-icd"
-# Need an opencl-headers ebuild which installs cmake package configs
-# TODO: revert to the usual >=${PV} come next upstream version
-DEPEND="${RDEPEND}
- >=dev-util/opencl-headers-2022.05.18-r1"
-
-S="${WORKDIR}/${MY_P}"
-
-multilib_src_configure() {
- local mycmakeargs=(
- -DBUILD_TESTING=$(usex test)
- )
- cmake_src_configure
-}
-
-multilib_src_test() {
- local -x OCL_ICD_FILENAMES="${BUILD_DIR}/test/driver_stub/libOpenCLDriverStub.so"
- local -x OCL_ICD_VENDORS="/dev/null"
- cmake_src_test
-}
diff --git a/dev-util/opencl-headers/Manifest b/dev-util/opencl-headers/Manifest
index 68ce8d35b23e..b1a04238ff51 100644
--- a/dev-util/opencl-headers/Manifest
+++ b/dev-util/opencl-headers/Manifest
@@ -1,3 +1 @@
-DIST opencl-headers-2022.01.04.tar.gz 62719 BLAKE2B 6791a679a09248746dd6b23d46001a8b6fcb3efc0a5d7c35be14463543ca08e57d24d1a4ab3ec765c315f44e849aa9c52d574f521ee1f660f9232979e511a9b3 SHA512 7c47486f40db16b8264f7e1febedd09c0481308eb15b5f4c4b5ff37c4ffb7697ae79427d221babe921704681942cd152b676b3bed660ba79d2901a48228d14ae
-DIST opencl-headers-2022.05.18.tar.gz 64518 BLAKE2B c1e0c3011e4ef226a5fc4601a65c78dfae20e86f9327e7cbda23bb16fbd95a450a28d5dbe3b90332ce9ebdbc3b108dbae3433b8e79883f777f8d5e9e6add375c SHA512 36a8637d22379eb7f83d44152cb34ff955134b9efb66a2d0973596b4cc38e1690a53972bee86f460350e80f13dbc775d24708960bf9e828f8e2c6e3d6358946e
DIST opencl-headers-2022.09.30.tar.gz 65371 BLAKE2B 3197f02e759fb885d353802ac065e53cc6ced32acb65f40a94a5dad2d4952d5838d6b0f70a46b184948dfc14324cdfa076329692135c5cd79f1eae2d8f50d04e SHA512 6a669258d0f2d50f5359aa21d4df1b8ee3d5b0068825dee2841521bec6aa32cb628f5ace7fccbce736276909983d18610d03a9b5a0d6ea6cc0f3c5b3cff778b3
diff --git a/dev-util/opencl-headers/opencl-headers-2022.01.04.ebuild b/dev-util/opencl-headers/opencl-headers-2022.01.04.ebuild
deleted file mode 100644
index 7dc296a939a1..000000000000
--- a/dev-util/opencl-headers/opencl-headers-2022.01.04.ebuild
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-MY_PN="OpenCL-Headers"
-MY_P="${MY_PN}-${PV}"
-
-DESCRIPTION="Unified C language headers for the OpenCL API"
-HOMEPAGE="https://github.com/KhronosGroup/OpenCL-Headers"
-SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ppc64 x86"
-
-S="${WORKDIR}"/${MY_P}
-
-src_install() {
- insinto /usr/include
- doins -r "${S}"/CL
-
- einstalldocs
-}
diff --git a/dev-util/opencl-headers/opencl-headers-2022.05.18-r1.ebuild b/dev-util/opencl-headers/opencl-headers-2022.05.18-r1.ebuild
deleted file mode 100644
index 245fefd3e4c0..000000000000
--- a/dev-util/opencl-headers/opencl-headers-2022.05.18-r1.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake
-
-MY_PN="OpenCL-Headers"
-MY_P="${MY_PN}-${PV}"
-
-DESCRIPTION="Unified C language headers for the OpenCL API"
-HOMEPAGE="https://github.com/KhronosGroup/OpenCL-Headers"
-SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc64 ~x86"
-IUSE="test"
-
-RESTRICT="!test? ( test )"
-
-S="${WORKDIR}"/${MY_P}
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_TESTING=$(usex test)
- )
- cmake_src_configure
-}
diff --git a/kde-apps/akonadi-calendar/akonadi-calendar-22.08.3-r1.ebuild b/kde-apps/akonadi-calendar/akonadi-calendar-22.08.3-r1.ebuild
new file mode 100644
index 000000000000..4880c2331795
--- /dev/null
+++ b/kde-apps/akonadi-calendar/akonadi-calendar-22.08.3-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.96.0
+QTMIN=5.15.5
+inherit ecm gear.kde.org
+
+DESCRIPTION="Library for akonadi calendar integration"
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE=""
+
+RESTRICT="test"
+
+DEPEND="
+ >=dev-qt/qtdbus-${QTMIN}:5
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtwidgets-${QTMIN}:5
+ >=kde-apps/akonadi-${PVCUT}:5
+ >=kde-apps/akonadi-contacts-${PVCUT}:5
+ >=kde-apps/akonadi-mime-${PVCUT}:5
+ >=kde-apps/kcalutils-${PVCUT}:5
+ >=kde-apps/kidentitymanagement-${PVCUT}:5
+ >=kde-apps/kmailtransport-${PVCUT}:5
+ >=kde-apps/kmime-${PVCUT}:5
+ >=kde-frameworks/kcalendarcore-${KFMIN}:5
+ >=kde-frameworks/kcodecs-${KFMIN}:5
+ >=kde-frameworks/kconfig-${KFMIN}:5
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:5
+ >=kde-frameworks/kcoreaddons-${KFMIN}:5
+ >=kde-frameworks/kdbusaddons-${KFMIN}:5
+ >=kde-frameworks/ki18n-${KFMIN}:5
+ >=kde-frameworks/kiconthemes-${KFMIN}:5
+ >=kde-frameworks/kio-${KFMIN}:5
+ >=kde-frameworks/kitemmodels-${KFMIN}:5
+ >=kde-frameworks/kjobwidgets-${KFMIN}:5
+ >=kde-frameworks/knotifications-${KFMIN}:5
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+ >=kde-frameworks/kxmlgui-${KFMIN}:5
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-hidpi-scaling.patch"
+ "${FILESDIR}/${P}-fix-kalendarac-crash.patch"
+ "${FILESDIR}/${P}-convert-event-start-time-to-local-tz.patch"
+)
diff --git a/kde-apps/akonadi-calendar/akonadi-calendar-22.12.1.ebuild b/kde-apps/akonadi-calendar/akonadi-calendar-22.12.1-r1.ebuild
index f2c69b26b283..dd68fabee9f3 100644
--- a/kde-apps/akonadi-calendar/akonadi-calendar-22.12.1.ebuild
+++ b/kde-apps/akonadi-calendar/akonadi-calendar-22.12.1-r1.ebuild
@@ -45,3 +45,5 @@ DEPEND="
>=kde-frameworks/kxmlgui-${KFMIN}:5
"
RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}-22.08.3-convert-event-start-time-to-local-tz.patch" )
diff --git a/kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-convert-event-start-time-to-local-tz.patch b/kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-convert-event-start-time-to-local-tz.patch
new file mode 100644
index 000000000000..4ede6334a029
--- /dev/null
+++ b/kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-convert-event-start-time-to-local-tz.patch
@@ -0,0 +1,33 @@
+From fdbd7e42b6707cf99db48f62d43ca104de632159 Mon Sep 17 00:00:00 2001
+From: Kishore Gopalakrishnan <kishore96@gmail.com>
+Date: Sun, 6 Nov 2022 13:03:22 +0530
+Subject: [PATCH] Convert event start time to user's local timezone
+
+Since we don't display the timezone of the event in the notification,
+this is required when the event is in a different timezone from the
+user's local one.
+
+BUG: 453805
+
+
+(cherry picked from commit 750200aa58e3a8c4073e6304a0e214c1c5beafb9)
+---
+ reminder-daemon/alarmnotification.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/reminder-daemon/alarmnotification.cpp b/reminder-daemon/alarmnotification.cpp
+index 6082e9a..27e53e2 100644
+--- a/reminder-daemon/alarmnotification.cpp
++++ b/reminder-daemon/alarmnotification.cpp
+@@ -30,7 +30,7 @@ AlarmNotification::~AlarmNotification()
+
+ void AlarmNotification::send(KalendarAlarmClient *client, const KCalendarCore::Incidence::Ptr &incidence)
+ {
+- const QDateTime startTime = m_occurrence.isValid() ? m_occurrence : incidence->dtStart();
++ const QDateTime startTime = m_occurrence.isValid() ? m_occurrence.toLocalTime() : incidence->dtStart().toLocalTime();
+ const bool notificationExists = m_notification;
+ if (!notificationExists) {
+ m_notification = new KNotification(QStringLiteral("alarm"));
+--
+GitLab
+
diff --git a/kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-fix-hidpi-scaling.patch b/kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-fix-hidpi-scaling.patch
new file mode 100644
index 000000000000..26698be849c4
--- /dev/null
+++ b/kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-fix-hidpi-scaling.patch
@@ -0,0 +1,32 @@
+From cb8e88e6b50a6edc399510b1a8d6307177f00bb7 Mon Sep 17 00:00:00 2001
+From: Moody Liu <mooodyhunter@outlook.com>
+Date: Fri, 14 Oct 2022 23:19:25 +0000
+Subject: [PATCH] kalendarac: set AA_EnableHighDpiScaling attribute before
+ constructing QGuiApplication
+
+---
+ reminder-daemon/kalendaracmain.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/reminder-daemon/kalendaracmain.cpp b/reminder-daemon/kalendaracmain.cpp
+index 0566c7f..c0ae2be 100644
+--- a/reminder-daemon/kalendaracmain.cpp
++++ b/reminder-daemon/kalendaracmain.cpp
+@@ -12,10 +12,13 @@
+
+ int main(int argc, char **argv)
+ {
++#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
++ // set this attribute before contructing QGuiApplication
++ QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
++#endif
+ QGuiApplication app(argc, argv);
+ app.setQuitOnLastWindowClosed(false);
+ #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+- QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+ app.setAttribute(Qt::AA_UseHighDpiPixmaps, true);
+ #endif
+
+--
+GitLab
+
diff --git a/kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-fix-kalendarac-crash.patch b/kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-fix-kalendarac-crash.patch
new file mode 100644
index 000000000000..64801160d886
--- /dev/null
+++ b/kde-apps/akonadi-calendar/files/akonadi-calendar-22.08.3-fix-kalendarac-crash.patch
@@ -0,0 +1,36 @@
+From 9baa8ca070a73658bec0c5a9a1854e4ec73abd8a Mon Sep 17 00:00:00 2001
+From: Allen Winter <winter@kde.org>
+Date: Fri, 30 Dec 2022 09:29:02 -0500
+Subject: [PATCH] Ensure Akonadi IncidenceChanger doesn't try to show dialogs
+
+Since kalendarac is not a proper QApplication it can't
+show dialogs anyway. Else you'll see crashes with:
+"QWidget: Cannot create a QWidget without QApplication"
+---
+ reminder-daemon/kalendaralarmclient.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/reminder-daemon/kalendaralarmclient.cpp b/reminder-daemon/kalendaralarmclient.cpp
+index b726ac1..da3b050 100644
+--- a/reminder-daemon/kalendaralarmclient.cpp
++++ b/reminder-daemon/kalendaralarmclient.cpp
+@@ -6,6 +6,7 @@
+ #include "calendarinterface.h"
+ #include "logging.h"
+
++#include <Akonadi/IncidenceChanger>
+ #include <KIO/ApplicationLauncherJob>
+
+ #include <KCheckableProxyModel>
+@@ -52,6 +53,8 @@ void KalendarAlarmClient::setupAkonadi()
+ const QStringList mimeTypes{Event::eventMimeType(), Todo::todoMimeType()};
+ mCalendar = Akonadi::ETMCalendar::Ptr(new Akonadi::ETMCalendar(mimeTypes));
+ mCalendar->setObjectName(QStringLiteral("KalendarAC's calendar"));
++ Akonadi::IncidenceChanger *changer = mCalendar->incidenceChanger();
++ changer->setShowDialogsOnError(false);
+ mETM = mCalendar->entityTreeModel();
+
+ connect(&mCheckTimer, &QTimer::timeout, this, &KalendarAlarmClient::checkAlarms);
+--
+GitLab
+
diff --git a/kde-apps/kmail/files/kmail-22.08.3-fix-crash-on-replay-msg-w-user-template.patch b/kde-apps/kmail/files/kmail-22.08.3-fix-crash-on-replay-msg-w-user-template.patch
new file mode 100644
index 000000000000..5692a4916129
--- /dev/null
+++ b/kde-apps/kmail/files/kmail-22.08.3-fix-crash-on-replay-msg-w-user-template.patch
@@ -0,0 +1,38 @@
+From 94e28559c96b71721b02393a23cbfeefa93a607b Mon Sep 17 00:00:00 2001
+From: Laurent Montel <montel@kde.org>
+Date: Sat, 7 Jan 2023 00:31:18 +0100
+Subject: [PATCH] Fix bug 463935: Crash on attempting to replay a message with
+ an user template
+
+BUG: 463935
+FIXED-IN: 5.22.2
+---
+ src/kmmainwidget.cpp | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/src/kmmainwidget.cpp b/src/kmmainwidget.cpp
+index b00db6f53..3ab6a18af 100644
+--- a/src/kmmainwidget.cpp
++++ b/src/kmmainwidget.cpp
+@@ -2096,8 +2096,7 @@ void KMMainWidget::slotCustomReplyAllToMsg(const QString &tmpl)
+ qCDebug(KMAIL_LOG) << "Reply to All with template:" << tmpl;
+
+ auto command = new KMReplyCommand(this, msg, MessageComposer::ReplyAll, text, false, tmpl);
+- command->setReplyAsHtml(messageView()->htmlMail());
+-
++ command->setReplyAsHtml(messageView() ? messageView()->htmlMail() : false);
+ command->start();
+ }
+
+@@ -4745,7 +4744,7 @@ void KMMainWidget::slotRedirectCurrentMessage()
+ void KMMainWidget::replyMessageTo(const Akonadi::Item &item, bool replyToAll)
+ {
+ auto command = new KMReplyCommand(this, item, replyToAll ? MessageComposer::ReplyAll : MessageComposer::ReplyAuthor);
+- command->setReplyAsHtml(messageView()->htmlMail());
++ command->setReplyAsHtml(messageView() ? messageView()->htmlMail() : false);
+ command->start();
+ }
+
+--
+GitLab
+
diff --git a/kde-apps/kmail/files/kmail-22.08.3-fix-crash-on-startup.patch b/kde-apps/kmail/files/kmail-22.08.3-fix-crash-on-startup.patch
new file mode 100644
index 000000000000..a798f1afe567
--- /dev/null
+++ b/kde-apps/kmail/files/kmail-22.08.3-fix-crash-on-startup.patch
@@ -0,0 +1,47 @@
+From 9d37b837eca35bd7976709a9d25d3700c70e321e Mon Sep 17 00:00:00 2001
+From: Laurent Montel <montel@kde.org>
+Date: Sat, 31 Dec 2022 10:55:34 +0100
+Subject: [PATCH] Fix bug 460747: Kontact Crashes Upon Start
+
+BUG: 460747
+FIXED-IN: 5.22.1
+---
+ src/kmmainwidget.cpp | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/src/kmmainwidget.cpp b/src/kmmainwidget.cpp
+index 8d332b36b..8c7013f8b 100644
+--- a/src/kmmainwidget.cpp
++++ b/src/kmmainwidget.cpp
+@@ -3403,6 +3403,14 @@ void KMMainWidget::setupActions()
+ QAction *act = actionCollection()->addAction(KStandardAction::Undo, QStringLiteral("kmail_undo"));
+ connect(act, &QAction::triggered, this, &KMMainWidget::slotUndo);
+
++ mAccountSettings = new QAction(QIcon::fromTheme(QStringLiteral("configure")), i18n("Account &Settings"), this);
++ actionCollection()->addAction(QStringLiteral("resource_settings"), mAccountSettings);
++ connect(mAccountSettings, &QAction::triggered, this, &KMMainWidget::slotAccountSettings);
++
++ mRestartAccountSettings = new QAction(QIcon::fromTheme(QStringLiteral("view-refresh")), i18n("Restart Account"), this);
++ actionCollection()->addAction(QStringLiteral("resource_restart"), mRestartAccountSettings);
++ connect(mRestartAccountSettings, &QAction::triggered, this, &KMMainWidget::slotRestartAccount);
++
+ menutimer = new QTimer(this);
+ menutimer->setObjectName(QStringLiteral("menutimer"));
+ menutimer->setSingleShot(true);
+@@ -3535,13 +3543,6 @@ void KMMainWidget::setupActions()
+ actionCollection()->addAction(QStringLiteral("remove_duplicate_recursive"), mRemoveDuplicateRecursiveAction);
+ connect(mRemoveDuplicateRecursiveAction, &KToggleAction::triggered, this, &KMMainWidget::slotRemoveDuplicateRecursive);
+
+- mAccountSettings = new QAction(QIcon::fromTheme(QStringLiteral("configure")), i18n("Account &Settings"), this);
+- actionCollection()->addAction(QStringLiteral("resource_settings"), mAccountSettings);
+- connect(mAccountSettings, &QAction::triggered, this, &KMMainWidget::slotAccountSettings);
+-
+- mRestartAccountSettings = new QAction(QIcon::fromTheme(QStringLiteral("view-refresh")), i18n("Restart Account"), this);
+- actionCollection()->addAction(QStringLiteral("resource_restart"), mRestartAccountSettings);
+- connect(mRestartAccountSettings, &QAction::triggered, this, &KMMainWidget::slotRestartAccount);
+ {
+ QList<QAction *> listActions;
+ auto act = new QAction(i18n("Previous Selected Folder"), this); // TODO fix me i18n
+--
+GitLab
+
diff --git a/kde-apps/kmail/files/kmail-22.08.3-fix-open-detailed-progress-bar.patch b/kde-apps/kmail/files/kmail-22.08.3-fix-open-detailed-progress-bar.patch
new file mode 100644
index 000000000000..1ff35b388dc7
--- /dev/null
+++ b/kde-apps/kmail/files/kmail-22.08.3-fix-open-detailed-progress-bar.patch
@@ -0,0 +1,52 @@
+From 437295a534eca2907e749f18d8d895da50d343b9 Mon Sep 17 00:00:00 2001
+From: Laurent Montel <montel@kde.org>
+Date: Sat, 10 Dec 2022 19:55:33 +0100
+Subject: [PATCH] Fix bug 460289: Opening the detailed progress window does
+ nothing
+
+BUG: 460289
+FIXED-IN: 5.22.1
+---
+ src/kmmainwin.cpp | 5 ++++-
+ src/kmmainwin.h | 2 +-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/kmmainwin.cpp b/src/kmmainwin.cpp
+index 5900bf309..9952667fe 100644
+--- a/src/kmmainwin.cpp
++++ b/src/kmmainwin.cpp
+@@ -36,7 +36,6 @@ using namespace std::chrono_literals;
+
+ KMMainWin::KMMainWin(QWidget *)
+ : KXmlGuiWindow(nullptr)
+- , mProgressBar(new KPIM::ProgressStatusBarWidget(statusBar(), this))
+ , mMessageLabel(new QLabel(i18n("Starting...")))
+
+ {
+@@ -51,6 +50,10 @@ KMMainWin::KMMainWin(QWidget *)
+ resize(700, 500); // The default size
+
+ mKMMainWidget = new KMMainWidget(this, this, actionCollection());
++
++ // Don't initialize in constructor. We need this statusbar created
++ // Bug 460289
++ mProgressBar = new KPIM::ProgressStatusBarWidget(statusBar(), this);
+ connect(mKMMainWidget, &KMMainWidget::recreateGui, this, &KMMainWin::slotUpdateGui);
+ setCentralWidget(mKMMainWidget);
+ setupStatusBar();
+diff --git a/src/kmmainwin.h b/src/kmmainwin.h
+index 314f14d47..377f6818b 100644
+--- a/src/kmmainwin.h
++++ b/src/kmmainwin.h
+@@ -57,7 +57,7 @@ private:
+ void updateHamburgerMenu();
+ void slotShortcutSaved();
+ void slotFullScreen(bool t);
+- KPIM::ProgressStatusBarWidget *const mProgressBar;
++ KPIM::ProgressStatusBarWidget *mProgressBar = nullptr;
+ KMMainWidget *mKMMainWidget = nullptr;
+ KToggleAction *mShowMenuBarAction = nullptr;
+ QLabel *const mMessageLabel;
+--
+GitLab
+
diff --git a/kde-apps/kmail/files/kmail-22.08.3-fix-random-text-in-config-settings.patch b/kde-apps/kmail/files/kmail-22.08.3-fix-random-text-in-config-settings.patch
new file mode 100644
index 000000000000..282fb6109acc
--- /dev/null
+++ b/kde-apps/kmail/files/kmail-22.08.3-fix-random-text-in-config-settings.patch
@@ -0,0 +1,29 @@
+From 6618f8f80ccadff908d11db7506b3af8d15ad032 Mon Sep 17 00:00:00 2001
+From: Laurent Montel <montel@kde.org>
+Date: Fri, 16 Dec 2022 06:59:17 +0100
+Subject: [PATCH] BUG: 459399 Fix Random text in kmail's message list
+ configuration settings
+
+Apply patch from Yaroslav Sidlovsky (thanks)
+BUG: 459399
+FIXED-IN: 5.22.1
+---
+ src/configuredialog/configureappearancepage.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/configuredialog/configureappearancepage.cpp b/src/configuredialog/configureappearancepage.cpp
+index 085179f05..0909db227 100644
+--- a/src/configuredialog/configureappearancepage.cpp
++++ b/src/configuredialog/configureappearancepage.cpp
+@@ -622,7 +622,7 @@ AppearancePageHeadersTab::AppearancePageHeadersTab(QWidget *parent)
+ .subs(DateFormatter::formatCurrentDate(dateDisplayConfig[i].dateDisplay))
+ .toString(); // i18n(label, DateFormatter::formatCurrentDate(dateDisplayConfig[i].dateDisplay));
+ } else {
+- buttonLabel = i18n(label);
++ buttonLabel = KLocalizedString(dateDisplayConfig[i].displayName).toString();
+ }
+ if (dateDisplayConfig[i].dateDisplay == DateFormatter::Custom) {
+ auto hbox = new QWidget(this);
+--
+GitLab
+
diff --git a/kde-apps/kmail/files/kmail-22.08.3-remove-removed-ShowUserAgent.patch b/kde-apps/kmail/files/kmail-22.08.3-remove-removed-ShowUserAgent.patch
new file mode 100644
index 000000000000..a6484b11ae50
--- /dev/null
+++ b/kde-apps/kmail/files/kmail-22.08.3-remove-removed-ShowUserAgent.patch
@@ -0,0 +1,41 @@
+From fc0b487d3f3ac9c9ca0650aa635795b5478de85b Mon Sep 17 00:00:00 2001
+From: Laurent Montel <montel@kde.org>
+Date: Fri, 16 Dec 2022 07:28:28 +0100
+Subject: [PATCH] Remove info about removed feature (ShowUserAgent)
+
+CCBUG: 448348
+---
+ doc/kmail2/configure.docbook | 17 -----------------
+ 1 file changed, 17 deletions(-)
+
+diff --git a/doc/kmail2/configure.docbook b/doc/kmail2/configure.docbook
+index 4916acd8b..bb2648370 100644
+--- a/doc/kmail2/configure.docbook
++++ b/doc/kmail2/configure.docbook
+@@ -4167,23 +4167,6 @@ behavior, add to the [OutOfOffice] section:</para>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+-<varlistentry>
+-<term><guilabel>ShowUserAgent</guilabel></term>
+-<listitem>
+-<para>
+-Starting in version 1.9, &kmail; can show the User-Agent or X-Mailer value
+-from the message header when using Fancy Headers (see <menuchoice><guimenu>View</guimenu>
+-<guisubmenu>Headers</guisubmenu></menuchoice> menu).
+-To enable this feature, add to the <quote>[Reader]</quote> section:</para>
+-<itemizedlist>
+-<listitem><para>Configuration file:</para>
+-<programlisting>ShowUserAgent=true</programlisting></listitem>
+-<listitem><para><command>kwriteconfig</command></para>
+-<para><prompt>&percnt;</prompt> <userinput><command>kwriteconfig</command> <option>--file <replaceable>/path/to/kmail2rc</replaceable> --group Reader --key ShowUserAgent true</option></userinput>
+-</para></listitem>
+-</itemizedlist>
+-</listitem>
+-</varlistentry>
+ </variablelist>
+ </sect1>
+
+--
+GitLab
+
diff --git a/kde-apps/kmail/kmail-22.08.3-r2.ebuild b/kde-apps/kmail/kmail-22.08.3-r2.ebuild
new file mode 100644
index 000000000000..1bbe4c685f7c
--- /dev/null
+++ b/kde-apps/kmail/kmail-22.08.3-r2.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="optional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.96.0
+QTMIN=5.15.5
+VIRTUALX_REQUIRED="test"
+inherit ecm gear.kde.org optfeature
+
+DESCRIPTION="Email client, supporting POP3 and IMAP mailboxes"
+HOMEPAGE="https://apps.kde.org/kmail2/
+https://kontact.kde.org/components/kmail/"
+
+LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
+KEYWORDS="amd64 arm64 ~ppc64 x86"
+IUSE="pch speech telemetry"
+
+RESTRICT="test" # bug 616878
+
+# kde-frameworks/kwindowsystem[X]: Unconditional use of KX11Extras
+COMMON_DEPEND="
+ >=app-crypt/gpgme-1.16.0:=[cxx,qt5]
+ >=dev-qt/qtcore-${QTMIN}:5
+ >=dev-qt/qtdbus-${QTMIN}:5
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtnetwork-${QTMIN}:5
+ >=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+ >=dev-qt/qtwidgets-${QTMIN}:5
+ >=kde-apps/akonadi-${PVCUT}:5
+ >=kde-apps/akonadi-contacts-${PVCUT}:5
+ >=kde-apps/akonadi-mime-${PVCUT}:5
+ >=kde-apps/akonadi-search-${PVCUT}:5
+ >=kde-apps/kidentitymanagement-${PVCUT}:5
+ >=kde-apps/kmailtransport-${PVCUT}:5
+ >=kde-apps/kmime-${PVCUT}:5
+ >=kde-apps/kontactinterface-${PVCUT}:5
+ >=kde-apps/kpimtextedit-${PVCUT}:5[speech=]
+ >=kde-apps/libgravatar-${PVCUT}:5
+ >=kde-apps/libkdepim-${PVCUT}:5
+ >=kde-apps/libkleo-${PVCUT}:5
+ >=kde-apps/libksieve-${PVCUT}:5
+ >=kde-apps/libktnef-${PVCUT}:5
+ >=kde-apps/mailcommon-${PVCUT}:5
+ >=kde-apps/messagelib-${PVCUT}:5
+ >=kde-apps/pimcommon-${PVCUT}:5
+ >=kde-frameworks/kbookmarks-${KFMIN}:5
+ >=kde-frameworks/kcalendarcore-${KFMIN}:5
+ >=kde-frameworks/kcmutils-${KFMIN}:5
+ >=kde-frameworks/kcompletion-${KFMIN}:5
+ >=kde-frameworks/kconfig-${KFMIN}:5
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:5
+ >=kde-frameworks/kcontacts-${KFMIN}:5
+ >=kde-frameworks/kcoreaddons-${KFMIN}:5
+ >=kde-frameworks/kcrash-${KFMIN}:5
+ >=kde-frameworks/kdbusaddons-${KFMIN}:5
+ >=kde-frameworks/kguiaddons-${KFMIN}:5
+ >=kde-frameworks/ki18n-${KFMIN}:5
+ >=kde-frameworks/kiconthemes-${KFMIN}:5
+ >=kde-frameworks/kitemviews-${KFMIN}:5
+ >=kde-frameworks/kio-${KFMIN}:5
+ >=kde-frameworks/kjobwidgets-${KFMIN}:5
+ >=kde-frameworks/knotifications-${KFMIN}:5
+ >=kde-frameworks/knotifyconfig-${KFMIN}:5
+ >=kde-frameworks/kparts-${KFMIN}:5
+ >=kde-frameworks/kservice-${KFMIN}:5
+ >=kde-frameworks/ktextwidgets-${KFMIN}:5
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+ >=kde-frameworks/kwindowsystem-${KFMIN}:5[X]
+ >=kde-frameworks/kxmlgui-${KFMIN}:5
+ >=kde-frameworks/sonnet-${KFMIN}:5
+ telemetry? ( >=dev-libs/kuserfeedback-1.2.0:5 )
+"
+DEPEND="${COMMON_DEPEND}
+ >=kde-apps/kcalutils-${PVCUT}:5
+ >=kde-apps/kldap-${PVCUT}:5
+ test? ( >=kde-apps/akonadi-${PVCUT}:5[sqlite] )
+"
+RDEPEND="${COMMON_DEPEND}
+ >=kde-apps/kdepim-runtime-${PVCUT}:5
+ >=kde-apps/kmail-account-wizard-${PVCUT}:5
+"
+BDEPEND="
+ dev-libs/libxslt
+ test? ( >=kde-apps/akonadi-${PVCUT}:5[tools] )
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-open-detailed-progress-bar.patch" # bug 891509
+ "${FILESDIR}/${P}-fix-random-text-in-config-settings.patch"
+ "${FILESDIR}/${P}-remove-removed-ShowUserAgent.patch"
+ "${FILESDIR}/${P}-fix-crash-on-startup.patch"
+ "${FILESDIR}/${P}-fix-crash-on-replay-msg-w-user-template.patch"
+)
+
+src_prepare() {
+ ecm_src_prepare
+ use handbook || cmake_run_in ktnef cmake_comment_add_subdirectory doc
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSE_PRECOMPILED_HEADERS=$(usex pch)
+ $(cmake_use_find_package telemetry KUserFeedback)
+ )
+
+ ecm_src_configure
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ optfeature "virus detection" app-antivirus/clamav
+ optfeature "spam filtering" mail-filter/bogofilter mail-filter/spamassassin
+ optfeature "fancy e-mail headers and useful plugins" kde-apps/kdepim-addons:${SLOT}
+ optfeature "crypto config and certificate details GUI" kde-apps/kleopatra:${SLOT}
+ optfeature "import PIM data from other applications" kde-apps/akonadi-import-wizard:${SLOT}
+ fi
+ ecm_pkg_postinst
+}
diff --git a/kde-apps/kmail/kmail-22.12.1-r1.ebuild b/kde-apps/kmail/kmail-22.12.1-r2.ebuild
index 7a2b5b2d6ad9..4130f4de525d 100644
--- a/kde-apps/kmail/kmail-22.12.1-r1.ebuild
+++ b/kde-apps/kmail/kmail-22.12.1-r2.ebuild
@@ -89,6 +89,10 @@ BDEPEND="
test? ( >=kde-apps/akonadi-${PVCUT}:5[tools] )
"
+PATCHES=(
+ "${FILESDIR}/${PN}-22.08.3-fix-crash-on-replay-msg-w-user-template.patch"
+)
+
src_prepare() {
ecm_src_prepare
use handbook || cmake_run_in ktnef cmake_comment_add_subdirectory doc
diff --git a/kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch b/kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch
new file mode 100644
index 000000000000..4140cb77d21b
--- /dev/null
+++ b/kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch
@@ -0,0 +1,49 @@
+From 7b2a5ccea0c54b81245acdbbea77a13e570bba2b Mon Sep 17 00:00:00 2001
+From: Fabian Vogt <fabian@ritter-vogt.de>
+Date: Mon, 21 Nov 2022 11:57:51 +0100
+Subject: [PATCH] SmtpJob: Fix use of KCompositeJob
+
+SmtpJob overrides slotResult, but this had two issues. First, it connected
+to LoginJob::result itself, though addJob already does that. Second, in two
+cases it did not remove finished jobs from the list of subjobs, leading to
+dangling pointers and messing up state. This was most likely only reached
+in the case of an expired XOAUTH2 access_token and caused the job to fail
+after a successful refresh.
+
+BUG: 406839
+BUG: 409122
+BUG: 421664
+BUG: 456923
+---
+ src/kmailtransport/plugins/smtp/smtpjob.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/kmailtransport/plugins/smtp/smtpjob.cpp b/src/kmailtransport/plugins/smtp/smtpjob.cpp
+index 9d565af..5be220a 100644
+--- a/src/kmailtransport/plugins/smtp/smtpjob.cpp
++++ b/src/kmailtransport/plugins/smtp/smtpjob.cpp
+@@ -308,7 +308,6 @@ void SmtpJobPrivate::doLogin()
+ break;
+ }
+
+- q->connect(login, &KJob::result, q, &SmtpJob::slotResult);
+ q->addSubjob(login);
+ login->start();
+ qCDebug(MAILTRANSPORT_SMTP_LOG) << "Login started";
+@@ -352,11 +351,12 @@ bool SmtpJob::doKill()
+ void SmtpJob::slotResult(KJob *job)
+ {
+ if (s_sessionPool.isDestroyed()) {
++ removeSubjob(job);
+ return;
+ }
+-
+ if (qobject_cast<KSmtp::LoginJob *>(job)) {
+ if (job->error() == KSmtp::LoginJob::TokenExpired) {
++ removeSubjob(job);
+ startPasswordRetrieval(/*force refresh */ true);
+ return;
+ }
+--
+GitLab
+
diff --git a/kde-apps/kmailtransport/kmailtransport-22.08.3-r1.ebuild b/kde-apps/kmailtransport/kmailtransport-22.08.3-r1.ebuild
new file mode 100644
index 000000000000..1a304ab97eb3
--- /dev/null
+++ b/kde-apps/kmailtransport/kmailtransport-22.08.3-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_QTHELP="true"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.96.0
+QTMIN=5.15.5
+inherit ecm gear.kde.org
+
+DESCRIPTION="Mail transport service"
+
+LICENSE="LGPL-2.1+"
+SLOT="5"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE=""
+
+RESTRICT="test"
+
+RDEPEND="
+ dev-libs/qtkeychain:=[qt5(+)]
+ >=dev-qt/qtdbus-${QTMIN}:5
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtnetwork-${QTMIN}:5
+ >=dev-qt/qtwidgets-${QTMIN}:5
+ >=kde-apps/akonadi-${PVCUT}:5
+ >=kde-apps/akonadi-mime-${PVCUT}:5
+ >=kde-apps/kmime-${PVCUT}:5
+ >=kde-apps/ksmtp-${PVCUT}:5
+ >=kde-apps/libkgapi-${PVCUT}:5
+ >=kde-frameworks/kcmutils-${KFMIN}:5
+ >=kde-frameworks/kcompletion-${KFMIN}:5
+ >=kde-frameworks/kconfig-${KFMIN}:5
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:5
+ >=kde-frameworks/kcoreaddons-${KFMIN}:5
+ >=kde-frameworks/ki18n-${KFMIN}:5
+ >=kde-frameworks/kio-${KFMIN}:5
+ >=kde-frameworks/kwallet-${KFMIN}:5
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+"
+DEPEND="${RDEPEND}
+ test? ( >=kde-frameworks/ktextwidgets-${KFMIN}:5 )
+"
+
+PATCHES=( "${FILESDIR}/${P}-SmtpJob-fix-use-of-KCompositeJob.patch" )
diff --git a/kde-apps/libkgapi/files/libkgapi-22.08.3-AccountManager-dont-keep-finished-promises-in-cache.patch b/kde-apps/libkgapi/files/libkgapi-22.08.3-AccountManager-dont-keep-finished-promises-in-cache.patch
new file mode 100644
index 000000000000..485bc7d840f8
--- /dev/null
+++ b/kde-apps/libkgapi/files/libkgapi-22.08.3-AccountManager-dont-keep-finished-promises-in-cache.patch
@@ -0,0 +1,27 @@
+From b5a581d98d9b57363c44bd98eeab7243fbf13a22 Mon Sep 17 00:00:00 2001
+From: Fabian Vogt <fabian@ritter-vogt.de>
+Date: Mon, 21 Nov 2022 13:00:41 +0100
+Subject: [PATCH] AccountManager: Don't keep finished promises in the cache
+
+AccountPromises are destroyed one event loop cycle after they finished().
+They won't emit finished() again, so they can't be used.
+---
+ src/core/accountmanager.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/accountmanager.cpp b/src/core/accountmanager.cpp
+index 42719c5e..da5c37b6 100644
+--- a/src/core/accountmanager.cpp
++++ b/src/core/accountmanager.cpp
+@@ -134,7 +134,7 @@ public:
+ auto promise = mPendingPromises.value(key, nullptr);
+ if (!promise) {
+ promise = new AccountPromise(q);
+- QObject::connect(promise, &QObject::destroyed, q, [key, this]() {
++ QObject::connect(promise, &AccountPromise::finished, q, [key, this]() {
+ mPendingPromises.remove(key);
+ });
+ mPendingPromises.insert(key, promise);
+--
+GitLab
+
diff --git a/kde-apps/libkgapi/files/libkgapi-22.08.3-dont-cache-promises-for-AccountManager-findAccount.patch b/kde-apps/libkgapi/files/libkgapi-22.08.3-dont-cache-promises-for-AccountManager-findAccount.patch
new file mode 100644
index 000000000000..b24b80377686
--- /dev/null
+++ b/kde-apps/libkgapi/files/libkgapi-22.08.3-dont-cache-promises-for-AccountManager-findAccount.patch
@@ -0,0 +1,75 @@
+From d677a08c21fd99e7e8be0a0899f797f9237207e4 Mon Sep 17 00:00:00 2001
+From: Fabian Vogt <fabian@ritter-vogt.de>
+Date: Mon, 21 Nov 2022 13:02:27 +0100
+Subject: [PATCH] Don't cache promises for AccountManager::findAccount
+
+Unlike AccountManager::getAccount and AccountManager::refreshTokens, this
+method does not return an authenticated account. However, the promises are
+cached for all of them in the same store, so it was possible for a call to
+e.g. refreshTokens to get a promise created by findAccount instead, resulting
+in an unexpected result. Just don't cache promises created by findAccount.
+
+BUG: 406839
+BUG: 409122
+BUG: 421664
+BUG: 456923
+---
+ src/core/accountmanager.cpp | 38 ++++++++++++++++++-------------------
+ 1 file changed, 18 insertions(+), 20 deletions(-)
+
+diff --git a/src/core/accountmanager.cpp b/src/core/accountmanager.cpp
+index da5c37b6..c6b8189d 100644
+--- a/src/core/accountmanager.cpp
++++ b/src/core/accountmanager.cpp
+@@ -265,30 +265,28 @@ AccountPromise *AccountManager::refreshTokens(const QString &apiKey, const QStri
+
+ AccountPromise *AccountManager::findAccount(const QString &apiKey, const QString &accountName, const QList<QUrl> &scopes)
+ {
+- auto promise = d->createPromise(apiKey, accountName);
+- if (!promise->d->isRunning()) {
+- QTimer::singleShot(0, this, [=]() {
+- d->ensureStore([=](bool storeOpened) {
+- if (!storeOpened) {
+- promise->d->setError(tr("Failed to open account store"));
+- return;
+- }
++ auto promise = new AccountPromise(this);
++ QTimer::singleShot(0, this, [=]() {
++ d->ensureStore([=](bool storeOpened) {
++ if (!storeOpened) {
++ promise->d->setError(tr("Failed to open account store"));
++ return;
++ }
+
+- const auto account = d->mStore->getAccount(apiKey, accountName);
+- if (!account) {
+- promise->d->setAccount({});
++ const auto account = d->mStore->getAccount(apiKey, accountName);
++ if (!account) {
++ promise->d->setAccount({});
++ } else {
++ const auto currentScopes = account->scopes();
++ if (scopes.isEmpty() || d->compareScopes(currentScopes, scopes)) {
++ promise->d->setAccount(account);
+ } else {
+- const auto currentScopes = account->scopes();
+- if (scopes.isEmpty() || d->compareScopes(currentScopes, scopes)) {
+- promise->d->setAccount(account);
+- } else {
+- promise->d->setAccount({});
+- }
++ promise->d->setAccount({});
+ }
+- });
++ }
+ });
+- promise->d->setRunning();
+- }
++ });
++ promise->d->setRunning();
+ return promise;
+ }
+
+--
+GitLab
+
diff --git a/kde-apps/libkgapi/libkgapi-22.08.3-r1.ebuild b/kde-apps/libkgapi/libkgapi-22.08.3-r1.ebuild
new file mode 100644
index 000000000000..a46cb2350c58
--- /dev/null
+++ b/kde-apps/libkgapi/libkgapi-22.08.3-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_TEST="true"
+KFMIN=5.96.0
+QTMIN=5.15.5
+VIRTUALX_REQUIRED="test"
+inherit ecm gear.kde.org
+
+DESCRIPTION="Library for accessing Google calendar and contact resources"
+HOMEPAGE="https://api.kde.org/kdepim/libkgapi/html/index.html"
+
+LICENSE="LGPL-2.1+"
+SLOT="5"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="nls"
+
+DEPEND="
+ dev-libs/cyrus-sasl:2
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtnetwork-${QTMIN}:5
+ >=dev-qt/qtwidgets-${QTMIN}:5
+ >=dev-qt/qtxml-${QTMIN}:5
+ >=kde-frameworks/kcalendarcore-${KFMIN}:5
+ >=kde-frameworks/kcontacts-${KFMIN}:5
+ >=kde-frameworks/kwallet-${KFMIN}:5
+"
+RDEPEND="${DEPEND}"
+BDEPEND="nls? ( >=dev-qt/linguist-tools-${QTMIN}:5 )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-AccountManager-dont-keep-finished-promises-in-cache.patch"
+ "${FILESDIR}/${P}-dont-cache-promises-for-AccountManager-findAccount.patch"
+)
+
+src_test() {
+ local myctestargs=(
+ # Both fail for multiple distros, see bug #832709 for more discussion
+ # Revisit at least once Qt 5.15.3 is in wider distribution (in Gentoo at least):
+ # contacts-contactcreatejobtest, contacts-contactmodifyjobtest
+ # More failures not specific to Gentoo, bug #852593, KDE-bug #440648:
+ # calendar-eventcreatejobtest, calendar-eventfetchjobtest, calendar-eventmodifyjobtest
+ -E "(contacts-contactcreatejobtest|contacts-contactmodifyjobtest|calendar-eventcreatejobtest|calendar-eventfetchjobtest|calendar-eventmodifyjobtest)"
+ )
+
+ virtx cmake_src_test
+}
diff --git a/sci-libs/opencascade/Manifest b/sci-libs/opencascade/Manifest
index b0510b20df5f..af71bb8b4462 100644
--- a/sci-libs/opencascade/Manifest
+++ b/sci-libs/opencascade/Manifest
@@ -1,3 +1,2 @@
-DIST opencascade-7.5.3.tar.gz 47817862 BLAKE2B be438a08997c18c3cb2c08c520fff2f439cc8a406cc3f471be3b24f874ac3bd892c4afe6fa37f742ffb5da21b5a29f9c8f737e3160dcbda35a217286218eb5e1 SHA512 2d7cf284a1b3ce8d05151085b41579cc2f4e29489b7920769cd04f86a6d76e49f533b570226d3cf041c75582894ed8a6aff889312c7c507fffae47d3e57c5c47
DIST opencascade-7.6.3.tar.gz 48216090 BLAKE2B ff0b63250e77b0240bd99bba38cd0e6b0a8c88bf39e495f5d51d7913f097e2cad83a5ad121e9d56de11c74008249c99a41f4615269a085b7cf97c3d7f0477d6d SHA512 c708f76edb707ba18bdfe7442ed8fa500894ee6c1cd8d0313eb906b3aa7dfa40a575f04dbccd70e84395d670f2b93fb8529f3d59726449234e627b9f35b9dded
DIST opencascade-7.7.0.tar.gz 48393806 BLAKE2B b41da7bdd07aa6ef52f7833bef3e8a9fc2ca16cbf754773cb7adcc059c11c2a7937d279a2b6cf3096e7af6fbb42c6fdc2a5c98340d6b084d2ba100ba2c538f2a SHA512 6c90e2761f752241417ae6f18d819f51e66b32f3a50a97384f29ed73fa07f4cded84c71a6f6ba302d5e35c57e2fc13001619521eaf45757e4e5ff670d94bbf5c
diff --git a/sci-libs/opencascade/files/opencascade-7.5.1-0001-allow-default-search-path-for-Qt5.patch b/sci-libs/opencascade/files/opencascade-7.5.1-0001-allow-default-search-path-for-Qt5.patch
deleted file mode 100644
index 68be3e1c8803..000000000000
--- a/sci-libs/opencascade/files/opencascade-7.5.1-0001-allow-default-search-path-for-Qt5.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From c7d8a7374284186136d72fc285f9e55045b306fb Mon Sep 17 00:00:00 2001
-From: Bernd Waibel <waebbl@gmail.com>
-Date: Wed, 3 Feb 2021 23:31:23 +0100
-Subject: [PATCH] allow default search path for Qt5
-
-Signed-off-by: Bernd Waibel <waebbl@gmail.com>
----
- adm/cmake/qt.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/adm/cmake/qt.cmake b/adm/cmake/qt.cmake
-index 535e6a20..6c2141dd 100644
---- a/adm/cmake/qt.cmake
-+++ b/adm/cmake/qt.cmake
-@@ -24,7 +24,7 @@ set(CMAKE_PREFIX_PATH ${3RDPARTY_QT_DIR})
-
- # Now we can apply standard CMake finder for Qt5. We do this mostly
- # to have qt5_wrap_cpp() function available and Qt5_FOUND variable filled
--find_package(Qt5 QUIET COMPONENTS Widgets Quick Xml PATHS ${3RDPARTY_QT_DIR} NO_DEFAULT_PATH)
-+find_package(Qt5 COMPONENTS Widgets Quick Xml REQUIRED)
- if (NOT ${Qt5_FOUND})
- # Now we can apply standard CMake finder for Qt. We do this mostly
- # to have qt4_wrap_cpp() function available
---
-2.30.0
-
diff --git a/sci-libs/opencascade/files/opencascade-7.5.1-0002-remove-unnecessary-Qt5-check.patch b/sci-libs/opencascade/files/opencascade-7.5.1-0002-remove-unnecessary-Qt5-check.patch
deleted file mode 100644
index 91d5c66c7614..000000000000
--- a/sci-libs/opencascade/files/opencascade-7.5.1-0002-remove-unnecessary-Qt5-check.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From dcf67dbc486a97256ea6df7b968f69346e7b3dba Mon Sep 17 00:00:00 2001
-From: Bernd Waibel <waebbl@gmail.com>
-Date: Wed, 3 Feb 2021 23:45:27 +0100
-Subject: [PATCH] remove unnecessary Qt5 check
-
-Signed-off-by: Bernd Waibel <waebbl@gmail.com>
----
- adm/cmake/qt_macro.cmake | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/adm/cmake/qt_macro.cmake b/adm/cmake/qt_macro.cmake
-index ec897384..363d9c52 100644
---- a/adm/cmake/qt_macro.cmake
-+++ b/adm/cmake/qt_macro.cmake
-@@ -2,10 +2,6 @@
-
- macro (FIND_QT_PACKAGE PROJECT_LIBRARIES_DEBUG PROJECT_LIBRARIES_RELEASE PROJECT_INCLUDES)
-
-- if ("${3RDPARTY_QT_DIR}" STREQUAL "")
-- message (FATAL_ERROR "Empty Qt dir")
-- endif()
--
- if (${Qt5_FOUND})
- #message (STATUS "Qt5 cmake configuration")
-
---
-2.30.0
-
diff --git a/sci-libs/opencascade/files/opencascade-7.5.1-0003-add-Gentoo-configuration-type.patch b/sci-libs/opencascade/files/opencascade-7.5.1-0003-add-Gentoo-configuration-type.patch
deleted file mode 100644
index 0665790d20a1..000000000000
--- a/sci-libs/opencascade/files/opencascade-7.5.1-0003-add-Gentoo-configuration-type.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a8aa40ec021dac8310d77bcec71ee298f6773926 Mon Sep 17 00:00:00 2001
-From: Bernd Waibel <waebbl@gmail.com>
-Date: Thu, 4 Feb 2021 22:29:57 +0100
-Subject: [PATCH] add Gentoo configuration type
-
-Signed-off-by: Bernd Waibel <waebbl@gmail.com>
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 100d6133..887a1cd7 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -4,7 +4,7 @@ set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/adm/cmake")
-
- set (CMAKE_SUPPRESS_REGENERATION TRUE)
-
--set (CMAKE_CONFIGURATION_TYPES Release Debug RelWithDebInfo CACHE INTERNAL "" FORCE)
-+set (CMAKE_CONFIGURATION_TYPES Release Debug RelWithDebInfo Gentoo CACHE INTERNAL "" FORCE)
-
- # macro: include patched file if it exists
- macro (OCCT_INCLUDE_CMAKE_FILE BEING_INCLUDED_FILE)
---
-2.30.0
-
diff --git a/sci-libs/opencascade/files/opencascade-7.5.1-fix-AllValues-name-collision-with-vtk-9.0.patch b/sci-libs/opencascade/files/opencascade-7.5.1-fix-AllValues-name-collision-with-vtk-9.0.patch
deleted file mode 100644
index e2725ebb2c64..000000000000
--- a/sci-libs/opencascade/files/opencascade-7.5.1-fix-AllValues-name-collision-with-vtk-9.0.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-From f624c55d7b75ccbe3fdfef0db141fdbe1f6b383a Mon Sep 17 00:00:00 2001
-From: anv <anv@opencascade.com>
-Date: Tue, 27 Apr 2021 21:33:54 +0300
-Subject: [PATCH 1/2] 0032331: Visualization - Exception when trying to display
- some surfaces using iVtk with VTK 9
-
-Updated memory allocation for vtkPolyData to use more suited method for VTK versions after 9.0
----
- src/IVtkDraw/IVtkDraw_Interactor.cxx | 7 +++
- src/IVtkTools/IVtkTools_SubPolyDataFilter.cxx | 50 ++++++++++++++++++-
- 2 files changed, 56 insertions(+), 1 deletion(-)
-
-diff --git a/src/IVtkDraw/IVtkDraw_Interactor.cxx b/src/IVtkDraw/IVtkDraw_Interactor.cxx
-index f9f68c37b6..1b68c959f5 100644
---- a/src/IVtkDraw/IVtkDraw_Interactor.cxx
-+++ b/src/IVtkDraw/IVtkDraw_Interactor.cxx
-@@ -20,6 +20,13 @@
- #include <vtkWin32OpenGLRenderWindow.h>
- #else
- #include <GL/glx.h>
-+
-+// Preventing naming collisions between
-+// GLX and VTK versions 9.0 and above
-+#ifdef AllValues
-+#undef AllValues
-+#endif
-+
- #include <vtkXRenderWindowInteractor.h>
- #include <vtkXOpenGLRenderWindow.h>
- #endif
-diff --git a/src/IVtkTools/IVtkTools_SubPolyDataFilter.cxx b/src/IVtkTools/IVtkTools_SubPolyDataFilter.cxx
-index 26ded68af5..bd289d2b51 100644
---- a/src/IVtkTools/IVtkTools_SubPolyDataFilter.cxx
-+++ b/src/IVtkTools/IVtkTools_SubPolyDataFilter.cxx
-@@ -87,6 +87,11 @@ int IVtkTools_SubPolyDataFilter::RequestData (vtkInformation *vtkNotUsed(theRequ
-
- // Prepare the list of ids from the set of ids.
- // Iterate on input cells.
-+#if (VTK_MAJOR_VERSION >= 9)
-+ // Count number of different cells.
-+ int aNbVerts = 0, aNbLines = 0, aNbPolys = 0, aNbStrips = 0;
-+ int aNbVertPts = 0, aNbLinePts = 0, aNbPolyPts = 0, aNbStripPts = 0;
-+#endif
- if (!myIdsSet.IsEmpty())
- {
- for (vtkIdType anI = 0; anI < aSize; anI++)
-@@ -95,13 +100,56 @@ int IVtkTools_SubPolyDataFilter::RequestData (vtkInformation *vtkNotUsed(theRequ
- {
- // Add a cell id to output if it's value is in the set.
- anIdList->InsertNextId (anI);
-+#if (VTK_MAJOR_VERSION >= 9)
-+ switch (anInput->GetCellType(anI))
-+ {
-+ case VTK_VERTEX:
-+ aNbVerts++;
-+ aNbVertPts++;
-+ break;
-+ case VTK_POLY_VERTEX:
-+ aNbVerts++;
-+ aNbVertPts += anInput->GetCell(anI)->GetNumberOfPoints();
-+ break;
-+ case VTK_LINE:
-+ aNbLines++;
-+ aNbLinePts += 2;
-+ break;
-+ case VTK_POLY_LINE:
-+ aNbLines++;
-+ aNbLinePts += anInput->GetCell(anI)->GetNumberOfPoints();
-+ break;
-+ case VTK_TRIANGLE:
-+ aNbPolys++;
-+ aNbPolyPts += 3;
-+ break;
-+ case VTK_QUAD:
-+ aNbPolys++;
-+ aNbPolyPts += 4;
-+ break;
-+ case VTK_POLYGON:
-+ aNbPolys++;
-+ aNbPolyPts += anInput->GetCell(anI)->GetNumberOfPoints();
-+ break;
-+ case VTK_TRIANGLE_STRIP:
-+ aNbStrips++;
-+ aNbStripPts += anInput->GetCell(anI)->GetNumberOfPoints();
-+ break;
-+ }
-+#endif
- }
- }
- }
-
- // Copy cells with their points according to the prepared list of cell ids.
- anOutput->GetCellData()->AllocateArrays(anInput->GetCellData()->GetNumberOfArrays());
-- anOutput->Allocate(anInput, anIdList->GetNumberOfIds()); // Allocate output cells
-+ // Allocate output cells
-+#if (VTK_MAJOR_VERSION >= 9)
-+ anOutput->AllocateExact (aNbVerts, aNbVertPts, aNbLines, aNbLinePts, aNbPolys, aNbPolyPts, aNbStrips, aNbStripPts);
-+#else
-+ anOutput->Allocate (anInput, anIdList->GetNumberOfIds());
-+#endif
-+
- // Pass data arrays.
- // Create new arrays for output data
- vtkSmartPointer<vtkCellData> anInData = anInput->GetCellData();
---
-2.31.1
-
-
-From 3a0d59614378af258b285c7a3cab66c4bb7cecd3 Mon Sep 17 00:00:00 2001
-From: Roman Beranek <roman.beranek@prusa3d.com>
-Date: Thu, 3 Jun 2021 15:41:45 +0200
-Subject: [PATCH 2/2] undef AllValues after inclusion of GL/glx.h
-
-Replicate the measure from 0032331 also for IVtkDraw.cxx and InterfaceGraphic.hxx
----
- src/IVtkDraw/IVtkDraw.cxx | 17 +++++++++++------
- src/InterfaceGraphic/InterfaceGraphic.hxx | 4 +++-
- 2 files changed, 14 insertions(+), 7 deletions(-)
-
-diff --git a/src/IVtkDraw/IVtkDraw.cxx b/src/IVtkDraw/IVtkDraw.cxx
-index 93d4a2fd1a..84bacdc55a 100644
---- a/src/IVtkDraw/IVtkDraw.cxx
-+++ b/src/IVtkDraw/IVtkDraw.cxx
-@@ -52,6 +52,17 @@
-
- // prevent disabling some MSVC warning messages by VTK headers
- #include <Standard_WarningsDisable.hxx>
-+#ifndef _WIN32
-+ #include <X11/X.h>
-+ #include <X11/Shell.h>
-+ #include <X11/Xlib.h>
-+ #include <X11/Xutil.h>
-+ #include <GL/glx.h>
-+ #include <Xw_Window.hxx>
-+ #ifdef AllValues
-+ #undef AllValues
-+ #endif
-+#endif
- #include <vtkAlgorithmOutput.h>
- #include <vtkAppendPolyData.h>
- #include <vtkBMPWriter.h>
-@@ -75,12 +86,6 @@
- #include <vtkTIFFWriter.h>
- #include <vtkWindowToImageFilter.h>
- #ifndef _WIN32
-- #include <X11/X.h>
-- #include <X11/Shell.h>
-- #include <X11/Xlib.h>
-- #include <X11/Xutil.h>
-- #include <GL/glx.h>
-- #include <Xw_Window.hxx>
- #include <vtkXRenderWindowInteractor.h>
- #include <vtkXOpenGLRenderWindow.h>
- #include <tk.h>
-diff --git a/src/InterfaceGraphic/InterfaceGraphic.hxx b/src/InterfaceGraphic/InterfaceGraphic.hxx
-index c533f68cd5..bf02b3f397 100644
---- a/src/InterfaceGraphic/InterfaceGraphic.hxx
-+++ b/src/InterfaceGraphic/InterfaceGraphic.hxx
-@@ -39,7 +39,9 @@
- #include <X11/Xutil.h>
- #include <X11/Xatom.h>
- #include <GL/glx.h>
--
-+#ifdef AllValues
-+#undef AllValues
-+#endif
- #endif
-
- #endif // __INTERFACE_GRAPHIC_HXX
---
-2.31.1
-
diff --git a/sci-libs/opencascade/opencascade-7.5.3-r8.ebuild b/sci-libs/opencascade/opencascade-7.5.3-r8.ebuild
deleted file mode 100644
index bdd9b918a69a..000000000000
--- a/sci-libs/opencascade/opencascade-7.5.3-r8.ebuild
+++ /dev/null
@@ -1,176 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake flag-o-matic
-
-MY_PV="$(ver_rs 1- '_')"
-PV_MAJ="$(ver_cut 1-2)"
-
-DESCRIPTION="Development platform for CAD/CAE, 3D surface/solid modeling and data exchange"
-HOMEPAGE="https://www.opencascade.com"
-SRC_URI="https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V${MY_PV};sf=tgz -> ${P}.tar.gz"
-S="${WORKDIR}/occt-V${MY_PV}"
-
-LICENSE="|| ( Open-CASCADE-LGPL-2.1-Exception-1.0 LGPL-2.1 )"
-SLOT="0/${PV_MAJ}"
-KEYWORDS="amd64 ~arm64 ~x86"
-IUSE="debug doc examples ffmpeg freeimage gles2-only json optimize tbb vtk"
-
-REQUIRED_USE="?? ( optimize tbb )"
-
-# There's no easy way to test. Testing needs a rather big environment
-# properly set up.
-RESTRICT="test"
-
-# ffmpeg: https://dev.opencascade.org/content/build-error-when-compiling-against-ffmpeg-5
-RDEPEND="
- !app-eselect/eselect-opencascade
- dev-lang/tcl:=
- dev-lang/tk:=
- dev-tcltk/itcl
- dev-tcltk/itk
- dev-tcltk/tix
- media-libs/fontconfig
- media-libs/freetype:2
- media-libs/ftgl
- virtual/glu
- virtual/opengl
- x11-libs/libXmu
- examples? (
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtquickcontrols2:5
- dev-qt/qtwidgets:5
- dev-qt/qtxml:5
- )
- ffmpeg? ( media-video/ffmpeg:= )
- freeimage? ( media-libs/freeimage )
- tbb? ( dev-cpp/tbb:= )
- vtk? ( <sci-libs/vtk-9.2.0:=[rendering] )
-"
-DEPEND="${RDEPEND}"
-
-BDEPEND="
- dev-cpp/eigen
- dev-libs/rapidjson
- doc? ( app-doc/doxygen )
- examples? ( dev-qt/linguist-tools:5 )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-7.5.1-0001-allow-default-search-path-for-Qt5.patch
- "${FILESDIR}"/${PN}-7.5.1-0002-remove-unnecessary-Qt5-check.patch
- "${FILESDIR}"/${PN}-7.5.1-0003-add-Gentoo-configuration-type.patch
- "${FILESDIR}"/${PN}-7.5.1-0004-fix-installation-of-cmake-config-files.patch
- "${FILESDIR}"/${PN}-7.5.1-0005-fix-write-permissions-on-scripts.patch
- "${FILESDIR}"/${PN}-7.5.1-0006-fix-creation-of-custom.sh-script.patch
- "${FILESDIR}"/${PN}-7.5.1-fix-AllValues-name-collision-with-vtk-9.0.patch
- "${FILESDIR}"/${PN}-7.6.2-avoid-pre-stripping-binaries.patch
- "${FILESDIR}"/${PN}-7.5.3-tbb-2021.patch
-)
-
-src_prepare() {
- cmake_src_prepare
-
- use debug && append-cppflags -DDEBUG
-
- sed -e 's|/lib\$|/'$(get_libdir)'\$|' \
- -i adm/templates/OpenCASCADEConfig.cmake.in || die
-
- # There is an OCCT_UPDATE_TARGET_FILE cmake macro that fails due to some
- # assumptions it makes about installation paths. Rather than fixing it, just
- # get rid of the mechanism altogether - its purpose is to allow a
- # side-by-side installation of release and debug libraries.
- sed -e 's|\\${OCCT_INSTALL_BIN_LETTER}||' \
- -i adm/cmake/occt_toolkit.cmake || die
-}
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_DOC_Overview=$(usex doc)
- -DBUILD_Inspector=$(usex examples)
- -DBUILD_RELEASE_DISABLE_EXCEPTIONS=OFF # bug #847916
-
- -DINSTALL_DIR_BIN="$(get_libdir)/${PN}/bin"
- -DINSTALL_DIR_CMAKE="$(get_libdir)/cmake/${PN}"
- -DINSTALL_DIR_DATA="share/${PN}/data"
- -DINSTALL_DIR_DOC="share/doc/${PF}"
- -DINSTALL_DIR_INCLUDE="include/${PN}"
- -DINSTALL_DIR_LIB="$(get_libdir)/${PN}"
- -DINSTALL_DIR_RESOURCE="share/${PN}/resources"
- -DINSTALL_DIR_SAMPLES="share/${PN}/samples"
- -DINSTALL_DIR_SCRIPT="$(get_libdir)/${PN}/bin"
- -DINSTALL_DIR_WITH_VERSION=OFF
- -DINSTALL_SAMPLES=$(usex examples)
- -DINSTALL_TEST_CASES=NO
-
- -DUSE_D3D=NO
- -DUSE_FFMPEG=$(usex ffmpeg)
- -DUSE_FREEIMAGE=$(usex freeimage)
- -DUSE_FREETYPE=ON
- -DUSE_GLES2=$(usex gles2-only)
- -DUSE_RAPIDJSON=$(usex json)
- -DUSE_TBB=$(usex tbb)
- -DUSE_VTK=$(usex vtk)
- )
-
- use doc && mycmakeargs+=( -DINSTALL_DOC_Overview=ON )
-
- if use examples; then
- mycmakeargs+=(
- -D3RDPARTY_QT_DIR="${ESYSROOT}"/usr
- -DBUILD_SAMPLES_QT=ON
- )
- fi
-
- if use vtk; then
- if has_version ">=sci-libs/vtk-9.1.0"; then
- mycmakeargs+=(
- -D3RDPARTY_VTK_DIR="${ESYSROOT}"/usr
- -D3RDPARTY_VTK_INCLUDE_DIR="${ESYSROOT}"/usr/include/vtk-9.1
- -D3RDPARTY_VTK_LIBRARY_DIR="${ESYSROOT}"/usr/$(get_libdir)
- )
- elif has_version ">=sci-libs/vtk-9.0.0"; then
- mycmakeargs+=(
- -D3RDPARTY_VTK_DIR="${ESYSROOT}"/usr
- -D3RDPARTY_VTK_INCLUDE_DIR="${ESYSROOT}"/usr/include/vtk-9.0
- -D3RDPARTY_VTK_LIBRARY_DIR="${ESYSROOT}"/usr/$(get_libdir)
- )
- fi
- fi
-
- cmake_src_configure
-
- # prepare /etc/env.d file
- sed -e "s|lib/|$(get_libdir)/|" \
- -e "s|VAR_CASROOT|${EPREFIX}/usr|" \
- < "${FILESDIR}"/${PN}.env.in > "${T}"/99${PN} || die
-
- # use TBB for memory allocation optimizations
- if use tbb; then
- sed -e 's|^#MMGT_OPT=0$|MMGT_OPT=2|' -i "${T}"/99${PN} || die
- fi
-
- # use internal optimized memory manager and don't clear memory with this
- # memory manager.
- if use optimize ; then
- sed -e 's|^#MMGT_OPT=0$|MMGT_OPT=1|' \
- -e 's|^#MMGT_CLEAR=1$|MMGT_CLEAR=0|' \
- -i "${T}"/99${PN} || die
- fi
-}
-
-src_install() {
- cmake_src_install
-
- doenvd "${T}/99${PN}"
-
- # remove examples
- if use !examples; then
- rm -r "${ED}/usr/share/${PN}/samples" || die
- fi
-
- docompress -x /usr/share/doc/${PF}/overview/html
-}