From 9645be194564a015955aee9590a323d96b0767f2 Mon Sep 17 00:00:00 2001 From: Antonio Trande Date: Sat, 16 Oct 2021 17:15:19 +0200 Subject: [PATCH] Release 3.16.0 --- .gitignore | 2 + ...5.0-workaround-broken-parse_makefile.patch | 133 ------------------ petsc.spec | 35 ++--- sources | 4 +- 4 files changed, 15 insertions(+), 159 deletions(-) delete mode 100644 petsc-3.15.0-workaround-broken-parse_makefile.patch diff --git a/.gitignore b/.gitignore index a58c72a..e534238 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/petsc-3.15.0-workaround-broken-parse_makefile.patch b/petsc-3.15.0-workaround-broken-parse_makefile.patch deleted file mode 100644 index c3c7869..0000000 --- a/petsc-3.15.0-workaround-broken-parse_makefile.patch +++ /dev/null @@ -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 diff --git a/petsc.spec b/petsc.spec index 2f7be09..7d20e4b 100644 --- a/petsc.spec +++ b/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" \\\ @@ -134,10 +134,8 @@ --with-mkl_sparse_optimize=0 \\\ --with-mkl_cpardiso=0 \\\ --with-mkl_pardiso=0 \\\ - --with-python=0 \\\ - %if 0%{?fedora} \ - --with-cxxlib-autodetect=0 \\\ - %endif \ + --with-python=0 \\\ + --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 - 3.16.0-1 +- Release 3.16.0 + * Tue Oct 12 2021 Antonio Trande - 3.15.4-4 - Rebuild for openmpi-4.1.2 diff --git a/sources b/sources index eb9bdda..980c324 100644 --- a/sources +++ b/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