Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] octave: update to 7.3.0.
@ 2022-11-24  3:02 tornaria
  2022-11-24 11:47 ` [PR PATCH] [Updated] " tornaria
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: tornaria @ 2022-11-24  3:02 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1905 bytes --]

There is a new pull request by tornaria against master on the void-packages repository

https://github.com/tornaria/void-packages octave
https://github.com/void-linux/void-packages/pull/40720

octave: update to 7.3.0.
- Fix cross build
- Use SuiteSparse
- Use rapidjson
- Use --disable-docs to skip building docs, instead install the docs in
  the tarball. This way we don't need texlive/texinfo/gnuplot to build.
- Avoid warnings due to egrep deprecation
- xlint fixes


<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

---

I wonder if we really want all those build options. I am tempted to remove almost all of them.

I also wonder if the choice of `GraphicsMagick` over `ImageMagick` is the best one.

NOTE: this PR includes #39846 for the current SuiteSparse. Could work with the current SuiteSparse, but I didn't try (#39846 is ready to merge IMO; the CI failures in that PR are addressed in the comments)

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/40720.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-octave-40720.patch --]
[-- Type: text/x-diff, Size: 18102 bytes --]

From e963af9c0972765749e671281797ca84a373710c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sun, 9 Oct 2022 17:46:15 -0300
Subject: [PATCH 1/4] SuiteSparse: update to 6.0.1.

Also: use openblas instead of lapack when available.
---
 common/shlibs                                 |  7 ++--
 .../patches/skip-demo-on-build.patch          | 22 ----------
 srcpkgs/SuiteSparse/template                  | 40 +++++++++++--------
 3 files changed, 27 insertions(+), 42 deletions(-)
 delete mode 100644 srcpkgs/SuiteSparse/patches/skip-demo-on-build.patch

diff --git a/common/shlibs b/common/shlibs
index 1a4d1031475a..7429bfcd2e23 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -71,7 +71,6 @@ libppl.so.14 ppl-1.2_1
 libppl_c.so.4 ppl-0.11_1
 libstdc++.so.6 libstdc++-4.4.0_1
 libssp.so.0 libssp-4.4.0_1
-libcxsparse.so.3 SuiteSparse-5.10.1_1
 libncurses.so.6 ncurses-libs-6.0_1 ignore
 libncursesw.so.6 ncurses-libs-5.8_1 ignore
 libtinfo.so.6 ncurses-libtinfo-libs-6.2_2
@@ -4064,9 +4063,9 @@ libprimecount.so.7 primecount-7.2_1
 libprimesieve.so.10 primesieve-8.0_1
 libavif.so.15 libavif-0.11.0_1
 libkdumpfile.so.10 libkdumpfile-0.4.1_1
-libamd.so.2 SuiteSparse-5.10.1_1
-libcholmod.so.3 SuiteSparse-5.10.1_1
-libumfpack.so.5 SuiteSparse-5.10.1_1
+libamd.so.3 SuiteSparse-6.0.1_1
+libcholmod.so.4 SuiteSparse-6.0.1_1
+libumfpack.so.6 SuiteSparse-6.0.1_1
 libecl.so.21.2 ecl-21.2.1_1
 libecm.so.1 ecm-7.0.4_3
 libcliquer.so.1 cliquer-1.22_1
diff --git a/srcpkgs/SuiteSparse/patches/skip-demo-on-build.patch b/srcpkgs/SuiteSparse/patches/skip-demo-on-build.patch
deleted file mode 100644
index 9ec775229ed6..000000000000
--- a/srcpkgs/SuiteSparse/patches/skip-demo-on-build.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-This is to avoid running demos on `make install`, which break cross compile
-
---- a/Makefile
-+++ b/Makefile
-@@ -294,7 +294,7 @@ endif
- # just compile GraphBLAS
- gb:
- 	echo $(CMAKE_OPTIONS)
--	( cd GraphBLAS && $(MAKE) JOBS=$(JOBS) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' )
-+	( cd GraphBLAS && $(MAKE) JOBS=$(JOBS) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' library )
- 
- # compile and install GraphBLAS libgraphblas_renamed, for MATLAB
- gbrenamed:
-@@ -309,7 +309,7 @@ gbrenamed:
- 
- # just compile Mongoose
- mon:
--	( cd Mongoose && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' )
-+	( cd Mongoose && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' library )
- 
- # compile and install Mongoose
- moninstall: mon
diff --git a/srcpkgs/SuiteSparse/template b/srcpkgs/SuiteSparse/template
index b304dfc8f786..212162449103 100644
--- a/srcpkgs/SuiteSparse/template
+++ b/srcpkgs/SuiteSparse/template
@@ -1,33 +1,43 @@
 # Template file for 'SuiteSparse'
 pkgname=SuiteSparse
-version=5.12.0
+version=6.0.1
 revision=1
-# XXX: re-enable TBB=-ltbb -DSPQR_CONFIG=-DHAVE_TBB when updating, if possible
-make_build_args="BLAS=-lblas LAPACK=-llapack"
-hostmakedepends="cmake chrpath"
-makedepends="libgomp-devel lapack-devel mpfr-devel"
+hostmakedepends="cmake gcc-fortran"
+makedepends="libgomp-devel mpfr-devel
+ $(vopt_if openblas 'openblas-devel' 'lapack-devel')"
 short_desc="Suite of sparse matrix software"
 maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="custom:multiple"
 homepage="https://people.engr.tamu.edu/davis/suitesparse.html"
 changelog="https://raw.githubusercontent.com/DrTimothyAldenDavis/SuiteSparse/master/ChangeLog"
 distfiles="https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/refs/tags/v${version}.tar.gz"
-checksum=5fb0064a3398111976f30c5908a8c0b40df44c6dd8f0cc4bfa7b9e45d8c647de
+checksum=06f55a0449775d1f43d8a33ba8c8417ea8cf76c27833b465c49825baa8741d0c
+
+build_options="openblas"
+
+case "$XBPS_TARGET_MACHINE" in
+	x86_64*|i686*|aarch64*|armv[67]*|ppc64*)
+		# Prefer accelerated routines where available
+		build_options_default="openblas"
+		;;
+	*) ;;
+esac
 
 do_build() {
-	make config library $make_build_args JOBS=$XBPS_MAKEJOBS
+	make library \
+		JOBS=$XBPS_MAKEJOBS \
+		CMAKE_OPTIONS="-DBLA_VENDOR=$(vopt_if openblas 'OpenBLAS' 'Generic') \
+		               -DCMAKE_INSTALL_PREFIX=$DESTDIR/usr"
 }
 
 do_check() {
-	make go $make_build_args LD_LIBRARY_PATH=$wrksrc/lib JOBS=$XBPS_MAKEJOBS
+	make demos \
+		JOBS=$XBPS_MAKEJOBS
 }
 
 do_install() {
-	make install $make_build_args INSTALL=$DESTDIR/usr
+	make install
 	vlicense LICENSE.txt
-
-	# remove invalid rpath
-	chrpath -d $DESTDIR/usr/lib/lib*.so
 }
 
 SuiteSparse-devel_package() {
@@ -35,10 +45,8 @@ SuiteSparse-devel_package() {
 	short_desc+=" - development files"
 	pkg_install() {
 		vmove usr/include
+		vmove usr/lib/cmake
 		vmove "usr/lib/*.a"
-		# do not vmove libmetis.so
-		vmove "usr/lib/lib[a-ln-z]*.so"
-		vmove "usr/lib/libmo*.so"
-		vmove usr/share/doc
+		vmove "usr/lib/*.so"
 	}
 }

From 8a1aa4992a10714d59ea5bff31790a63171901c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sun, 13 Nov 2022 00:33:48 -0300
Subject: [PATCH 2/4] python3-cvxopt: revbump for SuiteSparse 6.0.1.

Also: use openblas instead of lapack when available.
---
 srcpkgs/python3-cvxopt/patches/fix-gsl.patch  | 11 ---
 .../python3-cvxopt/patches/test-modules.patch | 76 +++++++++++++++++++
 srcpkgs/python3-cvxopt/template               | 18 ++++-
 3 files changed, 91 insertions(+), 14 deletions(-)
 delete mode 100644 srcpkgs/python3-cvxopt/patches/fix-gsl.patch
 create mode 100644 srcpkgs/python3-cvxopt/patches/test-modules.patch

diff --git a/srcpkgs/python3-cvxopt/patches/fix-gsl.patch b/srcpkgs/python3-cvxopt/patches/fix-gsl.patch
deleted file mode 100644
index e32dc2fbf1e1..000000000000
--- a/srcpkgs/python3-cvxopt/patches/fix-gsl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/setup.py	2022-03-07 18:58:58.000000000 -0300
-+++ b/setup.py	2022-04-14 22:25:18.860887901 -0300
-@@ -129,7 +129,7 @@
- # optional modules
- 
- if BUILD_GSL:
--    gsl = Extension('gsl', libraries = M_LIB + ['gsl'] + BLAS_LIB,
-+    gsl = Extension('gsl', libraries = M_LIB + ['gsl', 'gslcblas'],
-         include_dirs = [ GSL_INC_DIR ],
-         library_dirs = [ GSL_LIB_DIR, BLAS_LIB_DIR ],
-         define_macros = GSL_MACROS,
diff --git a/srcpkgs/python3-cvxopt/patches/test-modules.patch b/srcpkgs/python3-cvxopt/patches/test-modules.patch
new file mode 100644
index 000000000000..6562b7e002e1
--- /dev/null
+++ b/srcpkgs/python3-cvxopt/patches/test-modules.patch
@@ -0,0 +1,76 @@
+diff --git a/tests/test_dsdp.py b/tests/test_dsdp.py
+index d514dc8..2a5e5bf 100644
+--- a/tests/test_dsdp.py
++++ b/tests/test_dsdp.py
+@@ -4,9 +4,10 @@ class TestDSDP(unittest.TestCase):
+ 
+     def setUp(self):
+         try:
+-            from cvxopt import dsdp, matrix
+-        except:
++            import cvxopt.dsdp
++        except ModuleNotFoundError:
+             self.skipTest("DSDP not available")
++        from cvxopt import matrix
+         c = matrix([1.,-1.,1.])
+         G = [ matrix([[-7., -11., -11., 3.],
+                     [ 7., -18., -18., 8.],
+diff --git a/tests/test_glpk.py b/tests/test_glpk.py
+index 89f876d..dad5801 100644
+--- a/tests/test_glpk.py
++++ b/tests/test_glpk.py
+@@ -4,15 +4,16 @@ class TestGLPK(unittest.TestCase):
+ 
+     def setUp(self):
+         try:
+-            from cvxopt import glpk, matrix
+-            c = matrix([-4., -5.])
+-            G = matrix([[2., 1., -1., 0.], [1., 2., 0., -1.]])
+-            h = matrix([3., 3., 0., 0.])
+-            A = matrix([1.0,1.0],(1,2))
+-            b = matrix(1.0)
+-            self._prob_data = (c,G,h,A,b)
+-        except:
++            import cvxopt.glpk
++        except ModuleNotFoundError:
+             self.skipTest("GLPK not available")
++        from cvxopt import matrix
++        c = matrix([-4., -5.])
++        G = matrix([[2., 1., -1., 0.], [1., 2., 0., -1.]])
++        h = matrix([3., 3., 0., 0.])
++        A = matrix([1.0,1.0],(1,2))
++        b = matrix(1.0)
++        self._prob_data = (c,G,h,A,b)
+ 
+     def test_lp(self):
+         from cvxopt import solvers, glpk
+diff --git a/tests/test_gsl.py b/tests/test_gsl.py
+index d24f058..3ee9a37 100644
+--- a/tests/test_gsl.py
++++ b/tests/test_gsl.py
+@@ -4,8 +4,8 @@ class TestGSL(unittest.TestCase):
+ 
+     def setUp(self):
+         try:
+-            from cvxopt import gsl
+-        except:
++            import cvxopt.gsl
++        except ModuleNotFoundError:
+             self.skipTest("GSL not available")
+ 
+     def test1(self):
+diff --git a/tests/test_mosek.py b/tests/test_mosek.py
+index e3d0f4e..6cd1fbf 100644
+--- a/tests/test_mosek.py
++++ b/tests/test_mosek.py
+@@ -4,8 +4,8 @@ class TestMOSEK(unittest.TestCase):
+ 
+     def setUp(self):
+         try:
+-            from cvxopt import msk
+-        except:
++            import cvxopt.msk
++        except ModuleNotFoundError:
+             self.skipTest("MOSEK not available")
+ 
+     def assertAlmostEqualLists(self,L1,L2,places=3):
diff --git a/srcpkgs/python3-cvxopt/template b/srcpkgs/python3-cvxopt/template
index 4044fbfea2a7..944086e37837 100644
--- a/srcpkgs/python3-cvxopt/template
+++ b/srcpkgs/python3-cvxopt/template
@@ -1,11 +1,11 @@
 # Template file for 'python3-cvxopt'
 pkgname=python3-cvxopt
 version=1.3.0
-revision=2
+revision=3
 build_style=python3-module
 hostmakedepends="python3-setuptools"
-makedepends="python3-devel blas-devel lapack-devel SuiteSparse-devel gsl-devel
- glpk-devel fftw-devel"
+makedepends="python3-devel SuiteSparse-devel gsl-devel glpk-devel fftw-devel
+ $(vopt_if openblas 'openblas-devel' 'lapack-devel')"
 checkdepends="python3-pytest"
 short_desc="Python software for convex optimization"
 maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
@@ -14,8 +14,20 @@ homepage="http://cvxopt.org/"
 distfiles="${PYPI_SITE}/c/cvxopt/cvxopt-${version}.tar.gz"
 checksum=00b1b232f9d1f902d578a9d75814b67fa020758d5ae422e28ca8cef6269fa5c6
 
+build_options="openblas"
+
+case "$XBPS_TARGET_MACHINE" in
+	x86_64*|i686*|aarch64*|armv[67]*|ppc64*)
+		# Prefer accelerated routines where available
+		build_options_default="openblas"
+		;;
+	*) ;;
+esac
+
 pre_build() {
 	export CVXOPT_BUILD_GSL=1
 	export CVXOPT_BUILD_GLPK=1
 	export CVXOPT_BUILD_FFTW=1
+	export CVXOPT_BLAS_LIB=$(vopt_if openblas 'openblas' 'blas;gslcblas')
+	export CVXOPT_LAPACK_LIB=$(vopt_if openblas 'openblas' 'lapack')
 }

From 30b25102f22009d83c311f9abf520de7dbaa3a5d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 21 Nov 2022 23:12:25 -0300
Subject: [PATCH 3/4] rapidjson: apply upstream patch needed for octave

---
 .../5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch  | 13 +++++++++++++
 srcpkgs/rapidjson/template                          |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch

diff --git a/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch b/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch
new file mode 100644
index 000000000000..bd3dee81b6f7
--- /dev/null
+++ b/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch
@@ -0,0 +1,13 @@
+See: https://github.com/Tencent/rapidjson/pull/909
+
+--- a/include/rapidjson/prettywriter.h
++++ b/include/rapidjson/prettywriter.h
+@@ -47,7 +47,7 @@ enum PrettyFormatOptions {
+ template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
+ class PrettyWriter : public Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> {
+ public:
+-    typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator> Base;
++    typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> Base;
+     typedef typename Base::Ch Ch;
+ 
+     //! Constructor
diff --git a/srcpkgs/rapidjson/template b/srcpkgs/rapidjson/template
index 99d92702cc9d..2b47472c94f3 100644
--- a/srcpkgs/rapidjson/template
+++ b/srcpkgs/rapidjson/template
@@ -1,7 +1,7 @@
 # Template file for 'rapidjson'
 pkgname=rapidjson
 version=1.1.0
-revision=4
+revision=5
 build_style=cmake
 short_desc="Fast JSON parser/generator for C++ with both SAX/DOM style API"
 maintainer="Alexander Egorenkov <egorenar-dev@posteo.net>"

From 1a048130472c4517b6f4db5badd747684f73c26f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Thu, 17 Nov 2022 15:17:33 -0300
Subject: [PATCH 4/4] octave: update to 7.3.0.

- Fix cross build
- Use SuiteSparse
- Use rapidjson
- Use --disable-docs to skip building docs, instead install the docs in
  the tarball. This way we don't need texlive/texinfo/gnuplot to build.
- Avoid warnings due to egrep deprecation
- xlint fixes
---
 common/shlibs           |   6 +++
 srcpkgs/octave/template | 113 ++++++++++++++++++++++++----------------
 2 files changed, 74 insertions(+), 45 deletions(-)

diff --git a/common/shlibs b/common/shlibs
index 7429bfcd2e23..b3b5c470ec27 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4064,7 +4064,13 @@ libprimesieve.so.10 primesieve-8.0_1
 libavif.so.15 libavif-0.11.0_1
 libkdumpfile.so.10 libkdumpfile-0.4.1_1
 libamd.so.3 SuiteSparse-6.0.1_1
+libcamd.so.3 SuiteSparse-6.0.1_1
+libccolamd.so.3 SuiteSparse-6.0.1_1
 libcholmod.so.4 SuiteSparse-6.0.1_1
+libcolamd.so.3 SuiteSparse-6.0.1_1
+libcxsparse.so.4 SuiteSparse-6.0.1_1
+libspqr.so.3 SuiteSparse-6.0.1_1
+libsuitesparseconfig.so.6 SuiteSparse-6.0.1_1
 libumfpack.so.6 SuiteSparse-6.0.1_1
 libecl.so.21.2 ecl-21.2.1_1
 libecm.so.1 ecm-7.0.4_3
diff --git a/srcpkgs/octave/template b/srcpkgs/octave/template
index 08ba298b09dd..8cf23fe9279f 100644
--- a/srcpkgs/octave/template
+++ b/srcpkgs/octave/template
@@ -1,20 +1,24 @@
 # Template file for 'octave'
 pkgname=octave
-version=6.3.0
+version=7.3.0
 revision=1
 build_style=gnu-configure
-hostmakedepends="perl gcc-fortran pkg-config gnuplot texinfo texlive-dvi tar"
+configure_args="--disable-docs"
+hostmakedepends="perl gcc-fortran pkg-config"
 makedepends="pcre-devel readline-devel libSM-devel libltdl-devel lcms2-devel
- glpk-devel"
-depends="$(vopt_if gui qt5-plugin-sqlite) texinfo"
-checkdepends="zip unzip"
+ glpk-devel SuiteSparse-devel rapidjson"
+depends="$(vopt_if gui qt5-plugin-sqlite)"
+checkdepends="zip unzip ghostscript"
 short_desc="High-level language, primarily intended for numerical computations"
 maintainer="Diogo Leal <diogo@diogoleal.com>"
 license="GPL-3.0-or-later"
 homepage="https://gnu.org/software/octave/"
-changelog="https://www.gnu.org/software/octave/NEWS-6.1.html"
+changelog="https://www.gnu.org/software/octave/NEWS-7.html"
 distfiles="${GNU_SITE}/octave/octave-${version}.tar.gz"
-checksum=232065f3a72fc3013fe9f17f429a3df69d672c1f6b6077029a31c8f3cd58a66e
+checksum=6e14a4649d70af45ab660f8cbbf645aaf1ec33f25f88bfda4697cb17e440c4f5
+
+# avoid warnings due to egrep deprecation
+export EGREP="grep -E"
 
 # Use OpenBLAS on platforms where it is available and fallback to regular BLAS
 # on all others.
@@ -22,7 +26,7 @@ case "$XBPS_TARGET_MACHINE" in
 	# List of supported architectures copied from openblas.
 	armv[67]*|aarch64*|i686*|x86_64*|ppc64*)
 		makedepends+=" openblas-devel"
-		configure_args=" --with-blas=openblas --with-lapack=openblas"
+		configure_args+=" --with-blas=openblas --with-lapack=openblas"
 		;;
 	*)
 		makedepends+=" blas-devel lapack-devel"
@@ -30,21 +34,20 @@ case "$XBPS_TARGET_MACHINE" in
 esac
 
 # Package build options
-# TODO: some options are still missing, such as
-# java, qrupdate, suitesparse
+# TODO: some options are still missing, such as java, qrupdate
 build_options="
-	arpack
-	audio
-	curl
-	fftw3
-	graphicsmagick
-	gui
-	hdf5
-	imagemagick
-	opengl
-	openmp
-	qhull
-	zlib"
+ arpack
+ audio
+ curl
+ fftw3
+ graphicsmagick
+ gui
+ hdf5
+ imagemagick
+ opengl
+ openmp
+ qhull
+ zlib"
 
 vopt_conflict graphicsmagick imagemagick
 
@@ -61,31 +64,42 @@ 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
-	gui
-	hdf5
-	opengl
-	openmp
-	qhull
-	zlib"
+ arpack
+ audio
+ curl
+ fftw3
+ graphicsmagick
+ gui
+ opengl
+ openmp
+ qhull
+ zlib"
+
+if [ -z "$CROSS_BUILD" ]; then
+	# hdf5 is nocross
+	build_options_default+=" hdf5"
+fi
+
+if [ -n "$CROSS_BUILD" ];then
+	# cross build cannot determine integer size for BLAS
+	# our BLAS (lapack and openblas) are built with 32 bit ints
+	# even in 64 bit architectures
+	configure_args+=" ax_blas_integer_size=4"
+fi
 
 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 'qt5-devel qt5-plugin-sqlite qscintilla-qt5-devel qt5-tools-devel')
-	$(vopt_if hdf5 hdf5-devel)
-	$(vopt_if imagemagick libmagick-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)"
+ $(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 'qt5-devel qt5-plugin-sqlite qscintilla-qt5-devel qt5-tools-devel')
+ $(vopt_if hdf5 hdf5-devel)
+ $(vopt_if imagemagick libmagick-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)"
 
 case "$XBPS_TARGET_MACHINE" in
 	ppc64*) ;;
@@ -100,4 +114,13 @@ post_install() {
 	# add helper to launch octave from dmenu etc.
 	printf "#!/bin/sh\noctave --gui" > octave-gui
 	vbin octave-gui
+
+	# install man pages
+	vmkdir usr/share/man/man1
+	vcopy "doc/*/*.1" usr/share/man/man1
+
+	# install info files
+	vmkdir usr/share/info
+	touch ${DESTDIR}/usr/share/info/dir
+	vcopy "doc/*/*.info*" usr/share/info
 }

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR PATCH] [Updated] octave: update to 7.3.0.
  2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
@ 2022-11-24 11:47 ` tornaria
  2022-12-04 14:56 ` hervyqa
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: tornaria @ 2022-11-24 11:47 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1910 bytes --]

There is an updated pull request by tornaria against master on the void-packages repository

https://github.com/tornaria/void-packages octave
https://github.com/void-linux/void-packages/pull/40720

octave: update to 7.3.0.
- Fix cross build
- Use SuiteSparse
- Use rapidjson
- Use --disable-docs to skip building docs, instead install the docs in
  the tarball. This way we don't need texlive/texinfo/gnuplot to build.
- Avoid warnings due to egrep deprecation
- xlint fixes


<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

---

I wonder if we really want all those build options. I am tempted to remove almost all of them.

I also wonder if the choice of `GraphicsMagick` over `ImageMagick` is the best one.

NOTE: this PR includes #39846 for the current SuiteSparse. Could work with the current SuiteSparse, but I didn't try (#39846 is ready to merge IMO; the CI failures in that PR are addressed in the comments)

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/40720.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-octave-40720.patch --]
[-- Type: text/x-diff, Size: 17853 bytes --]

From 90bf14f32c03f0d37474f4307f1f0d51e8e69618 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sun, 9 Oct 2022 17:46:15 -0300
Subject: [PATCH 1/4] SuiteSparse: update to 6.0.1.

 - use openblas instead of lapack when available.
 - add shlibs that will be used by octave.
 - SuiteSparse-devel and mongoose-devel conflict for libmongoose.{so,a}.
---
 common/shlibs                                 | 13 ++++--
 .../patches/skip-demo-on-build.patch          | 22 ----------
 srcpkgs/SuiteSparse/template                  | 42 ++++++++++++-------
 3 files changed, 35 insertions(+), 42 deletions(-)
 delete mode 100644 srcpkgs/SuiteSparse/patches/skip-demo-on-build.patch

diff --git a/common/shlibs b/common/shlibs
index 61f21bc3b94e..2e6db58a102b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -71,7 +71,6 @@ libppl.so.14 ppl-1.2_1
 libppl_c.so.4 ppl-0.11_1
 libstdc++.so.6 libstdc++-4.4.0_1
 libssp.so.0 libssp-4.4.0_1
-libcxsparse.so.3 SuiteSparse-5.10.1_1
 libncurses.so.6 ncurses-libs-6.0_1 ignore
 libncursesw.so.6 ncurses-libs-5.8_1 ignore
 libtinfo.so.6 ncurses-libtinfo-libs-6.2_2
@@ -4064,9 +4063,15 @@ libprimecount.so.7 primecount-7.2_1
 libprimesieve.so.10 primesieve-8.0_1
 libavif.so.15 libavif-0.11.0_1
 libkdumpfile.so.10 libkdumpfile-0.4.1_1
-libamd.so.2 SuiteSparse-5.10.1_1
-libcholmod.so.3 SuiteSparse-5.10.1_1
-libumfpack.so.5 SuiteSparse-5.10.1_1
+libamd.so.3 SuiteSparse-6.0.1_1
+libcamd.so.3 SuiteSparse-6.0.1_1
+libccolamd.so.3 SuiteSparse-6.0.1_1
+libcholmod.so.4 SuiteSparse-6.0.1_1
+libcolamd.so.3 SuiteSparse-6.0.1_1
+libcxsparse.so.4 SuiteSparse-6.0.1_1
+libspqr.so.3 SuiteSparse-6.0.1_1
+libsuitesparseconfig.so.6 SuiteSparse-6.0.1_1
+libumfpack.so.6 SuiteSparse-6.0.1_1
 libecl.so.21.2 ecl-21.2.1_1
 libecm.so.1 ecm-7.0.4_3
 libcliquer.so.1 cliquer-1.22_1
diff --git a/srcpkgs/SuiteSparse/patches/skip-demo-on-build.patch b/srcpkgs/SuiteSparse/patches/skip-demo-on-build.patch
deleted file mode 100644
index 9ec775229ed6..000000000000
--- a/srcpkgs/SuiteSparse/patches/skip-demo-on-build.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-This is to avoid running demos on `make install`, which break cross compile
-
---- a/Makefile
-+++ b/Makefile
-@@ -294,7 +294,7 @@ endif
- # just compile GraphBLAS
- gb:
- 	echo $(CMAKE_OPTIONS)
--	( cd GraphBLAS && $(MAKE) JOBS=$(JOBS) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' )
-+	( cd GraphBLAS && $(MAKE) JOBS=$(JOBS) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' library )
- 
- # compile and install GraphBLAS libgraphblas_renamed, for MATLAB
- gbrenamed:
-@@ -309,7 +309,7 @@ gbrenamed:
- 
- # just compile Mongoose
- mon:
--	( cd Mongoose && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' )
-+	( cd Mongoose && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' library )
- 
- # compile and install Mongoose
- moninstall: mon
diff --git a/srcpkgs/SuiteSparse/template b/srcpkgs/SuiteSparse/template
index b304dfc8f786..869237dc9f85 100644
--- a/srcpkgs/SuiteSparse/template
+++ b/srcpkgs/SuiteSparse/template
@@ -1,44 +1,54 @@
 # Template file for 'SuiteSparse'
 pkgname=SuiteSparse
-version=5.12.0
+version=6.0.1
 revision=1
-# XXX: re-enable TBB=-ltbb -DSPQR_CONFIG=-DHAVE_TBB when updating, if possible
-make_build_args="BLAS=-lblas LAPACK=-llapack"
-hostmakedepends="cmake chrpath"
-makedepends="libgomp-devel lapack-devel mpfr-devel"
+hostmakedepends="cmake gcc-fortran"
+makedepends="libgomp-devel mpfr-devel
+ $(vopt_if openblas 'openblas-devel' 'lapack-devel')"
 short_desc="Suite of sparse matrix software"
 maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="custom:multiple"
 homepage="https://people.engr.tamu.edu/davis/suitesparse.html"
 changelog="https://raw.githubusercontent.com/DrTimothyAldenDavis/SuiteSparse/master/ChangeLog"
 distfiles="https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/refs/tags/v${version}.tar.gz"
-checksum=5fb0064a3398111976f30c5908a8c0b40df44c6dd8f0cc4bfa7b9e45d8c647de
+checksum=06f55a0449775d1f43d8a33ba8c8417ea8cf76c27833b465c49825baa8741d0c
+
+build_options="openblas"
+
+case "$XBPS_TARGET_MACHINE" in
+	x86_64*|i686*|aarch64*|armv[67]*|ppc64*)
+		# Prefer accelerated routines where available
+		build_options_default="openblas"
+		;;
+	*) ;;
+esac
 
 do_build() {
-	make config library $make_build_args JOBS=$XBPS_MAKEJOBS
+	make library \
+		JOBS=$XBPS_MAKEJOBS \
+		CMAKE_OPTIONS="-DBLA_VENDOR=$(vopt_if openblas 'OpenBLAS' 'Generic') \
+		               -DCMAKE_INSTALL_PREFIX=$DESTDIR/usr"
 }
 
 do_check() {
-	make go $make_build_args LD_LIBRARY_PATH=$wrksrc/lib JOBS=$XBPS_MAKEJOBS
+	make demos \
+		JOBS=$XBPS_MAKEJOBS
 }
 
 do_install() {
-	make install $make_build_args INSTALL=$DESTDIR/usr
+	make install
 	vlicense LICENSE.txt
-
-	# remove invalid rpath
-	chrpath -d $DESTDIR/usr/lib/lib*.so
 }
 
 SuiteSparse-devel_package() {
 	depends="${makedepends} ${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - development files"
+	# conflict for /usr/lib/libmongoose.{a,so}
+	conflicts="mongoose-devel"
 	pkg_install() {
 		vmove usr/include
+		vmove usr/lib/cmake
 		vmove "usr/lib/*.a"
-		# do not vmove libmetis.so
-		vmove "usr/lib/lib[a-ln-z]*.so"
-		vmove "usr/lib/libmo*.so"
-		vmove usr/share/doc
+		vmove "usr/lib/*.so"
 	}
 }

From f221245feecbec93f863b5a101b2b7e864d744b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sun, 13 Nov 2022 00:33:48 -0300
Subject: [PATCH 2/4] python3-cvxopt: revbump for SuiteSparse 6.0.1.

 - use openblas instead of lapack when available.
---
 srcpkgs/python3-cvxopt/patches/fix-gsl.patch  | 11 ---
 .../python3-cvxopt/patches/test-modules.patch | 76 +++++++++++++++++++
 srcpkgs/python3-cvxopt/template               | 18 ++++-
 3 files changed, 91 insertions(+), 14 deletions(-)
 delete mode 100644 srcpkgs/python3-cvxopt/patches/fix-gsl.patch
 create mode 100644 srcpkgs/python3-cvxopt/patches/test-modules.patch

diff --git a/srcpkgs/python3-cvxopt/patches/fix-gsl.patch b/srcpkgs/python3-cvxopt/patches/fix-gsl.patch
deleted file mode 100644
index e32dc2fbf1e1..000000000000
--- a/srcpkgs/python3-cvxopt/patches/fix-gsl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/setup.py	2022-03-07 18:58:58.000000000 -0300
-+++ b/setup.py	2022-04-14 22:25:18.860887901 -0300
-@@ -129,7 +129,7 @@
- # optional modules
- 
- if BUILD_GSL:
--    gsl = Extension('gsl', libraries = M_LIB + ['gsl'] + BLAS_LIB,
-+    gsl = Extension('gsl', libraries = M_LIB + ['gsl', 'gslcblas'],
-         include_dirs = [ GSL_INC_DIR ],
-         library_dirs = [ GSL_LIB_DIR, BLAS_LIB_DIR ],
-         define_macros = GSL_MACROS,
diff --git a/srcpkgs/python3-cvxopt/patches/test-modules.patch b/srcpkgs/python3-cvxopt/patches/test-modules.patch
new file mode 100644
index 000000000000..6562b7e002e1
--- /dev/null
+++ b/srcpkgs/python3-cvxopt/patches/test-modules.patch
@@ -0,0 +1,76 @@
+diff --git a/tests/test_dsdp.py b/tests/test_dsdp.py
+index d514dc8..2a5e5bf 100644
+--- a/tests/test_dsdp.py
++++ b/tests/test_dsdp.py
+@@ -4,9 +4,10 @@ class TestDSDP(unittest.TestCase):
+ 
+     def setUp(self):
+         try:
+-            from cvxopt import dsdp, matrix
+-        except:
++            import cvxopt.dsdp
++        except ModuleNotFoundError:
+             self.skipTest("DSDP not available")
++        from cvxopt import matrix
+         c = matrix([1.,-1.,1.])
+         G = [ matrix([[-7., -11., -11., 3.],
+                     [ 7., -18., -18., 8.],
+diff --git a/tests/test_glpk.py b/tests/test_glpk.py
+index 89f876d..dad5801 100644
+--- a/tests/test_glpk.py
++++ b/tests/test_glpk.py
+@@ -4,15 +4,16 @@ class TestGLPK(unittest.TestCase):
+ 
+     def setUp(self):
+         try:
+-            from cvxopt import glpk, matrix
+-            c = matrix([-4., -5.])
+-            G = matrix([[2., 1., -1., 0.], [1., 2., 0., -1.]])
+-            h = matrix([3., 3., 0., 0.])
+-            A = matrix([1.0,1.0],(1,2))
+-            b = matrix(1.0)
+-            self._prob_data = (c,G,h,A,b)
+-        except:
++            import cvxopt.glpk
++        except ModuleNotFoundError:
+             self.skipTest("GLPK not available")
++        from cvxopt import matrix
++        c = matrix([-4., -5.])
++        G = matrix([[2., 1., -1., 0.], [1., 2., 0., -1.]])
++        h = matrix([3., 3., 0., 0.])
++        A = matrix([1.0,1.0],(1,2))
++        b = matrix(1.0)
++        self._prob_data = (c,G,h,A,b)
+ 
+     def test_lp(self):
+         from cvxopt import solvers, glpk
+diff --git a/tests/test_gsl.py b/tests/test_gsl.py
+index d24f058..3ee9a37 100644
+--- a/tests/test_gsl.py
++++ b/tests/test_gsl.py
+@@ -4,8 +4,8 @@ class TestGSL(unittest.TestCase):
+ 
+     def setUp(self):
+         try:
+-            from cvxopt import gsl
+-        except:
++            import cvxopt.gsl
++        except ModuleNotFoundError:
+             self.skipTest("GSL not available")
+ 
+     def test1(self):
+diff --git a/tests/test_mosek.py b/tests/test_mosek.py
+index e3d0f4e..6cd1fbf 100644
+--- a/tests/test_mosek.py
++++ b/tests/test_mosek.py
+@@ -4,8 +4,8 @@ class TestMOSEK(unittest.TestCase):
+ 
+     def setUp(self):
+         try:
+-            from cvxopt import msk
+-        except:
++            import cvxopt.msk
++        except ModuleNotFoundError:
+             self.skipTest("MOSEK not available")
+ 
+     def assertAlmostEqualLists(self,L1,L2,places=3):
diff --git a/srcpkgs/python3-cvxopt/template b/srcpkgs/python3-cvxopt/template
index 4044fbfea2a7..944086e37837 100644
--- a/srcpkgs/python3-cvxopt/template
+++ b/srcpkgs/python3-cvxopt/template
@@ -1,11 +1,11 @@
 # Template file for 'python3-cvxopt'
 pkgname=python3-cvxopt
 version=1.3.0
-revision=2
+revision=3
 build_style=python3-module
 hostmakedepends="python3-setuptools"
-makedepends="python3-devel blas-devel lapack-devel SuiteSparse-devel gsl-devel
- glpk-devel fftw-devel"
+makedepends="python3-devel SuiteSparse-devel gsl-devel glpk-devel fftw-devel
+ $(vopt_if openblas 'openblas-devel' 'lapack-devel')"
 checkdepends="python3-pytest"
 short_desc="Python software for convex optimization"
 maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
@@ -14,8 +14,20 @@ homepage="http://cvxopt.org/"
 distfiles="${PYPI_SITE}/c/cvxopt/cvxopt-${version}.tar.gz"
 checksum=00b1b232f9d1f902d578a9d75814b67fa020758d5ae422e28ca8cef6269fa5c6
 
+build_options="openblas"
+
+case "$XBPS_TARGET_MACHINE" in
+	x86_64*|i686*|aarch64*|armv[67]*|ppc64*)
+		# Prefer accelerated routines where available
+		build_options_default="openblas"
+		;;
+	*) ;;
+esac
+
 pre_build() {
 	export CVXOPT_BUILD_GSL=1
 	export CVXOPT_BUILD_GLPK=1
 	export CVXOPT_BUILD_FFTW=1
+	export CVXOPT_BLAS_LIB=$(vopt_if openblas 'openblas' 'blas;gslcblas')
+	export CVXOPT_LAPACK_LIB=$(vopt_if openblas 'openblas' 'lapack')
 }

From 123b50755700e967d3724c3fa820cb36c6c2a420 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 21 Nov 2022 23:12:25 -0300
Subject: [PATCH 3/4] rapidjson: apply upstream patch needed for octave

---
 .../5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch  | 13 +++++++++++++
 srcpkgs/rapidjson/template                          |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch

diff --git a/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch b/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch
new file mode 100644
index 000000000000..bd3dee81b6f7
--- /dev/null
+++ b/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch
@@ -0,0 +1,13 @@
+See: https://github.com/Tencent/rapidjson/pull/909
+
+--- a/include/rapidjson/prettywriter.h
++++ b/include/rapidjson/prettywriter.h
+@@ -47,7 +47,7 @@ enum PrettyFormatOptions {
+ template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
+ class PrettyWriter : public Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> {
+ public:
+-    typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator> Base;
++    typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> Base;
+     typedef typename Base::Ch Ch;
+ 
+     //! Constructor
diff --git a/srcpkgs/rapidjson/template b/srcpkgs/rapidjson/template
index 99d92702cc9d..2b47472c94f3 100644
--- a/srcpkgs/rapidjson/template
+++ b/srcpkgs/rapidjson/template
@@ -1,7 +1,7 @@
 # Template file for 'rapidjson'
 pkgname=rapidjson
 version=1.1.0
-revision=4
+revision=5
 build_style=cmake
 short_desc="Fast JSON parser/generator for C++ with both SAX/DOM style API"
 maintainer="Alexander Egorenkov <egorenar-dev@posteo.net>"

From d1e066a83078ca8e123357dcc069c08a097fc1e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Thu, 17 Nov 2022 15:17:33 -0300
Subject: [PATCH 4/4] octave: update to 7.3.0.

- Fix cross build
- Use SuiteSparse
- Use rapidjson
- Use --disable-docs to skip building docs; install the docs from the
  tarball. This way we don't makedepend on texlive/texinfo/gnuplot.
- Avoid warnings due to egrep deprecation
- xlint fixes
---
 srcpkgs/octave/template | 113 ++++++++++++++++++++++++----------------
 1 file changed, 68 insertions(+), 45 deletions(-)

diff --git a/srcpkgs/octave/template b/srcpkgs/octave/template
index 08ba298b09dd..e02565bb3fe1 100644
--- a/srcpkgs/octave/template
+++ b/srcpkgs/octave/template
@@ -1,20 +1,24 @@
 # Template file for 'octave'
 pkgname=octave
-version=6.3.0
+version=7.3.0
 revision=1
 build_style=gnu-configure
-hostmakedepends="perl gcc-fortran pkg-config gnuplot texinfo texlive-dvi tar"
+configure_args="--disable-docs"
+hostmakedepends="perl gcc-fortran pkg-config"
 makedepends="pcre-devel readline-devel libSM-devel libltdl-devel lcms2-devel
- glpk-devel"
-depends="$(vopt_if gui qt5-plugin-sqlite) texinfo"
-checkdepends="zip unzip"
+ glpk-devel SuiteSparse-devel rapidjson"
+depends="$(vopt_if gui qt5-plugin-sqlite)"
+checkdepends="zip unzip ghostscript texinfo"
 short_desc="High-level language, primarily intended for numerical computations"
 maintainer="Diogo Leal <diogo@diogoleal.com>"
 license="GPL-3.0-or-later"
 homepage="https://gnu.org/software/octave/"
-changelog="https://www.gnu.org/software/octave/NEWS-6.1.html"
+changelog="https://www.gnu.org/software/octave/NEWS-7.html"
 distfiles="${GNU_SITE}/octave/octave-${version}.tar.gz"
-checksum=232065f3a72fc3013fe9f17f429a3df69d672c1f6b6077029a31c8f3cd58a66e
+checksum=6e14a4649d70af45ab660f8cbbf645aaf1ec33f25f88bfda4697cb17e440c4f5
+
+# avoid warnings due to egrep deprecation
+export EGREP="grep -E"
 
 # Use OpenBLAS on platforms where it is available and fallback to regular BLAS
 # on all others.
@@ -22,7 +26,7 @@ case "$XBPS_TARGET_MACHINE" in
 	# List of supported architectures copied from openblas.
 	armv[67]*|aarch64*|i686*|x86_64*|ppc64*)
 		makedepends+=" openblas-devel"
-		configure_args=" --with-blas=openblas --with-lapack=openblas"
+		configure_args+=" --with-blas=openblas --with-lapack=openblas"
 		;;
 	*)
 		makedepends+=" blas-devel lapack-devel"
@@ -30,21 +34,20 @@ case "$XBPS_TARGET_MACHINE" in
 esac
 
 # Package build options
-# TODO: some options are still missing, such as
-# java, qrupdate, suitesparse
+# TODO: some options are still missing, such as java, qrupdate
 build_options="
-	arpack
-	audio
-	curl
-	fftw3
-	graphicsmagick
-	gui
-	hdf5
-	imagemagick
-	opengl
-	openmp
-	qhull
-	zlib"
+ arpack
+ audio
+ curl
+ fftw3
+ graphicsmagick
+ gui
+ hdf5
+ imagemagick
+ opengl
+ openmp
+ qhull
+ zlib"
 
 vopt_conflict graphicsmagick imagemagick
 
@@ -61,31 +64,42 @@ 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
-	gui
-	hdf5
-	opengl
-	openmp
-	qhull
-	zlib"
+ arpack
+ audio
+ curl
+ fftw3
+ graphicsmagick
+ gui
+ opengl
+ openmp
+ qhull
+ zlib"
+
+if [ -z "$CROSS_BUILD" ]; then
+	# hdf5 is nocross
+	build_options_default+=" hdf5"
+fi
+
+if [ -n "$CROSS_BUILD" ];then
+	# cross build cannot determine integer size for BLAS
+	# our BLAS (lapack and openblas) are built with 32 bit ints
+	# even in 64 bit architectures
+	configure_args+=" ax_blas_integer_size=4"
+fi
 
 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 'qt5-devel qt5-plugin-sqlite qscintilla-qt5-devel qt5-tools-devel')
-	$(vopt_if hdf5 hdf5-devel)
-	$(vopt_if imagemagick libmagick-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)"
+ $(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 'qt5-devel qt5-plugin-sqlite qscintilla-qt5-devel qt5-tools-devel')
+ $(vopt_if hdf5 hdf5-devel)
+ $(vopt_if imagemagick libmagick-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)"
 
 case "$XBPS_TARGET_MACHINE" in
 	ppc64*) ;;
@@ -100,4 +114,13 @@ post_install() {
 	# add helper to launch octave from dmenu etc.
 	printf "#!/bin/sh\noctave --gui" > octave-gui
 	vbin octave-gui
+
+	# install man pages
+	vmkdir usr/share/man/man1
+	vcopy "doc/*/*.1" usr/share/man/man1
+
+	# install info files
+	vmkdir usr/share/info
+	touch ${DESTDIR}/usr/share/info/dir
+	vcopy "doc/*/*.info*" usr/share/info
 }

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: octave: update to 7.3.0.
  2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
  2022-11-24 11:47 ` [PR PATCH] [Updated] " tornaria
