From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path:
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (2048 bits))
(No client certificate requested)
by finch.gentoo.org (Postfix) with ESMTPS id 7B648158087
for ; Fri, 7 Jan 2022 14:22:03 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
by pigeon.gentoo.org (Postfix) with SMTP id BA2CB2BC012;
Fri, 7 Jan 2022 14:22:02 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (4096 bits))
(No client certificate requested)
by pigeon.gentoo.org (Postfix) with ESMTPS id 3C7862BC012
for ; Fri, 7 Jan 2022 14:22:02 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
(No client certificate requested)
by smtp.gentoo.org (Postfix) with ESMTPS id 08089342E90
for ; Fri, 7 Jan 2022 14:22:00 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
by oystercatcher.gentoo.org (Postfix) with ESMTP id 99CFC246
for ; Fri, 7 Jan 2022 14:21:57 +0000 (UTC)
From: "Andreas Sturmlechner"
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Andreas Sturmlechner"
Message-ID: <1641565298.c2522b493bf5d0b1041111fab10c69d491259a86.asturm@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-mathematics/rkward/, sci-mathematics/rkward/files/
X-VCS-Repository: repo/gentoo
X-VCS-Files: sci-mathematics/rkward/files/rkward-0.7.2-fix-crash-w-R-4.1.0.patch sci-mathematics/rkward/files/rkward-0.7.2-fix-dark-themes.patch sci-mathematics/rkward/files/rkward-0.7.2-fix-eop-tag-in-html.patch sci-mathematics/rkward/files/rkward-0.7.2-fix-hang-on-exit.patch sci-mathematics/rkward/files/rkward-0.7.2-fix-hidpi.patch sci-mathematics/rkward/rkward-0.7.2-r1.ebuild
X-VCS-Directories: sci-mathematics/rkward/ sci-mathematics/rkward/files/
X-VCS-Committer: asturm
X-VCS-Committer-Name: Andreas Sturmlechner
X-VCS-Revision: c2522b493bf5d0b1041111fab10c69d491259a86
X-VCS-Branch: master
Date: Fri, 7 Jan 2022 14:21:57 +0000 (UTC)
Precedence: bulk
List-Post:
List-Help:
List-Unsubscribe:
List-Subscribe:
List-Id: Gentoo Linux mail
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 64bd49ca-0a28-4562-8ed0-e901969990b8
X-Archives-Hash: a056aad357e6d03df65a1a8badf40b0f
commit: c2522b493bf5d0b1041111fab10c69d491259a86
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Wed Dec 29 12:17:43 2021 +0000
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Fri Jan 7 14:21:38 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c2522b49
sci-mathematics/rkward: EAPI-8, more optfeature, various fixes
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=389914
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=430680
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=438993
Reported-by: Milos Popovic gmail.com>
Closes: https://bugs.gentoo.org/829998
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner gentoo.org>
.../files/rkward-0.7.2-fix-crash-w-R-4.1.0.patch | 99 ++++++++++++
.../files/rkward-0.7.2-fix-dark-themes.patch | 172 +++++++++++++++++++++
.../files/rkward-0.7.2-fix-eop-tag-in-html.patch | 32 ++++
.../files/rkward-0.7.2-fix-hang-on-exit.patch | 28 ++++
.../rkward/files/rkward-0.7.2-fix-hidpi.patch | 25 +++
sci-mathematics/rkward/rkward-0.7.2-r1.ebuild | 64 ++++++++
6 files changed, 420 insertions(+)
diff --git a/sci-mathematics/rkward/files/rkward-0.7.2-fix-crash-w-R-4.1.0.patch b/sci-mathematics/rkward/files/rkward-0.7.2-fix-crash-w-R-4.1.0.patch
new file mode 100644
index 000000000000..2cc50575672b
--- /dev/null
+++ b/sci-mathematics/rkward/files/rkward-0.7.2-fix-crash-w-R-4.1.0.patch
@@ -0,0 +1,99 @@
+From 157207b915647cd8600c616cf6dfed8f83ecff30 Mon Sep 17 00:00:00 2001
+From: Thomas Friedrichsmeier
+Date: Sat, 26 Jun 2021 22:16:22 +0200
+Subject: [PATCH] Add dummies for the new R graphics functions to avoid crash.
+
+This is not a proper implementation, yet.
+
+CCBUG: https://bugs.kde.org/show_bug.cgi?id=438993
+---
+ ChangeLog | 3 ++
+ .../rkwarddevice/rkgraphicsdevice_setup.cpp | 15 +++++++-
+ .../rkwarddevice/rkgraphicsdevice_stubs.cpp | 36 +++++++++++++++++++
+ 3 files changed, 53 insertions(+), 1 deletion(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 0210df6e..ae17bc62 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,6 @@
++--- Version 0.7.2b - UNRELEASED
++- Fixed: Crash when attempting to use new graphics features in R 4.1.0 (esp. plotting using ggplot2)
++
+ --- Version 0.7.2 - Oct-16-2020
+ - Script preview keeps vertical scroll position when updating
+ - Python development scripts have been ported to python3
+diff --git a/rkward/rbackend/rkwarddevice/rkgraphicsdevice_setup.cpp b/rkward/rbackend/rkwarddevice/rkgraphicsdevice_setup.cpp
+index 9909639f..e215c090 100644
+--- a/rkward/rbackend/rkwarddevice/rkgraphicsdevice_setup.cpp
++++ b/rkward/rbackend/rkwarddevice/rkgraphicsdevice_setup.cpp
+@@ -216,6 +216,19 @@ bool RKGraphicsDeviceDesc::init (pDevDesc dev, double pointsize, const QStringLi
+ #endif
+ dev->newFrameConfirm = RKD_NewFrameConfirm;
+
++#if R_VERSION >= R_Version (2, 14, 0)
++ dev->holdflush = RKD_HoldFlush;
++#endif
++
++#if R_VERSION >= R_Version (4, 1, 0)
++ dev->setPattern = RKD_SetPattern;
++ dev->releasePattern = RKD_ReleasePattern;
++ dev->setClipPath = RKD_SetClipPath;
++ dev->releaseClipPath = RKD_ReleaseClipPath;
++ dev->setMask = RKD_SetMask;
++ dev->releaseMask = RKD_ReleaseMask;
++ dev->deviceVersion = 14;
++ dev->deviceClip = FALSE; // for now
++#endif
+ return true;
+ }
+-
+diff --git a/rkward/rbackend/rkwarddevice/rkgraphicsdevice_stubs.cpp b/rkward/rbackend/rkwarddevice/rkgraphicsdevice_stubs.cpp
+index 716a9511..b7be1609 100644
+--- a/rkward/rbackend/rkwarddevice/rkgraphicsdevice_stubs.cpp
++++ b/rkward/rbackend/rkwarddevice/rkgraphicsdevice_stubs.cpp
+@@ -579,5 +579,41 @@ void RKD_onExit (pDevDesc dev) {
+ }
+ dev->gettingEvent = (Rboolean) false;
+ }
++#endif
++
++#if R_VERSION >= R_Version (2, 14, 0)
++int RKD_HoldFlush (pDevDesc dev, int level) {
++#warning implement me
++ return 0;
++}
++#endif
++
++#if R_VERSION >= R_Version (4, 1, 0)
++SEXP RKD_SetPattern (SEXP pattern, pDevDesc dd) {
++#warning implement me
++ return R_NilValue;
++}
++
++void RKD_ReleasePattern (SEXP ref, pDevDesc dd) {
++#warning implement me
++}
++
++SEXP RKD_SetClipPath (SEXP path, SEXP ref, pDevDesc dd) {
++#warning implement me
++ return R_NilValue;
++}
++
++void RKD_ReleaseClipPath (SEXP ref, pDevDesc dd) {
++#warning implement me
++}
++
++SEXP RKD_SetMask (SEXP path, SEXP ref, pDevDesc dd) {
++#warning implement me
++ return R_NilValue;
++}
++
++void RKD_ReleaseMask (SEXP ref, pDevDesc dd) {
++#warning implement me
++}
+
+ #endif
+--
+GitLab
+
diff --git a/sci-mathematics/rkward/files/rkward-0.7.2-fix-dark-themes.patch b/sci-mathematics/rkward/files/rkward-0.7.2-fix-dark-themes.patch
new file mode 100644
index 000000000000..005285e281bf
--- /dev/null
+++ b/sci-mathematics/rkward/files/rkward-0.7.2-fix-dark-themes.patch
@@ -0,0 +1,172 @@
+From 5d64b6d23f19f4307fca2d79838bb6e1e38c7f36 Mon Sep 17 00:00:00 2001
+From: Nick Panayioto
+Date: Thu, 28 Oct 2021 05:31:00 -0400
+Subject: [PATCH] Change plugin widgets that set their colors to use
+ setStyleSheet, then clear the style sheet to restore the default color.
+
+This looks the same on light themes and makes dark themes not use white text on white background.
+
+BUG: 389914
+---
+ rkward/misc/getfilenamewidget.cpp | 8 ++------
+ rkward/misc/getfilenamewidget.h | 2 +-
+ rkward/misc/rksaveobjectchooser.cpp | 6 ++----
+ rkward/misc/rksaveobjectchooser.h | 2 +-
+ rkward/plugin/rkinput.cpp | 8 +++-----
+ rkward/plugin/rkpluginbrowser.cpp | 8 ++++----
+ rkward/plugin/rkpluginsaveobject.cpp | 4 ++--
+ rkward/plugin/rkvarslot.cpp | 7 +++----
+ 8 files changed, 18 insertions(+), 27 deletions(-)
+
+diff --git a/rkward/misc/getfilenamewidget.cpp b/rkward/misc/getfilenamewidget.cpp
+index 6b7f1d26..a439b8a4 100644
+--- a/rkward/misc/getfilenamewidget.cpp
++++ b/rkward/misc/getfilenamewidget.cpp
+@@ -137,11 +137,7 @@ QString GetFileNameWidget::getLocation () {
+ return (edit->url ().url ());
+ }
+
+-void GetFileNameWidget::setBackgroundColor (const QColor & color) {
++void GetFileNameWidget::setStyleSheet (const QString & style) {
+ RK_TRACE (MISC);
+-
+- QPalette palette = edit->lineEdit ()->palette ();
+- palette.setColor (edit->lineEdit ()->backgroundRole (), color);
+- edit->lineEdit ()->setPalette (palette);
++ edit->setStyleSheet(style);
+ }
+-
+diff --git a/rkward/misc/getfilenamewidget.h b/rkward/misc/getfilenamewidget.h
+index ecbf1364..71390667 100644
+--- a/rkward/misc/getfilenamewidget.h
++++ b/rkward/misc/getfilenamewidget.h
+@@ -41,7 +41,7 @@ public:
+ /** set the filename/location from outside */
+ void setLocation (const QString &new_location);
+
+- void setBackgroundColor (const QColor & color);
++ void setStyleSheet (const QString &style);
+
+ /** retrieves the current location */
+ QString getLocation ();
+diff --git a/rkward/misc/rksaveobjectchooser.cpp b/rkward/misc/rksaveobjectchooser.cpp
+index 5d53111d..157f6940 100644
+--- a/rkward/misc/rksaveobjectchooser.cpp
++++ b/rkward/misc/rksaveobjectchooser.cpp
+@@ -194,12 +194,10 @@ void RKSaveObjectChooser::updateState () {
+ }
+ }
+
+-void RKSaveObjectChooser::setBackgroundColor (const QColor &color) {
++void RKSaveObjectChooser::setStyleSheet (const QString &style) {
+ RK_TRACE (MISC);
+
+- QPalette palette = name_edit->palette ();
+- palette.setColor (name_edit->backgroundRole (), color);
+- name_edit->setPalette (palette);
++ name_edit->setStyleSheet(style);
+ }
+
+ QString RKSaveObjectChooser::currentBaseName () const {
+diff --git a/rkward/misc/rksaveobjectchooser.h b/rkward/misc/rksaveobjectchooser.h
+index c5da85c8..3cc56a85 100644
+--- a/rkward/misc/rksaveobjectchooser.h
++++ b/rkward/misc/rksaveobjectchooser.h
+@@ -37,7 +37,7 @@ public:
+ QString currentBaseName () const;
+ bool isOk () const;
+ void setBaseName (const QString &name);
+- void setBackgroundColor (const QColor &color);
++ void setStyleSheet (const QString &style);
+ RObject* rootObject () const { return root_object; };
+ void setRootObject (RObject* new_root);
+ private slots:
+diff --git a/rkward/plugin/rkinput.cpp b/rkward/plugin/rkinput.cpp
+index fdbab36a..a1a03ebd 100644
+--- a/rkward/plugin/rkinput.cpp
++++ b/rkward/plugin/rkinput.cpp
+@@ -96,17 +96,15 @@ void RKInput::updateColor () {
+ if (!widget) widget = textedit;
+ RK_ASSERT (widget);
+
+- QPalette palette = widget->palette ();
+ if (isEnabled ()) {
+ if (isSatisfied ()) {
+- palette.setColor (widget->backgroundRole (), QColor (255, 255, 255));
++ widget->setStyleSheet("");
+ } else {
+- palette.setColor (widget->backgroundRole (), QColor (255, 0, 0));
++ widget->setStyleSheet("background: red; color: black");
+ }
+ } else {
+- palette.setColor (widget->backgroundRole (), QColor (200, 200, 200));
++ widget->setStyleSheet("background: rgb(200, 200, 200); color: black");
+ }
+- widget->setPalette (palette);
+ }
+
+ void RKInput::requirednessChanged (RKComponentPropertyBase *) {
+diff --git a/rkward/plugin/rkpluginbrowser.cpp b/rkward/plugin/rkpluginbrowser.cpp
+index 9612acb5..ff862d16 100644
+--- a/rkward/plugin/rkpluginbrowser.cpp
++++ b/rkward/plugin/rkpluginbrowser.cpp
+@@ -184,14 +184,14 @@ void RKPluginBrowser::updateColor () {
+
+ if (isEnabled ()) {
+ if (status == RKComponentBase::Satisfied) {
+- selector->setBackgroundColor (QColor (255, 255, 255));
++ selector->setStyleSheet (QString (""));
+ } else if (status == RKComponentBase::Processing) {
+- selector->setBackgroundColor (QColor (255, 255, 0));
++ selector->setStyleSheet (QString ("background: yellow; color: black"));
+ } else {
+- selector->setBackgroundColor (QColor (255, 0, 0));
++ selector->setStyleSheet (QString ("background: red; color: black"));
+ }
+ } else {
+- selector->setBackgroundColor (QColor (200, 200, 200));
++ selector->setStyleSheet (QString ("background: rgb(200, 200, 200); color: black"));
+ }
+ }
+
+diff --git a/rkward/plugin/rkpluginsaveobject.cpp b/rkward/plugin/rkpluginsaveobject.cpp
+index 7c084a99..52b9d867 100644
+--- a/rkward/plugin/rkpluginsaveobject.cpp
++++ b/rkward/plugin/rkpluginsaveobject.cpp
+@@ -82,8 +82,8 @@ RKPluginSaveObject::~RKPluginSaveObject () {
+ void RKPluginSaveObject::update () {
+ RK_TRACE (PLUGIN);
+
+- if (isSatisfied ()) selector->setBackgroundColor (QColor (255, 255, 255));
+- else selector->setBackgroundColor (QColor (255, 0, 0));
++ if (isSatisfied ()) selector->setStyleSheet(QString(""));
++ else selector->setStyleSheet(QString("background: red; color: black"));
+ changed ();
+ }
+
+diff --git a/rkward/plugin/rkvarslot.cpp b/rkward/plugin/rkvarslot.cpp
+index bc250b25..6a2ae601 100644
+--- a/rkward/plugin/rkvarslot.cpp
++++ b/rkward/plugin/rkvarslot.cpp
+@@ -183,15 +183,14 @@ void RKVarSlot::updateLook () {
+
+ QPalette palette = list->palette ();
+ if (!isSatisfied ()) { // implies that it is enabled
+- palette.setColor (QPalette::Base, QColor (255, 0, 0));
++ list->setStyleSheet(QString("background: red; color: black"));
+ } else {
+ if (isEnabled ()) {
+- palette.setColor (QPalette::Base, QColor (255, 255, 255));
++ list->setStyleSheet(QString(""));
+ } else {
+- palette.setColor (QPalette::Base, QColor (200, 200, 200));
++ list->setStyleSheet(QString("background: rgb(200, 200, 200); color: black"));
+ }
+ }
+- list->setPalette(palette);
+ }
+
+ void RKVarSlot::changeEvent (QEvent* event) {
+--
+GitLab
+
diff --git a/sci-mathematics/rkward/files/rkward-0.7.2-fix-eop-tag-in-html.patch b/sci-mathematics/rkward/files/rkward-0.7.2-fix-eop-tag-in-html.patch
new file mode 100644
index 000000000000..bd95490cbe4c
--- /dev/null
+++ b/sci-mathematics/rkward/files/rkward-0.7.2-fix-eop-tag-in-html.patch
@@ -0,0 +1,32 @@
+From 5f8fb9cd211f0e12ef40a0fc34a42c31f2a24475 Mon Sep 17 00:00:00 2001
+From: Johnny Jazeix
+Date: Tue, 7 Dec 2021 19:03:19 +0100
+Subject: [PATCH] fix end of paragraph tag in html for the rksetupwizard
+
+---
+ rkward/dialogs/rksetupwizard.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/rkward/dialogs/rksetupwizard.cpp b/rkward/dialogs/rksetupwizard.cpp
+index b14e06ec..e4787793 100644
+--- a/rkward/dialogs/rksetupwizard.cpp
++++ b/rkward/dialogs/rksetupwizard.cpp
+@@ -130,12 +130,12 @@ RKSetupWizard::RKSetupWizard(QWidget* parent, InvokationReason reason, const QLi
+ auto l = new QVBoxLayout(firstpage);
+ QString intro = i18n("This dialog will guide you through a quick check of the basic setup of the required (or recommended) components.
");
+ if (reason == NewVersionRKWard) {
+- intro += i18n("The setup assistant has been invoked, automatically, because a new version of RKWard has been detected.
The setup assistant has been invoked, automatically, because a new version of RKWard has been detected.
");
+ } else if (reason == NewVersionR) {
+ // TODO: invoke this!
+- intro += i18n("The setup assistant has been invoked, automatically, because a new version of R has been detected.
The setup assistant has been invoked, automatically, because a new version of R has been detected.");
+ } else if (reason == ProblemsDetected) {
+- intro += i18n("The setup assistant has been invoked, automatically, because a problem has been detected in your setup.
The setup assistant has been invoked, automatically, because a problem has been detected in your setup.");
+ }
+ l->addWidget(RKCommonFunctions::wordWrappedLabel(intro));
+ auto waiting_to_start_label = RKCommonFunctions::wordWrappedLabel(i18n("Waiting for R backend...") + "
");
+--
+GitLab
+
diff --git a/sci-mathematics/rkward/files/rkward-0.7.2-fix-hang-on-exit.patch b/sci-mathematics/rkward/files/rkward-0.7.2-fix-hang-on-exit.patch
new file mode 100644
index 000000000000..1ce37d11ffeb
--- /dev/null
+++ b/sci-mathematics/rkward/files/rkward-0.7.2-fix-hang-on-exit.patch
@@ -0,0 +1,28 @@
+From 4f17155eae5b81246e8172a80b9421ec0ad22bed Mon Sep 17 00:00:00 2001
+From: Thomas Friedrichsmeier
+Date: Tue, 12 Jan 2021 09:21:29 +0100
+Subject: [PATCH] Fix hang on exit.
+
+(Not sure, whether there are other potential hang conditions on exit, but this is one.)
+
+BUG: 430680
+---
+ rkward/rbackend/rkrbackendprotocol_frontend.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rkward/rbackend/rkrbackendprotocol_frontend.cpp b/rkward/rbackend/rkrbackendprotocol_frontend.cpp
+index c46ed5de..e5cf5d68 100644
+--- a/rkward/rbackend/rkrbackendprotocol_frontend.cpp
++++ b/rkward/rbackend/rkrbackendprotocol_frontend.cpp
+@@ -42,7 +42,7 @@ RKRBackendProtocolFrontend::~RKRBackendProtocolFrontend () {
+ RKFrontendTransmitter::instance ()->wait(1000); // Wait for thread to catch the backend's exit request, and exit()
+ RKFrontendTransmitter::instance ()->quit(); // Tell it to quit, otherwise
+ RKFrontendTransmitter::instance ()->wait(3000); // Wait for thread to quit and clean up.
+- qApp->processEvents(); // Not strictly needed, but avoids some mem leaks on exit by handling all posted BackendExit events
++ qApp->processEvents(QEventLoop::AllEvents, 500); // Not strictly needed, but avoids some mem leaks on exit by handling all posted BackendExit events
+ delete RKFrontendTransmitter::instance ();
+ }
+
+--
+GitLab
+
diff --git a/sci-mathematics/rkward/files/rkward-0.7.2-fix-hidpi.patch b/sci-mathematics/rkward/files/rkward-0.7.2-fix-hidpi.patch
new file mode 100644
index 000000000000..cff7b60f1951
--- /dev/null
+++ b/sci-mathematics/rkward/files/rkward-0.7.2-fix-hidpi.patch
@@ -0,0 +1,25 @@
+From f34cb38798e8a7d3f9a39f26be4ecab3013ea57c Mon Sep 17 00:00:00 2001
+From: Nicolas Fella
+Date: Tue, 5 Oct 2021 22:36:30 +0200
+Subject: [PATCH] Enable highdpi pixmaps
+
+This fixes icons being pixelated on highdpi screens
+---
+ rkward/main.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/rkward/main.cpp b/rkward/main.cpp
+index 8eafd25c..7dcb34a5 100644
+--- a/rkward/main.cpp
++++ b/rkward/main.cpp
+@@ -239,6 +239,7 @@ QString resolveRSpecOrFail (QString input, QString message) {
+
+ int main (int argc, char *argv[]) {
+ RK_Debug::RK_Debug_Level = DL_WARNING;
++ QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
+ #ifndef NO_QT_WEBENGINE
+ // annoyingly, QWebEngineUrlSchemes have to be registered before creating the app.
+ QWebEngineUrlScheme scheme("help");
+--
+GitLab
+
diff --git a/sci-mathematics/rkward/rkward-0.7.2-r1.ebuild b/sci-mathematics/rkward/rkward-0.7.2-r1.ebuild
new file mode 100644
index 000000000000..80ead3401703
--- /dev/null
+++ b/sci-mathematics/rkward/rkward-0.7.2-r1.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="forceoptional"
+inherit ecm kde.org optfeature
+
+DESCRIPTION="IDE for the R-project"
+HOMEPAGE="https://rkward.kde.org/"
+
+if [[ ${KDE_BUILD_TYPE} = release ]]; then
+ SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+fi
+
+LICENSE="GPL-2+ LGPL-2"
+SLOT="5"
+IUSE=""
+
+DEPEND="
+ dev-lang/R
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtscript:5
+ dev-qt/qtwebengine:5[widgets]
+ dev-qt/qtwidgets:5
+ dev-qt/qtxml:5
+ kde-frameworks/kcompletion:5
+ kde-frameworks/kconfig:5
+ kde-frameworks/kconfigwidgets:5
+ kde-frameworks/kcoreaddons:5
+ kde-frameworks/kcrash:5
+ kde-frameworks/ki18n:5
+ kde-frameworks/kio:5
+ kde-frameworks/kjobwidgets:5
+ kde-frameworks/knotifications:5
+ kde-frameworks/kparts:5
+ kde-frameworks/kservice:5
+ kde-frameworks/ktexteditor:5
+ kde-frameworks/kwidgetsaddons:5
+ kde-frameworks/kwindowsystem:5
+ kde-frameworks/kxmlgui:5
+"
+RDEPEND="${DEPEND}"
+BDEPEND="sys-devel/gettext"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-fix-crash-w-R-4.1.0.patch # KDE-bug 438993
+ "${FILESDIR}"/${P}-fix-hang-on-exit.patch # KDE-bug 430680
+ "${FILESDIR}"/${P}-fix-dark-themes.patch # KDE-bug 389914
+ "${FILESDIR}"/${P}-fix-eop-tag-in-html.patch
+ "${FILESDIR}"/${P}-fix-hidpi.patch
+)
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ optfeature "kate plugins support" "kde-apps/kate:${SLOT}"
+ optfeature "prendering (or previewing) R markdown (.Rmd) files" "app-text/pandoc"
+ optfeature "managing citations while writing articles" "app-text/kbibtex"
+ fi
+ ecm_pkg_postinst
+}