commit:     0534a9029203626c10275cf85db98df67a036c2b
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Mon Apr 26 07:14:55 2021 +0000
Commit:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
CommitDate: Mon Apr 26 07:14:55 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=0534a902

sys-cluster/clusteringsuite: new package

Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 sys-cluster/clusteringsuite/Manifest               |   1 +
 .../clusteringsuite/clusteringsuite-2.6.9.ebuild   | 103 ++++++++++++++++
 .../clusteringsuite/files/respect-flags.patch      | 134 +++++++++++++++++++++
 sys-cluster/clusteringsuite/metadata.xml           |  19 +++
 4 files changed, 257 insertions(+)

diff --git a/sys-cluster/clusteringsuite/Manifest 
b/sys-cluster/clusteringsuite/Manifest
new file mode 100644
index 000000000..fa6804d47
--- /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 000000000..bb11cf591
--- /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 000000000..9ff5bd384
--- /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 <mpi.h>" > 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 000000000..f97124ffd
--- /dev/null
+++ b/sys-cluster/clusteringsuite/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+               <name>Alessandro Barbieri</name>
+       </maintainer>
+       <use>
+               <!--<flag name="maintainer-mode">enable make rules and 
dependencies not useful (and sometimes confusing) to the casual 
installer</flag>-->
+               <flag name="mpi">enable mpi for distributed version</flag>
+               <!--<flag name="muster">enable support for Muster 
algorithms</flag>-->
+               <flag name="old-pcfparser">enable compilation with old 
pcfparser</flag>
+               <!--<flag name="treedbscan">enable compilation of TreeDBSCAN 
support for <pkg>sys-cluster/extrae</pkg></flag>-->
+       </use>
+       <upstream>
+               
<bugs-to>https://github.com/bsc-performance-tools/clustering-suite/issues</bugs-to>
+               <remote-id 
type="github">bsc-performance-tools/clustering-suite</remote-id>
+       </upstream>
+</pkgmetadata>

Reply via email to