@ 2022-12-04 14:56 ` hervyqa
  2022-12-04 21:12 ` Piraty
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: hervyqa @ 2022-12-04 14:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 248 bytes --]

New comment by hervyqa on void-packages repository

https://github.com/void-linux/void-packages/pull/40720#issuecomment-1336432359

Comment:
can you please rebase? CI runs again
igraph merged https://github.com/void-linux/void-packages/pull/40224

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: octave: update to 7.3.0.
  2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
  2022-11-24 11:47 ` [PR PATCH] [Updated] " tornaria
  2022-12-04 14:56 ` hervyqa
@ 2022-12-04 21:12 ` Piraty
  2022-12-05  0:10 ` [PR PATCH] [Updated] " tornaria
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Piraty @ 2022-12-04 21:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 206 bytes --]

New comment by Piraty on void-packages repository

https://github.com/void-linux/void-packages/pull/40720#issuecomment-1336518468

Comment:
remove the suitesparse commits from this branch. #39846 is merged

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR PATCH] [Updated] octave: update to 7.3.0.
  2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
                   ` (2 preceding siblings ...)
  2022-12-04 21:12 ` Piraty
@ 2022-12-05  0:10 ` tornaria
  2022-12-05  9:37 ` [PR REVIEW] " Piraty
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: tornaria @ 2022-12-05  0:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1910 bytes --]

