diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2021-12-29 13:17:43 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2022-01-07 15:21:38 +0100 |
commit | c2522b493bf5d0b1041111fab10c69d491259a86 (patch) | |
tree | 9b14f5a38c42a84f01ff58df5add022b5b0e3dc6 /sci-mathematics/rkward | |
parent | ecm.eclass: Case-insensitivity for grep and sed (diff) | |
download | gentoo-c2522b493bf5d0b1041111fab10c69d491259a86.tar.gz gentoo-c2522b493bf5d0b1041111fab10c69d491259a86.tar.bz2 gentoo-c2522b493bf5d0b1041111fab10c69d491259a86.zip |
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 <gpopac@gmail.com>
Closes: https://bugs.gentoo.org/829998
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'sci-mathematics/rkward')
6 files changed, 420 insertions, 0 deletions
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 <thomas.friedrichsmeier@kdemail.net> +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 <npanayioto3@gmail.com> +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 <jazeix@gmail.com> +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("<p>This dialog will guide you through a quick check of the basic setup of the required (or recommended) components.</p>"); + if (reason == NewVersionRKWard) { +- intro += i18n("<p>The setup assistant has been invoked, automatically, because a new version of RKWard has been detected.</p"); ++ intro += i18n("<p>The setup assistant has been invoked, automatically, because a new version of RKWard has been detected.</p>"); + } else if (reason == NewVersionR) { + // TODO: invoke this! +- intro += i18n("<p>The setup assistant has been invoked, automatically, because a new version of R has been detected.</p"); ++ intro += i18n("<p>The setup assistant has been invoked, automatically, because a new version of R has been detected.</p>"); + } else if (reason == ProblemsDetected) { +- intro += i18n("<p>The setup assistant has been invoked, automatically, because a problem has been detected in your setup.</p"); ++ intro += i18n("<p>The setup assistant has been invoked, automatically, because a problem has been detected in your setup.</p>"); + } + l->addWidget(RKCommonFunctions::wordWrappedLabel(intro)); + auto waiting_to_start_label = RKCommonFunctions::wordWrappedLabel(i18n("<b>Waiting for R backend...</b>") + "<p> </p><p> </p>"); +-- +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 <thomas.friedrichsmeier@kdemail.net> +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 <nicolas.fella@gmx.de> +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 +} |