commit: 082d434af1832d7995644d85cba5e6f8b1c537df
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Tue Jun 15 13:26:39 2021 +0000
Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
CommitDate: Tue Jun 15 13:27:20 2021 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=082d434a
sys-cluster/extrae: install in /usr/lib(64)
no more collision with openmpi now
Package-Manager: Portage-3.0.19, Repoman-3.0.3
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
sys-cluster/extrae/extrae-3.8.3-r4.ebuild | 207 ++++++++++++++++++++++++++++++
sys-cluster/extrae/extrae-3.8.3-r5.ebuild | 207 ++++++++++++++++++++++++++++++
sys-cluster/extrae/metadata.xml | 4 +-
3 files changed, 416 insertions(+), 2 deletions(-)
diff --git a/sys-cluster/extrae/extrae-3.8.3-r4.ebuild
b/sys-cluster/extrae/extrae-3.8.3-r4.ebuild
new file mode 100644
index 000000000..dcbbd4dd0
--- /dev/null
+++ b/sys-cluster/extrae/extrae-3.8.3-r4.ebuild
@@ -0,0 +1,207 @@
+# 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 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="boost clustering doc dwarf elf fft heterogeneous inotify
+instrument-dynamic-memory +instrument-io +instrument-syscall merge-in-trace
nanos opencl openmp +parallel-merge pebs-sampling +posix-clock pthread sampling
+single-mpi-lib sionlib smpss +xml"
+#aspectj and aspectj-weaver need to both be enabled at the same time
+#current dev-java/aspectj package only provides aspectj.jar
+#aspectj needs foo/lib/aspectj.jar and foo/bin/ajc
+#aspectj-weaver needs bar/aspectjweaver.jar
+#TODO: find out who is pulling in libpfm
+#TODO: find out which FFT library is used
+#TODO: remove some useflags (boost fft elf dwarf)
+#TODO: pmapi online dyninst cuda spectral cupti openshmem gm mx synapse
memkind aspectj
+#TODO: support llvm libunwind, llvm rt, elftoolchain
+
+CDEPEND="
+ ${PYTHON_DEPS}
+ app-arch/xz-utils
+ dev-libs/icu
+ dev-libs/libpfm
+ dev-libs/libxml2
+ dev-libs/papi
+ sys-apps/hwloc
+ sys-libs/zlib
+ virtual/mpi
+
+ || ( sys-libs/libunwind sys-libs/llvm-libunwind )
+ || ( sys-devel/binutils:* sys-libs/binutils-libs )
+
+ boost? ( dev-libs/boost:= )
+ clustering? ( sys-cluster/clusteringsuite )
+ dwarf? ( dev-libs/libdwarf )
+ elf? ( virtual/libelf )
+ inotify? ( dev-libs/libevent )
+ opencl? ( dev-util/opencl-headers )
+ sionlib? ( sys-cluster/sionlib:= )
+"
+# aspectj? ( >=dev-java/aspectj-1.9.6 )
+DEPEND="
+ ${CDEPEND}
+ java? ( virtual/jdk:1.8 )
+"
+RDEPEND="
+ ${CDEPEND}
+ java? ( virtual/jre:1.8 )
+ virtual/opencl
+"
+BDEPEND="
+ doc? (
+ app-text/ghostscript-gpl
+ dev-python/sphinx
+ dev-tex/latexmk
+ dev-texlive/texlive-latexextra
+ )
+"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ java? ( pthread )
+"
+# cupti? ( cuda )
+# dyninst? ( boost dwarf elf )
+# online? ( synapse )
+# aspectj? ( java )
+# spectral? ( fft )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ export VARTEXFONTS="${T}/fonts"
+
+ local myconf=(
+ --datadir="${T}"
+ --datarootdir="${T}"
+ --libdir="${EPREFIX}/usr/$(get_libdir)/extrae/lib"
+
+ --disable-mic
+ --disable-online
+ --disable-peruse
+ --disable-pmapi
+ --disable-static
+
+ --enable-shared
+
+ --with-librt="${EPREFIX}/usr"
+ --with-mpi="${EPREFIX}/usr"
+ --with-papi="${EPREFIX}/usr"
+ --with-pic
+ --with-unwind="${EPREFIX}/usr"
+
+ --without-dyninst
+ --without-cupti
+ --without-memkind
+ --without-synapse
+ --without-spectral
+ --without-openshmem
+ --without-gm
+ --without-mx
+
+ $(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 openmp)
+ $(use_enable sampling)
+ $(use_enable parallel-merge)
+ $(use_enable pebs-sampling)
+ $(use_enable posix-clock)
+ $(use_enable pthread)
+ $(use_enable single-mpi-lib)
+ $(use_enable smpss)
+ $(use_enable xml)
+ )
+#--with-pmpi-hook (Choose method to call PMPI (dlsym or pmpi))
+
+# if use aspectj; then
+# myconf+=(
"--with-java-aspectj=${EPREFIX}/usr/share/aspectj/lib" )
+# myconf+=( "--with-java-aspectj-weaver=${EPREFIX}/usr" )
+# else
+ myconf+=( "--without-java-aspectj-weaver" )
+ myconf+=( "--without-java-aspectj" )
+# fi
+ if use boost; then
+ myconf+=( "--with-boost=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-boost" )
+ fi
+ if use clustering; then
+ myconf+=( "--with-clustering=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-clustering" )
+ fi
+ if use dwarf; then
+ myconf+=( "--with-dwarf=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-dwarf" )
+ fi
+ if use elf; then
+ myconf+=( "--with-elf=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-elf" )
+ fi
+ if use fft; then
+ myconf+=( "--with-fft=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-fft" )
+ fi
+ if use java; then
+ myconf+=( "--with-java-jdk=$(java-config -O)" )
+ else
+ myconf+=( "--without-java-jdk" )
+ fi
+ if use opencl; then
+ myconf+=( "--with-opencl=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-opencl" )
+ fi
+
+ use sionlib && myconf+=( "--with-sionlib=${EPREFIX}/usr" )
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ 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"
+
+ echo LDPATH="/usr/$(get_libdir)/extrae/lib" > 99extrae
+ insinto /etc/env.d
+ doins 99extrae
+
+ find "${ED}" -name '*.a' -delete || die
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/sys-cluster/extrae/extrae-3.8.3-r5.ebuild
b/sys-cluster/extrae/extrae-3.8.3-r5.ebuild
new file mode 100644
index 000000000..a221e2b61
--- /dev/null
+++ b/sys-cluster/extrae/extrae-3.8.3-r5.ebuild
@@ -0,0 +1,207 @@
+# Copyright 2019-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( pypy3 python3_{8,9} )
+
+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="boost clustering doc dwarf elf fft heterogeneous inotify
+instrument-dynamic-memory +instrument-io +instrument-syscall merge-in-trace
nanos opencl openmp +parallel-merge pebs-sampling +posix-clock pthread sampling
+single-mpi-lib sionlib smpss +xml"
+#aspectj and aspectj-weaver need to both be enabled at the same time
+#current dev-java/aspectj package only provides aspectj.jar
+#aspectj needs foo/lib/aspectj.jar and foo/bin/ajc
+#aspectj-weaver needs bar/aspectjweaver.jar
+#TODO: find out who is pulling in libpfm
+#TODO: find out which FFT library is used
+#TODO: remove some useflags (boost fft elf dwarf)
+#TODO: pmapi online dyninst cuda spectral cupti openshmem gm mx synapse
memkind aspectj
+#TODO: support llvm libunwind, llvm rt, elftoolchain
+
+CDEPEND="
+ ${PYTHON_DEPS}
+ app-arch/xz-utils
+ dev-libs/icu
+ dev-libs/libpfm
+ dev-libs/libxml2
+ dev-libs/papi
+ sys-apps/hwloc
+ !<sys-cluster/openmpi-4.0.5-r1
+ !>=sys-cluster/openmpi-4.0.5-r1[libompitrace]
+ sys-libs/zlib
+ virtual/mpi
+
+ || ( sys-libs/libunwind sys-libs/llvm-libunwind )
+ || ( sys-devel/binutils:* sys-libs/binutils-libs )
+
+ boost? ( dev-libs/boost:= )
+ clustering? ( sys-cluster/clusteringsuite )
+ dwarf? ( dev-libs/libdwarf )
+ elf? ( virtual/libelf )
+ inotify? ( dev-libs/libevent )
+ opencl? ( dev-util/opencl-headers )
+ sionlib? ( sys-cluster/sionlib:= )
+"
+# aspectj? ( >=dev-java/aspectj-1.9.6 )
+DEPEND="
+ ${CDEPEND}
+ java? ( virtual/jdk:1.8 )
+"
+RDEPEND="
+ ${CDEPEND}
+ java? ( virtual/jre:1.8 )
+ virtual/opencl
+"
+BDEPEND="
+ doc? (
+ app-text/ghostscript-gpl
+ dev-python/sphinx
+ dev-tex/latexmk
+ dev-texlive/texlive-latexextra
+ )
+"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ java? ( pthread )
+"
+# cupti? ( cuda )
+# dyninst? ( boost dwarf elf )
+# online? ( synapse )
+# aspectj? ( java )
+# spectral? ( fft )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ export VARTEXFONTS="${T}/fonts"
+
+ local myconf=(
+ --datadir="${T}"
+ --datarootdir="${T}"
+
+ --disable-mic
+ --disable-online
+ --disable-peruse
+ --disable-pmapi
+ --disable-static
+
+ --enable-shared
+
+ --with-librt="${EPREFIX}/usr"
+ --with-mpi="${EPREFIX}/usr"
+ --with-papi="${EPREFIX}/usr"
+ --with-pic
+ --with-unwind="${EPREFIX}/usr"
+
+ --without-dyninst
+ --without-cupti
+ --without-memkind
+ --without-synapse
+ --without-spectral
+ --without-openshmem
+ --without-gm
+ --without-mx
+
+ $(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 openmp)
+ $(use_enable sampling)
+ $(use_enable parallel-merge)
+ $(use_enable pebs-sampling)
+ $(use_enable posix-clock)
+ $(use_enable pthread)
+ $(use_enable single-mpi-lib)
+ $(use_enable smpss)
+ $(use_enable xml)
+ )
+#--with-pmpi-hook (Choose method to call PMPI (dlsym or pmpi))
+
+# if use aspectj; then
+# myconf+=(
"--with-java-aspectj=${EPREFIX}/usr/share/aspectj/lib" )
+# myconf+=( "--with-java-aspectj-weaver=${EPREFIX}/usr" )
+# else
+ myconf+=( "--without-java-aspectj-weaver" )
+ myconf+=( "--without-java-aspectj" )
+# fi
+ if use boost; then
+ myconf+=( "--with-boost=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-boost" )
+ fi
+ if use clustering; then
+ myconf+=( "--with-clustering=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-clustering" )
+ fi
+ if use dwarf; then
+ myconf+=( "--with-dwarf=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-dwarf" )
+ fi
+ if use elf; then
+ myconf+=( "--with-elf=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-elf" )
+ fi
+ if use fft; then
+ myconf+=( "--with-fft=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-fft" )
+ fi
+ if use java; then
+ myconf+=( "--with-java-jdk=$(java-config -O)" )
+ else
+ myconf+=( "--without-java-jdk" )
+ fi
+ if use opencl; then
+ myconf+=( "--with-opencl=${EPREFIX}/usr" )
+ else
+ myconf+=( "--without-opencl" )
+ fi
+
+ use sionlib && myconf+=( "--with-sionlib=${EPREFIX}/usr" )
+
+ 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"
+
+ find "${ED}" -name '*.a' -delete || die
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/sys-cluster/extrae/metadata.xml b/sys-cluster/extrae/metadata.xml
index 62a7dbbc5..9564c611b 100644
--- a/sys-cluster/extrae/metadata.xml
+++ b/sys-cluster/extrae/metadata.xml
@@ -9,7 +9,7 @@
A dynamic instrumentation package to trace programs compiled and run with the
shared
memory model (like OpenMP and pthreads), the message passing (MPI) programming
model or
both programming models (different MPI processes using OpenMP or pthreads
within each MPI
-process). Extrae generates trace files that can be later visualized with
<pkg>sys-cluster/paraver</pkg>.
+process). Extrae generates trace files that can be later visualized with
sys-cluster/paraver.
</longdescription>
<upstream>
<bugs-to>https://github.com/bsc-performance-tools/extrae/issues</bugs-to>
@@ -33,7 +33,7 @@ process). Extrae generates trace files that can be later
visualized with <pkg>sy
<flag name="instrument-syscall">Enables instrumentation for
system calls (other than I/O and mallocs)</flag>
<flag name="java">Enable support for tracing Java. This is
necessary to create the connectors between |TRACE| and Java applications.</flag>
<flag name="merge-in-trace">Embed the merging process in the
tracing library so the final tracefile can be generated automatically from the
application run</flag>
- <flag name="nanos">Enable support for tracing
<pkg>sys-cluster/nanos</pkg> run-time</flag>
+ <flag name="nanos">Enable support for tracing
<pkg>sys-cluster/nanos6</pkg> run-time</flag>
<!--<flag name="online">Enable on-line analysis</flag>-->
<flag name="opencl">Enable support for tracing OpenCL</flag>
<flag name="openmp">Enable support for tracing OpenMP</flag>