Release 3.16.0
This commit is contained in:
parent
39d86b8af9
commit
9645be1945
2
.gitignore
vendored
2
.gitignore
vendored
@ -40,3 +40,5 @@
|
|||||||
/petsc4py-3.15.3.tar.gz
|
/petsc4py-3.15.3.tar.gz
|
||||||
/petsc-with-docs-3.15.4.tar.gz
|
/petsc-with-docs-3.15.4.tar.gz
|
||||||
/petsc4py-3.15.4.tar.gz
|
/petsc4py-3.15.4.tar.gz
|
||||||
|
/petsc-with-docs-3.16.0.tar.gz
|
||||||
|
/petsc4py-3.16.0.tar.gz
|
||||||
|
@ -1,133 +0,0 @@
|
|||||||
diff --git a/config/gmakegen.py b/config/gmakegen.py
|
|
||||||
index cc42a25..ca286ac 100755
|
|
||||||
--- a/config/gmakegen.py
|
|
||||||
+++ b/config/gmakegen.py
|
|
||||||
@@ -1,12 +1,127 @@
|
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import os
|
|
||||||
-from distutils.sysconfig import parse_makefile
|
|
||||||
import sys
|
|
||||||
import logging
|
|
||||||
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
|
|
||||||
from collections import defaultdict
|
|
||||||
|
|
||||||
+
|
|
||||||
+# Embedded distutils.sysconfig.parse_makefile() from Python 3.9
|
|
||||||
+# To workaround https://bugs.python.org/issue44351
|
|
||||||
+import re
|
|
||||||
+# Regexes needed for parsing Makefile (and similar syntaxes,
|
|
||||||
+# like old-style Setup files).
|
|
||||||
+_variable_rx = re.compile(r"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)")
|
|
||||||
+_findvar1_rx = re.compile(r"\$\(([A-Za-z][A-Za-z0-9_]*)\)")
|
|
||||||
+_findvar2_rx = re.compile(r"\${([A-Za-z][A-Za-z0-9_]*)}")
|
|
||||||
+
|
|
||||||
+def parse_makefile(fn, g=None):
|
|
||||||
+ """Parse a Makefile-style file.
|
|
||||||
+
|
|
||||||
+ A dictionary containing name/value pairs is returned. If an
|
|
||||||
+ optional dictionary is passed in as the second argument, it is
|
|
||||||
+ used instead of a new dictionary.
|
|
||||||
+ """
|
|
||||||
+ from distutils.text_file import TextFile
|
|
||||||
+ fp = TextFile(fn, strip_comments=1, skip_blanks=1, join_lines=1, errors="surrogateescape")
|
|
||||||
+
|
|
||||||
+ if g is None:
|
|
||||||
+ g = {}
|
|
||||||
+ done = {}
|
|
||||||
+ notdone = {}
|
|
||||||
+
|
|
||||||
+ while True:
|
|
||||||
+ line = fp.readline()
|
|
||||||
+ if line is None: # eof
|
|
||||||
+ break
|
|
||||||
+ m = _variable_rx.match(line)
|
|
||||||
+ if m:
|
|
||||||
+ n, v = m.group(1, 2)
|
|
||||||
+ v = v.strip()
|
|
||||||
+ # `$$' is a literal `$' in make
|
|
||||||
+ tmpv = v.replace('$$', '')
|
|
||||||
+
|
|
||||||
+ if "$" in tmpv:
|
|
||||||
+ notdone[n] = v
|
|
||||||
+ else:
|
|
||||||
+ try:
|
|
||||||
+ v = int(v)
|
|
||||||
+ except ValueError:
|
|
||||||
+ # insert literal `$'
|
|
||||||
+ done[n] = v.replace('$$', '$')
|
|
||||||
+ else:
|
|
||||||
+ done[n] = v
|
|
||||||
+
|
|
||||||
+ # Variables with a 'PY_' prefix in the makefile. These need to
|
|
||||||
+ # be made available without that prefix through sysconfig.
|
|
||||||
+ # Special care is needed to ensure that variable expansion works, even
|
|
||||||
+ # if the expansion uses the name without a prefix.
|
|
||||||
+ renamed_variables = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS')
|
|
||||||
+
|
|
||||||
+ # do variable interpolation here
|
|
||||||
+ while notdone:
|
|
||||||
+ for name in list(notdone):
|
|
||||||
+ value = notdone[name]
|
|
||||||
+ m = _findvar1_rx.search(value) or _findvar2_rx.search(value)
|
|
||||||
+ if m:
|
|
||||||
+ n = m.group(1)
|
|
||||||
+ found = True
|
|
||||||
+ if n in done:
|
|
||||||
+ item = str(done[n])
|
|
||||||
+ elif n in notdone:
|
|
||||||
+ # get it on a subsequent round
|
|
||||||
+ found = False
|
|
||||||
+ elif n in os.environ:
|
|
||||||
+ # do it like make: fall back to environment
|
|
||||||
+ item = os.environ[n]
|
|
||||||
+
|
|
||||||
+ elif n in renamed_variables:
|
|
||||||
+ if name.startswith('PY_') and name[3:] in renamed_variables:
|
|
||||||
+ item = ""
|
|
||||||
+
|
|
||||||
+ elif 'PY_' + n in notdone:
|
|
||||||
+ found = False
|
|
||||||
+
|
|
||||||
+ else:
|
|
||||||
+ item = str(done['PY_' + n])
|
|
||||||
+ else:
|
|
||||||
+ done[n] = item = ""
|
|
||||||
+ if found:
|
|
||||||
+ after = value[m.end():]
|
|
||||||
+ value = value[:m.start()] + item + after
|
|
||||||
+ if "$" in after:
|
|
||||||
+ notdone[name] = value
|
|
||||||
+ else:
|
|
||||||
+ try: value = int(value)
|
|
||||||
+ except ValueError:
|
|
||||||
+ done[name] = value.strip()
|
|
||||||
+ else:
|
|
||||||
+ done[name] = value
|
|
||||||
+ del notdone[name]
|
|
||||||
+
|
|
||||||
+ if name.startswith('PY_') \
|
|
||||||
+ and name[3:] in renamed_variables:
|
|
||||||
+
|
|
||||||
+ name = name[3:]
|
|
||||||
+ if name not in done:
|
|
||||||
+ done[name] = value
|
|
||||||
+ else:
|
|
||||||
+ # bogus variable reference; just drop it since we can't deal
|
|
||||||
+ del notdone[name]
|
|
||||||
+
|
|
||||||
+ fp.close()
|
|
||||||
+
|
|
||||||
+ # strip spurious spaces
|
|
||||||
+ for k, v in done.items():
|
|
||||||
+ if isinstance(v, str):
|
|
||||||
+ done[k] = v.strip()
|
|
||||||
+
|
|
||||||
+ # save the results in the global dictionary
|
|
||||||
+ g.update(done)
|
|
||||||
+ return g
|
|
||||||
+
|
|
||||||
+
|
|
||||||
AUTODIRS = set('ftn-auto ftn-custom f90-custom'.split()) # Automatically recurse into these, if they exist
|
|
||||||
SKIPDIRS = set('benchmarks build'.split()) # Skip these during the build
|
|
||||||
NOWARNDIRS = set('tests tutorials'.split()) # Do not warn about mismatch in these
|
|
35
petsc.spec
35
petsc.spec
@ -108,7 +108,7 @@
|
|||||||
FCFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules" \\\
|
FCFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules" \\\
|
||||||
%else \
|
%else \
|
||||||
CFLAGS="$CFLAGS -O3 -fPIC" CXXFLAGS="$CXXFLAGS -O3 -fPIC" FFLAGS="$FFLAGS -O3 -fPIC" LDFLAGS="$LDFLAGS -fPIC" \\\
|
CFLAGS="$CFLAGS -O3 -fPIC" CXXFLAGS="$CXXFLAGS -O3 -fPIC" FFLAGS="$FFLAGS -O3 -fPIC" LDFLAGS="$LDFLAGS -fPIC" \\\
|
||||||
COPTFLAGS="$CFLAGS" CXXOPTFLAGS="$CXXFLAGS" FOPTFLAGS="$FFLAGS" \\\
|
COPTFLAGS="$CFLAGS -O3" CXXOPTFLAGS="$CXXFLAGS -O3" FOPTFLAGS="$FFLAGS -O3" \\\
|
||||||
FCFLAGS="$FFLAGS -O3 -fPIC" \\\
|
FCFLAGS="$FFLAGS -O3 -fPIC" \\\
|
||||||
%endif \
|
%endif \
|
||||||
--CC_LINKER_FLAGS="$LDFLAGS" \\\
|
--CC_LINKER_FLAGS="$LDFLAGS" \\\
|
||||||
@ -134,10 +134,8 @@
|
|||||||
--with-mkl_sparse_optimize=0 \\\
|
--with-mkl_sparse_optimize=0 \\\
|
||||||
--with-mkl_cpardiso=0 \\\
|
--with-mkl_cpardiso=0 \\\
|
||||||
--with-mkl_pardiso=0 \\\
|
--with-mkl_pardiso=0 \\\
|
||||||
--with-python=0 \\\
|
--with-python=0 \\\
|
||||||
%if 0%{?fedora} \
|
--with-cxxlib-autodetect=1 \\\
|
||||||
--with-cxxlib-autodetect=0 \\\
|
|
||||||
%endif \
|
|
||||||
%if %{with debug} \
|
%if %{with debug} \
|
||||||
--with-debugging=1 \\\
|
--with-debugging=1 \\\
|
||||||
%else \
|
%else \
|
||||||
@ -176,7 +174,7 @@
|
|||||||
FCFLAGS="-O0 -g -Wl,-z,now -fPIC -I${MPI_FORTRAN_MOD_DIR}" \\\
|
FCFLAGS="-O0 -g -Wl,-z,now -fPIC -I${MPI_FORTRAN_MOD_DIR}" \\\
|
||||||
%else \
|
%else \
|
||||||
CFLAGS="$CFLAGS -O3 -fPIC" CXXFLAGS="$CXXFLAGS -O3 -fPIC" FFLAGS="$FFLAGS -O3 -fPIC" LDFLAGS="$LDFLAGS -fPIC" \\\
|
CFLAGS="$CFLAGS -O3 -fPIC" CXXFLAGS="$CXXFLAGS -O3 -fPIC" FFLAGS="$FFLAGS -O3 -fPIC" LDFLAGS="$LDFLAGS -fPIC" \\\
|
||||||
COPTFLAGS="$CFLAGS" CXXOPTFLAGS="$CXXFLAGS" FOPTFLAGS="$FFLAGS" \\\
|
COPTFLAGS="$CFLAGS -O3" CXXOPTFLAGS="$CXXFLAGS -O3" FOPTFLAGS="$FFLAGS -O3" \\\
|
||||||
FCFLAGS="$FFLAGS -O3 -fPIC" \\\
|
FCFLAGS="$FFLAGS -O3 -fPIC" \\\
|
||||||
%endif \
|
%endif \
|
||||||
--CC_LINKER_FLAGS="$LDFLAGS" \\\
|
--CC_LINKER_FLAGS="$LDFLAGS" \\\
|
||||||
@ -206,9 +204,7 @@
|
|||||||
--with-petsc4py=1 \\\
|
--with-petsc4py=1 \\\
|
||||||
--with-petsc4py-test-np="`/usr/bin/getconf _NPROCESSORS_ONLN`" \\\
|
--with-petsc4py-test-np="`/usr/bin/getconf _NPROCESSORS_ONLN`" \\\
|
||||||
%endif \
|
%endif \
|
||||||
%if 0%{?fedora} \
|
--with-cxxlib-autodetect=1 \\\
|
||||||
--with-cxxlib-autodetect=0 \\\
|
|
||||||
%endif \
|
|
||||||
--with-threadsafety=0 --with-log=1 \\\
|
--with-threadsafety=0 --with-log=1 \\\
|
||||||
%if %{with debug} \
|
%if %{with debug} \
|
||||||
--with-debugging=1 \\\
|
--with-debugging=1 \\\
|
||||||
@ -273,12 +269,12 @@
|
|||||||
%global mpichversion %(rpm -qi mpich | awk -F': ' '/Version/ {print $2}')
|
%global mpichversion %(rpm -qi mpich | awk -F': ' '/Version/ {print $2}')
|
||||||
%global openmpiversion %(rpm -qi openmpi | awk -F': ' '/Version/ {print $2}')
|
%global openmpiversion %(rpm -qi openmpi | awk -F': ' '/Version/ {print $2}')
|
||||||
%global majorver 3
|
%global majorver 3
|
||||||
%global releasever 3.15
|
%global releasever 3.16
|
||||||
|
|
||||||
Name: petsc
|
Name: petsc
|
||||||
Summary: Portable Extensible Toolkit for Scientific Computation
|
Summary: Portable Extensible Toolkit for Scientific Computation
|
||||||
Version: %{releasever}.4
|
Version: %{releasever}.0
|
||||||
Release: 4%{?dist}
|
Release: 1%{?dist}
|
||||||
License: BSD
|
License: BSD
|
||||||
URL: https://petsc.org/
|
URL: https://petsc.org/
|
||||||
Source0: https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-with-docs-%{version}.tar.gz
|
Source0: https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-with-docs-%{version}.tar.gz
|
||||||
@ -297,14 +293,8 @@ Patch3: %{name}-3.13-fix_mumps_includes.patch
|
|||||||
Patch4: %{name}-3.13.0-fix_metis64.patch
|
Patch4: %{name}-3.13.0-fix_metis64.patch
|
||||||
Patch5: %{name}-3.15.0-fix_sundials_version.patch
|
Patch5: %{name}-3.15.0-fix_sundials_version.patch
|
||||||
Patch6: %{name}-3.14.1-fix_pkgconfig_file.patch
|
Patch6: %{name}-3.14.1-fix_pkgconfig_file.patch
|
||||||
|
|
||||||
Patch7: %{name}-3.4.1-avoid_fake_MKL_detection.patch
|
Patch7: %{name}-3.4.1-avoid_fake_MKL_detection.patch
|
||||||
|
|
||||||
# Embed distutils.sysconfig.parse_makefile() from Python 3.9
|
|
||||||
# To workaround https://bugs.python.org/issue44351
|
|
||||||
# Only used on build time
|
|
||||||
Patch8: %{name}-3.15.0-workaround-broken-parse_makefile.patch
|
|
||||||
|
|
||||||
%if %{with superlu}
|
%if %{with superlu}
|
||||||
BuildRequires: SuperLU-devel >= 5.2.0
|
BuildRequires: SuperLU-devel >= 5.2.0
|
||||||
%endif
|
%endif
|
||||||
@ -577,12 +567,6 @@ Portable Extensible Toolkit for Scientific Computation (developer files).
|
|||||||
cp -a petsc4py-%{version}/* %{name}-%{version}/
|
cp -a petsc4py-%{version}/* %{name}-%{version}/
|
||||||
rm -rf %{name}-%{version}/*.egg-info
|
rm -rf %{name}-%{version}/*.egg-info
|
||||||
rm -rf petsc4py-%{version}
|
rm -rf petsc4py-%{version}
|
||||||
|
|
||||||
%if 0%{?python3_version_nodots} >= 310
|
|
||||||
pushd %{name}-%{version}
|
|
||||||
%patch8 -p1 -b .backup
|
|
||||||
popd
|
|
||||||
%endif
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
pushd %{name}-%{version}
|
pushd %{name}-%{version}
|
||||||
@ -1171,6 +1155,9 @@ xvfb-run -a make MAKE_NP=$RPM_BUILD_NCPUS all test -C build64 V=1 MPIEXEC='%{_bu
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Oct 16 2021 Antonio Trande <sagitter@fedoraproject.org> - 3.16.0-1
|
||||||
|
- Release 3.16.0
|
||||||
|
|
||||||
* Tue Oct 12 2021 Antonio Trande <sagitter@fedoraproject.org> - 3.15.4-4
|
* Tue Oct 12 2021 Antonio Trande <sagitter@fedoraproject.org> - 3.15.4-4
|
||||||
- Rebuild for openmpi-4.1.2
|
- Rebuild for openmpi-4.1.2
|
||||||
|
|
||||||
|
4
sources
4
sources
@ -1,2 +1,2 @@
|
|||||||
SHA512 (petsc-with-docs-3.15.4.tar.gz) = b6a1d48aab1c2639a4c1cbd8b313ace253f1c36eedaa3de3508ffbd6060e1def99e2f516ed9bb509307f614b41791d09342e2c2280c0b2c25dda1092b0e569d2
|
SHA512 (petsc-with-docs-3.16.0.tar.gz) = ed58dd2f479b4177176f12aea55c8fd48a39e1f5105194896509d5e469095eb04c48405d4c062cc500b19e0b140a6984b482aa2a211b5fefc5be18d7071ec45a
|
||||||
SHA512 (petsc4py-3.15.4.tar.gz) = 150c46b195f4ba56af8ca219a039901eeaa69a39615e84b844a55d20b1f8df3f6ce32ee1e51853e857dd9e1f4230330c2f16b21951ed56bef8e7eeeb8bfae1bd
|
SHA512 (petsc4py-3.16.0.tar.gz) = e20bcb297bce84eb02b5f24fbd914e916e49c64e1588266f832f2b3bbda2b0fb848f00f000f02e11d127cf3ea220a1d13e86d4f06eb7818c00f526663b1db695
|
||||||
|
Loading…
Reference in New Issue
Block a user