diff --git a/mpqc-2.3.1-c23-function-prototype.patch b/mpqc-2.3.1-c23-function-prototype.patch deleted file mode 100644 index 93db296..0000000 --- a/mpqc-2.3.1-c23-function-prototype.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff --git a/src/lib/math/isosurf/implicit.c b/src/lib/math/isosurf/implicit.c -index c02a0e1..bf37f5c 100644 ---- a/src/lib/math/isosurf/implicit.c -+++ b/src/lib/math/isosurf/implicit.c -@@ -124,8 +124,8 @@ typedef struct intlists { /* list of list of integers */ - } INTLISTS; - - typedef struct process { /* parameters, function, storage */ -- double (*function)(); /* implicit surface function */ -- int (*triproc)(); /* triangle output function */ -+ double (*function)(double, double, double); /* implicit surface function */ -+ int (*triproc)(int, int, int, VERTICES); /* triangle output function */ - double size, delta; /* cube size, normal delta */ - int bounds; /* cube range within lattice */ - POINT start; /* start point on surface */ -@@ -136,14 +136,12 @@ typedef struct process { /* parameters, function, storage */ - EDGELIST **edges; /* edge and vertex id hash table */ - } PROCESS; - --void *calloc(); -- - #define mycalloc(n,nbyte) _mycalloc(n,nbyte,__LINE__) - #define myfree(ptr) _myfree(ptr,__LINE__) - - static void makecubetable (); - static void free_cubetable(); --static void converge(POINT*,POINT*,double,double(*f)(),POINT*); -+static void converge(POINT*,POINT*,double,double(*f)(double, double, double),POINT*); - static CORNER *setcorner (PROCESS*, int, int, int); - static int setcenter(CENTERLIST *table[], int, int, int); - static int dotet (CUBE*, int, int, int, int, PROCESS*); -@@ -231,7 +229,7 @@ VERTICES vertices; - - main () - { -- char *err, *polygonize(); -+ char *err; - - keepaspect(1, 1); - winopen("implicit"); -@@ -346,13 +344,12 @@ main () - */ - - char *polygonize (function, size, bounds, x, y, z, triproc, mode) --double (*function)(), size, x, y, z; --int bounds, (*triproc)(), mode; -+double (*function)(double, double, double), size, x, y, z; -+int bounds, (*triproc)(int, int, int, VERTICES), mode; - { - PROCESS p; - int n, noabort; -- CORNER *setcorner(); -- TEST in, out, find(); -+ TEST in, out; - - p.function = function; - p.triproc = triproc; -@@ -499,7 +496,6 @@ int i, j, k, face, c1, c2, c3, c4; - { - CUBE new; - CUBES *oldcubes = p->cubes; -- CORNER *setcorner(); - int n, pos = old->corners[c1]->value > 0.0 ? 1 : 0; - /* static int facebit[6] = {2, 2, 1, 1, 0, 0}; */ - /* int bit = facebit[face]; */ -@@ -1015,7 +1011,7 @@ PROCESS *p; - - static void converge (p1, p2, v, function, p) - double v; --double (*function)(); -+double (*function)(double, double, double); - POINT *p1, *p2, *p; - { - int i = 0; diff --git a/mpqc-2.3.1-cpp17-exception-specification.patch b/mpqc-2.3.1-cpp17-exception-specification.patch deleted file mode 100644 index 5afd1db..0000000 --- a/mpqc-2.3.1-cpp17-exception-specification.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff --git a/src/lib/chemistry/qc/mbptr12/transform_ijxy.cc b/src/lib/chemistry/qc/mbptr12/transform_ijxy.cc -index 2b45d3b..a25e5f9 100644 ---- a/src/lib/chemistry/qc/mbptr12/transform_ijxy.cc -+++ b/src/lib/chemistry/qc/mbptr12/transform_ijxy.cc -@@ -174,7 +174,7 @@ TwoBodyMOIntsTransform_ijxy::init_acc() - } - - void --TwoBodyMOIntsTransform_ijxy::check_int_symm(double threshold) const throw (ProgrammingError) -+TwoBodyMOIntsTransform_ijxy::check_int_symm(double threshold) const /*throw (ProgrammingError)*/ - { - Ref iacc = ints_acc(); - if (!iacc->is_committed()) -diff --git a/src/lib/chemistry/qc/mbptr12/transform_ijxy.h b/src/lib/chemistry/qc/mbptr12/transform_ijxy.h -index 3407cb3..ecb61c6 100644 ---- a/src/lib/chemistry/qc/mbptr12/transform_ijxy.h -+++ b/src/lib/chemistry/qc/mbptr12/transform_ijxy.h -@@ -70,7 +70,7 @@ public: - /// Computes transformed integrals - void compute(); - /// Check symmetry of transformed integrals -- void check_int_symm(double threshold = TwoBodyMOIntsTransform::zero_integral) const throw (ProgrammingError); -+ void check_int_symm(double threshold = TwoBodyMOIntsTransform::zero_integral) const /*throw (ProgrammingError)*/; - }; - - } -diff --git a/src/lib/chemistry/qc/mbptr12/transform_ikjy.cc b/src/lib/chemistry/qc/mbptr12/transform_ikjy.cc -index ccb8d45..43c2fb6 100644 ---- a/src/lib/chemistry/qc/mbptr12/transform_ikjy.cc -+++ b/src/lib/chemistry/qc/mbptr12/transform_ikjy.cc -@@ -175,7 +175,7 @@ TwoBodyMOIntsTransform_ikjy::init_acc() - } - - void --TwoBodyMOIntsTransform_ikjy::check_int_symm(double threshold) const throw (ProgrammingError) -+TwoBodyMOIntsTransform_ikjy::check_int_symm(double threshold) const /*throw (ProgrammingError)*/ - { - Ref iacc = ints_acc(); - if (!iacc->is_committed()) -diff --git a/src/lib/chemistry/qc/mbptr12/transform_ikjy.h b/src/lib/chemistry/qc/mbptr12/transform_ikjy.h -index 5697813..4be38e4 100644 ---- a/src/lib/chemistry/qc/mbptr12/transform_ikjy.h -+++ b/src/lib/chemistry/qc/mbptr12/transform_ikjy.h -@@ -70,7 +70,7 @@ public: - /// Computes transformed integrals - void compute(); - /// Check symmetry of transformed integrals -- void check_int_symm(double threshold = TwoBodyMOIntsTransform::zero_integral) const throw (ProgrammingError); -+ void check_int_symm(double threshold = TwoBodyMOIntsTransform::zero_integral) const /*throw (ProgrammingError)*/; - }; - - } -diff --git a/src/lib/chemistry/qc/mbptr12/transform_ixjy.cc b/src/lib/chemistry/qc/mbptr12/transform_ixjy.cc -index 2548296..b4f08cd 100644 ---- a/src/lib/chemistry/qc/mbptr12/transform_ixjy.cc -+++ b/src/lib/chemistry/qc/mbptr12/transform_ixjy.cc -@@ -182,7 +182,7 @@ TwoBodyMOIntsTransform_ixjy::init_acc() - } - - void --TwoBodyMOIntsTransform_ixjy::check_int_symm(double threshold) const throw (ProgrammingError) -+TwoBodyMOIntsTransform_ixjy::check_int_symm(double threshold) const /*throw (ProgrammingError)*/ - { - Ref iacc = ints_acc(); - if (!iacc->is_committed()) -diff --git a/src/lib/chemistry/qc/mbptr12/transform_ixjy.h b/src/lib/chemistry/qc/mbptr12/transform_ixjy.h -index 8fda231..a10e4ef 100644 ---- a/src/lib/chemistry/qc/mbptr12/transform_ixjy.h -+++ b/src/lib/chemistry/qc/mbptr12/transform_ixjy.h -@@ -71,7 +71,7 @@ public: - /// Computes transformed integrals - void compute(); - /// Check symmetry of transformed integrals -- void check_int_symm(double threshold = TwoBodyMOIntsTransform::zero_integral) const throw (ProgrammingError); -+ void check_int_symm(double threshold = TwoBodyMOIntsTransform::zero_integral) const /*throw (ProgrammingError)*/; - }; - - } -diff --git a/src/lib/chemistry/qc/mbptr12/transform_tbint.h b/src/lib/chemistry/qc/mbptr12/transform_tbint.h -index 731a53c..57e4e19 100644 ---- a/src/lib/chemistry/qc/mbptr12/transform_tbint.h -+++ b/src/lib/chemistry/qc/mbptr12/transform_tbint.h -@@ -196,7 +196,7 @@ public: - /// Computes transformed integrals - virtual void compute() = 0; - /// Check symmetry of transformed integrals -- virtual void check_int_symm(double threshold = TwoBodyMOIntsTransform::zero_integral) const throw (ProgrammingError) =0; -+ virtual void check_int_symm(double threshold = TwoBodyMOIntsTransform::zero_integral) const /*throw (ProgrammingError)*/ =0; - /// Make the transform obsolete. Next call to compute() will recompute - virtual void obsolete(); - diff --git a/mpqc-2.3.1-cpp20-std_istream-redirect.patch b/mpqc-2.3.1-cpp20-std_istream-redirect.patch deleted file mode 100644 index 54c3ab0..0000000 --- a/mpqc-2.3.1-cpp20-std_istream-redirect.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- mpqc-2.3.1/src/lib/util/state/state_text.cc.cpp20 2002-10-11 04:58:21.000000000 +0900 -+++ mpqc-2.3.1/src/lib/util/state/state_text.cc 2026-01-15 14:40:20.392566622 +0900 -@@ -138,6 +138,7 @@ StateInText::no_array() - - /////////////////////////////////////////////////////////////////////// - -+/* - int - StateInText::read(char*s) - { -@@ -149,6 +150,7 @@ StateInText::read(char*s) - } - return strlen(s)+1; - } -+*/ - - int - StateInText::read(unsigned int&i) ---- mpqc-2.3.1/src/lib/util/state/state_text.h.cpp20 2002-04-03 15:44:40.000000000 +0900 -+++ mpqc-2.3.1/src/lib/util/state/state_text.h 2026-01-15 14:40:28.004235129 +0900 -@@ -94,7 +94,7 @@ class StateInText: public StateInFile { - void no_newline(); - void no_array(); - -- int read(char*); -+ /* int read(char*); */ - int read(unsigned int&); - int read(int&); - int read(float&); diff --git a/mpqc.spec b/mpqc.spec index 4253eb1..4a7bf89 100644 --- a/mpqc.spec +++ b/mpqc.spec @@ -1,9 +1,9 @@ Name: mpqc Summary: Ab-inito chemistry program Version: 2.3.1 -Release: 66%{?dist} -# Automatically converted from old format: GPLv2+ and LGPLv2+ - review is highly recommended. -License: GPL-2.0-or-later AND LicenseRef-Callaway-LGPLv2+ +Release: 34%{?dist} +License: GPLv2+ and LGPLv2+ +Group: Applications/Engineering URL: http://www.mpqc.org/ Source0: http://downloads.sourceforge.net/mpqc/%{name}-%{version}.tar.bz2 Source1: bash-script-noarch @@ -11,22 +11,11 @@ Patch0: mpqc-2.3.1-mdv-fix-wfn-lib.patch Patch1: mpqc-2.3.1-format-security.patch # C++11 build fix Patch2: mpqc-2.3.1-cpp11-constexpr.patch -# C23 strict function prototype fix -Patch3: mpqc-2.3.1-c23-function-prototype.patch -# C++17 build fix: remove deprecated exception specification -Patch4: mpqc-2.3.1-cpp17-exception-specification.patch -# C++20 fix: std::istream operator>>(char *) removal -Patch5: mpqc-2.3.1-cpp20-std_istream-redirect.patch Requires: %{name}-libs%{?_isa} = %{version}-%{release} -BuildRequires: make -BuildRequires: gcc-c++ BuildRequires: libtool flex bison BuildRequires: desktop-file-utils -BuildRequires: gcc-gfortran perl-generators -BuildRequires: doxygen -BuildRequires: /usr/bin/wish -BuildRequires: libint-devel -BuildRequires: flexiblas-devel +BuildRequires: gcc-gfortran perl-generators tk doxygen +BuildRequires: libint-devel atlas-devel %description MPQC is the Massively Parallel Quantum Chemistry Program. It computes @@ -38,6 +27,7 @@ oriented, using the C++ programming language. %package data Summary: Atom info and basis sets from MPQC +Group: Applications/Engineering #Requires: %{name}-doc = %{version}-%{release} BuildArch: noarch @@ -46,6 +36,7 @@ Atom info and basis sets from MPQC. %package doc Summary: HTML documentation for MPQC +Group: Applications/Engineering BuildArch: noarch %description doc @@ -54,6 +45,7 @@ with a graphical browser like Mozilla. %package libs Summary: Main libraries for %{name} +Group: Development/Libraries Requires: %{name}-data = %{version}-%{release} # Libint can have API breakage between releases Requires: libint(api)%{?_isa} = %{_libint_apiversion} @@ -65,6 +57,7 @@ based on mpqc computational chemistry package from Sandia Labs. %package devel Summary: Development headers and libraries for %{name} +Group: Development/Libraries Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description devel @@ -74,13 +67,9 @@ based on mpqc computational chemistry package from Sandia Labs. %prep %setup -q -%patch -P0 -p1 -%patch -P1 -p1 -%patch -P2 -p1 -b .cpp11 -%patch -P3 -p1 -b .c23 -%patch -P4 -p1 -b .cpp17 -%patch -P5 -p1 -b .cpp20 - +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 -b .cpp11 sed -i -e 's,molrender.in,%{_datadir}/molrender/molrender.in,g' src/bin/molrender/tkmolrender.in sed -i -e 's,prefix/lib,prefix/%{_lib},g' configure.in # fixup for modern autoreconf @@ -90,8 +79,6 @@ sed -i -r -e 's/AC_DEFINE_UNQUOTED\(([^,]*),([^)]*)\)/AC_DEFINE_UNQUOTED([\1],\2 sed -i -r -e 's/AC_DEFINE_DIR\(([^,]*),([^)]*)\)/AC_DEFINE_DIR([\1],\2,[\1])/g' configure.ac sed -i -r -e 's/AC_CANONICAL_SYSTEM/AC_CANONICAL_SYSTEM\nAC_DEFINE([SHMTYPE], [void *], [data type for shmat])/g' configure.ac sed -i -r -e 's/AC_DEFINE\(\[CXX_RESTRICT\],1,\[CXX_RESTRICT\]\)/AC_DEFINE([restrictxx],[restrict],[have restrict keyword]),AC_DEFINE([restrictxx],[],[do not have restrict keyword])/g' configure.ac -# Make configure.ac c99 conformant, -Werror=implicit-int -Werror=implicit-function-declaration -sed -i -e '\@main.*FF@s|main|extern void FF(void); int main|' configure.ac rm -f lib/autoconf/libtool.m4 # end autoreconf fixup cat >molrender.desktop << EOF @@ -110,12 +97,20 @@ EOF export F77=gfortran autoreconf -v -f -i -I lib/autoconf +# Libraries to use +%if 0%{?fedora} > 20 +lapacklib="-L%{_libdir}/atlas -ltatlas" +%else +lapacklib="-L%{_libdir}/atlas -llapack -lf77blas -latlas" +%endif + %configure --enable-shared --disable-static \ --enable-threads --disable-parallel \ --includedir="%{_includedir}/mpqc" \ + --with-libdirs="-L%{_libdir}/atlas" \ --with-cxx-optflags="$CXXFLAGS" \ --with-cc-optflags="$CFLAGS" \ - --with-libs="-lflexiblas" + --with-libs="$lapacklib" sed -i 's|.rpath .libdir||g' bin/sc-config sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool @@ -164,7 +159,9 @@ do chmod 0755 %{buildroot}%{_bindir}/${f} done -%ldconfig_scriptlets libs +%post libs -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig %files %doc CHANGES CITATION README @@ -202,104 +199,6 @@ done %changelog -* Thu Jan 15 2026 Mamoru TASAKA - 2.3.1-66 -- c++20 fix for std::istream redirect operator change - -* Thu Jul 24 2025 Fedora Release Engineering - 2.3.1-65 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Fri Jan 31 2025 Mamoru TASAKA - 2.3.1-64 -- Use wish instead of tk for BuildRequires -- F42: rebuild with wish in tk9 - -* Mon Jan 20 2025 Mamoru TASAKA - 2.3.1-63 -- Support C++17, remove deprecated exception specification - -* Sun Jan 19 2025 Mamoru TASAKA - 2.3.1-62 -- Support C23 strict function prototype - -* Fri Jan 17 2025 Fedora Release Engineering - 2.3.1-61 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Mon Sep 02 2024 Miroslav Suchý - 2.3.1-60 -- convert license to SPDX - -* Thu Jul 18 2024 Fedora Release Engineering - 2.3.1-59 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri May 31 2024 Mamoru TASAKA - 2.3.1-58 -- Update %%patch usage for recent rpm - -* Thu Jan 25 2024 Fedora Release Engineering - 2.3.1-57 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 2.3.1-56 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Thu Jul 20 2023 Fedora Release Engineering - 2.3.1-55 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jan 19 2023 Fedora Release Engineering - 2.3.1-54 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sun Nov 27 2022 Mamoru TASAKA - 2.3.1-53 -- Make configure (wrt Fortran symbol detection) c99 conformant - for -Werror=implicit-int -Werror=implicit-function-declaration - -* Thu Jul 21 2022 Fedora Release Engineering - 2.3.1-52 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Thu Jan 20 2022 Fedora Release Engineering - 2.3.1-51 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Thu Jul 22 2021 Fedora Release Engineering - 2.3.1-50 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jan 26 2021 Fedora Release Engineering - 2.3.1-49 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Sun Aug 16 2020 Iñaki Úcar - 2.3.1-48 -- https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager - -* Tue Jul 28 2020 Fedora Release Engineering - 2.3.1-47 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Jeff Law - 2.3.1-46 -- Use C++14 as this code is not C++17 ready - -* Wed Jan 29 2020 Fedora Release Engineering - 2.3.1-45 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Jul 25 2019 Fedora Release Engineering - 2.3.1-44 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Fri Feb 01 2019 Fedora Release Engineering - 2.3.1-43 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Fri Jul 13 2018 Fedora Release Engineering - 2.3.1-42 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Feb 08 2018 Fedora Release Engineering - 2.3.1-41 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Jan 31 2018 Mamoru TASAKA - 2.3.1-40 -- F-28: rebuild against gfortran 8 - -* Thu Aug 03 2017 Fedora Release Engineering - 2.3.1-39 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 2.3.1-38 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon May 15 2017 Fedora Release Engineering - 2.3.1-37 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild - -* Fri Feb 10 2017 Fedora Release Engineering - 2.3.1-36 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Mon Jan 30 2017 Mamoru TASAKA - 2.3.1-35 -- F-26: rebuild against gfortran 7 - * Fri May 6 2016 Mamoru TASAKA - 2.3.1-34 - Fix up sc-config all_sclibs - Rename arch-dependent scripts into arch-dependent names