There is an updated pull request by tornaria against master on the void-packages repository

https://github.com/tornaria/void-packages octave
https://github.com/void-linux/void-packages/pull/40720

octave: update to 7.3.0.
- Fix cross build
- Use SuiteSparse
- Use rapidjson
- Use --disable-docs to skip building docs, instead install the docs in
  the tarball. This way we don't need texlive/texinfo/gnuplot to build.
- Avoid warnings due to egrep deprecation
- xlint fixes


<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

---

I wonder if we really want all those build options. I am tempted to remove almost all of them.

I also wonder if the choice of `GraphicsMagick` over `ImageMagick` is the best one.

NOTE: this PR includes #39846 for the current SuiteSparse. Could work with the current SuiteSparse, but I didn't try (#39846 is ready to merge IMO; the CI failures in that PR are addressed in the comments)

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/40720.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-octave-40720.patch --]
[-- Type: text/x-diff, Size: 7167 bytes --]

From 446cacd59066f0547317e3d74eeff8e4ffd11fd6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 21 Nov 2022 23:12:25 -0300
Subject: [PATCH 1/2] rapidjson: apply upstream patch needed for octave

---
 .../5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch  | 13 +++++++++++++
 srcpkgs/rapidjson/template                          |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch

diff --git a/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch b/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch
new file mode 100644
index 000000000000..bd3dee81b6f7
--- /dev/null
+++ b/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch
@@ -0,0 +1,13 @@
+See: https://github.com/Tencent/rapidjson/pull/909
+
+--- a/include/rapidjson/prettywriter.h
++++ b/include/rapidjson/prettywriter.h
+@@ -47,7 +47,7 @@ enum PrettyFormatOptions {
+ template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
+ class PrettyWriter : public Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> {
+ public:
+-    typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator> Base;
++    typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> Base;
+     typedef typename Base::Ch Ch;
+ 
+     //! Constructor
diff --git a/srcpkgs/rapidjson/template b/srcpkgs/rapidjson/template
index 99d92702cc9d..2b47472c94f3 100644
--- a/srcpkgs/rapidjson/template
+++ b/srcpkgs/rapidjson/template
@@ -1,7 +1,7 @@
 # Template file for 'rapidjson'
 pkgname=rapidjson
 version=1.1.0
-revision=4
+revision=5
 build_style=cmake
 short_desc="Fast JSON parser/generator for C++ with both SAX/DOM style API"
 maintainer="Alexander Egorenkov <egorenar-dev@posteo.net>"

From 11a6fc07a72c5a172b5a22545c5c897ecb63e0d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Thu, 17 Nov 2022 15:17:33 -0300
Subject: [PATCH 2/2] octave: update to 7.3.0.

- Fix cross build
- Use SuiteSparse
- Use rapidjson
- Use --disable-docs to skip building docs; install the docs from the
  tarball. This way we don't makedepend on texlive/texinfo/gnuplot.
- Avoid warnings due to egrep deprecation
- xlint fixes
---
 srcpkgs/octave/template | 113 ++++++++++++++++++++++++----------------
 1 file changed, 68 insertions(+), 45 deletions(-)

diff --git a/srcpkgs/octave/template b/srcpkgs/octave/template
index 08ba298b09dd..a58003872a17 100644
--- a/srcpkgs/octave/template
+++ b/srcpkgs/octave/template
@@ -1,20 +1,24 @@
 # Template file for 'octave'
 pkgname=octave
-version=6.3.0
+version=7.3.0
 revision=1
 build_style=gnu-configure
-hostmakedepends="perl gcc-fortran pkg-config gnuplot texinfo texlive-dvi tar"
+configure_args="--disable-docs"
+hostmakedepends="perl gcc-fortran pkg-config"
 makedepends="pcre-devel readline-devel libSM-devel libltdl-devel lcms2-devel
- glpk-devel"
-depends="$(vopt_if gui qt5-plugin-sqlite) texinfo"
-checkdepends="zip unzip"
+ glpk-devel SuiteSparse-devel rapidjson"
+depends="$(vopt_if gui qt5-plugin-sqlite)"
+checkdepends="zip unzip ghostscript gnuplot tar texinfo"
 short_desc="High-level language, primarily intended for numerical computations"
 maintainer="Diogo Leal <diogo@diogoleal.com>"
 license="GPL-3.0-or-later"
 homepage="https://gnu.org/software/octave/"
-changelog="https://www.gnu.org/software/octave/NEWS-6.1.html"
+changelog="https://www.gnu.org/software/octave/NEWS-7.html"
 distfiles="${GNU_SITE}/octave/octave-${version}.tar.gz"
-checksum=232065f3a72fc3013fe9f17f429a3df69d672c1f6b6077029a31c8f3cd58a66e
+checksum=6e14a4649d70af45ab660f8cbbf645aaf1ec33f25f88bfda4697cb17e440c4f5
+
+# avoid warnings due to egrep deprecation
+export EGREP="grep -E"
 
 # Use OpenBLAS on platforms where it is available and fallback to regular BLAS
 # on all others.
@@ -22,7 +26,7 @@ case "$XBPS_TARGET_MACHINE" in
 	# List of supported architectures copied from openblas.
 	armv[67]*|aarch64*|i686*|x86_64*|ppc64*)
 		makedepends+=" openblas-devel"
-		configure_args=" --with-blas=openblas --with-lapack=openblas"
+		configure_args+=" --with-blas=openblas --with-lapack=openblas"
 		;;
 	*)
 		makedepends+=" blas-devel lapack-devel"
