[arch-commits] Commit in kdeedu-cantor/trunk (PKGBUILD sage58.patch)

Andrea Scarpino andrea at nymeria.archlinux.org
Wed May 29 07:12:37 UTC 2013


    Date: Wednesday, May 29, 2013 @ 09:12:36
  Author: andrea
Revision: 186564

upgpkg: kdeedu-cantor 4.10.3-2

Fix compatibility with sage >= 5.8 (FS#35526)

Added:
  kdeedu-cantor/trunk/sage58.patch
Modified:
  kdeedu-cantor/trunk/PKGBUILD

--------------+
 PKGBUILD     |   14 ++++--
 sage58.patch |  123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 133 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-05-29 04:09:51 UTC (rev 186563)
+++ PKGBUILD	2013-05-29 07:12:36 UTC (rev 186564)
@@ -3,7 +3,7 @@
 
 pkgname=kdeedu-cantor
 pkgver=4.10.3
-pkgrel=1
+pkgrel=2
 pkgdesc="KDE Frontend to Mathematical Software"
 url="http://kde.org/applications/education/cantor/"
 arch=('i686' 'x86_64')
@@ -15,11 +15,17 @@
             'octave: Octave backend'
             'r: R backend')
 install=${pkgname}.install
-source=("http://download.kde.org/stable/${pkgver}/src/cantor-${pkgver}.tar.xz")
-sha1sums=('ae2c9c50cc79030a3f15106d059997da5c37a886')
+source=("http://download.kde.org/stable/${pkgver}/src/cantor-${pkgver}.tar.xz"
+        'sage58.patch')
+sha1sums=('ae2c9c50cc79030a3f15106d059997da5c37a886'
+          'c02051c30ece57800d693da60280b0bdb5f45697')
 
