diff options
-rw-r--r-- | .SRCINFO | 28 | ||||
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | PKGBUILD | 51 | ||||
-rw-r--r-- | build-fix.patch | 21 | ||||
-rw-r--r-- | freemat.install | 7 | ||||
-rw-r--r-- | remove-qwebkit.patch | 138 |
6 files changed, 248 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..179b6144d973 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,28 @@ +pkgbase = freemat + pkgdesc = A free environment for rapid engineering, scientific prototyping and data processing + pkgver = 4.2 + pkgrel = 9 + url = http://freemat.sourceforge.net + install = freemat.install + arch = x86_64 + license = GPL + makedepends = cmake + makedepends = python2 + makedepends = suitesparse + makedepends = doxygen + makedepends = gcc-fortran + depends = arpack + depends = fftw + depends = glu + depends = portaudio + depends = qt4 + depends = libffi + source = https://downloads.sourceforge.net/project/freemat/FreeMat4/FreeMat-4.2-Source.tar.gz + source = build-fix.patch + source = remove-qwebkit.patch + md5sums = ace147e49273ae935d363da8e2a56d4d + md5sums = 042f43dcae863e3fc4c9a10b46761344 + md5sums = 5e37816fafe46a79cc157549f5bec554 + +pkgname = freemat + diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 000000000000..dba4cf7ec79b --- /dev/null +++ b/ChangeLog @@ -0,0 +1,3 @@ +2007-06-27 tardo <tardo@nagi-fanboi.net> +* Built for x86_64 + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..3bb011211db8 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: William Rea <sillywilly@gmail.com> + +pkgname=freemat +pkgver=4.2 +pkgrel=9 +pkgdesc="A free environment for rapid engineering, scientific prototyping and data processing" +arch=('x86_64') +url="http://freemat.sourceforge.net" +license=('GPL') +depends=('arpack' 'fftw' 'glu' 'portaudio' 'qt4' 'libffi') +makedepends=('cmake' 'python2' 'suitesparse' 'doxygen' 'gcc-fortran') +install=freemat.install +source=(https://downloads.sourceforge.net/project/freemat/FreeMat4/FreeMat-$pkgver-Source.tar.gz + build-fix.patch + remove-qwebkit.patch) +md5sums=('ace147e49273ae935d363da8e2a56d4d' + '042f43dcae863e3fc4c9a10b46761344' + '5e37816fafe46a79cc157549f5bec554') + +prepare() { + cd "$srcdir"/FreeMat-$pkgver-Source + patch -p1 <"$srcdir"/build-fix.patch + patch -p1 <"$srcdir"/remove-qwebkit.patch +} + +build() { + cd "$srcdir"/FreeMat-$pkgver-Source + unset LDFLAGS CFLAGS CXXFLAGS CPPFLAGS + rm -f CMakeCache.txt + find . -type f -name '*.moc.cpp' -exec rm -f {} \; + find . -type f -name 'add.so' -exec rm -f {} \; + echo >libs/libMatC/CJitFuncClang.hpp + echo >libs/libMatC/CJitFuncClang.cpp + + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DUSE_LLVM=OFF \ + -DFORCE_BUNDLED_UMFPACK=ON \ + -DFFI_INCLUDE_DIR=/usr/lib/libffi-`pacman -Q libffi | cut -f2 -d\ |cut -f1 -d-`/include/ \ + -DPYTHON_EXECUTABLE=/usr/bin/python2 \ + . + make +} +package() { + cd "$srcdir"/FreeMat-$pkgver-Source + + make DESTDIR="$pkgdir" install -j1 + sed -i "s|/FreeMat-.*/|/FreeMat-$pkgver/|g" $startdir/freemat.install + rm "$pkgdir"/usr/bin/blas.ini +} diff --git a/build-fix.patch b/build-fix.patch new file mode 100644 index 000000000000..98db636af005 --- /dev/null +++ b/build-fix.patch @@ -0,0 +1,21 @@ +diff -wbBur FreeMat-4.2-Source/CMakeLists.txt FreeMat-4.2-Source.q/CMakeLists.txt +--- FreeMat-4.2-Source/CMakeLists.txt 2013-07-28 01:27:12.000000000 +0400 ++++ FreeMat-4.2-Source.q/CMakeLists.txt 2014-05-29 21:13:35.263893395 +0400 +@@ -250,17 +250,6 @@ + ######################################################################
+ OPTION(USE_LLVM "Build with LLVM support?" ON)
+
+-FIND_PACKAGE(LLVM)
+-FIND_PACKAGE(CLANG)
+-
+-IF (LLVM_FOUND AND CLANG_FOUND)
+- add_definitions(-DHAVE_LLVM)
+- include_directories(${LLVM_INCLUDE_DIRS})
+- link_directories(${LLVM_LIBRARY_DIRS})
+- llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit interpreter nativecodegen asmparser bitreader bitwriter codegen ipo linker selectiondag instrumentation)
+- set(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${CLANG_LIBRARIES} ${REQ_LLVM_LIBRARIES})
+-ENDIF()
+-
+ ##############################################################################
+ #Extra libraries
+ IF(NOT WIN32)
diff --git a/freemat.install b/freemat.install new file mode 100644 index 000000000000..37a785528e15 --- /dev/null +++ b/freemat.install @@ -0,0 +1,7 @@ +post_install() { + echo "-- Use FreeMat -i /usr/share/FreeMat-4.2/ to adjust docs location" +} + +post_upgrade() { + echo "-- Use FreeMat -i /usr/share/FreeMat-4.2/ to adjust docs location" +} diff --git a/remove-qwebkit.patch b/remove-qwebkit.patch new file mode 100644 index 000000000000..6617d00aaa6a --- /dev/null +++ b/remove-qwebkit.patch @@ -0,0 +1,138 @@ +Description: Remove qwebkit dependencies. + This is bad patch, because it disables the functionality + of help-menu. But it can only be fixed, when FreeMat will + be ported on Qt5. Qt4-Webkit will be removed soon, so we + do not have any choice. +Author: Anton Gladky <gladk@debian.org> +Last-Update: 2016-01-22 + +Index: FreeMat-4.2-Source/libs/libCore/helpwidget.cpp +=================================================================== +--- FreeMat-4.2-Source.orig/libs/libCore/helpwidget.cpp ++++ FreeMat-4.2-Source/libs/libCore/helpwidget.cpp +@@ -85,7 +85,6 @@ void HelpWindow::activateModule(QListWid + QRegExp modname_pattern("^\\s*(\\b\\w+\\b)\\s*\\((\\b\\w+\\b)\\)"); + if (modname_pattern.indexIn(name_and_section) < 0) + return; +- tb->load(QUrl::fromLocalFile(m_initial+"/"+modname_pattern.cap(2) + "_" + modname_pattern.cap(1)+".html")); + } + + void HelpWindow::activateModuleSearch(QListWidgetItem* item) { +@@ -93,11 +92,6 @@ void HelpWindow::activateModuleSearch(QL + QRegExp modname_pattern("^\\s*(\\b\\w+\\b)\\s*\\((\\b\\w+\\b)\\)"); + if (modname_pattern.indexIn(name_and_section) < 0) + return; +- tb->load(QUrl::fromLocalFile(m_initial+"/"+modname_pattern.cap(2) + "_" + modname_pattern.cap(1)+".html")); +- +- /* Highlight search text*/ +- if (!searchString.isEmpty()) +- tb->findText(searchString,QWebPage::HighlightAllOccurrences); + } + + void HelpWindow::activateModule(QTreeWidgetItem* item, int) { +@@ -106,7 +100,6 @@ void HelpWindow::activateModule(QTreeWid + if (modname.indexIn(fulltext) < 0) + return; + QString module(modname.cap(1).toLower()); +- tb->load(QUrl::fromLocalFile(m_initial+"/"+item->text(1)+"_"+module+".html")); + } + + void HelpWindow::helpText(QString fulltext) { +@@ -122,7 +115,6 @@ void HelpWindow::helpText(QString fullte + QRegExp modname_pattern("^\\s*(\\b\\w+\\b)\\s*\\((\\b\\w+\\b)\\)"); + if (modname_pattern.indexIn(name_and_section) < 0) + return; +- tb->load(QUrl::fromLocalFile(m_initial+"/"+modname_pattern.cap(2) + "_" + modname_pattern.cap(1)+".html")); + m_helpwidget->m_flist->setCurrentItem(item); + } + +@@ -156,9 +148,6 @@ HelpWindow::HelpWindow(QString url) { + setWindowIcon(QPixmap(":/images/freemat_help_small_mod_64.png")); + setWindowTitle(QString(Interpreter::getVersionString()) + " Online Help"); + m_initial = url; +- tb = new QWebView(this); +- tb->load(QUrl::fromLocalFile(m_initial+"/index.html")); +- setCentralWidget(tb); + m_helpwidget = new HelpWidget(url,this); + addDockWidget(Qt::LeftDockWidgetArea,m_helpwidget); + createActions(); +@@ -196,29 +185,23 @@ void HelpWindow::createActions() { + + zoominAct = new QAction(QIcon(":/images/zoomin.png"),"Zoom &In",this); + zoominAct->setShortcut(Qt::Key_Plus | Qt::CTRL); +- connect(zoominAct,SIGNAL(triggered()),tb,SLOT(zoomIn())); + zoomoutAct = new QAction(QIcon(":/images/zoomout.png"),"Zoom &Out",this); + zoomoutAct->setShortcut(Qt::Key_Minus | Qt::CTRL); +- connect(zoomoutAct,SIGNAL(triggered()),tb,SLOT(zoomOut())); + copyAct = new QAction(QIcon(":/images/copy.png"),"&Copy Selection",this); + stemp.clear(); + stemp.push_back(QKeySequence(Qt::Key_C | Qt::CTRL)); + stemp.push_back(QKeySequence(Qt::Key_Insert | Qt::CTRL)); + copyAct->setShortcuts(stemp); + +- connect(copyAct,SIGNAL(triggered()),tb,SLOT(copy())); + exitAct = new QAction(QIcon(":/images/quit.png"),"&Exit Help",this); + exitAct->setShortcut(Qt::Key_Q | Qt::CTRL); + connect(exitAct,SIGNAL(triggered()),this,SLOT(close())); + forwardAct = new QAction(QIcon(":/images/next.png"),"&Next",this); + forwardAct->setShortcut(Qt::Key_Right | Qt::Key_Alt); +- connect(forwardAct,SIGNAL(triggered()),tb,SLOT(forward())); + backAct = new QAction(QIcon(":/images/previous.png"),"&Previous",this); + backAct->setShortcut(Qt::Key_Left | Qt::Key_Alt); +- connect(backAct,SIGNAL(triggered()),tb,SLOT(back())); + homeAct = new QAction(QIcon(":/images/home.png"),"&Home",this); + homeAct->setShortcut(Qt::Key_Home | Qt::CTRL); +- connect(homeAct,SIGNAL(triggered()),tb,SLOT(home())); + executeSelectionAct = new QAction(QIcon(":/images/player_playselection.png"),"&Execute Selection",this); + executeSelectionAct->setShortcut(Qt::Key_F9); + connect(executeSelectionAct,SIGNAL(triggered()),this,SLOT(execSelected())); +@@ -226,9 +209,7 @@ void HelpWindow::createActions() { + helpOnSelectionAct->setShortcut(Qt::Key_F2); + connect(helpOnSelectionAct,SIGNAL(triggered()),this,SLOT(helpOnSelection())); + +- connect(tb,SIGNAL(forwardAvailable(bool)),forwardAct,SLOT(setEnabled(bool))); + forwardAct->setEnabled(false); +- connect(tb,SIGNAL(backwardAvailable(bool)),backAct,SLOT(setEnabled(bool))); + backAct->setEnabled(false); + } + +@@ -267,19 +248,9 @@ void HelpWindow::createStatusBar() { + } + + void HelpWindow::execSelected() { +- QString executeText = tb->selectedText(); +- executeText.remove("--> "); +- executeText.remove("-> "); +- executeText = executeText.trimmed(); +- if (!executeText.isEmpty()) +- emit EvaluateText(executeText + "\n"); + } + + void HelpWindow::helpOnSelection() { +- QString executeText = tb->selectedText(); +- executeText = executeText.trimmed(); +- if (!executeText.isEmpty()) +- helpText(executeText); + } + + +Index: FreeMat-4.2-Source/libs/libCore/helpwidget.hpp +=================================================================== +--- FreeMat-4.2-Source.orig/libs/libCore/helpwidget.hpp ++++ FreeMat-4.2-Source/libs/libCore/helpwidget.hpp +@@ -23,7 +23,6 @@ + #include <QObject> + #include <QMainWindow> + #include <QDockWidget> +-#include <QWebView> + #include <QMenu> + #include <QToolBar> + #include <QAction> +@@ -80,7 +79,6 @@ private: + void readSettings(); + void closeEvent(QCloseEvent* ce); + +- QWebView *tb; + HelpWidget *m_helpwidget; + QMenu *fileMenu, *editMenu, *goMenu, *helpMenu; + QToolBar *editToolBar; |