@@ -30,21 +34,20 @@ case "$XBPS_TARGET_MACHINE" in
 esac
 
 # Package build options
-# TODO: some options are still missing, such as
-# java, qrupdate, suitesparse
+# TODO: some options are still missing, such as java, qrupdate
 build_options="
-	arpack
-	audio
-	curl
-	fftw3
-	graphicsmagick
-	gui
-	hdf5
-	imagemagick
-	opengl
-	openmp
-	qhull
-	zlib"
+ arpack
+ audio
+ curl
+ fftw3
+ graphicsmagick
+ gui
+ hdf5
+ imagemagick
+ opengl
+ openmp
+ qhull
+ zlib"
 
 vopt_conflict graphicsmagick imagemagick
 
@@ -61,31 +64,42 @@ 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
-	gui
-	hdf5
-	opengl
-	openmp
-	qhull
-	zlib"
+ arpack
+ audio
+ curl
+ fftw3
+ graphicsmagick
+ gui
+ opengl
+ openmp
+ qhull
+ zlib"
+
+if [ -z "$CROSS_BUILD" ]; then
+	# hdf5 is nocross
+	build_options_default+=" hdf5"
+fi
+
+if [ -n "$CROSS_BUILD" ];then
+	# cross build cannot determine integer size for BLAS
+	# our BLAS (lapack and openblas) are built with 32 bit ints
+	# even in 64 bit architectures
+	configure_args+=" ax_blas_integer_size=4"
+fi
 
 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 'qt5-devel qt5-plugin-sqlite qscintilla-qt5-devel qt5-tools-devel')
