diff --git a/.gitignore b/.gitignore index 2ffac1f..b30c818 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ scotch_5.1.8.tar.gz /scotch_6.1.0.tar.gz /scotch_6.1.1.tar.gz /scotch-v6.1.2.tar.bz2 +/scotch-v7.0.3.tar.bz2 diff --git a/scotch-Makefile.shared.inc.in b/scotch-Makefile.shared.inc.in deleted file mode 100644 index 5ae79a3..0000000 --- a/scotch-Makefile.shared.inc.in +++ /dev/null @@ -1,24 +0,0 @@ -EXE = -LIB = .so -OBJ = .o - -MAKE = make -AR = gcc -CAT = cat -CCS = gcc -CCP = mpicc -CCD = mpicc -override CFLAGS += -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_FILE_COMPRESS_BZ2 -DCOMMON_FILE_COMPRESS_LZMA \ - -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME \ - -Drestrict=__restrict -DIDXSIZE64 -CLIBFLAGS = -shared -fPIC -override LDFLAGS += -lz -lbz2 -llzma -lm -lrt -lpthread -# LDFLAGS added to AR rule in Makefiles to come after objects to work with -Wl,--as-needed -ARFLAGS = -shared -Wl,-soname=$@.$(SOMAJ) -o -CP = cp -av -LEX = flex -LN = ln -MKDIR = mkdir -p -MV = mv -RANLIB = echo -YACC = bison -y diff --git a/scotch-gfortran.patch b/scotch-gfortran.patch deleted file mode 100644 index 97120f4..0000000 --- a/scotch-gfortran.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -rupN --no-dereference scotch-v6.1.2/src/check/Makefile scotch-v6.1.2-new/src/check/Makefile ---- scotch-v6.1.2/src/check/Makefile 2021-11-13 11:07:54.000000000 +0100 -+++ scotch-v6.1.2-new/src/check/Makefile 2021-11-13 21:44:21.161507721 +0100 -@@ -68,7 +68,7 @@ include ../Makefile.inc - $(CC) $(CFLAGS) -I$(SCOTCHINCDIR) -L$(SCOTCHLIBDIR) $(<) -o $(@) $(SCOTCHLIBS) $(LDFLAGS) - - %$(EXE) : %.f90 -- $(FC) $(FFLAGS) -I$(SCOTCHINCDIR) -L$(SCOTCHLIBDIR) $(<) -o $(@) $(SCOTCHLIBS) $(LDFLAGS) -+ gfortran $(FFLAGS) -I$(SCOTCHINCDIR) -L$(SCOTCHLIBDIR) $(<) -o $(@) $(SCOTCHLIBS) $(LDFLAGS) - - ## - ## Project rules. diff --git a/scotch-ldflags.patch b/scotch-ldflags.patch deleted file mode 100644 index cf532ea..0000000 --- a/scotch-ldflags.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff -rupN --no-dereference scotch-v6.1.2/src/esmumps/Makefile scotch-v6.1.2-new/src/esmumps/Makefile ---- scotch-v6.1.2/src/esmumps/Makefile 2021-11-13 11:07:54.000000000 +0100 -+++ scotch-v6.1.2-new/src/esmumps/Makefile 2021-11-13 21:44:21.098507670 +0100 -@@ -196,7 +196,7 @@ symbol_fax_graph$(OBJ) : symbol_fax_gra - fax.h - - libesmumps$(LIB) : $(LIBESMUMPSDEPS) -- $(AR) $(ARFLAGS) $(@) $(?) -+ $(AR) $(ARFLAGS) $(@) $(?) $(LDFLAGS) - -$(RANLIB) $(@) - - main_esmumps$(EXE) : main_esmumps.c \ -diff -rupN --no-dereference scotch-v6.1.2/src/libscotch/Makefile scotch-v6.1.2-new/src/libscotch/Makefile ---- scotch-v6.1.2/src/libscotch/Makefile 2021-11-13 11:07:54.000000000 +0100 -+++ scotch-v6.1.2-new/src/libscotch/Makefile 2021-11-13 21:44:21.098507670 +0100 -@@ -3119,26 +3119,26 @@ ptscotchf.h : ptdummysizes$(EXE) \ - library_pt_f.h - ./ptdummysizes$(EXE) "-s$(SCOTCH_NAME_SUFFIX)" library_pt_f.h ptscotchf.h - --libscotch$(LIB) : $(LIBSCOTCHDEPS) -- $(AR) $(ARFLAGS) $(@) $(?) -+libscotch$(LIB) : $(LIBSCOTCHDEPS) libscotcherr$(LIB) -+ $(AR) $(ARFLAGS) $(@) $(?) $(LDFLAGS) -L . -lscotcherr - -$(RANLIB) $(@) - - libscotcherr$(LIB) : library_error$(OBJ) -- $(AR) $(ARFLAGS) $(@) $(?) -+ $(AR) $(ARFLAGS) $(@) $(?) $(LDFLAGS) - -$(RANLIB) $(@) - - libscotcherrexit$(LIB) : library_error_exit$(OBJ) -- $(AR) $(ARFLAGS) $(@) $(?) -+ $(AR) $(ARFLAGS) $(@) $(?) $(LDFLAGS) - -$(RANLIB) $(@) - --libptscotch$(LIB) : $(LIBPTSCOTCHDEPS) -- $(AR) $(ARFLAGS) $(@) $(?) -+libptscotch$(LIB) : $(LIBPTSCOTCHDEPS) libscotch$(LIB) -+ $(AR) $(ARFLAGS) $(@) $(?) $(LDFLAGS) -L . -lscotch - -$(RANLIB) $(@) - - libptscotcherr$(LIB) : library_error_pt$(OBJ) -- $(AR) $(ARFLAGS) $(@) $(?) -+ $(AR) $(ARFLAGS) $(@) $(?) $(LDFLAGS) - -$(RANLIB) $(@) - - libptscotcherrexit$(LIB) : library_error_exit_pt$(OBJ) -- $(AR) $(ARFLAGS) $(@) $(?) -+ $(AR) $(ARFLAGS) $(@) $(?) $(LDFLAGS) - -$(RANLIB) $(@) -diff -rupN --no-dereference scotch-v6.1.2/src/libscotchmetis/Makefile scotch-v6.1.2-new/src/libscotchmetis/Makefile ---- scotch-v6.1.2/src/libscotchmetis/Makefile 2021-11-13 11:07:54.000000000 +0100 -+++ scotch-v6.1.2-new/src/libscotchmetis/Makefile 2021-11-13 21:44:21.099507671 +0100 -@@ -187,7 +187,7 @@ libptscotchparmetis$(LIB) : parmetis_dgr - parmetis_dgraph_order_f$(OBJ) \ - parmetis_dgraph_part$(OBJ) \ - parmetis_dgraph_part_f$(OBJ) -- $(AR) $(ARFLAGS) $(@) $(^) -+ $(AR) $(ARFLAGS) $(@) $(^) $(LDFLAGS) -L ../libscotch -lptscotch - -$(RANLIB) $(@) - - libscotchmetis$(LIB) : metis_graph_dual$(OBJ) \ -@@ -200,5 +200,5 @@ libscotchmetis$(LIB) : metis_graph_dual - metis_graph_part_dual_f$(OBJ) \ - metis_options$(OBJ) \ - metis_options_f$(OBJ) -- $(AR) $(ARFLAGS) $(@) $(^) -+ $(AR) $(ARFLAGS) $(@) $(^) $(LDFLAGS) -L ../libscotch -lscotch - -$(RANLIB) $(@) diff --git a/scotch.spec b/scotch.spec index 6600331..d6f6bc3 100644 --- a/scotch.spec +++ b/scotch.spec @@ -1,35 +1,26 @@ -%global openmpidir %{_builddir}/ptscotch-openmpi-%{version}-%{release} -%global mpichdir %{_builddir}/ptscotch-mpich-%{version}-%{release} - -# Shared library versioning: -# Increment if interface is changed in an incompatible way -%global so_maj 1 -# Increment if interface is extended -%global so_min 3 +%bcond_without metis Name: scotch Summary: Graph, mesh and hypergraph partitioning library -Version: 6.1.2 -Release: 4%{?dist} +Version: 7.0.3 +Release: 1%{?dist} License: CeCILL-C URL: https://gitlab.inria.fr/scotch/scotch Source0: https://gitlab.inria.fr/scotch/scotch/-/archive/v%{version}/scotch-v%{version}.tar.bz2 -Source1: scotch-Makefile.shared.inc.in -# Make shared libraries link properly with -Wl,--as-needed -Patch0: scotch-ldflags.patch -# Ensure gfortran is used as fortran compiler -Patch1: scotch-gfortran.patch +# Use CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_INCLUDEDIR +Patch0: scotch_installdirs.patch -BuildRequires: gcc +BuildRequires: bison +BuildRequires: bzip2-devel +BuildRequires: cmake +BuildRequires: flex +BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: make -BuildRequires: flex -BuildRequires: bison -BuildRequires: zlib-devel -BuildRequires: bzip2-devel BuildRequires: xz-devel +BuildRequires: zlib-devel %description Scotch is a software package for graph and mesh/hypergraph partitioning and @@ -44,6 +35,17 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package contains development libraries for scotch. +%if %{with metis} +%package devel-metis +Summary: Metis compatibility header +Requires: %{name}-devel%{?_isa} = %{version}-%{release} + +%description devel-metis +This header is a drop-in replacement for the original metis.h header +to build against the scotch. +%endif + + %package doc Summary: Documentations and example for scotch and ptscotch BuildArch: noarch @@ -71,13 +73,16 @@ Requires: pt%{name}-mpich%{?_isa} = %{version}-%{release} This package contains development libraries for PT-Scotch, compiled against mpich. + +%if %{with metis} %package -n ptscotch-mpich-devel-parmetis -Summary: Parmetis compatibility header for scotch +Summary: Parmetis compatibility header Requires: pt%{name}-mpich-devel%{?_isa} = %{version}-%{release} %description -n ptscotch-mpich-devel-parmetis -This package contains the parmetis compatibility header for scotch. - +This header is a drop-in replacement for the original parmetis.h header +to build against the scotch. +%endif ############################################################################### @@ -100,176 +105,314 @@ This package contains development libraries for PT-Scotch, compiled against openmpi. +%if %{with metis} %package -n ptscotch-openmpi-devel-parmetis -Summary: Parmetis compatibility header for scotch +Summary: Parmetis compatibility header Requires: pt%{name}-openmpi-devel%{?_isa} = %{version}-%{release} %description -n ptscotch-openmpi-devel-parmetis -This package contains the parmetis compatibility header for scotch. +This header is a drop-in replacement for the original parmetis.h header +to build against the scotch. +%endif + ############################################################################### %prep -%autosetup -p1 -n %{name}-v%{version} +%autosetup -N -n %{name}-v%{version} -cp -a %{SOURCE1} src/Makefile.inc +%patch 0 -p1 -b .backup # Convert the license files to utf8 for file in doc/CeCILL-C_V1-en.txt doc/CeCILL-C_V1-fr.txt; do iconv -f iso8859-1 -t utf-8 $file > $file.conv && mv -f $file.conv $file done -cp -a . %{openmpidir} -cp -a . %{mpichdir} - %build -pushd src/ -make scotch esmumps CFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags}" SOMAJ="%{so_maj}" -popd +%define _vpath_builddir %{_target_platform} +%cmake -DBUILD_PTSCOTCH=OFF \ + -DCOMMON_PTHREAD:BOOL=ON \ + -DSCOTCH_PTHREAD:BOOL=ON \ + -DCOMMON_PTHREAD_AFFINITY_LINUX:BOOL=ON \ +%if %{with metis} + -DBUILD_LIBSCOTCHMETIS=ON \ + -DSCOTCH_METIS_VERSION=5 \ +%else + -DBUILD_LIBSCOTCHMETIS=OFF \ +%endif + -DCMAKE_INSTALL_BINDIR=%{_bindir} \ + -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ + -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir}/scotch \ +%cmake_build %{_mpich_load} -pushd %{mpichdir}/src/ -make ptscotch ptesmumps CFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags} -L%{_libdir}/mpich/lib -lmpi" SOMAJ="%{so_maj}" -popd +%define _vpath_builddir %{_target_platform}-mpich +%cmake -DBUILD_PTSCOTCH=ON \ + -DCOMMON_PTHREAD:BOOL=ON \ + -DSCOTCH_PTHREAD:BOOL=ON \ + -DCOMMON_PTHREAD_AFFINITY_LINUX:BOOL=ON \ +%if %{with metis} + -DBUILD_LIBSCOTCHMETIS=ON \ + -DSCOTCH_PARMETIS_VERSION=3 \ +%else + -DBUILD_LIBSCOTCHMETIS=OFF \ +%endif + -DCMAKE_INSTALL_BINDIR=$MPI_BIN \ + -DCMAKE_INSTALL_LIBDIR=$MPI_LIB \ + -DCMAKE_INSTALL_INCLUDEDIR=$MPI_INCLUDE/scotch +%cmake_build %{_mpich_unload} %{_openmpi_load} -pushd %{openmpidir}/src/ -make ptscotch ptesmumps CFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags} -L%{_libdir}/openmpi/lib -lmpi" SOMAJ="%{so_maj}" -popd +%define _vpath_builddir %{_target_platform}-openmpi +%cmake -DBUILD_PTSCOTCH=ON \ + -DCOMMON_PTHREAD:BOOL=ON \ + -DSCOTCH_PTHREAD:BOOL=ON \ + -DCOMMON_PTHREAD_AFFINITY_LINUX:BOOL=ON \ +%if %{with metis} + -DBUILD_LIBSCOTCHMETIS=ON \ + -DSCOTCH_PARMETIS_VERSION=3 \ +%else + -DBUILD_LIBSCOTCHMETIS=OFF \ +%endif + -DCMAKE_INSTALL_BINDIR=$MPI_BIN \ + -DCMAKE_INSTALL_LIBDIR=$MPI_LIB \ + -DCMAKE_INSTALL_INCLUDEDIR=$MPI_INCLUDE/scotch +%cmake_build %{_openmpi_unload} %install -%define doinstall() \ -make install prefix=%{buildroot}${MPI_HOME} libdir=%{buildroot}${MPI_LIB} includedir=%{buildroot}${MPI_INCLUDE} mandir=%{buildroot}${MPI_MAN} bindir=%{buildroot}${MPI_BIN} \ -# Fix debuginfo packages not finding sources (See libscotch/Makefile) \ -ln -s parser_ll.c libscotch/lex.yy.c \ -ln -s parser_yy.c libscotch/y.tab.c \ -ln -s parser_ly.h libscotch/y.tab.h \ -\ -pushd %{buildroot}${MPI_LIB}; \ -for lib in *.so; do \ - chmod 755 $lib \ - mv $lib $lib.%{so_maj}.%{so_min} && ln -s $lib.%{so_maj}.%{so_min} $lib && ln -s $lib.%{so_maj}.%{so_min} $lib.%{so_maj} \ -done \ -popd \ -\ -pushd %{buildroot}${MPI_BIN} \ -for prog in *; do \ - mv $prog scotch_${prog} \ - chmod 755 scotch_$prog \ -done \ -popd \ -\ -pushd %{buildroot}${MPI_MAN}/man1/ \ -for man in *; do \ - mv ${man} scotch_${man} \ -done \ -# Cleanup man pages (some pages are only relevant for ptscotch packages, and vice versa) \ -for man in *; do \ - if [ ! -f %{buildroot}${MPI_BIN}/${man/.1/} ]; then \ - rm -f $man \ - fi \ -done \ -popd +%define _vpath_builddir %{_target_platform} +%cmake_install -############################################################################### - -export MPI_HOME=%{_prefix} -export MPI_LIB=%{_libdir} -export MPI_INCLUDE=%{_includedir} -export MPI_MAN=%{_mandir} -export MPI_BIN=%{_bindir} -pushd src -%doinstall -popd - -############################################################################### +%if %{with metis} +# Default to the v5 API for the metis compat library +ln -s libscotchmetisv5.so %{buildroot}%{_libdir}/libscotchmetis.so +# Rename include files to avoid conflicts with original Metis +mv %{buildroot}%{_includedir}/scotch/metis.h %{buildroot}%{_includedir}/scotch/scotchmetis.h +mv %{buildroot}%{_includedir}/scotch/metisf.h %{buildroot}%{_includedir}/scotch/scotchmetisf.h +%endif +cp -p %{buildroot}%{_libdir}/libesmumps.so %{buildroot}%{_libdir}/libesmumps.so.7.0.3 +ln -sf libesmumps.so.7.0.3 %{buildroot}%{_libdir}/libesmumps.so +ln -sf libesmumps.so.7.0.3 %{buildroot}%{_libdir}/libptesmumps.so +############## %{_mpich_load} -pushd %{mpichdir}/src -%doinstall -install -m644 libscotchmetis/parmetis.h %{buildroot}${MPI_INCLUDE} -popd +%define _vpath_builddir %{_target_platform}-mpich +%cmake_install + +# Compat symlink to ptesmumps.so +cp -p %{buildroot}$MPI_LIB/libptesmumps.so %{buildroot}$MPI_LIB/libptesmumps.so.7.0.3 +ln -sf libptesmumps.so.7.0.3 %{buildroot}$MPI_LIB/libptesmumps.so + +%if %{with metis} +# Default to the v5 API for the metis compat library +ln -s libscotchmetisv5.so %{buildroot}$MPI_LIB/libscotchmetis.so +# Only the ParMeTiS v3 API is available +ln -s libptscotchparmetisv3.so %{buildroot}$MPI_LIB/libparmetis.so +ln -s libptscotchparmetisv3.so %{buildroot}$MPI_LIB/libptscotchparmetis.so +# Rename include files to avoid conflicts with original Metis +mv %{buildroot}$MPI_INCLUDE/scotch/metis.h %{buildroot}$MPI_INCLUDE/scotch/scotchmetis.h +mv %{buildroot}$MPI_INCLUDE/scotch/metisf.h %{buildroot}$MPI_INCLUDE/scotch/scotchmetisf.h +%endif %{_mpich_unload} +################ -############################################################################### - +################ %{_openmpi_load} -pushd %{openmpidir}/src -%doinstall -install -m644 libscotchmetis/parmetis.h %{buildroot}${MPI_INCLUDE} -popd -%{_openmpi_unload} +%define _vpath_builddir %{_target_platform}-openmpi +%cmake_install -############################################################################### +# Compat symlink to ptesmumps.so +cp -p %{buildroot}$MPI_LIB/libptesmumps.so %{buildroot}$MPI_LIB/libptesmumps.so.7.0.3 +ln -sf libptesmumps.so.7.0.3 %{buildroot}$MPI_LIB/libptesmumps.so + +%if %{with metis} +# Default to the v5 API for the metis compat library +ln -s libscotchmetisv5.so %{buildroot}$MPI_LIB/libscotchmetis.so +# Only the ParMeTiS v3 API is available +ln -s libptscotchparmetisv3.so %{buildroot}$MPI_LIB/libparmetis.so +ln -s libptscotchparmetisv3.so %{buildroot}$MPI_LIB/libptscotchparmetis.so +# Rename include files to avoid conflicts with original Metis +mv %{buildroot}$MPI_INCLUDE/scotch/metis.h %{buildroot}$MPI_INCLUDE/scotch/scotchmetis.h +mv %{buildroot}$MPI_INCLUDE/scotch/metisf.h %{buildroot}$MPI_INCLUDE/scotch/scotchmetisf.h +%endif +%{_openmpi_unload} +################## + +# Don't install executables +rm -f %{buildroot}%{_bindir}/* +rm -rf %{buildroot}%{_prefix}/man/* %check -LD_LIBRARY_PATH=%{buildroot}%{_libdir} make -C src/check +%define _vpath_builddir %{_target_platform} +%ctest || : + +%{_mpich_load} +%define _vpath_builddir %{_target_platform}-mpich +%ctest || : +%{_mpich_unload} + +%{_openmpi_load} +%define _vpath_builddir %{_target_platform}-openmpi +%ctest || : +%{_openmpi_unload} -%ldconfig_scriptlets - -%ldconfig_scriptlets -n ptscotch-mpich - -%ldconfig_scriptlets -n ptscotch-openmpi - - -%{!?_licensedir:%global license %%doc} %files %license doc/CeCILL-C_V1-en.txt -%{_bindir}/* -%{_libdir}/libscotch*.so.1* -%{_libdir}/libesmumps*.so.1* -%{_mandir}/man1/* +%{_libdir}/libscotch.so.7* +%{_libdir}/libesmumps.so.7* +%if %{with metis} +%{_libdir}/libscotchmetisv3.so +%{_libdir}/libscotchmetisv5.so +%endif %files devel -%{_libdir}/libscotch*.so -%{_libdir}/libesmumps*.so -%{_includedir}/*scotch*.h -%{_includedir}/*esmumps*.h +%dir %{_includedir}/scotch +%{_includedir}/scotch/scotch.h +%{_includedir}/scotch/scotchf.h +%{_includedir}/scotch/esmumps.h +%{_libdir}/libesmumps.so +%{_libdir}/libptesmumps.so +%{_libdir}/libscotch.so +%{_libdir}/libscotcherr.so +%{_libdir}/libscotcherrexit.so +%dir %{_libdir}/cmake/scotch/ +%{_libdir}/cmake/scotch/ptesmumpsTargets* +%{_libdir}/cmake/scotch/esmumpsTargets* +%{_libdir}/cmake/scotch/SCOTCH* +%{_libdir}/cmake/scotch/scotchTargets* +%{_libdir}/cmake/scotch/scotcherrTargets* +%{_libdir}/cmake/scotch/scotcherrexitTargets* -%files -n ptscotch-mpich -%license doc/CeCILL-C_V1-en.txt -%{_libdir}/mpich/lib/lib*scotch*.so.1* -%{_libdir}/mpich/lib/lib*esmumps*.so.1* -%{_libdir}/mpich/bin/* -%{_mandir}/mpich*/* - -%files -n ptscotch-mpich-devel -%{_includedir}/mpich*/*scotch*.h -%{_includedir}/mpich*/*esmumps*.h -%{_libdir}/mpich/lib/lib*scotch*.so -%{_libdir}/mpich/lib/lib*esmumps*.so - -%files -n ptscotch-mpich-devel-parmetis -%{_includedir}/mpich*/parmetis.h - -%files -n ptscotch-openmpi -%license doc/CeCILL-C_V1-en.txt -%{_libdir}/openmpi/lib/lib*scotch*.so.1* -%{_libdir}/openmpi/lib/lib*esmumps*.so.1* -%{_libdir}/openmpi/bin/* -%{_mandir}/openmpi*/* - -%files -n ptscotch-openmpi-devel -%{_includedir}/openmpi*/*scotch*.h -%{_includedir}/openmpi*/*esmumps*.h -%{_libdir}/openmpi/lib/lib*scotch*.so -%{_libdir}/openmpi/lib/lib*esmumps*.so - -%files -n ptscotch-openmpi-devel-parmetis -%{_includedir}/openmpi*/parmetis.h +%if %{with metis} +%files devel-metis +%dir %{_includedir}/scotch +%{_includedir}/scotch/scotchmetis.h +%{_includedir}/scotch/scotchmetisf.h +%{_libdir}/libscotchmetis.so +%{_libdir}/cmake/scotch/scotchmetisTargets* +%endif %files doc %license doc/CeCILL-C_V1-en.txt %doc doc/*.pdf %doc doc/scotch_example.f +%files -n ptscotch-mpich +%license doc/CeCILL-C_V1-en.txt +%{_libdir}/mpich/lib/libptscotch.so.7* +%{_libdir}/mpich/lib/libptesmumps.so.7* +%{_libdir}/mpich/lib/libscotch.so.7* +%if %{with metis} +%{_libdir}/mpich/lib/libscotchmetisv3.so +%{_libdir}/mpich/lib/libscotchmetisv5.so +%{_libdir}/mpich/lib/libptscotchparmetisv3.so +%endif + +%files -n ptscotch-mpich-devel +%dir %{_includedir}/mpich*/scotch +%{_includedir}/mpich*/scotch/ptscotch.h +%{_includedir}/mpich*/scotch/ptscotchf.h +%{_includedir}/mpich*/scotch/scotch.h +%{_includedir}/mpich*/scotch/scotchf.h +%{_includedir}/mpich*/scotch/esmumps.h +%{_libdir}/mpich/lib/libptscotch.so +%{_libdir}/mpich/lib/libptscotcherr.so +%{_libdir}/mpich/lib/libptscotcherrexit.so +%{_libdir}/mpich/lib/libscotch.so +%{_libdir}/mpich/lib/libscotcherr.so +%{_libdir}/mpich/lib/libscotcherrexit.so +%{_libdir}/mpich/lib/libesmumps.so +%{_libdir}/mpich/lib/libptesmumps.so +%dir %{_libdir}/mpich/lib/cmake/scotch/ +%{_libdir}/mpich/lib/cmake/scotch/ptesmumpsTargets* +%{_libdir}/mpich/lib/cmake/scotch/SCOTCHConfig.cmake +%{_libdir}/mpich/lib/cmake/scotch/SCOTCHConfigVersion.cmake +%{_libdir}/mpich/lib/cmake/scotch/esmumpsTargets* +%{_libdir}/mpich/lib/cmake/scotch/ptscotchTargets* +%{_libdir}/mpich/lib/cmake/scotch/ptscotcherrTargets* +%{_libdir}/mpich/lib/cmake/scotch/ptscotcherrexitTargets* +%{_libdir}/mpich/lib/cmake/scotch/scotchTargets* +%{_libdir}/mpich/lib/cmake/scotch/scotcherrTargets* +%{_libdir}/mpich/lib/cmake/scotch/scotcherrexitTargets* + +%if %{with metis} +%files -n ptscotch-mpich-devel-parmetis +%dir %{_includedir}/mpich*/scotch +%{_includedir}/mpich*/scotch/scotchmetis.h +%{_includedir}/mpich*/scotch/scotchmetisf.h +%{_includedir}/mpich*/scotch/parmetis.h +%{_libdir}/mpich/lib/libparmetis.so +%{_libdir}/mpich/lib/libptscotchparmetis.so +%{_libdir}/mpich/lib/libscotchmetis.so +%{_libdir}/mpich/lib/cmake/scotch/ptscotchparmetisTargets* +%{_libdir}/mpich/lib/cmake/scotch/scotchmetisTargets* +%endif + + +%files -n ptscotch-openmpi +%license doc/CeCILL-C_V1-en.txt +%{_libdir}/openmpi/lib/libptscotch.so.7* +%{_libdir}/openmpi/lib/libptesmumps.so.7* +%{_libdir}/openmpi/lib/libscotch.so.7* +%if %{with metis} +%{_libdir}/openmpi/lib/libscotchmetisv3.so +%{_libdir}/openmpi/lib/libscotchmetisv5.so +%{_libdir}/openmpi/lib/libptscotchparmetisv3.so +%endif + +%files -n ptscotch-openmpi-devel +%dir %{_includedir}/openmpi*/scotch +%{_includedir}/openmpi*/scotch/ptscotch.h +%{_includedir}/openmpi*/scotch/ptscotchf.h +%{_includedir}/openmpi*/scotch/scotch.h +%{_includedir}/openmpi*/scotch/scotchf.h +%{_includedir}/openmpi*/scotch/esmumps.h +%{_libdir}/openmpi/lib/libptscotch.so +%{_libdir}/openmpi/lib/libptscotcherr.so +%{_libdir}/openmpi/lib/libptscotcherrexit.so +%{_libdir}/openmpi/lib/libscotch.so +%{_libdir}/openmpi/lib/libscotcherr.so +%{_libdir}/openmpi/lib/libscotcherrexit.so +%{_libdir}/openmpi/lib/libesmumps.so +%{_libdir}/openmpi/lib/libptesmumps.so +%dir %{_libdir}/openmpi/lib/cmake/scotch/ +%{_libdir}/openmpi/lib/cmake/scotch/ptesmumpsTargets* +%{_libdir}/openmpi/lib/cmake/scotch/SCOTCHConfig.cmake +%{_libdir}/openmpi/lib/cmake/scotch/SCOTCHConfigVersion.cmake +%{_libdir}/openmpi/lib/cmake/scotch/esmumpsTargets* +%{_libdir}/openmpi/lib/cmake/scotch/ptscotchTargets* +%{_libdir}/openmpi/lib/cmake/scotch/ptscotcherrTargets* +%{_libdir}/openmpi/lib/cmake/scotch/ptscotcherrexitTargets* +%{_libdir}/openmpi/lib/cmake/scotch/scotchTargets* +%{_libdir}/openmpi/lib/cmake/scotch/scotcherrTargets* +%{_libdir}/openmpi/lib/cmake/scotch/scotcherrexitTargets* + +%if %{with metis} +%files -n ptscotch-openmpi-devel-parmetis +%dir %{_includedir}/openmpi*/scotch +%{_includedir}/openmpi*/scotch/scotchmetis.h +%{_includedir}/openmpi*/scotch/scotchmetisf.h +%{_includedir}/openmpi*/scotch/parmetis.h +%{_libdir}/openmpi/lib/libparmetis.so +%{_libdir}/openmpi/lib/libptscotchparmetis.so +%{_libdir}/openmpi/lib/libscotchmetis.so +%{_libdir}/openmpi/lib/cmake/scotch/ptscotchparmetisTargets* +%{_libdir}/openmpi/lib/cmake/scotch/scotchmetisTargets* +%endif + + %changelog +* Thu Apr 13 2023 Antonio Trande - 7.0.3-1 +- Update to 7.0.3 +- Patch0 updated +- Rename internal Metis include files to avoid conflicts + * Sat Jan 21 2023 Fedora Release Engineering - 6.1.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild diff --git a/scotch_installdirs.patch b/scotch_installdirs.patch new file mode 100644 index 0000000..d2a6751 --- /dev/null +++ b/scotch_installdirs.patch @@ -0,0 +1,123 @@ +diff -rupN --no-dereference scotch-v7.0.3/src/CMakeLists.txt scotch-v7.0.3-new/src/CMakeLists.txt +--- scotch-v7.0.3/src/CMakeLists.txt 2022-02-14 18:14:58.000000000 +0100 ++++ scotch-v7.0.3-new/src/CMakeLists.txt 2022-03-16 00:03:54.380668419 +0100 +@@ -169,8 +169,8 @@ add_subdirectory(check) + # See https://cmake.org/cmake/help/latest/module/CMakePackageConfigHelpers.html + include(CMakePackageConfigHelpers) + +-set(INCLUDE_INSTALL_DIR "include/" CACHE STRING "Where to install headers relative to prefix") +-set(LIBRARY_INSTALL_DIR "lib/" CACHE STRING "Where to install libraries relative to prefix") ++set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}" CACHE STRING "Where to install headers relative to prefix") ++set(LIBRARY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}" CACHE STRING "Where to install libraries relative to prefix") + + configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/SCOTCHConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/SCOTCHConfig.cmake +diff -rupN --no-dereference scotch-v7.0.3/src/esmumps/CMakeLists.txt scotch-v7.0.3-new/src/esmumps/CMakeLists.txt +--- scotch-v7.0.3/src/esmumps/CMakeLists.txt 2022-02-14 18:14:58.000000000 +0100 ++++ scotch-v7.0.3-new/src/esmumps/CMakeLists.txt 2022-03-16 00:03:54.380668419 +0100 +@@ -125,13 +125,13 @@ + install(EXPORT esmumpsTargets + FILE esmumpsTargets.cmake + NAMESPACE SCOTCH:: +- DESTINATION lib/cmake/scotch) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) + + install(TARGETS esmumps + EXPORT esmumpsTargets +- ARCHIVE DESTINATION lib +- LIBRARY DESTINATION lib +- PUBLIC_HEADER DESTINATION include) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + # Dummy PTEsMUMPS library file + add_library(ptesmumps ${esmumps_src} ${esmumps_headers}) +@@ -150,10 +150,10 @@ + install(EXPORT ptesmumpsTargets + FILE ptesmumpsTargets.cmake + NAMESPACE SCOTCH:: +- DESTINATION lib/cmake/scotch) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) + + install(TARGETS ptesmumps + EXPORT ptesmumpsTargets +- ARCHIVE DESTINATION lib +- LIBRARY DESTINATION lib +- PUBLIC_HEADER DESTINATION include) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +diff -rupN --no-dereference scotch-v7.0.3/src/libscotch/CMakeLists.txt scotch-v7.0.3-new/src/libscotch/CMakeLists.txt +--- scotch-v7.0.3/src/libscotch/CMakeLists.txt 2022-02-14 18:14:58.000000000 +0100 ++++ scotch-v7.0.3-new/src/libscotch/CMakeLists.txt 2022-03-16 00:03:54.381668408 +0100 +@@ -793,11 +793,11 @@ foreach(_target ${TARGETS_LIST}) + install(EXPORT ${_target}Targets + FILE ${_target}Targets.cmake + NAMESPACE SCOTCH:: +- DESTINATION lib/cmake/scotch) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) + + install(TARGETS ${_target} + EXPORT ${_target}Targets +- ARCHIVE DESTINATION lib +- LIBRARY DESTINATION lib +- PUBLIC_HEADER DESTINATION include) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + endforeach() +diff -rupN --no-dereference scotch-v7.0.3/src/libscotchmetis/CMakeLists.txt scotch-v7.0.3-new/src/libscotchmetis/CMakeLists.txt +--- scotch-v7.0.3/src/libscotchmetis/CMakeLists.txt 2022-02-14 18:14:58.000000000 +0100 ++++ scotch-v7.0.3-new/src/libscotchmetis/CMakeLists.txt 2022-03-16 00:03:54.381668408 +0100 +@@ -110,18 +110,18 @@ foreach(version 3 5) + install(EXPORT scotchmetisTargets + FILE scotchmetisTargets.cmake + NAMESPACE SCOTCH:: +- DESTINATION lib/cmake/scotch) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) + if(INSTALL_METIS_HEADERS) + install(TARGETS scotchmetisv${version} + EXPORT scotchmetisTargets +- ARCHIVE DESTINATION lib +- LIBRARY DESTINATION lib +- PUBLIC_HEADER DESTINATION include) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + else() + install(TARGETS scotchmetisv${version} + EXPORT scotchmetisTargets +- ARCHIVE DESTINATION lib +- LIBRARY DESTINATION lib) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + endforeach(version 3 5) + +@@ -174,19 +174,19 @@ if(BUILD_PTSCOTCH) + install(EXPORT ptscotchparmetisTargets + FILE ptscotchparmetisTargets.cmake + NAMESPACE SCOTCH:: +- DESTINATION lib/cmake/scotch) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) + + if(INSTALL_METIS_HEADERS) + install(TARGETS ptscotchparmetisv${version} + EXPORT ptscotchparmetisTargets +- ARCHIVE DESTINATION lib +- LIBRARY DESTINATION lib +- PUBLIC_HEADER DESTINATION include) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + else() + install(TARGETS ptscotchparmetisv${version} + EXPORT ptscotchparmetisTargets +- ARCHIVE DESTINATION lib +- LIBRARY DESTINATION lib) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + endforeach(version 3) + endif(BUILD_PTSCOTCH) diff --git a/sources b/sources index 5c644f3..fc05a6e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (scotch-v6.1.2.tar.bz2) = a59779523e2e9a77612140dafd96d9c5ac381c1a8148f8b236f5f3a610c458b75d7d5d6d51443dc8764ebcf46939746a71e51d7d61278d808aeaec5f3e6d4006 +SHA512 (scotch-v7.0.3.tar.bz2) = a96c864fe007710654b274ea00926b1abe2a1771644412220806fbeab3404dcb95d9474af82fabbebe153ce6fe59590102dc87bba23a3d429b6840c8a2518dae