diff --git a/.gitignore b/.gitignore index 4a8814a..1c6c827 100644 --- a/.gitignore +++ b/.gitignore @@ -13,9 +13,3 @@ /v2.6.0.tar.gz /libint-2.6.0.tgz /libint-2.6.0-classdoc.tar.bz2 -/libint-2.8.2.tgz -/v2.8.2.tar.gz -/progman-2.8.2.pdf -/v2.9.0.tar.gz -/progman-2.9.0.pdf -/libint-2.9.0.tar.xz diff --git a/generate-sources.sh b/generate-sources.sh index 6a73ebc..5ad282e 100644 --- a/generate-sources.sh +++ b/generate-sources.sh @@ -1,10 +1,10 @@ # Generate libint2 source tarball. -# 2024-02-21 Susi Lehtola +# 2016-07-09 Susi Lehtola # Before running this script, make sure that you have all the -# buildrequires for building libint2 w/ bootstrapping by running the command +# buildrequires for building libint2 w/ bootstrapping -# sudo dnf install boost-devel gmp-devel mpfr-devel autoconf automake "tex(latex)" "tex(appendix.sty)" "tex(framed.sty)" "tex(mathcomp.sty)" "tex(subfigure.sty)" "tex(wrapfig.sty)" "tex-bibtex" "tex(bbding.sty)" "tex(braket.sty)" "tex(sfmath.sty)" latex2html +sudo dnf install boost-devel gmp-devel mpfr-devel autoconf automake "tex(latex)" "tex(appendix.sty)" "tex(framed.sty)" "tex(mathcomp.sty)" "tex(subfigure.sty)" "tex(wrapfig.sty)" "tex-bibtex" "tex(bbding.sty)" "tex(braket.sty)" "tex(sfmath.sty)" # Read the version from the spec file ver=`grep "Version" libint2.spec|awk '{print $2}'` @@ -41,35 +41,17 @@ if [ ! -f libint-${ver}.tgz ]; then export CXX=g++ # Optimization flags to use for the compiler (just speeds up the generation) export OPTFLAGS=`rpm --eval %{optflags}` - export CXXGENFLAGS=`rpm --eval %{optflags}` - - if(( 1 )); then - ../configure --enable-shared --disable-static \ - --enable-eri=2 --enable-eri3=2 --enable-eri2=2 \ - --enable-1body=2 --enable-g12=1 \ - --enable-1body-property-derivs \ - --with-multipole-max-order=10 \ - --with-eri-max-am=6,5,4 \ - --with-eri3-max-am=12,11,10 --with-eri2-max-am=12,11,10 \ - --with-max-am=6,5,4 \ - --with-g12-max-am=5 --with-g12-opt-am=3 \ - --with-g12dkh-max-am=5 --with-g12dkh-opt-am=3 \ - --disable-unrolling --enable-generic-code --enable-contracted-ints \ - --with-cxx-optflags="$OPTFLAGS" \ - | tee configure.log - else - # Much smaller version to work out the packaging - ../configure --enable-shared --disable-static \ - --enable-eri=2 --enable-eri3=2 --enable-eri2=2 \ - --with-eri-max-am=3,2,1 --with-eri-opt-am=3 \ - --with-eri3-max-am=3 --with-eri2-max-am=3 \ - --with-g12-max-am=2 --with-g12-opt-am=2 \ - --with-g12dkh-max-am=2 --with-g12dkh-opt-am=2 \ - --disable-unrolling --enable-generic-code --enable-contracted-ints \ - --with-cxx-optflags="$OPTFLAGS" \ - | tee configure.log - fi + ../configure --enable-shared --disable-static \ + --enable-eri=2 --enable-eri3=2 --enable-eri2=2 \ + --with-eri-max-am=7,5,4 --with-eri-opt-am=3 \ + --with-eri3-max-am=7 --with-eri2-max-am=7 \ + --with-g12-max-am=5 --with-g12-opt-am=3 \ + --with-g12dkh-max-am=5 --with-g12dkh-opt-am=3 \ + --disable-unrolling --enable-generic-code --enable-contracted-ints \ + --with-cxx-optflags="$OPTFLAGS" \ + | tee configure.log + # Generate the library sources echo "Running make export, follow progress in export.log" make export > export.log @@ -83,10 +65,7 @@ make -C doc # Copy the generated source tarball cp libint-${ver}.tgz ../.. # Copy the programmer's manual -cp -p doc/progman/progman.pdf ../../progman-${ver}.pdf - -# Recompress with xz -cd ../.. -cp -p libint-${ver}.{tgz,tar.gz} -gunzip libint-${ver}.tar.gz -xz libint-${ver}.tar +cp -p doc/progman/progman.pdf ../.. +# and compress the html sources +cd doc/classdoc +tar jcf ../../../../libint-${ver}-classdoc.tar.bz2 html/ diff --git a/libint-2.8.2-fedoraver.patch b/libint-2.8.2-fedoraver.patch deleted file mode 100644 index 49f4506..0000000 --- a/libint-2.8.2-fedoraver.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -up libint-2.8.2/CMakeLists.txt.fedoraver libint-2.8.2/CMakeLists.txt ---- libint-2.8.2/CMakeLists.txt.fedoraver 2024-02-21 23:21:55.000000000 +0000 -+++ libint-2.8.2/CMakeLists.txt 2024-02-22 09:49:10.871180865 +0000 -@@ -16,7 +16,7 @@ if (LIBINT_BUILDID) - else(LIBINT_BUILDID) - set(LIBINT_EXT_VERSION ${LIBINT_VERSION}) - endif(LIBINT_BUILDID) --set(MAX_AM_ERI "") # patch here in export tarball w/highest 4-center, 0-deriv ERI AM in numbers -+set(MAX_AM_ERI "7") # patch here in export tarball w/highest 4-center, 0-deriv ERI AM in numbers - - # Add module directory and modules ===================================================================================== - -diff -up libint-2.8.2/src/configuration.cc.cmake.in.fedoraver libint-2.8.2/src/configuration.cc.cmake.in ---- libint-2.8.2/src/configuration.cc.cmake.in.fedoraver 2024-02-21 23:21:54.000000000 +0000 -+++ libint-2.8.2/src/configuration.cc.cmake.in 2024-02-22 09:50:11.307111838 +0000 -@@ -23,5 +23,5 @@ - @return the semicolon-separated strings from CMake components */ - const char* configuration_accessor() { - // return "@Libint2_CONFIG_COMPONENTS@"; -- return "(nyi)"; -+ return "ss;multipole_nn_d0;multipole_mm_d0;multipole_ll_d0;multipole_kk_d0;multipole_ii_d0;multipole_hh_d0;multipole_gg_d0;multipole_ff_d0;multipole_dd_d0;onebody_kk_d0;onebody_ii_d0;onebody_hh_d0;onebody_gg_d0;onebody_ff_d0;onebody_dd_d0;onebody_kk_d1;onebody_ii_d1;onebody_hh_d1;onebody_gg_d1;onebody_ff_d1;onebody_dd_d1;onebody_hh_d2;onebody_gg_d2;onebody_ff_d2;onebody_dd_d2;eri_kkkk_d0;eri_iiii_d0;eri_hhhh_d0;eri_gggg_d0;eri_ffff_d0;eri_dddd_d0;eri_kkkk_d1;eri_iiii_d1;eri_hhhh_d1;eri_gggg_d1;eri_ffff_d1;eri_dddd_d1;eri_gggg_d2;eri_ffff_d2;eri_dddd_d2;eri_kkQ_d0;eri_kkO_d0;eri_kkN_d0;eri_kkM_d0;eri_kkL_d0;eri_kkK_d0;eri_iiQ_d0;eri_iiO_d0;eri_iiN_d0;eri_iiM_d0;eri_iiL_d0;eri_iiK_d0;eri_iiI_d0;eri_hhQ_d0;eri_hhO_d0;eri_hhN_d0;eri_hhM_d0;eri_hhL_d0;eri_hhK_d0;eri_hhI_d0;eri_hhH_d0;eri_ggQ_d0;eri_ggO_d0;eri_ggN_d0;eri_ggM_d0;eri_ggL_d0;eri_ggK_d0;eri_ggI_d0;eri_ggH_d0;eri_ggG_d0;eri_ffQ_d0;eri_ffO_d0;eri_ffN_d0;eri_ffM_d0;eri_ffL_d0;eri_ffK_d0;eri_ffI_d0;eri_ffH_d0;eri_ffG_d0;eri_ffF_d0;eri_ddQ_d0;eri_ddO_d0;eri_ddN_d0;eri_ddM_d0;eri_ddL_d0;eri_ddK_d0;eri_ddI_d0;eri_ddH_d0;eri_ddG_d0;eri_ddF_d0;eri_ddD_d0;eri_kkK_d1;eri_iiK_d1;eri_iiI_d1;eri_hhK_d1;eri_hhI_d1;eri_hhH_d1;eri_ggK_d1;eri_ggI_d1;eri_ggH_d1;eri_ggG_d1;eri_ffK_d1;eri_ffI_d1;eri_ffH_d1;eri_ffG_d1;eri_ffF_d1;eri_ddK_d1;eri_ddI_d1;eri_ddH_d1;eri_ddG_d1;eri_ddF_d1;eri_ddD_d1;eri_hhH_d2;eri_ggH_d2;eri_ggG_d2;eri_ffH_d2;eri_ffG_d2;eri_ffF_d2;eri_ddH_d2;eri_ddG_d2;eri_ddF_d2;eri_ddD_d2;eri_kkq_d0;eri_kko_d0;eri_kkn_d0;eri_kkm_d0;eri_kkl_d0;eri_kkk_d0;eri_iiq_d0;eri_iio_d0;eri_iin_d0;eri_iim_d0;eri_iil_d0;eri_iik_d0;eri_iii_d0;eri_hhq_d0;eri_hho_d0;eri_hhn_d0;eri_hhm_d0;eri_hhl_d0;eri_hhk_d0;eri_hhi_d0;eri_hhh_d0;eri_ggq_d0;eri_ggo_d0;eri_ggn_d0;eri_ggm_d0;eri_ggl_d0;eri_ggk_d0;eri_ggi_d0;eri_ggh_d0;eri_ggg_d0;eri_ffq_d0;eri_ffo_d0;eri_ffn_d0;eri_ffm_d0;eri_ffl_d0;eri_ffk_d0;eri_ffi_d0;eri_ffh_d0;eri_ffg_d0;eri_fff_d0;eri_ddq_d0;eri_ddo_d0;eri_ddn_d0;eri_ddm_d0;eri_ddl_d0;eri_ddk_d0;eri_ddi_d0;eri_ddh_d0;eri_ddg_d0;eri_ddf_d0;eri_ddd_d0;eri_kkk_d1;eri_iik_d1;eri_iii_d1;eri_hhk_d1;eri_hhi_d1;eri_hhh_d1;eri_ggk_d1;eri_ggi_d1;eri_ggh_d1;eri_ggg_d1;eri_ffk_d1;eri_ffi_d1;eri_ffh_d1;eri_ffg_d1;eri_fff_d1;eri_ddk_d1;eri_ddi_d1;eri_ddh_d1;eri_ddg_d1;eri_ddf_d1;eri_ddd_d1;eri_hhh_d2;eri_ggh_d2;eri_ggg_d2;eri_ffh_d2;eri_ffg_d2;eri_fff_d2;eri_ddh_d2;eri_ddg_d2;eri_ddf_d2;eri_ddd_d2;eri_QQ_d0;eri_OO_d0;eri_NN_d0;eri_MM_d0;eri_LL_d0;eri_KK_d0;eri_II_d0;eri_HH_d0;eri_GG_d0;eri_FF_d0;eri_DD_d0;eri_KK_d1;eri_II_d1;eri_HH_d1;eri_GG_d1;eri_FF_d1;eri_DD_d1;eri_HH_d2;eri_GG_d2;eri_FF_d2;eri_DD_d2;eri_qq_d0;eri_oo_d0;eri_nn_d0;eri_mm_d0;eri_ll_d0;eri_kk_d0;eri_ii_d0;eri_hh_d0;eri_gg_d0;eri_ff_d0;eri_dd_d0;eri_kk_d1;eri_ii_d1;eri_hh_d1;eri_gg_d1;eri_ff_d1;eri_dd_d1;eri_hh_d2;eri_gg_d2;eri_ff_d2;eri_dd_d2;g12_hhhh_d0;g12_gggg_d0;g12_ffff_d0;g12_dddd_d0;g12_hhhh_d1;g12_gggg_d1;g12_ffff_d1;g12_dddd_d1"; - } diff --git a/libint-2.9.0-datadir.patch b/libint-2.9.0-datadir.patch deleted file mode 100644 index 6ea2af6..0000000 --- a/libint-2.9.0-datadir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up libint-2.9.0/CMakeLists.txt.datadir libint-2.9.0/CMakeLists.txt ---- libint-2.9.0/CMakeLists.txt.datadir 2024-08-16 18:09:07.000000000 +0000 -+++ libint-2.9.0/CMakeLists.txt 2024-09-03 18:26:42.987384071 +0000 -@@ -377,7 +377,7 @@ if (LIBINT_HAS_CXX_API) - target_compile_definitions( - libint2_cxx - INTERFACE -- $ -+ $ - ) - endif() - # Add library to the list of installed components diff --git a/libint2.spec b/libint2.spec index f7f73d3..b52ce67 100644 --- a/libint2.spec +++ b/libint2.spec @@ -2,10 +2,6 @@ %ifarch %{arm} %define _lto_cflags %{nil} %endif -# We run out of memory on many builders since the source files are big, drop down to four threads -%define _smp_mflags -j4 -# Disable x86 architectures since builders run out of memory -ExcludeArch: %{ix86} # RPM macro directory %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) @@ -16,17 +12,16 @@ ExcludeArch: %{ix86} # We use -O2 for the compiler and -O1 for the library (these are given # in configure). The common flags are %global commonflags %(echo %{optflags} | sed "s|-O2||g") -%global optflags %commonflags -O1 -fno-var-tracking-assignments +%global optflags %commonflags -O1 # API version provided. Increment this whenever you change the configure time flags. -%global apiversion 1 +%global apiversion 0 Name: libint2 -Version: 2.9.0 -Release: 5%{?dist} +Version: 2.6.0 +Release: 10%{?dist} Summary: A library for efficient evaluation of electron repulsion integrals -# Generator itself is GPLv2+, generated library packaged in Fedora is LGPLv3 -License: LGPL-3.0-only +License: GPLv2+ URL: https://github.com/evaleev/libint # Compiler sources @@ -39,14 +34,14 @@ Source0: https://github.com/evaleev/libint/archive/v%{version}.tar.gz # generated on the same run, debuginfo will turn up missing from the # RPM (BZ #9619635). For this reason pregenerated sources are used. To # generate the sources, run the generate-sources.sh script. -Source1: libint-%{version}.tar.xz +Source1: libint-%{version}.tgz # The programmers' manual is compiled from the LaTeX source by generate-sources.sh -Source2: progman-%{version}.pdf +Source2: progman.pdf +# and the html documentation is extracted from the source code as well +Source3: libint-%{version}-classdoc.tar.bz2 -# The source tarball generator does not introduce all info in the CMake config for now, this patches in the missing info -Patch0: libint-2.8.2-fedoraver.patch -# Fix location of data directory in generated CMake config -Patch1: libint-2.9.0-datadir.patch +# Fix Fortran example +Patch0: libint-2.6.0-fexample.patch Provides: libint2(api)%{?_isa} = %{apiversion} @@ -55,10 +50,9 @@ BuildRequires: gcc-gfortran BuildRequires: boost-devel BuildRequires: mpfr-devel BuildRequires: python3-devel -BuildRequires: make -BuildRequires: cmake -BuildRequires: eigen3-devel -BuildRequires: pybind11-devel +BuildRequires: make +# Disabled until 2.7.0 +#BuildRequires: eigen3-devel %description LIBINT computes the Coulomb and exchange integrals, which in electronic @@ -71,53 +65,45 @@ computer implementation of such methods by implementing an optimizing compiler to generate automatically highly-specialized code that runs well on super-scalar architectures. -%package data -Summary: Shared data for libint2 -Requires: libint2 = %{version}-%{release} -BuildArch: noarch - -%description data -This package contains shared data for libint2. - %package doc -Summary: Documentation for libint2 +Summary: Documentation for libint Requires: libint2 = %{version}-%{release} -BuildArch: noarch %description doc This package contains a programmer's manual and doxygen documentation for the classes. %package devel -Summary: Development headers and libraries for libint2 +Summary: Development headers and libraries for libint Requires: libint2%{?_isa} = %{version}-%{release} # For dir ownership Requires: cmake -# Dependencies for compiling code -Requires: boost-devel -Requires: eigen3-devel -Requires: gmp-devel -Requires: mpfr-devel %description devel -This package contains development headers and libraries for libint2. +This package contains development headers and libraries for libint. %prep %setup -q -T -b 1 -n libint-%{version} -%patch 0 -p1 -b .fedora -# Copy programmers manual -cp -p %{SOURCE2} doc/progman.pdf +%patch0 -p1 -b .fexample +# Copy programmers manual and extract the html documentation +cp -p %{SOURCE2} doc +tar jxf %{SOURCE3} %build export CXX=g++ -%cmake -DENABLE_FORTRAN=ON -DENABLE_MPFR=ON -DLIBINT2_PYTHON=ON -DLIBINT2_INSTALL_LIBDIR=%{_libdir} -DLIBINT2_INSTALL_DATADIR=%{_datadir}/%{name} -DLIBINT2_INSTALL_CMAKEDIR=%{_libdir}/cmake/%{name} -%cmake_build + +%configure --enable-shared --disable-static --enable-fortran \ + --with-incdirs="-I%{_includedir}/eigen3" \ + --with-cxx-optflags="%{optflags}" +%make_build %install -%cmake_install +%make_install find %{buildroot} -name *.la -delete # Make sure libraries are executable (otherwise they are not stripped) -find %{buildroot} -name *.so* -exec chmod 755 {} \; +find %{buildroot} -name *.so.*.* -exec chmod 755 {} \; +# Get rid of the basis set files that ship with libint +find %{buildroot}%{_datadir}/libint -name \*.g94 -delete # Create macro file mkdir -p %{buildroot}%{macrosdir} @@ -134,14 +120,10 @@ mv %{buildroot}%{_includedir}/libint_f.mod %{buildroot}%{_fmoddir}/ %files %doc LICENSE COPYING -%{_libdir}/libint2.so.2 -%{_libdir}/libint2.so.%{version} - -%files data -%{_datadir}/libint2/ +%{_libdir}/libint*.so.* %files doc -%doc doc/progman.pdf +%doc doc/progman.pdf html %files devel %{macrosdir}/macros.libint2 @@ -149,59 +131,11 @@ mv %{buildroot}%{_includedir}/libint_f.mod %{buildroot}%{_fmoddir}/ %{_includedir}/libint2/ %{_includedir}/libint2.h %{_includedir}/libint2.hpp +%{_libdir}/*.so %{_libdir}/pkgconfig/libint2.pc %{_fmoddir}/libint_f.mod -%{_libdir}/libint2.so %changelog -* Thu Jul 24 2025 Fedora Release Engineering - 2.9.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Fri Jan 17 2025 Fedora Release Engineering - 2.9.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Tue Sep 03 2024 Susi Lehtola 2.9.0-3 -- Fix location of data directory in generated CMake config. - -* Tue Sep 03 2024 Susi Lehtola 2.9.0-2 -- Devel package now pulls in boost, eigen3, gmp, and mpfr development - packages that are needed to build against libint2. - -* Sun Aug 18 2024 Susi Lehtola 2.9.0-1 -- Disable build on i386 architecture where the build runs out of memory. -- Update license tag to LGPL-3.0-only (generated library). -- Update to 2.9.0. - -* Fri Jul 26 2024 Miroslav Suchý - 2.8.2-3 -- convert license to SPDX - -* Thu Jul 18 2024 Fedora Release Engineering - 2.8.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Wed Feb 21 2024 Susi Lehtola - 2.8.2-1 -- Update to 2.8.2. - -* Thu Jan 25 2024 Fedora Release Engineering - 2.6.0-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 2.6.0-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Thu Jul 20 2023 Fedora Release Engineering - 2.6.0-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jan 19 2023 Fedora Release Engineering - 2.6.0-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Thu Jul 21 2022 Fedora Release Engineering - 2.6.0-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Thu Jan 20 2022 Fedora Release Engineering - 2.6.0-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Thu Jul 22 2021 Fedora Release Engineering - 2.6.0-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - * Sun Feb 21 2021 Jeff Law - 2.6.0-10 - Disable LTO on arm diff --git a/sources b/sources index b18a88b..a91a051 100644 --- a/sources +++ b/sources @@ -1,3 +1,4 @@ -SHA512 (v2.9.0.tar.gz) = 6cffbd3d78dee4722b8085f4dd93085351cb610b5cb7ac090335adb2c43e87256ca06a658c202473fd763a38f7c0eeb6570b2c6a107e3f41d1258baf6e5b17de -SHA512 (progman-2.9.0.pdf) = 2eb6728e69ac3b395bf39c994f99fd937adf2a0ea7a5664b2e9313d00f4cd4c13a0eabc35c978bd6756938065a870c6bf88544c63bf6cb07c0862438413a8772 -SHA512 (libint-2.9.0.tar.xz) = 5bfeb16c5123f277481922f4894e79f75fe923c90b0a4440b55881b9f270a53b5a91cba569a3b25e2aeaa142688e7454d13608c1f5673f5843b7605fb07bd7b2 +SHA512 (v2.6.0.tar.gz) = 56343c64b0dfb829702f4bb2fe14a04ad063acd7cb8b5a21cd1a45a830944c1ee98c888c9a28d6746b1bc17459aefcfb0aafe6ef310bfe554056212ad19e43ef +SHA512 (libint-2.6.0.tgz) = 35298dee20ba84c9405cdd7f81fef5e0be58e431c427bd73eb2c6292f5946664aac71d28159f7070c5afce0f1d280a851c61f2777468624d7edcd32d5a4fdfe3 +SHA512 (libint-2.6.0-classdoc.tar.bz2) = 6a0959f26b933bb29511ef3c5e521e1fb2456e563eb8e5094237e4b4feaaa8eacf1552f794ee1bb2e38c4f71e5456d940df35672304af9d6c6bac11247b20781 +SHA512 (progman.pdf) = 2562e4cc7e70944adaec3bb1637ce5e7fdbb04c71ae15e29c246d5866dcdc36d313019af6cd8d1d53ccea0685591f2a5676e5f90dd29bd8fd097824ebe7de742