-	$(vopt_if hdf5 hdf5-devel)
-	$(vopt_if imagemagick libmagick-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)"
+ $(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 'qt5-devel qt5-plugin-sqlite qscintilla-qt5-devel qt5-tools-devel')
+ $(vopt_if hdf5 hdf5-devel)
+ $(vopt_if imagemagick libmagick-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)"
 
 case "$XBPS_TARGET_MACHINE" in
 	ppc64*) ;;
@@ -100,4 +114,13 @@ post_install() {
 	# add helper to launch octave from dmenu etc.
 	printf "#!/bin/sh\noctave --gui" > octave-gui
 	vbin octave-gui
+
+	# install man pages
+	vmkdir usr/share/man/man1
+	vcopy "doc/*/*.1" usr/share/man/man1
+
+	# install info files
+	vmkdir usr/share/info
+	touch ${DESTDIR}/usr/share/info/dir
+	vcopy "doc/*/*.info*" usr/share/info
 }

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR REVIEW] octave: update to 7.3.0.
  2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
                   ` (3 preceding siblings ...)
  2022-12-05  0:10 ` [PR PATCH] [Updated] " tornaria
@ 2022-12-05  9:37 ` Piraty
  2022-12-06 21:50 ` [PR PATCH] [Updated] " tornaria
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Piraty @ 2022-12-05  9:37 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 157 bytes --]

