From 0534a9029203626c10275cf85db98df67a036c2b Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Mon, 26 Apr 2021 09:14:55 +0200 Subject: [PATCH] sys-cluster/clusteringsuite: new package Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Alessandro Barbieri --- sys-cluster/clusteringsuite/Manifest | 1 + .../clusteringsuite-2.6.9.ebuild | 103 ++++++++++++++ .../clusteringsuite/files/respect-flags.patch | 134 ++++++++++++++++++ sys-cluster/clusteringsuite/metadata.xml | 19 +++ 4 files changed, 257 insertions(+) create mode 100644 sys-cluster/clusteringsuite/Manifest create mode 100644 sys-cluster/clusteringsuite/clusteringsuite-2.6.9.ebuild create mode 100644 sys-cluster/clusteringsuite/files/respect-flags.patch create mode 100644 sys-cluster/clusteringsuite/metadata.xml diff --git a/sys-cluster/clusteringsuite/Manifest b/sys-cluster/clusteringsuite/Manifest new file mode 100644 index 0000000000..fa6804d476 --- /dev/null +++ b/sys-cluster/clusteringsuite/Manifest @@ -0,0 +1 @@ +DIST clusteringsuite-2.6.9-src.tar.bz2 8081023 BLAKE2B d53e08a51e0a5a2d487bc4413c19d802804b7ae79b5f1e7c466ba2c37e36d90864a4629f51a98ca5caa83f4cc0a3ca8c74f5652c044c08591c65f3b50acf13d2 SHA512 80903e3d2c018e8ed23874715f7ffc1706ac5d9dcd0826c75bb07c973c28fa9755d4c130021abd6e969e983fbe23463be7361bb29b6d1ab04596ba4f987b1b6a diff --git a/sys-cluster/clusteringsuite/clusteringsuite-2.6.9.ebuild b/sys-cluster/clusteringsuite/clusteringsuite-2.6.9.ebuild new file mode 100644 index 0000000000..bb11cf5919 --- /dev/null +++ b/sys-cluster/clusteringsuite/clusteringsuite-2.6.9.ebuild @@ -0,0 +1,103 @@ +# Copyright 2019-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( pypy3 python3_{7,8,9} ) +inherit python-any-r1 + +DESCRIPTION="Automatically expose the main performance trends in applications' computation structure" +HOMEPAGE=" + https://tools.bsc.es/cluster-analysis + https://github.com/bsc-performance-tools/clustering-suite +" +SRC_URI="https://ftp.tools.bsc.es/clusteringsuite/clusteringsuite-${PV}-src.tar.bz2" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~amd64" +IUSE="doc mpi old-pcfparser" +#TODO: muster treedbscan +#TODO: unbundle ANN + +#PATCHES=( "${FILESDIR}/respect-flags.patch" ) + +RDEPEND=" + dev-libs/boost:= + sci-libs/ann + mpi? ( virtual/mpi ) +" +# treedbscan? ( +# dev-libs/boost[threads]:= +# dev-libs/gmp +# dev-libs/mpfr +# sci-mathematics/cgal +# sys-cluster/synapse +#) + +DEPEND=" + ${RDEPEND} + ${PYTHON_DEPS} +" +BDEPEND="doc? ( app-doc/doxygen )" + +src_configure() { + + local myconf=( + --disable-static + --disable-static-boost + --enable-shared + --with-boost="${EPREFIX}/usr" + --with-pic + + $(use_enable old-pcfparser) + ) + + if use mpi; then + myconf+=( "--with-mpi=${EPREFIX}/usr" ) + else + myconf+=( "--without-mpi" ) + fi +# if use muster; then +# myconf+=( "--with-muster=${EPREFIX}/usr" ) +# else + myconf+=( "--without-muster" ) +# fi +# if use treedbscan; then +# myconf+=( "--enable-treedbscan" ) +# myconf+=( "--with-cgal=${EPREFIX}/usr" ) +# myconf+=( "--with-gmp=${EPREFIX}/usr" ) +# myconf+=( "--with-mpfr=${EPREFIX}/usr" ) +# myconf+=( "--with-synapse=${EPREFIX}/usr" ) +# else + myconf+=( "--without-cgal" ) + myconf+=( "--without-gmp" ) + myconf+=( "--without-mpfr" ) + myconf+=( "--without-synapse" ) +# fi + + econf "${myconf[@]}" || die +} + +src_compile() { + export VARTEXFONTS="${T}/fonts" + if use doc ; then + pushd doc || die + emake build-documentation + popd + fi + default +} + +src_install() { + MAKEOPTS="-j1" DESTDIR="${D}" emake install + + cd doc || die + dodoc -r *.pdf + + rm "${ED}/usr/share/doc/clusteringsuite_manual.pdf" || die + mv "${ED}/usr/share/example" "${ED}/usr/share/doc/${PF}/examples" || die + docompress -x "/usr/share/doc/${PF}/examples" + + find "${ED}" -name '*.la' -delete || die +} diff --git a/sys-cluster/clusteringsuite/files/respect-flags.patch b/sys-cluster/clusteringsuite/files/respect-flags.patch new file mode 100644 index 0000000000..9ff5bd3845 --- /dev/null +++ b/sys-cluster/clusteringsuite/files/respect-flags.patch @@ -0,0 +1,134 @@ +diff '--color=auto' -ru a/config/determine-cc.sh b/config/determine-cc.sh +--- a/config/determine-cc.sh 2021-04-25 01:09:35.175990108 +0200 ++++ b/config/determine-cc.sh 2021-04-25 01:10:02.876433713 +0200 +@@ -1,7 +1,6 @@ + #!/bin/sh + # determine what compiler is behind "cc" (and presumably "CC" and "ftn") wrapper + +-CC=`which cc 2>/dev/null` + COMP= + if [ -z "$CC" ]; then + echo "No 'cc' located!" +diff '--color=auto' -ru a/config/select-compiler.sh b/config/select-compiler.sh +--- a/config/select-compiler.sh 2021-04-25 01:09:35.175990108 +0200 ++++ b/config/select-compiler.sh 2021-04-25 01:10:26.882817842 +0200 +@@ -9,7 +9,7 @@ + CPS="" + COMP="" + +-GNU=`which gcc 2> /dev/null` ++GNU="${CC}" + if [ -n "${GNU}" ] + then + NCPS=`expr ${NCPS} + 1` +diff '--color=auto' -ru a/config/select-mpi.sh b/config/select-mpi.sh +--- a/config/select-mpi.sh 2021-04-25 01:09:35.175990108 +0200 ++++ b/config/select-mpi.sh 2021-04-25 01:12:41.269962840 +0200 +@@ -76,7 +76,6 @@ + if [ -z "${MPIS}" ]; then MPIS="${MPI}"; else MPIS="${MPIS}|${MPI}"; fi + fi + +-MPICC=`which mpicc 2> /dev/null` + if [ -n "${MPICC}" ] + then + FMPI="" +@@ -86,7 +85,7 @@ + MPIROOTDIR1=`dirname ${MBINDIR}` + + echo "#include " > conftest.c +- mpicc -E conftest.c | grep '/mpi.h"' | head -1 > mpiconf.txt ++ "${MPICC}" -E conftest.c | grep '/mpi.h"' | head -1 > mpiconf.txt + MINCDIR=`cat mpiconf.txt | sed -e 's#^.* "##' -e 's#/mpi.h".*##'` + if [ -n "${MINCDIR}" ] + then +diff '--color=auto' -ru a/mf/Makefile.defs.linux-gomp b/mf/Makefile.defs.linux-gomp +--- a/mf/Makefile.defs.linux-gomp 2021-04-25 01:09:35.119989211 +0200 ++++ b/mf/Makefile.defs.linux-gomp 2021-04-25 01:52:32.378951608 +0200 +@@ -23,24 +23,19 @@ + #------------------------------------------------------------------------------ + # SIONlib General Settings + #------------------------------------------------------------------------------ +-OPTFLAGS = -g -O0 -Wall ++CFLAGS += -std=c99 $(PFLAG) $(OPTFLAGS) -fPIC + +-CC = gcc +-CFLAGS = -std=c99 $(PFLAG) $(OPTFLAGS) -fPIC ++CXXFLAGS += $(PFLAG) $(OPTFLAGS) -fPIC + +-CXX = g++ +-CXXFLAGS = $(PFLAG) $(OPTFLAGS) -O3 +- +-F77 = gfortran +-FFLAGS = $(PFLAG) $(OPTFLAGS) ++FFLAGS += $(PFLAG) $(OPTFLAGS) -fPIC + + F90 = $(F77) +-F90FLAGS = $(PFLAG) $(OPTFLAGS) -ffree-form ++F90FLAGS += $(PFLAG) $(OPTFLAGS) -ffree-form -fPIC $(FCFLAGS) + + FPP = + FDOPT = -D + +-LDFLAGS = $(PFLAG) $(OPTFLAGS) $(HINTSLIB) ++LDFLAGS += $(PFLAG) $(OPTFLAGS) $(HINTSLIB) + UTILLIB = + FOBASE = pomp_fwrapper_base.o + +@@ -101,10 +96,6 @@ + #------------------------------------------------------------------------------ + + MPIENABLE = 1 +-MPICC = mpicc +-MPICXX = mpicxx +-MPIF77 = mpif77 +-MPIF90 = mpif90 + MPILIB = -lmpich + PMPILIB = -lpmpich + #PMPILIB = # MPICH2 +@@ -139,8 +130,7 @@ + #------------------------------------------------------------------------------ + + SZLIB = szlib +-SZLIB_OPTFLAGS = -O3 +-SZLIB_CFLAGS = -I$(TOPDIR)/utils/szlib -DELG_COMPRESSED -DCUBE_COMPRESSED ++SZLIB_CFLAGS = -I$(TOPDIR)/utils/szlib -DELG_COMPRESSED -DCUBE_COMPRESSED $(CFLAGS) + SZLIB_LIBPATH = -L$(TOPDIR)/utils/szlib + SZLIB_LIB = -lsc.z + +diff '--color=auto' -ru a/src/fortraninterface/Makefile b/src/fortraninterface/Makefile +--- a/src/fortraninterface/Makefile 2021-04-25 01:09:35.141989563 +0200 ++++ b/src/fortraninterface/Makefile 2021-04-25 01:23:48.055976593 +0200 +@@ -109,7 +110,7 @@ + $(CPP) $(F90FLAGS) $(F90FLAGS_CPP) -P -E -I ../lib sion_f90.F90 > sion_f90.f90 + sion_f90.mod : sion_f90.o + sion_f90.o : sion_f90.f90 sion_f77.h $(SION_HDRS) +- $(F90) -c sion_f90.f90 ++ $(F90) $(F90FLAGS) -c sion_f90.f90 + + sion_f90_omp.o: sion_f90.o + sion_f90_mpi.o: sion_f90.o +@@ -121,21 +122,21 @@ + $(CPP) $(F90FLAGS) $(F90FLAGS_CPP) $(F90MPIFLAGS) -P -E -I ../lib sion_f90_mpi.F90 > sion_f90_mpi.f90 + sion_f90_mpi.mod : sion_f90_mpi.o + sion_f90_mpi.o : sion_f90_mpi.f90 sion_f90.mod $(SION_HDRS) +- $(MPIF90) -c sion_f90_mpi.f90 ++ $(MPIF90) $(F90FLAGS) $(F90MPIFLAGS) -c sion_f90_mpi.f90 + + # F90 Interface (OMP) + sion_f90_omp.f90: sion_f90_omp.F90 + $(CPP) $(F90OMPFLAGS) $(F90FLAGS) $(F90FLAGS_CPP) -P -E -I ../lib sion_f90_omp.F90 > sion_f90_omp.f90 + sion_f90_omp.mod : sion_f90_omp.o + sion_f90_omp.o : sion_f90_omp.f90 sion_f90.mod $(SION_HDRS) +- $(OMPF90) -c sion_f90_omp.f90 ++ $(OMPF90) $(F90FLAGS) $(F90OMPFLAGS) -c sion_f90_omp.f90 + + # F90 Interface (OMPI) + sion_f90_ompi.f90: sion_f90_ompi.F90 $(SION_HDRS) + $(CPP) $(F90MPIFLAGS) $(F90OMPFLAGS) $(F90FLAGS) $(F90FLAGS_CPP) -P -E -I ../lib sion_f90_ompi.F90 > sion_f90_ompi.f90 + sion_f90_ompi.mod : sion_f90_ompi.o + sion_f90_ompi.o : sion_f90_ompi.f90 $(SION_HDRS) +- $(MPIF90) -c sion_f90_ompi.f90 ++ $(MPIF90) $(F90FLAGS) $(F90MPIFLAGS) -c sion_f90_ompi.f90 + + + diff --git a/sys-cluster/clusteringsuite/metadata.xml b/sys-cluster/clusteringsuite/metadata.xml new file mode 100644 index 0000000000..f97124ffdd --- /dev/null +++ b/sys-cluster/clusteringsuite/metadata.xml @@ -0,0 +1,19 @@ + + + + + lssndrbarbieri@gmail.com + Alessandro Barbieri + + + + enable mpi for distributed version + + enable compilation with old pcfparser + + + + https://github.com/bsc-performance-tools/clustering-suite/issues + bsc-performance-tools/clustering-suite + +