1 |
commit: ea391932cb773a0305bcb60273dca6b59dfc331f |
2 |
Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Jan 14 20:36:21 2022 +0000 |
4 |
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Jan 14 20:36:21 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=ea391932 |
7 |
|
8 |
sci-biology/fsl: add version 6.0.5 |
9 |
|
10 |
No keywords, compile fails, need patches |
11 |
|
12 |
Package-Manager: Portage-3.0.30, Repoman-3.0.3 |
13 |
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org> |
14 |
|
15 |
sci-biology/fsl/fsl-6.0.5.ebuild | 220 +++++++++++++++++++++++++++++++++++++++ |
16 |
1 file changed, 220 insertions(+) |
17 |
|
18 |
diff --git a/sci-biology/fsl/fsl-6.0.5.ebuild b/sci-biology/fsl/fsl-6.0.5.ebuild |
19 |
new file mode 100644 |
20 |
index 000000000..c51a9d30e |
21 |
--- /dev/null |
22 |
+++ b/sci-biology/fsl/fsl-6.0.5.ebuild |
23 |
@@ -0,0 +1,220 @@ |
24 |
+# Copyright 1999-2022 Gentoo Authors |
25 |
+# Distributed under the terms of the GNU General Public License v2 |
26 |
+ |
27 |
+EAPI=8 |
28 |
+ |
29 |
+inherit cuda toolchain-funcs prefix |
30 |
+ |
31 |
+DESCRIPTION="Analysis of functional, structural, and diffusion MRI brain imaging data" |
32 |
+HOMEPAGE="https://www.fmrib.ox.ac.uk/fsl" |
33 |
+SRC_URI="https://fsl.fmrib.ox.ac.uk/fsldownloads/${P}-sources.tar.gz -> ${P}.tar.gz" |
34 |
+S="${WORKDIR}/${PN}" |
35 |
+ |
36 |
+LICENSE="FSL BSD-2 newmat" |
37 |
+SLOT="0" |
38 |
+KEYWORDS="" |
39 |
+IUSE="cuda" |
40 |
+ |
41 |
+DEPEND=" |
42 |
+ dev-cpp/libxmlpp:= |
43 |
+ dev-cpp/tbb |
44 |
+ dev-db/sqlite |
45 |
+ dev-libs/boost |
46 |
+ dev-libs/libfmt |
47 |
+ dev-libs/libxml2 |
48 |
+ dev-libs/pugixml |
49 |
+ >=dev-python/fslpy-3.7.0 |
50 |
+ media-gfx/graphviz |
51 |
+ media-libs/gd |
52 |
+ media-libs/glu |
53 |
+ media-libs/libpng:0= |
54 |
+ sci-libs/gsl |
55 |
+ sci-libs/ciftilib |
56 |
+ sci-libs/fftw |
57 |
+ sci-libs/nlopt |
58 |
+ sci-libs/vtk |
59 |
+ sys-libs/zlib |
60 |
+ dev-lang/tcl:0= |
61 |
+ dev-lang/tk:0= |
62 |
+ >=virtual/lapack-3.8 |
63 |
+ >=virtual/blas-3.8 |
64 |
+ cuda? ( |
65 |
+ || ( |
66 |
+ ( =dev-util/nvidia-cuda-toolkit-11* =sys-devel/gcc-9*:* ) |
67 |
+ ) |
68 |
+ ) |
69 |
+ " |
70 |
+RDEPEND="${DEPEND}" |
71 |
+ |
72 |
+UPSTREAM_FSLDIR="/usr/share/fsl" |
73 |
+ |
74 |
+PATCHES=( |
75 |
+# "${FILESDIR}/${PN}"-6.0.4-gcc10_include.patch |
76 |
+ "${FILESDIR}/${PN}"-6.0.4-setup.patch |
77 |
+# "${FILESDIR}/${PN}"-6.0.2-no_xmlpp.patch |
78 |
+# "${FILESDIR}/${PN}"-5.0.11-niftiio_var_fix.patch |
79 |
+# "${FILESDIR}/${PN}"-5.0.11-fslsurface_parallel_make.patch |
80 |
+# "${FILESDIR}/${PN}"-6.0.2-qstring_compat.patch |
81 |
+# "${FILESDIR}/${PN}"-5.0.9-headers.patch |
82 |
+ "${FILESDIR}/${PN}"-6.0.4-flameo_std.patch |
83 |
+ "${FILESDIR}/${PN}"-6.0.4-melodic_std.patch |
84 |
+ "${FILESDIR}/${PN}"-6.0.4-remove_fslpy_collisions-p1.patch |
85 |
+ "${FILESDIR}/${PN}"-6.0.4-remove_fslpy_collisions-p2.patch |
86 |
+# "${FILESDIR}/${PN}"-6.0.4-fdt_cuda.patch |
87 |
+) |
88 |
+ |
89 |
+src_prepare() { |
90 |
+ default |
91 |
+ |
92 |
+ sed -i \ |
93 |
+ -e "s:@@GENTOO_RANLIB@@:$(tc-getRANLIB):" \ |
94 |
+ -e "s:@@GENTOO_CC@@:$(tc-getCC):" \ |
95 |
+ -e "s:@@GENTOO_CXX@@:$(tc-getCXX):" \ |
96 |
+ config/buildSettings.mk || die |
97 |
+ |
98 |
+ eprefixify $(grep -rl GENTOO_PORTAGE_EPREFIX src/*) \ |
99 |
+ etc/js/label-div.html |
100 |
+ |
101 |
+# # Disable mist the hard way for now. |
102 |
+# rm -r src/mist || die |
103 |
+# |
104 |
+# # Disable ptx2 for now |
105 |
+# rm -r src/ptx2 || die |
106 |
+# |
107 |
+ makefilelist=$(find src/ -name Makefile) |
108 |
+ |
109 |
+# sed -i \ |
110 |
+# -e "s:-I\${INC_BOOST}::" \ |
111 |
+# -e "s:-I\${INC_ZLIB}::" \ |
112 |
+# -e "s:-I\${INC_GD}::" \ |
113 |
+# -e "s:-I\${INC_PNG}::" \ |
114 |
+# -e "s:-L\${LIB_GD}::" \ |
115 |
+# -e "s:-L\${LIB_PNG}::" \ |
116 |
+# -e "s:-L\${LIB_ZLIB}::" \ |
117 |
+# ${makefilelist} || die |
118 |
+ |
119 |
+ sed -e "s:\${FSLDIR}/bin/::g" \ |
120 |
+ -e "s:\$FSLDIR/bin/::g" \ |
121 |
+ -i $(grep -rl "\${FSLDIR}/bin" src/*) \ |
122 |
+ -i $(grep -rl "\$FSLDIR/bin" src/*) \ |
123 |
+ $(grep -rl "\${FSLDIR}/bin" etc/matlab/*)\ |
124 |
+ $(grep -rl "\$FSLDIR/bin" etc/matlab/*) || die |
125 |
+ |
126 |
+ sed -e "s:\$FSLDIR/data:${EPREFIX}/usr/share/fsl/data:g" \ |
127 |
+ -e "s:\${FSLDIR}/data:${EPREFIX}/usr/share/fsl/data:g" \ |
128 |
+ -i $(grep -rl "\$FSLDIR/data" src/*) \ |
129 |
+ $(grep -rl "\${FSLDIR}/data" src/*) || die |
130 |
+ |
131 |
+ sed -e "s:\$FSLDIR/doc:${EPREFIX}/usr/share/fsl/doc:g" \ |
132 |
+ -e "s:\${FSLDIR}/doc:${EPREFIX}/usr/share/fsl/doc:g" \ |
133 |
+ -i $(grep -rl "\$FSLDIR/doc" src/*) \ |
134 |
+ $(grep -rl "\${FSLDIR}/doc" src/*) || die |
135 |
+ |
136 |
+ sed -e "s:/usr/share/fsl/doc:${EPREFIX}/usr/share/fsl/doc:g" \ |
137 |
+ -i $(grep -rl "/usr/share/fsl/doc" src/*) || die |
138 |
+ |
139 |
+ sed -e "s:\$FSLDIR/etc:${EPREFIX}/etc:g" \ |
140 |
+ -e "s:\${FSLDIR}/etc:${EPREFIX}/etc:g" \ |
141 |
+ -i $(grep -rlI "\$FSLDIR/etc" *) \ |
142 |
+ -i $(grep -rlI "\${FSLDIR}/etc" *) || die |
143 |
+ |
144 |
+ # Use generic blas/lapack rather than openblas |
145 |
+ sed -e "s:-lopenblas:-llapack -lblas:g" \ |
146 |
+ -i $(grep -rlI lopenblas *) || die |
147 |
+ |
148 |
+ # script wanting to have access to fslversion at buildtime |
149 |
+ sed -e "s:/etc/fslversion:${S}/etc/fslversion:g" \ |
150 |
+ -i ${makefilelist} || die |
151 |
+ |
152 |
+ if use cuda; then |
153 |
+ einfo |
154 |
+ |
155 |
+ gcc_ver=`gcc-fullversion` |
156 |
+ einfo "GCC version: ${gcc_ver}" |
157 |
+ |
158 |
+ cuda_gcc=`cuda_gccdir` |
159 |
+ cuda_NVCC_flags=`cuda_gccdir -f` |
160 |
+ einfo "CUDA GCC path: ${cuda_gcc}" |
161 |
+ einfo " ${cuda_NVCC_flags}" |
162 |
+ |
163 |
+ CUDA_INSTALLATION="/opt/cuda" |
164 |
+ CUDAVER=`cuda_toolkit_version` |
165 |
+ |
166 |
+ eapply "${FILESDIR}/${PN}-6.0.4-eddy_cuda.patch" |
167 |
+ eapply "${FILESDIR}/${PN}-6.0.4-cuda_buildsettings.patch" |
168 |
+ |
169 |
+ sed -i \ |
170 |
+ -e "s:@@GENTOO_NVCC_FLAGS@@:${cuda_NVCC_flags}:" \ |
171 |
+ src/eddy/Makefile || die |
172 |
+ |
173 |
+ cuda_sanitize |
174 |
+ fi |
175 |
+} |
176 |
+ |
177 |
+src_compile() { |
178 |
+ export FSLDIR=${WORKDIR}/${PN} |
179 |
+ export FSLCONDIR=${WORKDIR}/${PN}/config |
180 |
+ export FSLMACHTYPE=generic |
181 |
+ |
182 |
+ # define the default build system to match upstream official standard |
183 |
+ # -> individual projects may overwrite the '-std=' flag |
184 |
+ export ANSI_CFLAGS="-std=c99" |
185 |
+ export ANSI_CXXFLAGS="-std=c++98" |
186 |
+ |
187 |
+ export USERLDFLAGS="${LDFLAGS}" |
188 |
+ export USERCFLAGS="${CFLAGS}" |
189 |
+ export USERCPPFLAGS="${CPPFLAGS}" |
190 |
+ export USERCXXFLAGS="${CXXFLAGS}" |
191 |
+ |
192 |
+ export CIFTICFLAGS="$($(tc-getPKG_CONFIG) --cflags CiftiLib)" |
193 |
+ export CIFTILIBS="$($(tc-getPKG_CONFIG) --libs-only-l CiftiLib)" |
194 |
+ |
195 |
+ if use cuda; then |
196 |
+ einfo "CUDA_INSTALLATION: ${CUDA_INSTALLATION}" |
197 |
+ einfo "CUDAVER: ${CUDAVER}" |
198 |
+ fi |
199 |
+ |
200 |
+ ./build || die |
201 |
+} |
202 |
+ |
203 |
+src_install() { |
204 |
+ sed -i "s:\${FSLDIR}/tcl:/usr/libexec/fsl:g" \ |
205 |
+ $(grep -lI "\${FSLDIR}/tcl" bin/*) \ |
206 |
+ $(grep -l "\${FSLDIR}/tcl" tcl/*) || die |
207 |
+ sed -i "s:\$FSLDIR/tcl:/usr/libexec/fsl:g" \ |
208 |
+ $(grep -l "\$FSLDIR/tcl" tcl/*) || die |
209 |
+ |
210 |
+ dobin bin/* |
211 |
+ |
212 |
+ insinto /usr/share/${PN} |
213 |
+ doins -r data |
214 |
+ dodoc -r doc/. refdoc |
215 |
+ |
216 |
+ insinto /usr/libexec/fsl |
217 |
+ doins -r tcl/* |
218 |
+ |
219 |
+ insinto /etc/fslconf |
220 |
+ doins etc/fslconf/fsl.sh |
221 |
+ |
222 |
+ insinto /etc |
223 |
+ doins etc/fslversion |
224 |
+ doins -r etc/default_flobs.flobs etc/flirtsch etc/js etc/luts |
225 |
+ |
226 |
+ #the following is needed for FSL and depending programs to be able |
227 |
+ #to find its files, since FSL uses an uncommon installation path: |
228 |
+ #https://github.com/gentoo-science/sci/pull/612#r60289295 |
229 |
+ dosym ../../../etc ${UPSTREAM_FSLDIR}/etc |
230 |
+ dosym ../doc/${PF} ${UPSTREAM_FSLDIR}/doc |
231 |
+ dosym ../../bin ${UPSTREAM_FSLDIR}/bin |
232 |
+ |
233 |
+ doenvd "$(prefixify_ro "${FILESDIR}"/99fsl)" |
234 |
+ mv "${ED}"/usr/bin/{,fsl_}cluster || die |
235 |
+} |
236 |
+ |
237 |
+pkg_postinst() { |
238 |
+ echo |
239 |
+ einfo "Please run the following commands if you" |
240 |
+ einfo "intend to use fsl from an existing shell:" |
241 |
+ einfo "env-update && source /etc/profile" |
242 |
+ echo |
243 |
+} |