Github messages for voidlinux
 help / color / mirror / Atom feed
From: tornaria <tornaria@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] SuiteSparse: update to 6.0.1.
Date: Sun, 04 Dec 2022 01:23:16 +0100	[thread overview]
Message-ID: <20221204002316.pxWWWVDnxE3Ch14SNDj_JQlJGrxNYZivPLb5KqzEqGM@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-39846@inbox.vuxu.org>

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

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

https://github.com/tornaria/void-packages SuiteSparse
https://github.com/void-linux/void-packages/pull/39846

SuiteSparse: update to 6.0.1.
<!-- Uncomment relevant sections and delete options which are not applicable -->

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

`SuiteSparse` is used in sagemath through `python3-cvxopt` -- I ran the sagemath testsuite with this update.

<!--
#### 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/39846.patch is attached

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

From 6ebe71ce7c92ceccf503b2739e516cec5c9a1784 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/2] 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 644676c76ec2..2832875d8ce4 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
@@ -4071,9 +4070,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 e27800bd05eff541dc3cbfe9f0e7a3b5db59fe89 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/2] 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')
 }

  parent reply	other threads:[~2022-12-04  0:23 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-09 20:48 [PR PATCH] SuiteSparse: update to 5.13.0 tornaria
2022-10-15 13:24 ` tornaria
2022-11-13  3:41 ` [PR PATCH] [Updated] " tornaria
2022-11-15 20:50 ` [PR PATCH] [Updated] SuiteSparse: update to 6.0.0 tornaria
2022-11-16  1:54 ` SuiteSparse: update to 6.0.1 tornaria
2022-11-24 10:55 ` [PR PATCH] [Updated] " tornaria
2022-11-24 11:19 ` tornaria
2022-11-24 11:22 ` tornaria
2022-11-24 11:27 ` tornaria
2022-11-24 12:45 ` tornaria
2022-12-03 22:37 ` Piraty
2022-12-03 22:46 ` Piraty
2022-12-03 22:48 ` Piraty
2022-12-04  0:16 ` Piraty
2022-12-04  0:23 ` tornaria [this message]
2022-12-04  1:44 ` tornaria
2022-12-04 21:11 ` [PR PATCH] [Merged]: " Piraty

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221204002316.pxWWWVDnxE3Ch14SNDj_JQlJGrxNYZivPLb5KqzEqGM@z \
    --to=tornaria@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).