summaryrefslogtreecommitdiffstats
path: root/academic/octave
diff options
context:
space:
mode:
Diffstat (limited to 'academic/octave')
-rw-r--r--academic/octave/README56
-rw-r--r--academic/octave/octave.SlackBuild58
-rw-r--r--academic/octave/octave.info6
-rw-r--r--academic/octave/patches/0348f3f57e3c.diff170
-rw-r--r--academic/octave/patches/87ca5976c648.diff22
-rw-r--r--academic/octave/patches/imagemagick.diff12
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: