Release 7.0.3|Rename internal Metis include files to avoid conflicts

This commit is contained in:
Antonio Trande 2023-04-13 19:53:37 +02:00
parent 61338f596c
commit 1035b0f643
7 changed files with 411 additions and 249 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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) $(@)

View File

@ -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 <sagitter@fedoraproject.org> - 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 <releng@fedoraproject.org> - 6.1.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

123
scotch_installdirs.patch Normal file
View File

@ -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)

View File

@ -1 +1 @@
SHA512 (scotch-v6.1.2.tar.bz2) = a59779523e2e9a77612140dafd96d9c5ac381c1a8148f8b236f5f3a610c458b75d7d5d6d51443dc8764ebcf46939746a71e51d7d61278d808aeaec5f3e6d4006
SHA512 (scotch-v7.0.3.tar.bz2) = a96c864fe007710654b274ea00926b1abe2a1771644412220806fbeab3404dcb95d9474af82fabbebe153ce6fe59590102dc87bba23a3d429b6840c8a2518dae