New review comment by Piraty on void-packages repository

https://github.com/void-linux/void-packages/pull/40720#discussion_r1039355020

Comment:
use `vman`

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR PATCH] [Updated] octave: update to 7.3.0.
  2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
                   ` (4 preceding siblings ...)
  2022-12-05  9:37 ` [PR REVIEW] " Piraty
@ 2022-12-06 21:50 ` tornaria
  2022-12-06 22:11 ` tornaria
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: tornaria @ 2022-12-06 21:50 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1910 bytes --]

There is an updated pull request by tornaria against master on the void-packages repository

https://github.com/tornaria/void-packages octave
https://github.com/void-linux/void-packages/pull/40720

octave: update to 7.3.0.
- Fix cross build
- Use SuiteSparse
- Use rapidjson
- Use --disable-docs to skip building docs, instead install the docs in
  the tarball. This way we don't need texlive/texinfo/gnuplot to build.
- Avoid warnings due to egrep deprecation
- xlint fixes


<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

---

I wonder if we really want all those build options. I am tempted to remove almost all of them.

I also wonder if the choice of `GraphicsMagick` over `ImageMagick` is the best one.

NOTE: this PR includes #39846 for the current SuiteSparse. Could work with the current SuiteSparse, but I didn't try (#39846 is ready to merge IMO; the CI failures in that PR are addressed in the comments)

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/40720.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-octave-40720.patch --]
[-- Type: text/x-diff, Size: 7430 bytes --]