+prepare() {
+  cd cantor-${pkgver}
+  patch -p1 -i "${srcdir}"/sage58.patch
+}
+
 build() {
-  cd "${srcdir}"
   mkdir build
   cd build
   cmake ../cantor-${pkgver} \

Added: sage58.patch
===================================================================
--- sage58.patch	                        (rev 0)
+++ sage58.patch	2013-05-29 07:12:36 UTC (rev 186564)
@@ -0,0 +1,123 @@
+diff --git a/src/backends/sage/sagecompletionobject.cpp b/src/backends/sage/sagecompletionobject.cpp
+index dec0c8f..a132295 100644
+--- a/src/backends/sage/sagecompletionobject.cpp
++++ b/src/backends/sage/sagecompletionobject.cpp
+@@ -52,7 +52,7 @@ void SageCompletionObject::fetchCompletions()
+ 
+     //cache the value of the "_" variable into __hist_tmp__, so we can restore the previous result
+     //after complete() was evaluated
+-    m_expression=session()->evaluateExpression("__hist_tmp__=_; __IPYTHON__.complete(\""+command()+"\");_=__hist_tmp__");
++    m_expression=session()->evaluateExpression("__hist_tmp__=_; __CANTOR_IPYTHON_SHELL__.complete(\""+command()+"\");_=__hist_tmp__");
+     connect(m_expression, SIGNAL(gotResult()), this, 
+ 	    SLOT(extractCompletions()));
+ 
+@@ -71,11 +71,19 @@ void SageCompletionObject::extractCompletions()
+         kDebug()<<"something went wrong fetching tab completion";
+         return;
+     }
+-
++    
+     //the result looks like "['comp1', 'comp2']" parse it
++
++    //for sage version 5.7 this looks like
++    //('s1', ['comp1','comp2']) where s1 is the string we called complete with
++
+     QString txt=res->toHtml().trimmed();
++    txt.remove("<br/>");
++    txt=txt.mid(txt.indexOf(command())+command().length()+2).trimmed();
+     txt=txt.mid(1); //remove [
+-    txt.chop(1); //remove ]
++    txt.chop(2); //remove ]
++
++    kDebug()<<"completion string: "<<txt;
+ 
+     QStringList tmp=txt.split(',');
+     QStringList completions;
+diff --git a/src/backends/sage/sageexpression.cpp b/src/backends/sage/sageexpression.cpp
+index eabdda2..fbde7c1 100644
+--- a/src/backends/sage/sageexpression.cpp
++++ b/src/backends/sage/sageexpression.cpp
+@@ -122,7 +122,7 @@ void SageExpression::parseOutput(const QString& text)
+         //reset the indices
+         index=index2=-1;
+     }
+-
++    
+     m_outputCache+=output;
+ 
+     if(m_promptCount<=0)
+@@ -160,11 +160,9 @@ void SageExpression::addFileResult( const QString& path )
+ {
+   KUrl url( path );
+   KMimeType::Ptr type=KMimeType::findByUrl(url);
+-  kDebug()<<"MimeType: "<<type->name();
+-  if(type->name().contains("image"))
++  if(m_imagePath.isEmpty()||type->name().contains("image")||path.endsWith(".png")||path.endsWith(".gif"))
+   {
+-    kDebug()<<"adding file "<<path<<"   "<<url;
+-    m_imagePath=path;
++      m_imagePath=path;
+   }
+ }
+ 
+@@ -172,8 +170,11 @@ void SageExpression::evalFinished()
+ {
+     kDebug()<<"evaluation finished";
+     kDebug()<<m_outputCache;
++    
++    //check if our image path contains a valid image that we can try to show
++    bool hasImage=!m_imagePath.isNull();
+ 
+-    if ( m_imagePath.isNull() ) //If this result contains a file, drop the text information
++    if ( !hasImage ) //If this result contains a file, drop the text information
+     {
+         Cantor::TextResult* result=0;
+ 
+@@ -219,7 +220,7 @@ void SageExpression::evalFinished()
+     }
+     else
+     {
+-        KMimeType::Ptr type=KMimeType::findByUrl(m_imagePath);
++	KMimeType::Ptr type=KMimeType::findByUrl(m_imagePath);
+         if(type->is("image/gif"))
+             setResult( new Cantor::AnimationResult( KUrl(m_imagePath ),i18n("Result of %1" , command() ) ) );
+         else
+diff --git a/src/backends/sage/sagesession.cpp b/src/backends/sage/sagesession.cpp
+index a535277..d8ac325 100644
+--- a/src/backends/sage/sagesession.cpp
++++ b/src/backends/sage/sagesession.cpp
+@@ -38,10 +38,13 @@ const QByteArray SageSession::SageAlternativePrompt="....: "; //Text, sage outpu
+ static QByteArray initCmd="os.environ['PAGER'] = 'cat'                     \n "\
+                            "sage.misc.pager.EMBEDDED_MODE = True           \n "\
+                            "sage.misc.viewer.BROWSER=''                    \n "\
++                           "sage.misc.viewer.viewer.png_viewer('')         \n" \
+                            "sage.plot.plot3d.base.SHOW_DEFAULTS['viewer'] = 'tachyon' \n"\
+                            "sage.misc.latex.EMBEDDED_MODE = True           \n "\
+                            "os.environ['PAGER'] = 'cat'                    \n "\
+-                           " __IPYTHON__.shell.autoindent=False            \n "\
++                           "%colors nocolor                                \n "\
++			   "__CANTOR_IPYTHON_SHELL__=get_ipython()           \n "\
++                           "__CANTOR_IPYTHON_SHELL__.autoindent=False        \n "\
+                            "print '____TMP_DIR____', sage.misc.misc.SAGE_TMP\n"\
+                            "print '____END_OF_INIT____'                    \n ";
+ 
+@@ -277,6 +280,7 @@ void SageSession::waitForNextPrompt()
+ 
+ void SageSession::fileCreated( const QString& path )
+ {
++    kDebug()<<"got a file "<<path;
+     SageExpression* expr=m_expressionQueue.first();
+     if ( expr )
+         expr->addFileResult( path );
+@@ -290,9 +294,9 @@ void SageSession::setTypesettingEnabled(bool enable)
+     //the _ and __IP.outputcache() are needed to keep the
+     // _ operator working
+     if (enable)
+-        evaluateExpression("sage.misc.latex.pretty_print_default(true);_;__IP.outputcache()", Cantor::Expression::DeleteOnFinish);
++        evaluateExpression("sage.misc.latex.pretty_print_default(true)", Cantor::Expression::DeleteOnFinish);
+     else
+-        evaluateExpression("sage.misc.latex.pretty_print_default(false);_;__IP.outputcache()", Cantor::Expression::DeleteOnFinish);
++        evaluateExpression("sage.misc.latex.pretty_print_default(false)", Cantor::Expression::DeleteOnFinish);
+ }
+ 
+ Cantor::CompletionObject* SageSession::completionFor(const QString& command, int index)




More information about the arch-commits mailing list