commit: e1499a574732f641844ec73596f429991fffbfc4
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Thu Jun 2 15:54:04 2022 +0000
Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
CommitDate: Thu Jun 2 15:55:04 2022 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e1499a57
sys-cluster/extrae: add 4.0.1
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
sys-cluster/extrae/Manifest | 1 +
sys-cluster/extrae/extrae-4.0.1.ebuild | 234 +++++++++++++++++++++++++++++++++
2 files changed, 235 insertions(+)
diff --git a/sys-cluster/extrae/Manifest b/sys-cluster/extrae/Manifest
index 17608e9bc..1f6352936 100644
--- a/sys-cluster/extrae/Manifest
+++ b/sys-cluster/extrae/Manifest
@@ -1 +1,2 @@
DIST extrae-3.8.3.tar.gz 1056317 BLAKE2B
9efe7011ba9474de66deb8c679f10eff37cc3d5699b42cb1b076ed43b539bbc15ecc613b3f17b03df9e93a219ebcafd3e1d56229db9c0d4e7a0a56d5c3edd591
SHA512
3fba66447790e0a1c71c0e5a61f67ad966cdd4e19742799ecc50124a916ef599fff747027ccc803584f0ab2d1d76c29ded7072a70dd0aed5a3be7ff6ecbb8709
+DIST extrae-4.0.1.tar.gz 1082141 BLAKE2B
a049f744aa1d2f6770e620939c5d7981098e86908843f0b9d38d06a4aa9103ed2d551a34301dbf57857316340031d536a814d82a9ab0aab5ab70b063171ff52c
SHA512
58cbe06b1eb738dba3c9d38a96ca8a9bf442c492214e086876af25b8d7e01c379b46281f6815763e87e0e69214636f95486d48b1b6ce088b54d24b4d77ff0920
diff --git a/sys-cluster/extrae/extrae-4.0.1.ebuild
b/sys-cluster/extrae/extrae-4.0.1.ebuild
new file mode 100644
index 000000000..8bcd5ef13
--- /dev/null
+++ b/sys-cluster/extrae/extrae-4.0.1.ebuild
@@ -0,0 +1,234 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( pypy3 python3_{8..11} )
+
+inherit autotools java-pkg-opt-2 python-single-r1
+
+DESCRIPTION="Instrumentation framework to generate execution traces of
parallel runtimes"
+HOMEPAGE="https://github.com/bsc-performance-tools/extrae"
+SRC_URI="https://github.com/bsc-performance-tools/extrae/archive/${PV}.tar.gz
-> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE_INSTRUMENT="
+ +instrument_dynamic-memory
+ +instrument_io
+ +instrument_syscall
+"
+IUSE="${IUSE_INSTRUMENT} clustering dlsym doc dyninst heterogeneous inotify
memkind
+merge-in-trace nanos online opencl openmp openshmem +parallel-merge
pebs-sampling
+peruse +posix-clock pthread sampling +single-mpi-lib sionlib smpss spectral
+xml"
+
+#aspectj needs foo/lib/aspectj.jar and foo/bin/ajc
+#TODO: cuda cupti gm mx gaspi aspectj
+#TODO: support llvm libunwind, llvm rt, elftoolchain
+
+# aspectj? ( >=dev-java/aspectj-1.9.6 )
+CDEPEND="
+ ${PYTHON_DEPS}
+ dev-libs/libxml2
+ dev-libs/papi
+ !sys-cluster/openmpi[libompitrace(+)]
+ sys-libs/binutils-libs
+ sys-libs/libunwind
+ sys-libs/zlib
+ virtual/mpi
+
+ clustering? ( sys-cluster/clusteringsuite[treedbscan] )
+ dyninst? (
+ dev-libs/boost:=
+ dev-libs/libdwarf
+ sys-cluster/dyninst
+ virtual/libelf
+ )
+ inotify? ( dev-libs/libevent )
+ memkind? ( dev-libs/memkind )
+ online? ( sys-cluster/synapse )
+ opencl? ( dev-util/opencl-headers )
+ openshmem? ( sys-cluster/SOS )
+ peruse? ( sys-cluster/openmpi[peruse(-)] )
+ sionlib? ( sys-cluster/sionlib:= )
+ spectral? (
+ sci-libs/fftw
+ sys-cluster/spectral
+ )
+"
+DEPEND="
+ ${CDEPEND}
+ java? ( virtual/jdk:1.8 )
+"
+RDEPEND="
+ ${CDEPEND}
+ java? ( virtual/jre:1.8 )
+ virtual/opencl
+"
+BDEPEND="
+ sys-devel/binutils-config
+ doc? (
+ app-text/ghostscript-gpl
+ dev-python/sphinx
+ dev-tex/latexmk
+ dev-texlive/texlive-latexextra
+ )
+ java? ( app-admin/chrpath )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.8.3-link-sionlib.patch"
+)
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+
+ || ( ${IUSE_INSTRUMENT//+/} )
+
+ java? ( pthread )
+"
+# aspectj? ( java )
+# cupti? ( cuda )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ export VARTEXFONTS="${T}/fonts"
+
+ local myconf=(
+ --disable-mic
+ --disable-pmapi
+ --disable-static
+ --enable-shared
+ --without-cupti
+ --without-gm
+ --without-mx
+
+ --datadir="${T}"
+ --datarootdir="${T}"
+ --with-librt="${EPREFIX}/usr"
+ --with-mpi="${EPREFIX}/usr"
+ --with-papi="${EPREFIX}/usr"
+ --with-unwind="${EPREFIX}/usr"
+
+ $(use_enable doc)
+ $(use_enable heterogeneous)
+ $(use_enable inotify)
+ $(use_enable instrument_dynamic-memory)
+ $(use_enable instrument_io)
+ $(use_enable instrument_syscall)
+ $(use_enable merge-in-trace)
+ $(use_enable nanos)
+ $(use_enable online)
+ $(use_enable openmp)
+ $(use_enable parallel-merge)
+ $(use_enable pebs-sampling)
+ $(use_enable peruse)
+ $(use_enable posix-clock)
+ $(use_enable pthread)
+ $(use_enable sampling)
+ $(use_enable single-mpi-lib)
+ $(use_enable smpss)
+ $(use_enable xml)
+ )
+
+ use dlsym && myconf+=( "--with-pmpi-hook=dlsym" )
+
+# if use aspectj; then
+# myconf+=(
"--with-java-aspectj=${EPREFIX}/usr/share/aspectj/lib" )
+# myconf+=(
"--with-java-aspectj-weaver=${EPREFIX}/usr/share/aspectj/lib" )
+# else
+ myconf+=( "--without-java-aspectj-weaver" )
+ myconf+=( "--without-java-aspectj" )
+# fi
+ if use clustering; then
+ myconf+=( "--with-clustering=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-clustering" )
+ fi
+ if use dyninst; then
+ myconf+=( "--with-boost=${EPREFIX}/usr" )
+ myconf+=( "--with-dyninst=${EPREFIX}/usr" )
+ myconf+=(
"--with-dyninst-headers=${EPREFIX}/usr/include/dyninst" )
+ myconf+=( "--with-dwarf=${EPREFIX}/usr" )
+ myconf+=( "--with-elf=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-boost" )
+ myconf+=( "--without-dyninst" )
+ myconf+=( "--without-dwarf" )
+ myconf+=( "--without-elf" )
+ fi
+ if use java; then
+ myconf+=( "--with-java-jdk=$(java-config -O)" )
+ else
+ myconf+=( "--without-java-jdk" )
+ fi
+ if use memkind; then
+ myconf+=( "--with-memkind=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-memkind" )
+ fi
+ if use online; then
+ myconf+=( "--with-synapse=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-synapse" )
+ fi
+ if use opencl; then
+ myconf+=( "--with-opencl=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-opencl" )
+ fi
+ if use openshmem; then
+ myconf+=( "--with-openshmem=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-openshmem" )
+ fi
+ if use sionlib; then
+ myconf+=( "--with-sionlib=${EPREFIX}/usr" )
+ myconf+=(
"--with-sionlib-headers=${EPREFIX}/usr/include/sionlib" )
+ fi
+ if use spectral; then
+ myconf+=( "--with-fft=${EPREFIX}/usr" )
+ myconf+=( "--with-spectral=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-fft" )
+ myconf+=( "--without-spectral" )
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ #TODO: build examples
+
+ mkdir -p "${D}/$(python_get_sitedir)/" || die
+ mv "${ED}/usr/libexec/pyextrae" "${D}/$(python_get_sitedir)/" || die
+ python_optimize "${D}/$(python_get_sitedir)/pyextrae"
+
+ #super-duper workaround
+ mkdir -p "${ED}/usr/share/doc/${PF}" || die
+ mv "${ED}/${T}/example" "${ED}/usr/share/doc/${PF}/examples" || die
+ mv "${ED}/${T}/tests" "${ED}/usr/share/doc/${PF}/" || die
+
+ if use doc ; then
+ mv "${T}/docs"/* "${ED}/usr/share/doc/${PF}/" || die
+ mv "${T}/man" "${ED}/usr/share/" || die
+ docompress -x "/usr/share/doc/${PF}/html"
+ fi
+ docompress -x "/usr/share/doc/${PF}/examples"
+ docompress -x "/usr/share/doc/${PF}/tests"
+
+ if use java; then
+ chrpath -d "${ED}/usr/$(get_libdir)/libextrae-jvmti-agent.so"
|| die
+ chrpath -d "${ED}/usr/$(get_libdir)/libjavatrace.so" || die
+ fi
+
+ find "${ED}" -name '*.a' -delete || die
+ find "${ED}" -name '*.la' -delete || die
+}