From 589437ee6246b187b8926a4e61adac33b004425b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 21 Nov 2022 23:12:25 -0300
Subject: [PATCH 1/2] rapidjson: apply upstream patch needed for octave

---
 .../5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch  | 13 +++++++++++++
 srcpkgs/rapidjson/template                          |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch

diff --git a/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch b/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch
new file mode 100644
index 000000000000..bd3dee81b6f7
--- /dev/null
+++ b/srcpkgs/rapidjson/patches/5d9d0f78b53dd8cd1ec757fd8ef07211ee114161.patch
@@ -0,0 +1,13 @@
+See: https://github.com/Tencent/rapidjson/pull/909
+
+--- a/include/rapidjson/prettywriter.h
++++ b/include/rapidjson/prettywriter.h
+@@ -47,7 +47,7 @@ enum PrettyFormatOptions {
+ template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
+ class PrettyWriter : public Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> {
+ public:
+-    typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator> Base;
++    typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> Base;
+     typedef typename Base::Ch Ch;
+ 
+     //! Constructor
diff --git a/srcpkgs/rapidjson/template b/srcpkgs/rapidjson/template
index 99d92702cc9d..2b47472c94f3 100644
--- a/srcpkgs/rapidjson/template
+++ b/srcpkgs/rapidjson/template
@@ -1,7 +1,7 @@
 # Template file for 'rapidjson'
 pkgname=rapidjson
 version=1.1.0
-revision=4
+revision=5
 build_style=cmake
 short_desc="Fast JSON parser/generator for C++ with both SAX/DOM style API"
 maintainer="Alexander Egorenkov <egorenar-dev@posteo.net>"

From c30d7c9044e61f56fc4da0c49f6b3e94f337427b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Thu, 17 Nov 2022 15:17:33 -0300
Subject: [PATCH 2/2] octave: update to 7.3.0.

- Fix cross build
- Use SuiteSparse
- Use rapidjson
- Use --disable-docs to skip building docs; install the docs from the
  tarball. This way we don't makedepend on texlive/texinfo/gnuplot.
- Avoid warnings due to egrep deprecation
- xlint fixes
- disable spqr on i686 (it segfaults)
---
 srcpkgs/octave/template | 126 ++++++++++++++++++++++++++--------------
 1 file changed, 81 insertions(+), 45 deletions(-)

diff --git a/srcpkgs/octave/template b/srcpkgs/octave/template
index 08ba298b09dd..92251058fe74 100644
--- a/srcpkgs/octave/template
+++ b/srcpkgs/octave/template
@@ -1,20 +1,24 @@
 # Template file for 'octave'
 pkgname=octave
-version=6.3.0
+version=7.3.0
 revision=1
 build_style=gnu-configure
-hostmakedepends="perl gcc-fortran pkg-config gnuplot texinfo texlive-dvi tar"
+configure_args="--disable-docs"
+hostmakedepends="perl gcc-fortran pkg-config"
 makedepends="pcre-devel readline-devel libSM-devel libltdl-devel lcms2-devel
- glpk-devel"
-depends="$(vopt_if gui qt5-plugin-sqlite) texinfo"
-checkdepends="zip unzip"
+ glpk-devel SuiteSparse-devel rapidjson"
+depends="$(vopt_if gui qt5-plugin-sqlite)"
+checkdepends="zip unzip ghostscript gnuplot tar texinfo"
 short_desc="High-level language, primarily intended for numerical computations"
 maintainer="Diogo Leal <diogo@diogoleal.com>"
 license="GPL-3.0-or-later"
 homepage="https://gnu.org/software/octave/"
-changelog="https://www.gnu.org/software/octave/NEWS-6.1.html"
+changelog="https://www.gnu.org/software/octave/NEWS-7.html"
 distfiles="${GNU_SITE}/octave/octave-${version}.tar.gz"
-checksum=232065f3a72fc3013fe9f17f429a3df69d672c1f6b6077029a31c8f3cd58a66e
+checksum=6e14a4649d70af45ab660f8cbbf645aaf1ec33f25f88bfda4697cb17e440c4f5
+
+# avoid warnings due to egrep deprecation
+export EGREP="grep -E"
 
 # Use OpenBLAS on platforms where it is available and fallback to regular BLAS
 # on all others.
@@ -22,29 +26,40 @@ case "$XBPS_TARGET_MACHINE" in
 	# List of supported architectures copied from openblas.
 	armv[67]*|aarch64*|i686*|x86_64*|ppc64*)
 		makedepends+=" openblas-devel"
-		configure_args=" --with-blas=openblas --with-lapack=openblas"
+		configure_args+=" --with-blas=openblas --with-lapack=openblas"
 		;;
 	*)
 		makedepends+=" blas-devel lapack-devel"
 		;;
 esac
 
