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
|
||||
/petsc-with-docs-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
|
33
petsc.spec
33
petsc.spec
@ -108,7 +108,7 @@
|
||||
FCFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules" \\\
|
||||
%else \
|
||||
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" \\\
|
||||
%endif \
|
||||
--CC_LINKER_FLAGS="$LDFLAGS" \\\
|
||||
@ -135,9 +135,7 @@
|
||||
--with-mkl_cpardiso=0 \\\
|
||||
--with-mkl_pardiso=0 \\\
|
||||
--with-python=0 \\\
|
||||
%if 0%{?fedora} \
|
||||
--with-cxxlib-autodetect=0 \\\
|
||||
%endif \
|
||||
--with-cxxlib-autodetect=1 \\\
|
||||
%if %{with debug} \
|
||||
--with-debugging=1 \\\
|
||||
%else \
|
||||
@ -176,7 +174,7 @@
|
||||
FCFLAGS="-O0 -g -Wl,-z,now -fPIC -I${MPI_FORTRAN_MOD_DIR}" \\\
|
||||
%else \
|
||||
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" \\\
|
||||
%endif \
|
||||
--CC_LINKER_FLAGS="$LDFLAGS" \\\
|
||||
@ -206,9 +204,7 @@
|
||||
--with-petsc4py=1 \\\
|
||||
--with-petsc4py-test-np="`/usr/bin/getconf _NPROCESSORS_ONLN`" \\\
|
||||
%endif \
|
||||
%if 0%{?fedora} \
|
||||
--with-cxxlib-autodetect=0 \\\
|
||||
%endif \
|
||||
--with-cxxlib-autodetect=1 \\\
|
||||
--with-threadsafety=0 --with-log=1 \\\
|
||||
%if %{with debug} \
|
||||
--with-debugging=1 \\\
|
||||
@ -273,12 +269,12 @@
|
||||
%global mpichversion %(rpm -qi mpich | awk -F': ' '/Version/ {print $2}')
|
||||
%global openmpiversion %(rpm -qi openmpi | awk -F': ' '/Version/ {print $2}')
|
||||
%global majorver 3
|
||||
%global releasever 3.15
|
||||
%global releasever 3.16
|
||||
|
||||
Name: petsc
|
||||
Summary: Portable Extensible Toolkit for Scientific Computation
|
||||
Version: %{releasever}.4
|
||||
Release: 4%{?dist}
|
||||
Version: %{releasever}.0
|
||||
Release: 1%{?dist}
|
||||
License: BSD
|
||||
URL: https://petsc.org/
|
||||
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
|
||||
Patch5: %{name}-3.15.0-fix_sundials_version.patch
|
||||
Patch6: %{name}-3.14.1-fix_pkgconfig_file.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}
|
||||
BuildRequires: SuperLU-devel >= 5.2.0
|
||||
%endif
|
||||
@ -577,12 +567,6 @@ Portable Extensible Toolkit for Scientific Computation (developer files).
|
||||
cp -a petsc4py-%{version}/* %{name}-%{version}/
|
||||
rm -rf %{name}-%{version}/*.egg-info
|
||||
rm -rf petsc4py-%{version}
|
||||
|
||||
%if 0%{?python3_version_nodots} >= 310
|
||||
pushd %{name}-%{version}
|
||||
%patch8 -p1 -b .backup
|
||||
popd
|
||||
%endif
|
||||
%endif
|
||||
|
||||
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
|
||||
|
||||
%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
|
||||
- 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 (petsc4py-3.15.4.tar.gz) = 150c46b195f4ba56af8ca219a039901eeaa69a39615e84b844a55d20b1f8df3f6ce32ee1e51853e857dd9e1f4230330c2f16b21951ed56bef8e7eeeb8bfae1bd
|
||||
SHA512 (petsc-with-docs-3.16.0.tar.gz) = ed58dd2f479b4177176f12aea55c8fd48a39e1f5105194896509d5e469095eb04c48405d4c062cc500b19e0b140a6984b482aa2a211b5fefc5be18d7071ec45a
|
||||
SHA512 (petsc4py-3.16.0.tar.gz) = e20bcb297bce84eb02b5f24fbd914e916e49c64e1588266f832f2b3bbda2b0fb848f00f000f02e11d127cf3ea220a1d13e86d4f06eb7818c00f526663b1db695
|
||||
|
Loading…
Reference in New Issue
Block a user