From 6cbb6072e6971bca593db9fd4319d901dcfc3f33 Mon Sep 17 00:00:00 2001 From: Piraty Date: Thu, 8 Mar 2018 15:54:23 +0100 Subject: [PATCH] octave: add missing dependencies + move to qt5 + enable octave's editor via qscintilla-qt5 (it was missing!) + provide support for solving linear programs via glpk + provide support for audio file handling + provide support for openGL->ghostscript printing via gl2ps + provide option for large arrays (but needs 64bit BLAS) + add gui launcher script, see: https://savannah.gnu.org/bugs/?53034 https://www.gnu.org/software/octave/doc/interpreter/External-Packages.html#External-Packages --- common/shlibs | 3 +++ srcpkgs/octave/patches/01-qscintilla.patch | 14 +++++++++++ srcpkgs/octave/template | 27 +++++++++++++++++----- 3 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 srcpkgs/octave/patches/01-qscintilla.patch diff --git a/common/shlibs b/common/shlibs index bef95b2558..27bf5875d7 100644 --- a/common/shlibs +++ b/common/shlibs @@ -3118,3 +3118,6 @@ libdazzle-1.0.so.0 libdazzle-3.28.0_1 libjsonrpc-glib-1.0.so.1 jsonrpc-glib-3.28.0_1 libtemplate_glib-1.0.so.0 template-glib-3.28.0_1 libeog.so eog-3.28.0_4 +liboctave.so.4 octave-4.2.1_8 +liboctinterp.so.4 octave-4.2.1_8 +liboctgui.so.2 octave-4.2.1_8 diff --git a/srcpkgs/octave/patches/01-qscintilla.patch b/srcpkgs/octave/patches/01-qscintilla.patch new file mode 100644 index 0000000000..214022eb95 --- /dev/null +++ b/srcpkgs/octave/patches/01-qscintilla.patch @@ -0,0 +1,14 @@ +# reason: configure looks for the wrong filename +# note: should be fixed in the next release + +--- configure ++++ configure +@@ -34701,7 +34701,7 @@ + ;; + 5) + QT_MODULES="Qt5Core Qt5Gui Qt5Network Qt5OpenGL Qt5PrintSupport" +- octave_qscintilla_libnames="qscintilla2-qt5 qt5scintilla2" ++ octave_qscintilla_libnames="qscintilla2-qt5 qt5scintilla2 qscintilla2_qt5" + ;; + *) + as_fn_error $? "Unrecognized Qt version $qt_version" "$LINENO" 5 diff --git a/srcpkgs/octave/template b/srcpkgs/octave/template index 1bdeab9697..160f853e9e 100644 --- a/srcpkgs/octave/template +++ b/srcpkgs/octave/template @@ -1,12 +1,13 @@ # Template file for 'octave' pkgname=octave version=4.2.1 -revision=7 +revision=8 build_style=gnu-configure -configure_args=" --with-blas=openblas --with-lapack=openblas " +configure_args=" --with-blas=openblas --with-lapack=openblas + $(vopt_if largearrays --enable-64)" hostmakedepends="perl gcc-fortran pkg-config gnuplot" makedepends="pcre-devel openblas-devel readline-devel libSM-devel libltdl-devel - lcms2-devel" + lcms2-devel glpk-devel" short_desc="A high-level language, primarily intended for numerical computations" maintainer="Diogo Leal " license="GPL-3" @@ -15,15 +16,18 @@ distfiles="${GNU_SITE}/octave/octave-${version}.tar.gz" checksum=80c28f6398576b50faca0e602defb9598d6f7308b0903724442c2a35a605333b # Package build options -# TODO: some options are still missing, such as java +# TODO: some options are still missing, such as +# java, qrupdate, suitesparse build_options=" arpack + audio curl fftw3 graphicsmagick gui hdf5 imagemagick + largearrays opengl openmp qhull @@ -33,18 +37,21 @@ build_options=" vopt_conflict graphicsmagick imagemagick desc_option_arpack="Provides 'eigs' and 'svds' functions." +desc_option_audio="Provides audiofile related functionality." desc_option_curl="Provides 'urlread' and 'urlwrite' functions and the 'ftp' class." desc_option_fftw3="Improves performance on discrete Fourier transforms." desc_option_gui="Graphical User Interface." desc_option_graphicsmagick="Provides 'imread' and 'imwrite' functions." desc_option_hdf5="Support for HDF data files." desc_option_imagemagick="Provides 'imread' and 'imwrite' functions." +desc_option_largearrays="Enable large array (64bit pointers)." #req. 64bit BLAS desc_option_qhull="Provides 'convhull{,n}', 'delaunay{,n}' and 'voronoi{,n}' functions." desc_option_openmp="Enable support for OpenMP SMP multi-threading" desc_option_zlib="Support for compressed data." build_options_default=" arpack + audio curl fftw3 graphicsmagick @@ -58,13 +65,14 @@ build_options_default=" makedepends+=" $(vopt_if arpack arpack-ng-devel) + $(vopt_if audio 'libsndfile-devel portaudio-devel') $(vopt_if curl libcurl-devel) $(vopt_if fftw3 fftw-devel) $(vopt_if graphicsmagick libgraphicsmagick-devel) - $(vopt_if gui qt-devel) + $(vopt_if gui 'qt5-devel qscintilla-qt5-devel') $(vopt_if hdf5 hdf5-devel) $(vopt_if imagemagick libmagick-devel) - $(vopt_if opengl "glu-devel fltk-devel fontconfig-devel freetype-devel") + $(vopt_if opengl "glu-devel fltk-devel fontconfig-devel freetype-devel gl2ps-devel") $(vopt_if openmp libgomp-devel) $(vopt_if qhull libqhull-devel) $(vopt_if zlib zlib-devel) @@ -73,8 +81,15 @@ makedepends+=" pre_build() { chmod +x build-aux/mk-opts.pl } + post_build() { # Remove references to hardening -specs. sed -e "s|\(-specs=.*hardened-ld\)||g" -e "s|\(-specs=.*hardened-cc1\)||g" \ -i src/mkoctfile.cc libinterp/build-env.cc } + +post_install() { + # add helper to launch octave from dmenu etc. + printf "#!/bin/sh\noctave --force-gui" > octave-gui + vbin octave-gui +}