+case $XBPS_TARGET_MACHINE in
+	i686*)
+	# spqr is broken on i686; running `qr(sparse(1,1))` yields a segfault:
+	#
+	#		octave:1> qr(sparse(1,1));
+	#		fatal: caught signal Segmentation fault -- stopping myself...
+	#		Segmentation fault
+	#
+	configure_args+=" --without-spqr"
+	;;
+esac
+
 # Package build options
-# TODO: some options are still missing, such as
-# java, qrupdate, suitesparse
+# TODO: some options are still missing, such as java, qrupdate
 build_options="
-	arpack
-	audio
-	curl
-	fftw3
-	graphicsmagick
-	gui
-	hdf5
-	imagemagick
-	opengl
-	openmp
-	qhull
-	zlib"
+ arpack
+ audio
+ curl
+ fftw3
+ graphicsmagick
+ gui
+ hdf5
+ imagemagick
+ opengl
+ openmp
+ qhull
+ zlib"
 
 vopt_conflict graphicsmagick imagemagick
 
@@ -61,31 +76,42 @@ 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
-	gui
-	hdf5
-	opengl
-	openmp
-	qhull
-	zlib"
+ arpack
+ audio
+ curl
+ fftw3
+ graphicsmagick
+ gui
+ opengl
+ openmp
+ qhull
+ zlib"
+
+if [ -z "$CROSS_BUILD" ]; then
+	# hdf5 is nocross
+	build_options_default+=" hdf5"
+fi
+
+if [ -n "$CROSS_BUILD" ];then
+	# cross build cannot determine integer size for BLAS
+	# our BLAS (lapack and openblas) are built with 32 bit ints
+	# even in 64 bit architectures
+	configure_args+=" ax_blas_integer_size=4"
+fi
 
 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 'qt5-devel qt5-plugin-sqlite qscintilla-qt5-devel qt5-tools-devel')
-	$(vopt_if hdf5 hdf5-devel)
-	$(vopt_if imagemagick libmagick-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)"
+ $(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 'qt5-devel qt5-plugin-sqlite qscintilla-qt5-devel qt5-tools-devel')
+ $(vopt_if hdf5 hdf5-devel)
+ $(vopt_if imagemagick libmagick-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)"
 
 case "$XBPS_TARGET_MACHINE" in
 	ppc64*) ;;
@@ -100,4 +126,14 @@ post_install() {
 	# add helper to launch octave from dmenu etc.
 	printf "#!/bin/sh\noctave --gui" > octave-gui
 	vbin octave-gui
+
+	# install man pages
+	for f in doc/*/*.1; do
+		vman $f
+	done
+
+	# install info files
+	vmkdir usr/share/info
+	touch ${DESTDIR}/usr/share/info/dir
+	vcopy "doc/*/*.info*" usr/share/info
 }

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: octave: update to 7.3.0.
  2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
                   ` (5 preceding siblings ...)
  2022-12-06 21:50 ` [PR PATCH] [Updated] " tornaria
@ 2022-12-06 22:11 ` tornaria
  2022-12-06 22:54 ` tornaria
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: tornaria @ 2022-12-06 22:11 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1087 bytes --]

New comment by tornaria on void-packages repository

https://github.com/void-linux/void-packages/pull/40720#issuecomment-1340076459

Comment:
The testsuite was giving a segfault on i686, when using `qr` on a sparse matrix. In fact this is trivial to reproduce:
```
octave:1> qr(sparse(1,1));
fatal: caught signal Segmentation fault -- stopping myself...
Segmentation fault
```
I "solved" it by using `--without-spqr` on i686 builds.

---

Then there are a couple of test failures seemingly due to numerical unstability, but they are not fixed with the standard tricks (`-ffloat-store`, `-mfpmath=sse`, etc). At least one is unrelated to octave as I can reproduce with:
```
$ cat sin.cc 
#include <complex>
#include <iostream>

int main()
{
	std::complex<double> c(-1.3962634015954636, 3.141592653589793);
	std::complex<double> d(-11.415845458288851, 2.0054175437381652);
	std::complex<double> e = std::sin(c) - d;

	std::cout << e << std::endl;
}
$ g++ sin.cc -o sin && ./sin                    
(-1.77636e-15,0)
```
The same code on x86_64 gives `(0,0)`.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: octave: update to 7.3.0.
  2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
                   ` (6 preceding siblings ...)
  2022-12-06 22:11 ` tornaria
@ 2022-12-06 22:54 ` tornaria
  2022-12-07  0:14 ` Piraty
  2022-12-07  0:14 ` [PR PATCH] [Merged]: " Piraty
  9 siblings, 0 replies; 11+ messages in thread
From: tornaria @ 2022-12-06 22:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1919 bytes --]

New comment by tornaria on void-packages repository

https://github.com/void-linux/void-packages/pull/40720#issuecomment-1340120164

Comment:
Summary of testsuite (since failures don't error out):
 - on `x86_64`, everything looks ok:
```
Summary:

  PASS                            17107
  FAIL                                0
  XFAIL (reported bug)               33
  SKIP (missing feature)            140
  SKIP (run-time condition)          52
```
 - on `x86_64-musl`, 6 regressions:
```
  libinterp/corefcn/mappers.cc-tst ............................... pass  412/420 
                                                              REGRESSION   6
...
Summary:

  PASS                            17099
  FAIL                                0
  REGRESSION                          6
  XFAIL (reported bug)               35
  SKIP (missing feature)            140
  SKIP (run-time condition)          52
```
 - on `i686`, 2 failures and 1 regression:
```

  libinterp/corefcn/qz.cc-tst .................................... pass    3/4   
                                                                   FAIL    1
  libinterp/corefcn/sqrtm.cc-tst ................................. pass    3/4   
                                                              REGRESSION   1
...
  elfun/sind.m ................................................... pass    9/10  
                                                                   FAIL    1
...
Summary:

  PASS                            17095
  FAIL                                2
  REGRESSION                          1
  XFAIL (reported bug)               30
  SKIP (missing feature)            152
  SKIP (run-time condition)          52
```
Note that `i686` has more skips because of the `--without-spqr`.

I'm satisfied as it is, I'm not going to work on fixing these unless this causes some real issue for someone.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: octave: update to 7.3.0.
  2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
                   ` (7 preceding siblings ...)
  2022-12-06 22:54 ` tornaria
@ 2022-12-07  0:14 ` Piraty
  2022-12-07  0:14 ` [PR PATCH] [Merged]: " Piraty
  9 siblings, 0 replies; 11+ messages in thread
From: Piraty @ 2022-12-07  0:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 152 bytes --]

New comment by Piraty on void-packages repository

https://github.com/void-linux/void-packages/pull/40720#issuecomment-1340187751

Comment:
good work!!

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR PATCH] [Merged]: octave: update to 7.3.0.
  2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
                   ` (8 preceding siblings ...)
  2022-12-07  0:14 ` Piraty
@ 2022-12-07  0:14 ` Piraty
  9 siblings, 0 replies; 11+ messages in thread
From: Piraty @ 2022-12-07  0:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1753 bytes --]

There's a merged pull request on the void-packages repository

octave: update to 7.3.0.
https://github.com/void-linux/void-packages/pull/40720

Description:
- Fix cross build
- Use SuiteSparse
- Use rapidjson
- Use --disable-docs to skip building docs, instead install the docs in
  the tarball. This way we don't need texlive/texinfo/gnuplot to build.
- Avoid warnings due to egrep deprecation
- xlint fixes


<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

---

I wonder if we really want all those build options. I am tempted to remove almost all of them.

I also wonder if the choice of `GraphicsMagick` over `ImageMagick` is the best one.

NOTE: this PR includes #39846 for the current SuiteSparse. Could work with the current SuiteSparse, but I didn't try (#39846 is ready to merge IMO; the CI failures in that PR are addressed in the comments)

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2022-12-07  0:14 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-24  3:02 [PR PATCH] octave: update to 7.3.0 tornaria
2022-11-24 11:47 ` [PR PATCH] [Updated] " tornaria
2022-12-04 14:56 ` hervyqa
2022-12-04 21:12 ` Piraty
2022-12-05  0:10 ` [PR PATCH] [Updated] " tornaria
2022-12-05  9:37 ` [PR REVIEW] " Piraty
2022-12-06 21:50 ` [PR PATCH] [Updated] " tornaria
2022-12-06 22:11 ` tornaria
2022-12-06 22:54 ` tornaria
2022-12-07  0:14 ` Piraty
2022-12-07  0:14 ` [PR PATCH] [Merged]: " Piraty

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).