Skip to content

Commit

Permalink
kde-apps/cantor: Fix build w/ USE=julia and KF-5.31
Browse files Browse the repository at this point in the history
Package-Manager: portage-2.3.3
  • Loading branch information
a17r committed Feb 11, 2017
1 parent ac7535c commit adb1ff0
Show file tree
Hide file tree
Showing 3 changed files with 298 additions and 0 deletions.
1 change: 1 addition & 0 deletions kde-apps/cantor/cantor-16.12.2.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ RESTRICT+=" test"
PATCHES=(
"${FILESDIR}"/${P}-bashism.patch
"${FILESDIR}"/${P}-python-kf-5.31.patch
"${FILESDIR}"/${P}-julia-kf-5.31.patch
)

pkg_pretend() {
Expand Down
107 changes: 107 additions & 0 deletions kde-apps/cantor/cantor-9999.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=6

KDE_HANDBOOK="forceoptional"
KDE_TEST="forceoptional"
PYTHON_COMPAT=( python2_7 )
# FIXME: PYTHON_COMPAT=( python{2_7,3_4,3_5} )
inherit kde5 python-r1

DESCRIPTION="Interface for doing mathematics and scientific computing"
HOMEPAGE="https://www.kde.org/applications/education/cantor https://edu.kde.org/cantor"
KEYWORDS=""
IUSE="analitza julia lua postscript python qalculate +R"

REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"

# TODO Add Sage Mathematics Software backend (http://www.sagemath.org)
# FIXME: $(python_gen_cond_dep 'dev-qt/qtdbus:5' 'python3*')
DEPEND="
$(add_frameworks_dep karchive)
$(add_frameworks_dep kcompletion)
$(add_frameworks_dep kconfig)
$(add_frameworks_dep kconfigwidgets)
$(add_frameworks_dep kcoreaddons)
$(add_frameworks_dep kcrash)
$(add_frameworks_dep ki18n)
$(add_frameworks_dep kiconthemes)
$(add_frameworks_dep kio)
$(add_frameworks_dep knewstuff)
$(add_frameworks_dep kparts)
$(add_frameworks_dep kpty)
$(add_frameworks_dep ktexteditor)
$(add_frameworks_dep kwidgetsaddons)
$(add_frameworks_dep kxmlgui)
$(add_qt_dep qtgui)
$(add_qt_dep qtprintsupport)
$(add_qt_dep qtsvg)
$(add_qt_dep qtwidgets)
$(add_qt_dep qtxml)
$(add_qt_dep qtxmlpatterns)
analitza? ( $(add_kdeapps_dep analitza) )
julia? ( dev-lang/julia )
lua? ( dev-lang/luajit:2 )
qalculate? (
sci-libs/cln
sci-libs/libqalculate:=
)
postscript? ( app-text/libspectre )
python? ( ${PYTHON_DEPS} )
R? ( dev-lang/R )
"
RDEPEND="${RDEPEND}"

RESTRICT+=" test"

PATCHES=( "${FILESDIR}"/${PN}-16.12.2-bashism.patch )

pkg_pretend() {
kde5_pkg_pretend

if ! has_version sci-mathematics/maxima && ! has_version sci-mathematics/octave && \
! use analitza && ! use julia && ! use lua && ! use python && ! use qalculate && ! use R; then
einfo "You have decided to build ${PN} with no backend."
einfo "To have this application functional, please enable one of the backends via USE flag:"
einfo " analitza, julia, lua, python, qalculate, R"
einfo "Alternatively, install one of these:"
einfo " # emerge sci-mathematics/maxima"
einfo " # emerge sci-mathematics/octave"
einfo
fi

if ! has_version virtual/latex-base; then
einfo "For LaTeX support:"
einfo " # emerge virtual/latex-base"
fi
}

pkg_setup() {
use python && python_setup
kde5_pkg_setup
}

src_prepare() {
kde5_src_prepare

# FIXME: shipped FindPythonLibs3.cmake does not work for Gentoo
sed -e "/^find_package(PythonLibs3)/ s/^/#/" \
-i src/backends/CMakeLists.txt || die
}

src_configure() {
use julia && addpredict /proc/self/mem # bug 602894

local mycmakeargs=(
$(cmake-utils_use_find_package analitza Analitza5)
$(cmake-utils_use_find_package julia Julia)
$(cmake-utils_use_find_package lua LuaJIT)
$(cmake-utils_use_find_package postscript LibSpectre)
$(cmake-utils_use_find_package python PythonLibs)
$(cmake-utils_use_find_package qalculate Qalculate)
$(cmake-utils_use_find_package R R)
)
kde5_src_configure
}
190 changes: 190 additions & 0 deletions kde-apps/cantor/files/cantor-16.12.2-julia-kf-5.31.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
From 45322d9f58f50df3d4d5755d4199e579f6fd8646 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <[email protected]>
Date: Sat, 11 Feb 2017 22:46:35 +0100
Subject: [PATCH] [julia] Fix build with -fno-operator-names

REVIEW: 129942
---
src/backends/julia/juliaexpression.cpp | 6 +++---
src/backends/julia/juliaextensions.cpp | 4 ++--
src/backends/julia/juliahighlighter.cpp | 4 ++--
src/backends/julia/juliakeywords.cpp | 10 +++++-----
src/backends/julia/juliaserver/juliaserver.cpp | 4 ++--
src/backends/julia/juliaserver/main.cpp | 4 ++--
src/backends/julia/juliasession.cpp | 4 ++--
7 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/backends/julia/juliaexpression.cpp b/src/backends/julia/juliaexpression.cpp
index 27cdd85..618200d 100644
--- a/src/backends/julia/juliaexpression.cpp
+++ b/src/backends/julia/juliaexpression.cpp
@@ -40,7 +40,7 @@ void JuliaExpression::evaluate()

// Plots integration
m_plot_filename.clear();
- if (juliaSession->integratePlots() and checkPlotShowingCommands()) {
+ if (juliaSession->integratePlots() && checkPlotShowingCommands()) {
// Simply add plot saving command to the end of execution
QStringList inlinePlotFormats;
inlinePlotFormats << QLatin1String("svg");
@@ -73,8 +73,8 @@ void JuliaExpression::finalize()
setResult(new Cantor::TextResult(juliaSession->getOutput()));
setStatus(Cantor::Expression::Error);
} else {
- if (not m_plot_filename.isEmpty()
- and QFileInfo(m_plot_filename).exists()) {
+ if (!m_plot_filename.isEmpty()
+ && QFileInfo(m_plot_filename).exists()) {
// If we have plot in result, show it
setResult(
new Cantor::ImageResult(QUrl::fromLocalFile(m_plot_filename)));
diff --git a/src/backends/julia/juliaextensions.cpp b/src/backends/julia/juliaextensions.cpp
index 4585c6f..ad5e3a9 100644
--- a/src/backends/julia/juliaextensions.cpp
+++ b/src/backends/julia/juliaextensions.cpp
@@ -138,7 +138,7 @@ QString JuliaPlotExtension::plotFunction2d(
{
auto new_left = left;
auto new_right = right;
- if (new_left.isEmpty() and new_right.isEmpty()) {
+ if (new_left.isEmpty() && new_right.isEmpty()) {
new_left = QLatin1String("-1");
new_right = QLatin1String("1");
} else if (new_left.isEmpty()) {
@@ -165,7 +165,7 @@ QString JuliaPlotExtension::plotFunction3d(
{

auto update_interval = [](Interval &interval) {
- if (interval.first.isEmpty() and interval.second.isEmpty()) {
+ if (interval.first.isEmpty() && interval.second.isEmpty()) {
interval.first = QLatin1String("-1");
interval.second = QLatin1String("1");
} else if (interval.first.isEmpty()) {
diff --git a/src/backends/julia/juliahighlighter.cpp b/src/backends/julia/juliahighlighter.cpp
index 4795361..f7d3622 100644
--- a/src/backends/julia/juliahighlighter.cpp
+++ b/src/backends/julia/juliahighlighter.cpp
@@ -98,7 +98,7 @@ void JuliaHighlighter::highlightBlock(const QString &text)
while (pos < text.length()) {
// Trying to close current environments
bool triggered = false;
- for (int i = 0; i < flags.size() and not triggered; i++) {
+ for (int i = 0; i < flags.size() && !triggered; i++) {
int flag = flags[i];
QRegExp &regexp = regexps_ends[i];
QTextCharFormat &format = formats[i];
@@ -144,7 +144,7 @@ void JuliaHighlighter::highlightBlock(const QString &text)
singleLineCommentStart.indexIn(text, pos);

if (singleLineCommentStartPos != -1
- and singleLineCommentStartPos < minPos) {
+ && singleLineCommentStartPos < minPos) {
// single line comment starts earlier
setFormat(pos, text.length() - pos, commentFormat());
break;
diff --git a/src/backends/julia/juliakeywords.cpp b/src/backends/julia/juliakeywords.cpp
index f0a5846..8a0efec 100644
--- a/src/backends/julia/juliakeywords.cpp
+++ b/src/backends/julia/juliakeywords.cpp
@@ -62,11 +62,11 @@ void JuliaKeywords::loadFromFile()
const QStringRef name = xml.name();

if (name == QLatin1String("keywords")
- or name == QLatin1String("variables")
- or name == QLatin1String("plot_showing_commands")) {
+ || name == QLatin1String("variables")
+ || name == QLatin1String("plot_showing_commands")) {
while (xml.readNextStartElement()) {
Q_ASSERT(
- xml.isStartElement() and xml.name() == QLatin1String("word")
+ xml.isStartElement() && xml.name() == QLatin1String("word")
);

const QString text = xml.readElementText();
@@ -91,7 +91,7 @@ void JuliaKeywords::loadFromFile()

void JuliaKeywords::addVariable(const QString &variable)
{
- if (not m_variables.contains(variable)) {
+ if (!m_variables.contains(variable)) {
m_variables << variable;
}
}
@@ -104,7 +104,7 @@ void JuliaKeywords::clearVariables()

void JuliaKeywords::addFunction(const QString &function)
{
- if (not m_functions.contains(function)) {
+ if (!m_functions.contains(function)) {
m_functions << function;
}
}
diff --git a/src/backends/julia/juliaserver/juliaserver.cpp b/src/backends/julia/juliaserver/juliaserver.cpp
index c9beb4c..91585cf 100644
--- a/src/backends/julia/juliaserver/juliaserver.cpp
+++ b/src/backends/julia/juliaserver/juliaserver.cpp
@@ -47,7 +47,7 @@ void JuliaServer::runJuliaCommand(const QString &command)
{
// Redirect stdout, stderr to temprorary files
QTemporaryFile output, error;
- if (not output.open() or not error.open()) {
+ if (!output.open() || !error.open()) {
qFatal("Unable to create temprorary files for stdout/stderr");
return;
}
@@ -90,7 +90,7 @@ void JuliaServer::runJuliaCommand(const QString &command)
bool is_nothing = jl_unbox_bool(
static_cast<jl_value_t *>(jl_call2(equality, nothing, val))
);
- if (not is_nothing) {
+ if (!is_nothing) {
jl_static_show(JL_STDOUT, val);
}
m_was_exception = false;
diff --git a/src/backends/julia/juliaserver/main.cpp b/src/backends/julia/juliaserver/main.cpp
index ad7e4d9..11687ec 100644
--- a/src/backends/julia/juliaserver/main.cpp
+++ b/src/backends/julia/juliaserver/main.cpp
@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);

- if (not QDBusConnection::sessionBus().isConnected()) {
+ if (!QDBusConnection::sessionBus().isConnected()) {
qWarning() << "Can't connect to the D-Bus session bus.\n"
"To start it, run: eval `dbus-launch --auto-syntax`";
return 1;
@@ -39,7 +39,7 @@ int main(int argc, char *argv[])
const QString &serviceName =
QString::fromLatin1("org.kde.Cantor.Julia-%1").arg(app.applicationPid());

- if (not QDBusConnection::sessionBus().registerService(serviceName)) {
+ if (!QDBusConnection::sessionBus().registerService(serviceName)) {
qWarning() << QDBusConnection::sessionBus().lastError().message();
return 2;
}
diff --git a/src/backends/julia/juliasession.cpp b/src/backends/julia/juliasession.cpp
index 425e6cb..9183e11 100644
--- a/src/backends/julia/juliasession.cpp
+++ b/src/backends/julia/juliasession.cpp
@@ -86,7 +86,7 @@ void JuliaSession::login()
QDBusConnection::sessionBus()
);

- if (not m_interface->isValid()) {
+ if (!m_interface->isValid()) {
qWarning() << QDBusConnection::sessionBus().lastError().message();
return;
}
@@ -213,7 +213,7 @@ bool JuliaSession::getWasException()
{
const QDBusReply<bool> &reply =
m_interface->call(QLatin1String("getWasException"));
- return reply.isValid() and reply.value();
+ return reply.isValid() && reply.value();
}

void JuliaSession::listVariables()
--
2.10.2

0 comments on commit adb1ff0

Please sign in to comment.