From 3aee88cf4c145d0efc19d9eaacfd357298421525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20=C3=9Acar?= Date: Mon, 17 Aug 2020 01:29:20 +0200 Subject: [PATCH] https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager --- sagemath-flexiblas.patch | 47 ++++++++++++++++++++++++++++++++++++++++ sagemath.spec | 21 +++++++++++++----- 2 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 sagemath-flexiblas.patch diff --git a/sagemath-flexiblas.patch b/sagemath-flexiblas.patch new file mode 100644 index 0000000..c61641f --- /dev/null +++ b/sagemath-flexiblas.patch @@ -0,0 +1,47 @@ +diff -up src/module_list.py.orig src/module_list.py +--- src/module_list.py.orig 2019-10-03 16:51:55.350850836 -0300 ++++ src/module_list.py 2019-10-03 16:52:06.479917297 -0300 +@@ -11,20 +11,17 @@ SAGE_INC = '/usr/include' + import pkgconfig + + # CBLAS can be one of multiple implementations +-cblas_pc = pkgconfig.parse('cblas') +-cblas_libs = cblas_pc['libraries'] +-cblas_library_dirs = cblas_pc['library_dirs'] +-cblas_include_dirs = cblas_pc['include_dirs'] ++cblas_libs = ['flexiblas'] ++cblas_library_dirs = ['/usr/lib'] ++cblas_include_dirs = ['/usr/include/flexiblas'] + + # TODO: Remove Cygwin hack by installing a suitable cblas.pc + if os.path.exists('/usr/lib/libblas.dll.a'): + cblas_libs = ['gslcblas'] + +-# LAPACK can be one of multiple implementations +-lapack_pc = pkgconfig.parse('lapack') +-lapack_libs = lapack_pc['libraries'] +-lapack_library_dirs = lapack_pc['library_dirs'] +-lapack_include_dirs = lapack_pc['include_dirs'] ++lapack_libs = [ 'flexiblas' ] ++lapack_library_dirs = ['/usr/lib'] ++lapack_include_dirs = ['/usr/include/flexiblas'] + + # GD image library + gd_pc = pkgconfig.parse('gdlib') +diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py +--- src/sage/misc/cython.py.orig 2019-10-03 16:51:42.848776173 -0300 ++++ src/sage/misc/cython.py 2019-10-03 16:52:06.480917303 -0300 +@@ -35,10 +35,9 @@ from sage.misc.sage_ostools import resto + + + # CBLAS can be one of multiple implementations +-cblas_pc = pkgconfig.parse('cblas') +-cblas_libs = list(cblas_pc['libraries']) +-cblas_library_dirs = list(cblas_pc['library_dirs']) +-cblas_include_dirs = list(cblas_pc['include_dirs']) ++cblas_libs = ['flexiblas'] ++cblas_library_dirs = ['/usr/lib'] ++cblas_include_dirs = ['/usr/include/flexiblas'] + + standard_libs = [ + 'mpfr', 'gmp', 'gmpxx', 'stdc++', 'pari', 'm', diff --git a/sagemath.spec b/sagemath.spec index 9f34c5b..f24be72 100644 --- a/sagemath.spec +++ b/sagemath.spec @@ -11,6 +11,15 @@ %bcond_without bundled_widgetsnbextension %bcond_without install_hack +%if 0%{?fedora} >= 33 +%bcond_without flexiblas +%endif +%if %{with flexiblas} +%global blaslib flexiblas +%else +%global blaslib openblas +%endif + # jmol has been retired from Fedora; set this if it ever comes back %bcond_with jmol @@ -94,7 +103,7 @@ Name: sagemath Summary: A free open-source mathematics software system Version: 9.1 -Release: 2%{?dist} +Release: 3%{?dist} # The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file # Additionally, every $files section has a comment with the license name # before files with that license @@ -183,8 +192,8 @@ Patch21: %{name}-arb.patch # Add missing include paths Patch22: %{name}-includes.patch -# Use openblas -Patch23: %{name}-openblas.patch +# Use [flexi/open]blas +Patch23: %{name}-%{blaslib}.patch # Fix paths to latte-integrale binaries Patch24: %{name}-latte.patch @@ -275,7 +284,6 @@ BuildRequires: jsmol %endif BuildRequires: jsmath-fonts BuildRequires: L-function-devel -BuildRequires: lapack-devel BuildRequires: latte-integrale BuildRequires: libbraiding-devel BuildRequires: libfplll-devel @@ -294,7 +302,7 @@ BuildRequires: mcqd-devel BuildRequires: mpfi-devel BuildRequires: nauty BuildRequires: ntl-devel -BuildRequires: openblas-devel +BuildRequires: %{blaslib}-devel BuildRequires: openssl BuildRequires: palp BuildRequires: pari-devel @@ -1816,6 +1824,9 @@ rm -fr %{SAGE_LOCAL}/var/lib/sage/installed/database_cremona_ellcurve-%{cremona_ ######################################################################## %changelog +* Thu Aug 13 2020 Iñaki Úcar - 9.1-3 +- https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager + * Wed Jul 29 2020 Fedora Release Engineering - 9.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild