summaryrefslogtreecommitdiff
path: root/sci-libs/pastix
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sci-libs/pastix
reinit the tree, so we can have metadata
Diffstat (limited to 'sci-libs/pastix')
-rw-r--r--sci-libs/pastix/Manifest8
-rw-r--r--sci-libs/pastix/files/pastix-5.2.2.22-isnan-floating-point-cast.patch47
-rw-r--r--sci-libs/pastix/files/pastix-5.2.2.22-nosmp-undefined-variable.patch15
-rw-r--r--sci-libs/pastix/metadata.xml23
-rw-r--r--sci-libs/pastix/pastix-5.2.2.22-r1.ebuild127
-rw-r--r--sci-libs/pastix/pastix-5.2.3.ebuild117
6 files changed, 337 insertions, 0 deletions
diff --git a/sci-libs/pastix/Manifest b/sci-libs/pastix/Manifest
new file mode 100644
index 000000000000..0fecdba24993
--- /dev/null
+++ b/sci-libs/pastix/Manifest
@@ -0,0 +1,8 @@
+AUX pastix-5.2.2.22-isnan-floating-point-cast.patch 1901 SHA256 aa70627dc18a4898acd64dd2c992884baf22c9e22ab6d0248953a5ed87be4dab SHA512 23b3e4854afb459e0f68c4322bd85db6addc6ec043bb9c404a9a60667de6b01bb17c3d7795f8fd5dacaa0b5db6c45a6f1e1358590c77326610bc271903b920ee WHIRLPOOL 73e475e94bebd21e8aa569a490c1f2f795dc02e86eb10a4df2933ea4d3d800275964d6b65358fd35d1c2f2b422a0ee262f356e37fe3913402c512a6818afb2db
+AUX pastix-5.2.2.22-nosmp-undefined-variable.patch 494 SHA256 c8dcfc01012239f781747772379d707253a5534cb210967655d6dd2e2f66163e SHA512 c12719176b352b396cc58d7a4474955df0cb01459edce1b2f220c6352d99bf608d39c3b4d6b54b0ae8b4643879ed79b7a5fbd03b746dba0bf4cc265d81d6d38e WHIRLPOOL 2b5e5223954e4564cdd0c1dfdebd37023cbd7443c95736b24e2c799e988b931548a945fa6fa52ea29508874a13e13ba5324a72152a7e763db4992670ea23083f
+DIST pastix_5.2.2.22.tar.bz2 2664470 SHA256 30f771a666719e6b116f549a6e4da451beabab99c2ecabc0745247c3654acbed SHA512 15ecdb10b5229e40f744c1ad54be7cac6560cb92e90df1937c90ca7da290df6bdb6f24a1e1c54197731b9df3e0dcc0b9fa39750479fcf03a0c08c304c5b9df70 WHIRLPOOL 7031f822d3c2f89bd520175a124200303adc2dda56cbae4eb9e011b90d5119c5b96958d648c7e18d034e2845a32ad80385714bfb424260aa62c9f6484a18ce6b
+DIST pastix_5.2.3.tar.bz2 2246903 SHA256 641978e6b0607e201a409549adc78d5618ec159f44cafc7bddeaca4f4bee1e47 SHA512 69acffac1be8c756886783c2a6307269ab4d14abfc4a77268b3d14995e53b16084c298446812484233d9d52c317490d6ad67788166adf367075e6c8442147b95 WHIRLPOOL e03c04dcf4b932d284d90a06d5c22fe608fc6953eee40190103ef3269938aa04df3b83f769efb02c5c67237482b98f88bfd4100880908db71a89ab3aafcff0ec
+EBUILD pastix-5.2.2.22-r1.ebuild 3652 SHA256 c9d93dbd48be7d6a18796203dd287500d8878e0b983d1e248e70cb7f7ea9a8d1 SHA512 3a89871fdd9caf60528945cd43c129392f8a15b81afe00b92f502183cfac8da1a309dc4dfb44b3796dd3039764853a07dbfdfc87b5df6d511a4a377ecde3e887 WHIRLPOOL 8015a3af317ca051fa2c25f4247e42cb10b1f917137dcac9eb4f30027be51fcf73c086f8c3d2d88fc5373cb2556e205f9a2f0654a991e69c7d0bce93eb7f4472
+EBUILD pastix-5.2.3.ebuild 3335 SHA256 5af10e2e3572415c5fbf149dcc855cad1322707ceb8fddac72f462b37a92c7bb SHA512 982558fcf800fefc8bed61f41f3342355ed4795af3ff31c00eda8bca99c45a9651ff2794ca0caf1e23a9aa73a3e1629c7ce72fd5e31547295ea38c8288b9e18e WHIRLPOOL d7f74e588e20ff97885c5f4cb1b8851206de7da0ef699f15a64e9ec263b2804f152feb4beb6f19c685627a6f2b28fdb13ce28cdd5b9808f87cdc67f41f9f6d1b
+MISC ChangeLog 1579 SHA256 37e48d9fef7d6726813676ad23e14b6870ab29087390332f304106034d0dc6b0 SHA512 069ee3e9ab1c26c427cea6ae0ab86f4cbf271c42383a7a7a5c07626df05553ff1cedbe285791c5bb33b31a3eead8aa213f90fc8f3cb0cbdc88cf8b8e5f5f89fa WHIRLPOOL 7490eb389df03b74999a74899e3a482d6d88baea820fa4bb1284ceaf31ee2a14ee6132b743d9fbff6cf447761b645f1179004abf1ee8082d875fbb422a706fa4
+MISC metadata.xml 1055 SHA256 23dd726d5b6258f0b0508a83923d303236aa76f718f54d016706da37a6ba164a SHA512 42f9f1f03c4a2df46918ef461d814ca3c0e80e0fa5420327a45d6ca7ec87dd3f14ad0e5a4384b49aebae971578a425b475fa0e1ed6b73370afb743222765bfde WHIRLPOOL 8e71b7d2b69284d60f3709926445b62e7dbc8835d7992323707eae31a3528618d941c3703889a5743cb6f6530c1378258bc4dd7c742243c00e4b861b520f7d3d
diff --git a/sci-libs/pastix/files/pastix-5.2.2.22-isnan-floating-point-cast.patch b/sci-libs/pastix/files/pastix-5.2.2.22-isnan-floating-point-cast.patch
new file mode 100644
index 000000000000..8aa7c06e5c93
--- /dev/null
+++ b/sci-libs/pastix/files/pastix-5.2.2.22-isnan-floating-point-cast.patch
@@ -0,0 +1,47 @@
+Add missing cast to floating-point type:
+* sopalin/src/variable_csc.c: In function ‘vcsc_add_node’:
+* sopalin/src/variable_csc.c:138:13: error: non-floating-point argument in call to function ‘__builtin_isnan’
+* if (isnan(vcsc->values[COL-1][i*dof2 + ii])) {
+See also:
+https://bugs.gentoo.org/show_bug.cgi?id=580422
+
+--- src/common/src/errors.h
++++ src/common/src/errors.h
+@@ -140,7 +140,7 @@
+ * expr - The value to check.
+ */
+ #define CHECK_NAN(expr) { \
+- ASSERT_DEBUG(!isnan(expr), DBG_SOPALIN_NAN); \
++ ASSERT_DEBUG(!isnan(((double) expr)), DBG_SOPALIN_NAN); \
+ ASSERT_DEBUG(!isinf(expr), DBG_SOPALIN_INF); \
+ }
+ #else
+--- src/sopalin/src/variable_csc.c
++++ src/sopalin/src/variable_csc.c
+@@ -135,7 +135,7 @@
+ #endif
+
+ for (ii = 0; ii < dof2; ii++) {
+- if (isnan(vcsc->values[COL-1][i*dof2 + ii])) {
++ if (isnan(((double) vcsc->values[COL-1][i*dof2 + ii]))) {
+ vcsc->values[COL-1][i*dof2 + ii] = VALUE[ii];
+ } else {
+ vcsc->values[COL-1][i*dof2 + ii] = op(vcsc->values[COL-1][i*dof2 + ii],
+@@ -252,7 +252,7 @@
+ vcsc->rows[COL_NODE][i]);
+ }
+ #endif
+- if (isnan(vcsc->values[COL_NODE][idx])) {
++ if (isnan(((double) vcsc->values[COL_NODE][idx]))) {
+ vcsc->values[COL_NODE][idx] = VALUE;
+ } else {
+ vcsc->values[COL_NODE][idx] = op(vcsc->values[COL_NODE][idx],
+@@ -660,7 +660,7 @@
+ } else {
+ INTS iterdof;
+ for (iterdof = 0; iterdof < dof2; iterdof++) {
+- if (!isnan(vcsc->values[MYCOL-1][dof2*iter2+iterdof])) {
++ if (!isnan(((double) vcsc->values[MYCOL-1][dof2*iter2+iterdof]))) {
+ /* ignore NaN values from VCSC */
+ (*values_o)[dof2*iter3+iterdof] = op(
+ (*values_o)[dof2*iter3+iterdof],
diff --git a/sci-libs/pastix/files/pastix-5.2.2.22-nosmp-undefined-variable.patch b/sci-libs/pastix/files/pastix-5.2.2.22-nosmp-undefined-variable.patch
new file mode 100644
index 000000000000..c01b02bb8f72
--- /dev/null
+++ b/sci-libs/pastix/files/pastix-5.2.2.22-nosmp-undefined-variable.patch
@@ -0,0 +1,15 @@
+--- ./sopalin/src/updo.c.orig 2016-02-23 01:42:00.000000000 +0000
++++ ./sopalin/src/updo.c 2016-02-23 01:42:10.000000000 +0000
+@@ -940,8 +940,10 @@
+ i = TASK_CBLKNUM(i);
+ # define END_LOOP(a) } SMP_END_LOOP(a)
+ # else /* SMP_SOPALIN */
+-# define START_LOOP for (i=0;i<SYMB_CBLKNBR;i++)
+-# define END_LOOP
++# define START_LOOP \
++ int bubnum = me; \
++ for (i=0;i<SYMB_CBLKNBR;i++)
++# define END_LOOP(a) a
+ # endif
+
+ /* Xi=(Dii)-1Xi; */
diff --git a/sci-libs/pastix/metadata.xml b/sci-libs/pastix/metadata.xml
new file mode 100644
index 000000000000..387eff2e8edd
--- /dev/null
+++ b/sci-libs/pastix/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ PaStiX (Parallel Sparse matriX package) is a scientific library that
+ provides a high performance parallel solver for very large sparse
+ linear systems based on direct methods. Numerical algorithms are
+ implemented in single or double precision (real or complex) using
+ LLt, LDLt and LU with static pivoting (for non symmetric matrices
+ having a symmetric pattern). This solver provides also an adaptive
+ blockwise iLU(k) factorization that can be used as a parallel
+ preconditioner using approximated supernodes to build a coarser
+ block structure of the incomplete factors.
+</longdescription>
+ <use>
+ <flag name="int64">Build the 64 bits integer library</flag>
+ <flag name="starpu">Build and link with <pkg>dev-libs/starpu</pkg></flag>
+ </use>
+</pkgmetadata>
diff --git a/sci-libs/pastix/pastix-5.2.2.22-r1.ebuild b/sci-libs/pastix/pastix-5.2.2.22-r1.ebuild
new file mode 100644
index 000000000000..42f5eecb2ad6
--- /dev/null
+++ b/sci-libs/pastix/pastix-5.2.2.22-r1.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit fortran-2 toolchain-funcs
+
+# TODO:
+# testing: emake examples?
+# better doc instalation and building
+# pypastix (separate package?)
+# multilib with eselect?
+# static libs building without pic
+# metis?
+
+# package id: change every version, see the link on inriaforge
+PID=35070
+# commit id: change every version
+#CID=351ef60
+# leave empty if this is not a post release bug fix
+#PPV=bugfix9_
+#MYPN=pastix_release
+#SRC_URI="https://gforge.inria.fr/frs/download.php/${PID}/${MYPN}_${PPV}${CID}.tar.bz2"
+
+DESCRIPTION="Parallel solver for very large sparse linear systems"
+HOMEPAGE="http://pastix.gforge.inria.fr"
+SRC_URI="https://gforge.inria.fr/frs/download.php/${PID}/${PN}_${PV}.tar.bz2"
+
+LICENSE="CeCILL-C"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc int64 mpi +smp starpu static-libs"
+
+RDEPEND="
+ sci-libs/scotch:0=[int64?,mpi?]
+ sys-apps/hwloc:0=
+ virtual/blas
+ mpi? ( virtual/mpi )
+ starpu? ( dev-libs/starpu:0= )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${P}-nosmp-undefined-variable.patch"
+ "${FILESDIR}/${P}-isnan-floating-point-cast.patch"
+)
+S="${WORKDIR}/${PN}_${PV}/src"
+
+src_prepare() {
+ default
+ sed -e 's/^\(HOSTARCH\s*=\).*/\1 ${HOST}/' \
+ -e "s:^\(CCPROG\s*=\).*:\1 $(tc-getCC):" \
+ -e "s:^\(CFPROG\s*=\).*:\1 $(tc-getFC):" \
+ -e "s:^\(CF90PROG\s*=\).*:\1 $(tc-getFC):" \
+ -e "s:^\(ARPROG\s*=\).*:\1 $(tc-getAR):" \
+ -e "s:^\(CCFOPT\s*=\).*:\1 ${FFLAGS}:" \
+ -e "s:^\(CCFDEB\s*=\).*:\1 ${FFLAGS}:" \
+ -e 's:^\(EXTRALIB\s*=\).*:\1 -lm -lrt:' \
+ -e "s:^#\s*\(ROOT\s*=\).*:\1 \$(DESTDIR)${EPREFIX%/}/usr:" \
+ -e 's:^#\s*\(INCLUDEDIR\s*=\).*:\1 $(ROOT)/include:' \
+ -e 's:^#\s*\(BINDIR\s*=\).*:\1 $(ROOT)/bin:' \
+ -e "s:^#\s*\(LIBDIR\s*=\).*:\1 \$(ROOT)/$(get_libdir):" \
+ -e 's:^#\s*\(SHARED\s*=\).*:\1 1:' \
+ -e 's:^#\s*\(SOEXT\s*=\).*:\1 .so:' \
+ -e '/fPIC/s/^#//g' \
+ -e "s:^#\s*\(SHARED_FLAGS\s*=.*\):\1 ${LDFLAGS}:" \
+ -e "s:pkg-config:$(tc-getPKG_CONFIG):g" \
+ -e "s:^\(BLASLIB\s*=\).*:\1 $($(tc-getPKG_CONFIG) --libs blas):" \
+ -e "s:^\s*\(HWLOC_HOME\s*?=\).*:\1 ${EPREFIX}/usr:" \
+ -e "s:-I\$(HWLOC_INC):$($(tc-getPKG_CONFIG) --cflags hwloc):" \
+ -e "s:-L\$(HWLOC_LIB) -lhwloc:$($(tc-getPKG_CONFIG) --libs hwloc):" \
+ -e "s:^\s*\(SCOTCH_HOME\s*?=\).*:\1 ${EPREFIX}/usr:" \
+ -e "s:^\s*\(SCOTCH_INC\s*?=.*\):\1/scotch:" \
+ -e "s:^\s*\(SCOTCH_LIB\s*?=.*\)lib:\1$(get_libdir):" \
+ config/LINUX-GNU.in > config.in || die
+ sed -e 's/__SO_NAME__,$@/__SO_NAME__,$(notdir $@)/g' -i Makefile || die
+}
+
+src_configure() {
+ if use amd64; then
+ sed -e 's/^\(VERSIONBIT\s*=\).*/\1 _64bit/' \
+ -i config.in || die
+ fi
+
+ if use int64; then
+ sed -e '/VERSIONINT.*_int64/s/#//' \
+ -e '/CCTYPES.*INTSSIZE64/s/#//' \
+ -i config.in || die
+ fi
+
+ if ! use mpi; then
+ sed -e '/VERSIONMPI.*_nompi/s/#//' \
+ -e '/CCTYPES.*NOMPI/s/#//' \
+ -e '/MPCCPROG\s*= $(CCPROG)/s/#//' \
+ -e '/MCFPROG\s*= $(CFPROG)/s/#//' \
+ -e 's/-DDISTRIBUTED//' \
+ -e 's/-lptscotch/-lscotch/g' \
+ -i config.in || die
+ fi
+
+ if ! use smp; then
+ sed -e '/VERSIONSMP.*_nosmp/s/#//' \
+ -e '/CCTYPES.*NOSMP/s/#//' \
+ -i config.in || die
+ fi
+
+ if use starpu; then
+ sed -e '/libstarpu/s/#//g' -i config.in || die
+ fi
+}
+
+src_compile() {
+ emake all drivers
+}
+
+src_test() {
+ # both test and tests targets are defined and do not work
+ echo
+}
+
+src_install() {
+ default
+ sed -e "s:${D}::g" -i "${ED}"/usr/bin/pastix-conf || die
+ # quick and dirty (static libs should really be built without pic)
+ cd .. || die
+ dodoc README.txt doc/refcard/refcard.pdf
+}
diff --git a/sci-libs/pastix/pastix-5.2.3.ebuild b/sci-libs/pastix/pastix-5.2.3.ebuild
new file mode 100644
index 000000000000..c307ed61b06c
--- /dev/null
+++ b/sci-libs/pastix/pastix-5.2.3.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit fortran-2 toolchain-funcs
+
+# TODO:
+# testing: emake examples?
+# better doc instalation and building
+# pypastix (separate package?)
+# multilib with eselect?
+# static libs building without pic
+# metis?
+
+# package id: change every version, see the link on inriaforge
+PID=218
+DESCRIPTION="Parallel solver for very large sparse linear systems"
+HOMEPAGE="http://pastix.gforge.inria.fr"
+SRC_URI="https://gforge.inria.fr/frs/download.php/latestfile/${PID}/${PN}_${PV}.tar.bz2"
+
+LICENSE="CeCILL-C"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc int64 mpi +smp starpu static-libs"
+
+RDEPEND="
+ sci-libs/scotch:0=[int64?,mpi?]
+ sys-apps/hwloc:0=
+ virtual/blas
+ mpi? ( virtual/mpi )
+ starpu? ( dev-libs/starpu:0= )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${PN}_${PV}/src"
+
+src_prepare() {
+ default
+ sed -e 's/^\(HOSTARCH\s*=\).*/\1 ${HOST}/' \
+ -e "s:^\(CCPROG\s*=\).*:\1 $(tc-getCC):" \
+ -e "s:^\(CFPROG\s*=\).*:\1 $(tc-getFC):" \
+ -e "s:^\(CF90PROG\s*=\).*:\1 $(tc-getFC):" \
+ -e "s:^\(ARPROG\s*=\).*:\1 $(tc-getAR):" \
+ -e "s:^\(CCFOPT\s*=\).*:\1 ${FFLAGS}:" \
+ -e "s:^\(CCFDEB\s*=\).*:\1 ${FFLAGS}:" \
+ -e 's:^\(EXTRALIB\s*=\).*:\1 -lm -lrt:' \
+ -e "s:^#\s*\(ROOT\s*=\).*:\1 \$(DESTDIR)${EPREFIX%/}/usr:" \
+ -e 's:^#\s*\(INCLUDEDIR\s*=\).*:\1 $(ROOT)/include:' \
+ -e 's:^#\s*\(BINDIR\s*=\).*:\1 $(ROOT)/bin:' \
+ -e "s:^#\s*\(LIBDIR\s*=\).*:\1 \$(ROOT)/$(get_libdir):" \
+ -e 's:^#\s*\(SHARED\s*=\).*:\1 1:' \
+ -e 's:^#\s*\(SOEXT\s*=\).*:\1 .so:' \
+ -e '/fPIC/s/^#//g' \
+ -e "s:^#\s*\(SHARED_FLAGS\s*=.*\):\1 ${LDFLAGS}:" \
+ -e "s:pkg-config:$(tc-getPKG_CONFIG):g" \
+ -e "s:^\(BLASLIB\s*=\).*:\1 $($(tc-getPKG_CONFIG) --libs blas):" \
+ -e "s:^\s*\(HWLOC_HOME\s*?=\).*:\1 ${EPREFIX}/usr:" \
+ -e "s:-I\$(HWLOC_INC):$($(tc-getPKG_CONFIG) --cflags hwloc):" \
+ -e "s:-L\$(HWLOC_LIB) -lhwloc:$($(tc-getPKG_CONFIG) --libs hwloc):" \
+ -e "s:^\s*\(SCOTCH_HOME\s*?=\).*:\1 ${EPREFIX}/usr:" \
+ -e "s:^\s*\(SCOTCH_INC\s*?=.*\):\1/scotch:" \
+ -e "s:^\s*\(SCOTCH_LIB\s*?=.*\)lib:\1$(get_libdir):" \
+ config/LINUX-GNU.in > config.in || die
+ sed -e 's/__SO_NAME__,$@/__SO_NAME__,$(notdir $@)/g' -i Makefile || die
+}
+
+src_configure() {
+ if use amd64; then
+ sed -e 's/^\(VERSIONBIT\s*=\).*/\1 _64bit/' \
+ -i config.in || die
+ fi
+
+ if use int64; then
+ sed -e '/VERSIONINT.*_int64/s/#//' \
+ -e '/CCTYPES.*INTSSIZE64/s/#//' \
+ -i config.in || die
+ fi
+
+ if ! use mpi; then
+ sed -e '/VERSIONMPI.*_nompi/s/#//' \
+ -e '/CCTYPES.*NOMPI/s/#//' \
+ -e '/MPCCPROG\s*= $(CCPROG)/s/#//' \
+ -e '/MCFPROG\s*= $(CFPROG)/s/#//' \
+ -e 's/-DDISTRIBUTED//' \
+ -e 's/-lptscotch/-lscotch/g' \
+ -i config.in || die
+ fi
+
+ if ! use smp; then
+ sed -e '/VERSIONSMP.*_nosmp/s/#//' \
+ -e '/CCTYPES.*NOSMP/s/#//' \
+ -i config.in || die
+ fi
+
+ if use starpu; then
+ sed -e '/libstarpu/s/#//g' -i config.in || die
+ fi
+}
+
+src_compile() {
+ emake all drivers
+}
+
+src_test() {
+ # both test and tests targets are defined and do not work
+ emake examples
+ echo
+}
+
+src_install() {
+ default
+ sed -e "s:${D}::g" -i "${ED}"/usr/bin/pastix-conf || die
+ # quick and dirty (static libs should really be built without pic)
+ cd .. || die
+ dodoc README.txt doc/refcard/refcard.pdf
+}