diff options
Diffstat (limited to 'academic/octave')
-rw-r--r-- | academic/octave/README | 56 | ||||
-rw-r--r-- | academic/octave/octave.SlackBuild | 58 | ||||
-rw-r--r-- | academic/octave/octave.info | 6 | ||||
-rw-r--r-- | academic/octave/patches/0348f3f57e3c.diff | 170 | ||||
-rw-r--r-- | academic/octave/patches/87ca5976c648.diff | 22 | ||||
-rw-r--r-- | academic/octave/patches/imagemagick.diff | 12 |
6 files changed, 57 insertions, 267 deletions
diff --git a/academic/octave/README b/academic/octave/README index 2a6c9cc1de..a0f531e127 100644 --- a/academic/octave/README +++ b/academic/octave/README @@ -1,38 +1,36 @@ GNU Octave is a high-level language, primarily intended for numerical -computations. It provides a convenient command line interface for solving -linear and nonlinear problems numerically, and for performing other numerical -experiments using a language that is mostly compatible with Matlab. It may -also be used as a batch-oriented language. +computations. It provides a convenient command line interface for +solving linear and nonlinear problems numerically, and for performing +other numerical experiments using a language that is mostly compatible +with Matlab. It may also be used as a batch-oriented language. + +This requires a BLAS/LAPACK implementation. Choose one of these package +sets: -This requires a BLAS/LAPACK implementation. Choose one of these package sets: * OpenBLAS (includes both a BLAS and a LAPACK implementation) * atlas (includes both a BLAS and a LAPACK implementation) * blas, lapack (the Netlib reference implementations) -If more than one set is installed (assuming there are no packaging conflicts) -then the auto-detection will use the first implementation from this list that -it finds. If in doubt, choose the Netlib reference implementations; other -packages that require a BLAS or LAPACK implementation may not build if they -are not configured to detect/use alternate implementations. -These optional dependencies will be used if found (see INSTALL.OCTAVE, in the -Octave source, for a description of what each dependency offers): -amd, camd, colamd, ccolamd, cholmod, umfpack, cxsparse, glpk, arpack-ng, -qrupdate, sundials, qhull, hdf5, fltk, ftgl, gl2ps, jdk, GraphicsMagick, -portaudio. +If more than one set is installed (assuming there are no packaging +conflicts) then the auto-detection will use the first implementation +from this list that it finds. If in doubt, choose the Netlib +reference implementations; other packages that require a BLAS or +LAPACK implementation may not build if they are not configured to +detect/use alternate implementations. -Octave can use either Qt4 or Qt5, and it will select Qt5 if both are -installed. You can force it to use a particular version by passing QT=4 or -QT=5 to the script. If Qt5 is selected and it does not find a Qt5 version of -QScintilla, then the editor window in the GUI will be disabled. If you need -the editor window and have both Qt versions installed, force it to use Qt4. +These optional dependencies will be used if found (see INSTALL.OCTAVE, +in the Octave source, for a description of what each dependency +offers): amd, camd, colamd, ccolamd, cholmod, umfpack, spqr, cxsparse, +glpk, arpack-ng, qrupdate, sundials, qhull, hdf5, fltk, ftgl, gl2ps, +jdk, GraphicsMagick, portaudio, rapidjson. -Octave can use ImageMagick (part of Slackware) or GraphicsMagick (available -from SBo) for image-reading functionality. If both are installed, -GraphicsMagick will be selected by default, since ImageMagick is not -well-supported by the Octave developers. If you have problems with -ImageMagick, try rebuilding Octave with GraphicsMagick, or pass MAGICK="" to -the script. +Octave can use ImageMagick (part of Slackware) or GraphicsMagick +(available from SBo) for image-reading functionality. If both +are installed, GraphicsMagick will be selected by default, +since ImageMagick is not well-supported by the Octave developers. +If you have problems with ImageMagick, try rebuilding Octave with +GraphicsMagick, or pass MAGICK="" to the script. -If you have arpack installed and the configure script segfaults when trying to -detect arpack, try switching to arpack-ng (which is partly maintained by -Octave developers). +If you have arpack installed and the configure script segfaults when +trying to detect arpack, try switching to arpack-ng (which is partly +maintained by Octave developers). diff --git a/academic/octave/octave.SlackBuild b/academic/octave/octave.SlackBuild index 7660cb6ca7..7fba88f533 100644 --- a/academic/octave/octave.SlackBuild +++ b/academic/octave/octave.SlackBuild @@ -1,8 +1,8 @@ -#!/bin/sh +#!/bin/bash # Slackware build script for octave -# Copyright 2012-2021 Kyle Guinn <elyk03@gmail.com> +# Copyright 2012-2024 Kyle Guinn <elyk03@gmail.com> # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,10 +22,13 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +cd $(dirname $0) ; CWD=$(pwd) + PRGNAM=octave -VERSION=${VERSION:-6.1.0} +VERSION=${VERSION:-8.4.0} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$(uname -m)" in @@ -35,17 +38,18 @@ if [ -z "$ARCH" ]; then esac fi -CWD=$(pwd) +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + TMP=${TMP:-/tmp/SBo} -PKG=$TMP/package-$PRGNAM-$VERSION +PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} DOCS="AUTHORS BUGS CITATION COPYING ChangeLog INSTALL* NEWS README" -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" - LIBDIRSUFFIX="" -elif [ "$ARCH" = "i586" ]; then +if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then @@ -60,13 +64,17 @@ else fi # Use GraphicsMagick by default. Fall back on ImageMagick from the full -# Slackware install if it's not present. Requires a patch for this bug: -# https://savannah.gnu.org/bugs/?49653 +# Slackware install if it's not present. # # GraphicsMagick is default due to the fact that the Octave devs mainly test # with that, and went several releases before noticing ImageMagick was broken. # If ImageMagick doesn't work, install GraphicsMagick, or set MAGICK="". -MAGICK=${MAGICK-GraphicsMagick} +# +# TODO: ImageMagick may no longer be compatible. The --with-magick argument +# should be the name of a pkg-config file. Documentation suggests +# "ImageMagick++" which does not exist. "ImageMagick" and "Magick++" exist; +# the former does not pass configure checks, the latter fails at compile time. +MAGICK=${MAGICK-GraphicsMagick++} if [ -n "$MAGICK" ] && ! pkg-config --exists $MAGICK; then MAGICK=ImageMagick fi @@ -74,12 +82,6 @@ if [ -n "$MAGICK" ]; then MAGICK="--with-magick=$MAGICK" fi -# Allow forcing a particular version of Qt. Set QT=4 or QT=5. -# If unset, Octave will decide, and it prefers version 5. -if [ -n "$QT" ]; then - QT="--with-qt=$QT" -fi - set -e rm -rf $PKG @@ -91,9 +93,6 @@ cd $PRGNAM-$VERSION chown -R root:root . chmod -R u+w,go-w,a+rX-st . -patch -p1 < $CWD/patches/87ca5976c648.diff # https://savannah.gnu.org/bugs/?59806 -patch -p1 -F3 < $CWD/patches/0348f3f57e3c.diff # https://savannah.gnu.org/bugs/?59813 -patch -p1 < $CWD/patches/imagemagick.diff # https://savannah.gnu.org/bugs/?49653 patch -p1 < $CWD/patches/atlas-lib-rename.diff autoreconf -vif @@ -102,30 +101,27 @@ autoreconf -vif # If you live far enough east or west that the date contained in version.texi # does not match that file's timestamp when printed accounting for your # timezone, then the docs get rebuilt with your local date. -# -# The TeX environment in Slackware 14.1 fails to build the DVI and PDF -# targets in Octave 3.8.1. Maybe it works with a recent version of TeXLive? find . -name stamp-vti -exec touch {} + ./configure \ --prefix=/usr \ - --libdir=/usr/lib${LIBDIRSUFFIX} \ + --libdir=\${exec_prefix}/lib${LIBDIRSUFFIX} \ --sysconfdir=/etc \ --localstatedir=/var \ - --mandir=/usr/man \ - --infodir=/usr/info \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ + --mandir=\${prefix}/man \ + --infodir=\${prefix}/info \ + --docdir=\${prefix}/doc/$PRGNAM-$VERSION \ --disable-dependency-tracking \ --with-openssl=auto \ ${MAGICK} \ - ${QT} \ --build=$ARCH-slackware-linux \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ FFLAGS="$SLKCFLAGS" \ make -make check +# TODO: May fail if not all optional deps are installed (gl2ps in particular). +#make check make install-strip DESTDIR=$PKG find $PKG/usr/lib${LIBDIRSUFFIX} -name '*.la' -delete @@ -144,4 +140,4 @@ cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/academic/octave/octave.info b/academic/octave/octave.info index af96716f60..13eccf569d 100644 --- a/academic/octave/octave.info +++ b/academic/octave/octave.info @@ -1,8 +1,8 @@ PRGNAM="octave" -VERSION="6.1.0" +VERSION="8.4.0" HOMEPAGE="https://www.gnu.org/software/octave/" -DOWNLOAD="https://ftpmirror.gnu.org/gnu/octave/octave-6.1.0.tar.lz" -MD5SUM="350315cf2bf16169b8710e70154c86ad" +DOWNLOAD="https://ftpmirror.gnu.org/gnu/octave/octave-8.4.0.tar.lz" +MD5SUM="c7146cef6666200c5c835ecacf950804" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="%README% lapack" diff --git a/academic/octave/patches/0348f3f57e3c.diff b/academic/octave/patches/0348f3f57e3c.diff deleted file mode 100644 index 1545797a61..0000000000 --- a/academic/octave/patches/0348f3f57e3c.diff +++ /dev/null @@ -1,170 +0,0 @@ - -# HG changeset patch -# User John W. Eaton <jwe@octave.org> -# Date 1609785454 18000 -# Node ID 0348f3f57e3ca6fa7c8e5112622c756d00dd7dab -# Parent a3d92c4ad5502686daf2b34f062db6c950db30ef -avoid build errors with Qt4 (bug #59813) - -* acinclude.m4 (OCTAVE_CHECK_FUNC_QFONTDATABASE_SYSTEMFONT, -OCTAVE_CHECK_QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE): New macros. -(OCTAVE_CHECK_QT_VERSION): Use them. - -* resource-manager.cc (resource_manager::get_default_font_family): -Check availability of QFontDatabase::systemFont, fall back on -QFont::setStyleHint, then global_font_family. - -* octave-dock-widget.cc (octave_dock_widget::handle_settings): -Check whether QVariant::canConvert accepts QMetatype::Type. Use -QVariant::Type as fallback. -* variable-editor-model.cc (variable_editor_model::setData): Likewise. - -diff --git a/libgui/src/octave-dock-widget.cc b/libgui/src/octave-dock-widget.cc ---- a/libgui/src/octave-dock-widget.cc -+++ b/libgui/src/octave-dock-widget.cc -@@ -507,7 +507,12 @@ - QVariant dock_geom - = settings->value (dw_dock_geometry.key.arg (objectName ()), - default_dock_size); -- if (dock_geom.canConvert (QMetaType::QRect)) -+#if defined (QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE) -+ QMetaType::Type rect_type = QMetaType::QRect; -+#else -+ QVariant::Type rect_type = QVariant::Rect; -+#endif -+ if (dock_geom.canConvert (rect_type)) - m_recent_dock_geom = dock_geom.toRect (); - else - m_recent_dock_geom = dw_dock_geometry.def.toRect (); -diff --git a/libgui/src/resource-manager.cc b/libgui/src/resource-manager.cc ---- a/libgui/src/resource-manager.cc -+++ b/libgui/src/resource-manager.cc -@@ -241,9 +241,17 @@ - // if macOS default font is not available): use QFontDatabase - if (default_family.isEmpty ()) - { -+#if defined (HAVE_QFONTDATABASE_SYSTEMFONT) - // Get the system's default monospaced font - QFont fixed_font = QFontDatabase::systemFont (QFontDatabase::FixedFont); - default_family = fixed_font.defaultFamily (); -+#elif defined (HAVE_QFONT_MONOSPACE) -+ QFont fixed_font; -+ fixed_font.setStyleHint (QFont::Monospace); -+ default_family = fixed_font.defaultFamily (); -+#else -+ default_family = global_font_family; -+#endif - } - - // Test env variable which has preference -diff --git a/libgui/src/variable-editor-model.cc b/libgui/src/variable-editor-model.cc ---- a/libgui/src/variable-editor-model.cc -+++ b/libgui/src/variable-editor-model.cc -@@ -987,7 +987,12 @@ - variable_editor_model::setData (const QModelIndex& idx, - const QVariant& v_user_input, int role) - { -- if (role != Qt::EditRole || ! v_user_input.canConvert (QVariant::String) -+#if defined (QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE) -+ QMetaType::Type string_type = QMetaType::QString; -+#else -+ QVariant::Type string_type = QVariant::String; -+#endif -+ if (role != Qt::EditRole || ! v_user_input.canConvert (string_type) - || ! idx.isValid ()) - return false; - -diff --git a/m4/acinclude.m4 b/m4/acinclude.m4 ---- a/m4/acinclude.m4 -+++ b/m4/acinclude.m4 -@@ -1091,6 +1091,35 @@ - fi - ]) - dnl -+dnl Check whether the Qt class QFontDatabase has the systemFont member -+dnl function. This function was introduced in Qt 5.2. -+dnl -+AC_DEFUN([OCTAVE_CHECK_FUNC_QFONTDATABASE_SYSTEMFONT], [ -+ AC_CACHE_CHECK([for QFontDatabase::systemFont function], -+ [octave_cv_func_qfontdatabase_systemfont], -+ [AC_LANG_PUSH(C++) -+ ac_octave_save_CPPFLAGS="$CPPFLAGS" -+ ac_octave_save_CXXFLAGS="$CXXFLAGS" -+ CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" -+ CXXFLAGS="$CXXPICFLAG $CXXFLAGS" -+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -+ #include <QFontDatabase> -+ #include <QFont> -+ ]], [[ -+ QFont font = QFontDatabase::systemFont (QFontDatabase::FixedFont); -+ ]])], -+ octave_cv_func_qfontdatabase_systemfont=yes, -+ octave_cv_func_qfontdatabase_systemfont=no) -+ CPPFLAGS="$ac_octave_save_CPPFLAGS" -+ CXXFLAGS="$ac_octave_save_CXXFLAGS" -+ AC_LANG_POP(C++) -+ ]) -+ if test $octave_cv_func_qfontdatabase_systemfont = yes; then -+ AC_DEFINE(HAVE_QFONTDATABASE_SYSTEMFONT, 1, -+ [Define to 1 if you have the `QFontDatabase::systemFont' function.]) -+ fi -+]) -+dnl - dnl Check whether the Qt class QList has a constructor that accepts - dnl a pair of iterators. This constructor was introduced in Qt 5.14. - dnl -@@ -1967,6 +1996,37 @@ - fi - ]) - dnl -+dnl Check whether QVariant::canConvert accepts a QMetaType::Type -+dnl enumeration value as an argument. -+dnl -+AC_DEFUN([OCTAVE_CHECK_QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE], [ -+ AC_CACHE_CHECK([whether QVariant::canConvert accepts QMetaType::Type argument], -+ [octave_cv_qvariant_canconvert_accepts_qmetatype_type], -+ [AC_LANG_PUSH(C++) -+ ac_octave_save_CPPFLAGS="$CPPFLAGS" -+ ac_octave_save_CXXFLAGS="$CXXFLAGS" -+ CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" -+ CXXFLAGS="$CXXPICFLAG $CXXFLAGS" -+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -+ #include <QMetaType> -+ #include <QVariant> -+ ]], [[ -+ QVariant var; -+ QMetaType::Type type = QMetaType::QString; -+ var.canConvert (type); -+ ]])], -+ octave_cv_qvariant_canconvert_accepts_qmetatype_type=yes, -+ octave_cv_qvariant_canconvert_accepts_qmetatype_type=no) -+ CPPFLAGS="$ac_octave_save_CPPFLAGS" -+ CXXFLAGS="$ac_octave_save_CXXFLAGS" -+ AC_LANG_POP(C++) -+ ]) -+ if test $octave_cv_qvariant_canconvert_accepts_qmetatype_type = yes; then -+ AC_DEFINE(QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE, 1, -+ [Define to 1 if `QVariant::canConvert' accepts `QMetaType::Type' enumeration value as argument.]) -+ fi -+]) -+dnl - dnl Check for the Qhull version. - dnl - AC_DEFUN([OCTAVE_CHECK_QHULL_VERSION], [ -@@ -2518,6 +2578,7 @@ - ## version that we are testing now will be the one used. - - OCTAVE_CHECK_FUNC_QCOMBOBOX_SETCURRENTTEXT -+ OCTAVE_CHECK_FUNC_QFONTDATABASE_SYSTEMFONT - OCTAVE_CHECK_FUNC_QFONTMETRICS_HORIZONTAL_ADVANCE - OCTAVE_CHECK_FUNC_QGUIAPPLICATION_SETDESKTOPFILENAME - OCTAVE_CHECK_FUNC_QHEADERVIEW_SETSECTIONRESIZEMODE -@@ -2539,6 +2600,7 @@ - OCTAVE_CHECK_FUNC_QWHEELEVENT_POSITION - OCTAVE_CHECK_MEMBER_QFONT_FORCE_INTEGER_METRICS - OCTAVE_CHECK_MEMBER_QFONT_MONOSPACE -+ OCTAVE_CHECK_QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE - OCTAVE_HAVE_QGUIAPPLICATION - - OCTAVE_CHECK_QREGION_ITERATORS - diff --git a/academic/octave/patches/87ca5976c648.diff b/academic/octave/patches/87ca5976c648.diff deleted file mode 100644 index b428490abf..0000000000 --- a/academic/octave/patches/87ca5976c648.diff +++ /dev/null @@ -1,22 +0,0 @@ - -# HG changeset patch -# User Markus Mützel <markus.muetzel@gmx.de> -# Date 1609670947 -3600 -# Node ID 87ca5976c648cc01904f8ef53b576bfb5c8d48fd -# Parent 216ef81dafb682ba0a4a30dcc5c3bc054acb0d60 -build: Use SPARSE_XCPPFLAGS in CPP_FLAGS for libcorefcn (bug #59806). - -* libinterp/corefcn/module.mk: Use SPARSE_XCPPFLAGS in CPP_FLAGS. - -diff --git a/libinterp/corefcn/module.mk b/libinterp/corefcn/module.mk ---- a/libinterp/corefcn/module.mk -+++ b/libinterp/corefcn/module.mk -@@ -325,6 +325,7 @@ - $(FT2_CPPFLAGS) \ - $(HDF5_CPPFLAGS) \ - $(LLVM_CPPFLAGS) \ -+ $(SPARSE_XCPPFLAGS) \ - $(Z_CPPFLAGS) - - libinterp_EXTRA_DIST += \ - diff --git a/academic/octave/patches/imagemagick.diff b/academic/octave/patches/imagemagick.diff deleted file mode 100644 index 7a15122a18..0000000000 --- a/academic/octave/patches/imagemagick.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/libinterp/corefcn/__magick_read__.cc b/libinterp/corefcn/__magick_read__.cc ---- a/libinterp/corefcn/__magick_read__.cc -+++ b/libinterp/corefcn/__magick_read__.cc -@@ -42,6 +42,8 @@ - #include <Magick++.h> - #include <clocale> - -+using Magick::Quantum; // https://savannah.gnu.org/bugs/?49653 -+ - // In theory, it should be enough to check the class: - // Magick::ClassType - // PseudoClass: |