Gentoo Archives: gentoo-commits

From: Christoph Junghans <junghans@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/charm/
Date: Tue, 01 May 2018 22:35:49
Message-Id: 1525213417.1a28fb600b3613bbb556a637297bf785d3f7a5ce.junghans@gentoo
1 commit: 1a28fb600b3613bbb556a637297bf785d3f7a5ce
2 Author: Christoph Junghans <junghans <AT> gentoo <DOT> org>
3 AuthorDate: Tue May 1 22:23:09 2018 +0000
4 Commit: Christoph Junghans <junghans <AT> gentoo <DOT> org>
5 CommitDate: Tue May 1 22:23:37 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a28fb60
7
8 sys-cluster/charm: version bump
9
10 Package-Manager: Portage-2.3.24, Repoman-2.3.6
11
12 sys-cluster/charm/Manifest | 1 +
13 sys-cluster/charm/charm-6.8.2.ebuild | 218 +++++++++++++++++++++++++++++++++++
14 2 files changed, 219 insertions(+)
15
16 diff --git a/sys-cluster/charm/Manifest b/sys-cluster/charm/Manifest
17 index 4f3235b7c02..22a65c722b3 100644
18 --- a/sys-cluster/charm/Manifest
19 +++ b/sys-cluster/charm/Manifest
20 @@ -2,3 +2,4 @@ DIST charm-6.5.1.tar.gz 19265741 BLAKE2B a0124b2c125b85968d79496709e3aa64e6287f8
21 DIST charm-6.6.0.tar.gz 18779545 BLAKE2B 7fef3e34060e6e76d757b432646da25d0869600db1ab6a39bd1a0be0d6bd59bf656fd16e5e9550f5d081333e0c458f001236016a966537c3803d52b125694d5f SHA512 fd6cc2fa8919198fdceb8187101882a61fe974fed3ddd65b102c95b850877429fe0675a55d54075e4a2accad134f615ff717a7dd39fbd9af5fa65a5c87d34e0b
22 DIST charm-6.6.1.tar.gz 125697465 BLAKE2B 49cdab682ddb2c5409007f852b9d2d905921a5db04aaa7a4d679f9cf05f754864be5b2c885c070d8c7f35a78584055e38993397430617f6aebfe398d415df6c4 SHA512 139409fff76ac9811b2efe6605579a877738f873b112d4e4da25f079598f6c238cf76e677ed3cf3f92aa59f29710feea3e96e59e6010e186e4191dfa4c3ef92e
23 DIST charm-6.7.1.tar.gz 18843211 BLAKE2B 090959b5dd8642fecf6dff7bf24212a42b39d7940c264a0b37af9c2ae8f1ac32f3c65d22a67cdc78b7cd821523dc01659293c84e9b26fa69669915d9c5b3f4db SHA512 08581ad58ea737bb118ad1d382feeae2cec2ec0fd8ea1a227e2cb8080c40ba0d043de6c867de0dfa470b2291638b1b6bf6d52c89b4e4b6c9f1fdd824ac601436
24 +DIST charm-6.8.2.tar.gz 24420478 BLAKE2B b5035d29f90ec766dc49b94e76d68a9ce3d16f43037203baaa035cfa863c6ca063a81c5dc275c1517feabc3517201d5e854a2b1b4b1c492ff0433f692db39a34 SHA512 903aa47706c260d35a04e6002874d197439087d6bdbd4fe65a397a02096a2e53eeb93b64c57e5983f0190ca2dcef3a9b28a3b424207c9d3eb6e820659f5e00c1
25
26 diff --git a/sys-cluster/charm/charm-6.8.2.ebuild b/sys-cluster/charm/charm-6.8.2.ebuild
27 new file mode 100644
28 index 00000000000..22e45cc2592
29 --- /dev/null
30 +++ b/sys-cluster/charm/charm-6.8.2.ebuild
31 @@ -0,0 +1,218 @@
32 +# Copyright 1999-2018 Gentoo Foundation
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI=5
36 +
37 +FORTRAN_STANDARD="90"
38 +PYTHON_COMPAT=( python2_7 )
39 +
40 +inherit eutils flag-o-matic fortran-2 multilib multiprocessing python-any-r1 toolchain-funcs
41 +
42 +DESCRIPTION="Message-passing parallel language and runtime system"
43 +HOMEPAGE="http://charm.cs.uiuc.edu/"
44 +SRC_URI="http://charm.cs.uiuc.edu/distrib/${P}.tar.gz"
45 +
46 +LICENSE="charm"
47 +SLOT="0"
48 +KEYWORDS="~amd64 ~x86"
49 +IUSE="charmdebug charmtracing charmproduction cmkopt doc examples mlogft mpi ampi numa smp static-libs syncft tcp"
50 +
51 +RDEPEND="mpi? ( virtual/mpi )"
52 +DEPEND="
53 + ${RDEPEND}
54 + doc? (
55 + >=app-text/poppler-0.12.3-r3[utils]
56 + dev-tex/latex2html
57 + virtual/tex-base
58 + $(python_gen_any_dep '
59 + >=dev-python/beautifulsoup-4[${PYTHON_USEDEP}]
60 + dev-python/lxml[${PYTHON_USEDEP}]
61 + ')
62 + media-libs/netpbm
63 + ${PYTHON_DEPS}
64 + )
65 + net-libs/libtirpc
66 + "
67 +
68 +REQUIRED_USE="
69 + cmkopt? ( !charmdebug !charmtracing )
70 + charmproduction? ( !charmdebug !charmtracing )"
71 +
72 +S="${WORKDIR}/${PN}-v${PV}"
73 +
74 +pkg_setup() {
75 + use doc && python-any-r1_pkg_setup
76 +}
77 +
78 +get_opts() {
79 + local CHARM_OPTS
80 +
81 + # TCP instead of default UDP for socket comunication
82 + # protocol
83 + CHARM_OPTS+="$(usex tcp ' tcp' '')"
84 +
85 + # enable direct SMP support using shared memory
86 + CHARM_OPTS+="$(usex smp ' smp' '')"
87 +
88 + CHARM_OPTS+="$(usex mlogft ' mlogft' '')"
89 + CHARM_OPTS+="$(usex syncft ' syncft' '')"
90 +
91 + # Build shared libraries by default.
92 + CHARM_OPTS+=" --build-shared"
93 +
94 + if use charmproduction; then
95 + CHARM_OPTS+=" --with-production"
96 + else
97 + if use charmdebug; then
98 + CHARM_OPTS+=" --enable-charmdebug"
99 + fi
100 +
101 + if use charmtracing; then
102 + CHARM_OPTS+=" --enable-tracing --enable-tracing-commthread"
103 + fi
104 + fi
105 +
106 + CHARM_OPTS+="$(usex numa ' --with-numa' '')"
107 + echo $CHARM_OPTS
108 +}
109 +
110 +src_prepare() {
111 + append-cppflags $($(tc-getPKG_CONFIG) --cflags libtirpc)
112 +
113 + sed \
114 + -e "/CMK_CF77/s:[fg]77:$(usex mpi "mpif90" "$(tc-getF77)") ${FCFLAGS}:g" \
115 + -e "/CMK_CF90/s:f95:$(usex mpi "mpif90" "$(tc-getFC)") ${FCFLAGS}:g" \
116 + -e "/CMK_CF90/s:\`which f90.*$::g" \
117 + -e "/CMK_CXX/s:g++:$(usex mpi "mpic++" "$(tc-getCXX)") ${CPPFLAGS} ${CXXFLAGS}:g" \
118 + -e "/CMK_CC/s:gcc:$(usex mpi "mpicc" "$(tc-getCC)") ${CPPFLAGS} ${CFLAGS}:g" \
119 + -e '/CMK_F90_MODINC/s:-p:-I:g' \
120 + -e "/CMK_LD/s:\"$: ${LDFLAGS} \":g" \
121 + -i src/arch/$(usex mpi "mpi" "net")*-linux*/*sh || die
122 + sed \
123 + -e "/CMK_CF90/s:gfortran:$(usex mpi "mpif90" "$(tc-getFC)") ${FCFLAGS}:g" \
124 + -e "/F90DIR/s:gfortran:$(usex mpi "mpif90" "$(tc-getFC)") ${FCFLAGS}:g" \
125 + -e "/f95target/s:gfortran:$(usex mpi "mpif90" "$(tc-getFC)") ${FCFLAGS}:g" \
126 + -e "/f95version/s:gfortran:$(usex mpi "mpif90" "$(tc-getFC)") ${FCFLAGS}:g" \
127 + -i src/arch/common/*.sh || die
128 +
129 + sed \
130 + -e "s:-o conv-cpm:${LDFLAGS} &:g" \
131 + -e "s:-o charmxi:${LDFLAGS} &:g" \
132 + -e "s:-o charmrun-silent:${LDFLAGS} &:g" \
133 + -e "s:-o charmrun-notify:${LDFLAGS} &:g" \
134 + -e "s:-o charmrun:${LDFLAGS} &:g" \
135 + -e "s:-o charmd_faceless:${LDFLAGS} &:g" \
136 + -e "s:-o charmd:${LDFLAGS} &:g" \
137 + -e "/^CHARMC/s:$: ${CPPFLAGS} ${CFLAGS}:g" \
138 + -i \
139 + src/scripts/Makefile \
140 + src/util/charmrun-src/Makefile || die
141 +
142 + # CMK optimization
143 + use cmkopt && append-cppflags -DCMK_OPTIMIZE=1
144 +
145 + # Fix QA notice. Filed report with upstream.
146 + append-cflags -DALLOCA_H
147 +}
148 +
149 +src_compile() {
150 + local build_version="$(usex mpi "mpi" "net")-linux$(usex amd64 "-amd64" '')"
151 + local build_options="$(get_opts)"
152 + #build only accepts -j from MAKEOPTS
153 + local build_commandline="${build_version} ${build_options} -j$(makeopts_jobs)"
154 +
155 + # Build charmm++ first.
156 + einfo "running ./build charm++ ${build_commandline}"
157 + ./build charm++ ${build_commandline} || die "Failed to build charm++"
158 +
159 + if use ampi; then
160 + einfo "running ./build AMPI ${build_commandline}"
161 + ./build AMPI ${build_commandline} || die "Failed to build charm++"
162 + fi
163 +
164 + # make pdf/html docs
165 + if use doc; then
166 + emake -j1 -C doc/charm++
167 + fi
168 +}
169 +
170 +src_test() {
171 + make -C tests/charm++ test TESTOPTS="++local" || die
172 +}
173 +
174 +src_install() {
175 + # Make charmc play well with gentoo before we move it into /usr/bin. This
176 + # patch cannot be applied during src_prepare() because the charmc wrapper
177 + # is used during building.
178 + epatch "${FILESDIR}/charm-6.5.1-charmc-gentoo.patch"
179 +
180 + sed -e "s|gentoo-include|${P}|" \
181 + -e "s|gentoo-libdir|$(get_libdir)|g" \
182 + -e "s|VERSION|${P}/VERSION|" \
183 + -i ./src/scripts/charmc || die "failed patching charmc script"
184 +
185 + # In the following, some of the files are symlinks to ../tmp which we need
186 + # to dereference first (see bug 432834).
187 +
188 + local i
189 +
190 + # Install binaries.
191 + for i in bin/*; do
192 + if [[ -L ${i} ]]; then
193 + i=$(readlink -e "${i}") || die
194 + fi
195 + dobin "${i}"
196 + done
197 +
198 + # Install headers.
199 + insinto /usr/include/${P}
200 + for i in include/*; do
201 + if [[ -L ${i} ]]; then
202 + i=$(readlink -e "${i}") || die
203 + fi
204 + doins "${i}"
205 + done
206 +
207 + # Install libs incl. charm objects
208 + for i in lib*/*.{so,a}; do
209 + [[ ${i} = *.a ]] && use !static-libs && continue
210 + if [[ -L ${i} ]]; then
211 + i=$(readlink -e "${i}") || die
212 + fi
213 + [[ -s $i ]] || continue
214 + [[ ${i} = *.so ]] && dolib.so "${i}" || dolib "${i}"
215 + done
216 +
217 + # Basic docs.
218 + dodoc CHANGES README
219 +
220 + # Install examples.
221 + if use examples; then
222 + find examples/ -name 'Makefile' | xargs sed \
223 + -r "s:(../)+bin/charmc:/usr/bin/charmc:" -i || \
224 + die "Failed to fix examples"
225 + find examples/ -name 'Makefile' | xargs sed \
226 + -r "s:./charmrun:./charmrun ++local:" -i || \
227 + die "Failed to fix examples"
228 + insinto /usr/share/doc/${PF}/examples
229 + doins -r examples/charm++/*
230 + docompress -x /usr/share/doc/${PF}/examples
231 + fi
232 +
233 + # Install pdf/html docs
234 + if use doc; then
235 + cd "${S}/doc/charm++"
236 + # Install pdfs.
237 + insinto /usr/share/doc/${PF}/pdf
238 + doins *.pdf
239 + # Install html.
240 + docinto html
241 + dohtml -r manual/*
242 + fi
243 +}
244 +
245 +pkg_postinst() {
246 + einfo "Please test your charm installation by copying the"
247 + einfo "content of /usr/share/doc/${PF}/examples to a"
248 + einfo "temporary location and run 'make test'."
249 +}