Gentoo Archives: gentoo-commits

From: Guilherme Amadio <amadio@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-physics/root/
Date: Thu, 05 Jul 2018 11:15:35
Message-Id: 1530788697.f7ffe67108dfa92834835b0fb61a03411dcdd963.amadio@gentoo
1 commit: f7ffe67108dfa92834835b0fb61a03411dcdd963
2 Author: Guilherme Amadio <amadio <AT> gentoo <DOT> org>
3 AuthorDate: Thu Jul 5 08:40:31 2018 +0000
4 Commit: Guilherme Amadio <amadio <AT> gentoo <DOT> org>
5 CommitDate: Thu Jul 5 11:04:57 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f7ffe671
7
8 sci-physics/root: revision bump
9
10 - Use eapi7-ver instead of versionator
11 - Update USE flags, add Qt5 support for new graphics
12 - Move installation from /opt/root to /usr/lib/root
13 - Drop installation of obsolete init scritps
14 - Preparation for multi-slot support
15
16 Package-Manager: Portage-2.3.41, Repoman-2.3.9
17
18 sci-physics/root/root-6.12.06-r3.ebuild | 313 ++++++++++++++++++++++++++++++++
19 1 file changed, 313 insertions(+)
20
21 diff --git a/sci-physics/root/root-6.12.06-r3.ebuild b/sci-physics/root/root-6.12.06-r3.ebuild
22 new file mode 100644
23 index 00000000000..8d281139227
24 --- /dev/null
25 +++ b/sci-physics/root/root-6.12.06-r3.ebuild
26 @@ -0,0 +1,313 @@
27 +# Copyright 1999-2018 Gentoo Foundation
28 +# Distributed under the terms of the GNU General Public License v2
29 +
30 +EAPI=6
31 +
32 +CMAKE_BUILD_TYPE=Release
33 +# ninja does not work due to fortran
34 +CMAKE_MAKEFILE_GENERATOR=emake
35 +FORTRAN_NEEDED="fortran"
36 +PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
37 +
38 +inherit cmake-utils eapi7-ver elisp-common eutils fortran-2 \
39 + prefix python-single-r1 toolchain-funcs
40 +
41 +DESCRIPTION="C++ data analysis framework and interpreter from CERN"
42 +HOMEPAGE="https://root.cern"
43 +SRC_URI="https://root.cern/download/${PN}_v${PV}.source.tar.gz"
44 +
45 +IUSE="+X avahi aqua +asimage +davix emacs +examples fits fftw fortran
46 + +gdml graphviz +gsl http jemalloc kerberos ldap libcxx memstat
47 + +minuit mysql odbc +opengl oracle postgres prefix pythia6 pythia8
48 + +python qt4 qt5 R +roofit root7 shadow sqlite +ssl table +tbb test
49 + +threads +tiff +tmva +unuran vc xinetd +xml xrootd"
50 +
51 +SLOT="$(ver_cut 1-2)/$(ver_cut 3)"
52 +LICENSE="LGPL-2.1 freedist MSttfEULA LGPL-3 libpng UoI-NCSA"
53 +KEYWORDS="~amd64 ~x86"
54 +
55 +REQUIRED_USE="
56 + !X? ( !asimage !opengl !qt4 !qt5 !tiff )
57 + python? ( ${PYTHON_REQUIRED_USE} )
58 + tmva? ( gsl )
59 + davix? ( ssl xml )
60 +"
61 +
62 +CDEPEND="
63 + app-arch/lz4
64 + app-arch/xz-utils
65 + fortran? ( dev-lang/cfortran )
66 + dev-libs/libpcre:3=
67 + dev-libs/xxhash
68 + media-fonts/dejavu
69 + media-libs/freetype:2=
70 + media-libs/libpng:0=
71 + sys-libs/ncurses:=
72 + sys-libs/zlib
73 + X? (
74 + x11-libs/libX11:0=
75 + x11-libs/libXext:0=
76 + x11-libs/libXft:0=
77 + x11-libs/libXpm:0=
78 + opengl? (
79 + media-libs/ftgl:0=
80 + media-libs/glew:0=
81 + virtual/opengl
82 + virtual/glu
83 + x11-libs/gl2ps:0=
84 + )
85 + qt4? (
86 + dev-qt/qtcore:4=
87 + dev-qt/qtgui:4=
88 + )
89 + qt5? (
90 + dev-qt/qtcore:5=
91 + dev-qt/qtgui:5=
92 + dev-qt/qtwebengine:5=
93 + )
94 + )
95 + asimage? ( || (
96 + media-libs/libafterimage[gif,jpeg,png,tiff?]
97 + >=x11-wm/afterstep-2.2.11[gif,jpeg,png,tiff?]
98 + ) )
99 + avahi? ( net-dns/avahi[mdnsresponder-compat] )
100 + davix? ( net-libs/davix )
101 + emacs? ( virtual/emacs )
102 + fftw? ( sci-libs/fftw:3.0= )
103 + fits? ( sci-libs/cfitsio:0= )
104 + graphviz? ( media-gfx/graphviz:0= )
105 + gsl? ( sci-libs/gsl )
106 + http? ( dev-libs/fcgi:0= )
107 + jemalloc? ( dev-libs/jemalloc )
108 + kerberos? ( virtual/krb5 )
109 + ldap? ( net-nds/openldap:0= )
110 + libcxx? ( sys-libs/libcxx )
111 + unuran? ( sci-mathematics/unuran:0= )
112 + minuit? ( !sci-libs/minuit )
113 + mysql? ( virtual/mysql )
114 + odbc? ( || ( dev-db/libiodbc dev-db/unixODBC ) )
115 + oracle? ( dev-db/oracle-instantclient-basic )
116 + postgres? ( dev-db/postgresql:= )
117 + pythia6? ( sci-physics/pythia:6= )
118 + pythia8? ( sci-physics/pythia:8= )
119 + python? ( ${PYTHON_DEPS} )
120 + R? ( dev-lang/R )
121 + shadow? ( virtual/shadow )
122 + sqlite? ( dev-db/sqlite:3 )
123 + ssl? ( dev-libs/openssl:0= )
124 + tbb? ( dev-cpp/tbb )
125 + vc? ( dev-libs/vc )
126 + xml? ( dev-libs/libxml2:2= )
127 + xrootd? ( net-libs/xrootd:0= )
128 +"
129 +
130 +DEPEND="${CDEPEND}
131 + virtual/pkgconfig"
132 +
133 +RDEPEND="${CDEPEND}
134 + xinetd? ( sys-apps/xinetd )"
135 +
136 +PATCHES=(
137 + "${FILESDIR}"/${PN}-6.11.02-hsimple.patch
138 + "${FILESDIR}"/${PN}-6.12.04-no-ocaml.patch
139 + "${FILESDIR}"/${PN}-6.12.04-no-opengl.patch
140 + "${FILESDIR}"/${PN}-6.12.04-z3.patch
141 +)
142 +
143 +pkg_setup() {
144 + use fortran && fortran-2_pkg_setup
145 + use python && python-single-r1_pkg_setup
146 +
147 + echo
148 + elog "There are extra options on packages not yet in Gentoo:"
149 + elog "Afdsmgrd, AliEn, castor, Chirp, dCache, gfal, Globus, gLite,"
150 + elog "HDFS, Monalisa, MaxDB/SapDB, SRP, VecCore."
151 + elog "You can use the env variable EXTRA_ECONF variable for this."
152 + elog "For example, for Chirp, you would set: "
153 + elog "EXTRA_ECONF=\"-Dchirp=ON\""
154 + echo
155 +}
156 +
157 +src_prepare() {
158 + cmake-utils_src_prepare
159 +
160 + sed -i "/CLING_BUILD_PLUGINS/d" interpreter/CMakeLists.txt || die
161 +
162 + # CSS should use local images
163 + sed -i -e 's,http://.*/,,' etc/html/ROOT.css || die "html sed failed"
164 +}
165 +
166 +# Note: ROOT uses bundled clang because it is patched and API-incompatible
167 +# with vanilla clang. The patches enable the C++ interpreter to work.
168 +# Since ROOT installs many small files into /etc (~100MB in total),
169 +# we install it into another directory to avoid making /etc too big.
170 +
171 +src_configure() {
172 + local mycmakeargs=(
173 + -DCMAKE_C_FLAGS="${CFLAGS}"
174 + -DCMAKE_CXX_FLAGS="${CXXFLAGS}"
175 + -DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr/$(get_libdir)/${PN}/$(ver_cut 1-2)"
176 + -DCMAKE_INSTALL_MANDIR="${EPREFIX%/}/usr/$(get_libdir)/${PN}/$(ver_cut 1-2)/share/man"
177 + -DMCAKE_INSTALL_LIBDIR=$(get_libdir)
178 + -DDEFAULT_SYSROOT="${EPREFIX}"
179 + -Dexplicitlink=ON
180 + -Dexceptions=ON
181 + -Dfail-on-missing=ON
182 + -Dshared=ON
183 + -Dsoversion=ON
184 + -Dbuiltin_llvm=ON
185 + -Dbuiltin_afterimage=OFF
186 + -Dbuiltin_cfitsio=OFF
187 + -Dbuiltin_davix=OFF
188 + -Dbuiltin_fftw3=OFF
189 + -Dbuiltin_freetype=OFF
190 + -Dbuiltin_ftgl=OFF
191 + -Dbuiltin_gl2ps=OFF
192 + -Dbuiltin_glew=OFF
193 + -Dbuiltin_gsl=OFF
194 + -Dbuiltin_lz4=OFF
195 + -Dbuiltin_lzma=OFF
196 + -Dbuiltin_openssl=OFF
197 + -Dbuiltin_pcre=OFF
198 + -Dbuiltin_tbb=OFF
199 + -Dbuiltin_unuran=OFF
200 + -Dbuiltin_vc=OFF
201 + -Dbuiltin_vdt=OFF
202 + -Dbuiltin_veccore=OFF
203 + -Dbuiltin_xrootd=OFF
204 + -Dbuiltin_xxhash=OFF
205 + -Dbuiltin_zlib=OFF
206 + -Dx11=$(usex X)
207 + -Dxft=$(usex X)
208 + -Dafdsmgrd=OFF
209 + -Dafs=OFF # not implemented
210 + -Dalien=OFF
211 + -Dasimage=$(usex asimage)
212 + -Dastiff=$(usex tiff)
213 + -Dbonjour=$(usex avahi)
214 + -Dlibcxx=$(usex libcxx)
215 + -Dccache=OFF # use ccache via portage
216 + -Dcastor=OFF
217 + -Dchirp=OFF
218 + -Dcling=ON # cling=OFF is broken
219 + -Dcocoa=$(usex aqua)
220 + -Dcxx14=$(usex root7)
221 + -Dcxxmodules=OFF # requires clang, unstable
222 + -Ddavix=$(usex davix)
223 + -Ddcache=OFF
224 + -Dfftw3=$(usex fftw)
225 + -Dfitsio=$(usex fits)
226 + -Dfortran=$(usex fortran)
227 + -Dftgl=$(usex opengl)
228 + -Dgdml=$(usex gdml)
229 + -Dgenvector=ON # genvector=OFF ignored
230 + -Dgeocad=OFF
231 + -Dgfal=OFF
232 + -Dgl2ps=$(usex opengl)
233 + -Dglite=OFF # not implemented
234 + -Dglobus=OFF
235 + -Dgminimal=OFF
236 + -Dgnuinstall=OFF
237 + -Dgsl_shared=$(usex gsl)
238 + -Dgviz=$(usex graphviz)
239 + -Dhdfs=OFF
240 + -Dhttp=$(usex http)
241 + -Dimt=$(usex tbb)
242 + -Djemalloc=$(usex jemalloc)
243 + -Dkrb5=$(usex kerberos)
244 + -Dldap=$(usex ldap)
245 + -Dmathmore=$(usex gsl)
246 + -Dmemstat=$(usex memstat)
247 + -Dminimal=OFF
248 + -Dminuit2=$(usex minuit)
249 + -Dminuit=$(usex minuit)
250 + -Dmonalisa=OFF
251 + -Dmysql=$(usex mysql)
252 + -Dodbc=$(usex odbc)
253 + -Dopengl=$(usex opengl)
254 + -Doracle=$(usex oracle)
255 + -Dpch=ON # pch=OFF is broken
256 + -Dpgsql=$(usex postgres)
257 + -Dpythia6=$(usex pythia6)
258 + -Dpythia8=$(usex pythia8)
259 + -Dpython=$(usex python)
260 + -Dqt5web=$(usex qt5)
261 + -Dqtgsi=$(usex qt4)
262 + -Dqt=$(usex qt4)
263 + -Drfio=OFF
264 + -Droofit=$(usex roofit)
265 + -Droot7=$(usex root7)
266 + -Drootbench=OFF
267 + -Droottest=$(usex test)
268 + -Drpath=ON # needed for multi-slot to work
269 + -Druby=OFF # deprecated and broken
270 + -Druntime_cxxmodules=OFF # does not work yet
271 + -Dr=$(usex R)
272 + -Dsapdb=OFF # not implemented
273 + -Dshadowpw=$(usex shadow)
274 + -Dsqlite=$(usex sqlite)
275 + -Dsrp=OFF # not implemented
276 + -Dssl=$(usex ssl)
277 + -Dtable=$(usex table)
278 + -Dtbb=$(usex tbb)
279 + -Dtcmalloc=OFF
280 + -Dtesting=$(usex test)
281 + -Dthread=$(usex threads)
282 + -Dtmva=$(usex tmva)
283 + -Dunuran=$(usex unuran)
284 + -Dvc=$(usex vc)
285 + -Dvdt=OFF
286 + -Dveccore=OFF
287 + -Dxml=$(usex xml)
288 + -Dxrootd=$(usex xrootd)
289 + ${EXTRA_ECONF}
290 + )
291 +
292 + cmake-utils_src_configure
293 +}
294 +
295 +src_install() {
296 + cmake-utils_src_install
297 +
298 + ROOTSYS=${EPREFIX%/}/usr/$(get_libdir)/${PN}/$(ver_cut 1-2)
299 + ROOTENV=$((9999 - $(ver_cut 2)))${PN}-$(ver_cut 1-2)
300 +
301 + # ROOT fails without this symlink because it only looks in lib
302 + if [[ ! -d ${D}/${ROOTSYS}/lib ]]; then
303 + dosym $(get_libdir) /usr/$(get_libdir)/${PN}/$(ver_cut 1-2)/lib
304 + fi
305 +
306 + cat > ${ROOTENV} <<- EOF || die
307 + MANPATH="${ROOTSYS}/share/man"
308 + PATH="${ROOTSYS}/bin"
309 + ROOTPATH="${ROOTSYS}/bin"
310 + LDPATH="${ROOTSYS}/$(get_libdir)"
311 + EOF
312 +
313 + if use python; then
314 + echo "PYTHONPATH=${ROOTSYS}/$(get_libdir)" >> ${ROOTENV} || die
315 + fi
316 +
317 + doenvd ${ROOTENV}
318 +
319 + pushd "${D}/${ROOTSYS}" > /dev/null
320 +
321 + if use emacs; then
322 + elisp-install ${PN}-$(ver_cut 1-2) "${BUILD_DIR}"/root-help.el
323 + fi
324 +
325 + if ! use gdml; then
326 + rm -r geom || die
327 + fi
328 +
329 + if ! use examples; then
330 + rm -r test tutorials || die
331 + fi
332 +
333 + if use tmva; then
334 + rm -r tmva || die
335 + fi
336 +
337 + # clean up unnecessary files from installation
338 + rm -r config emacs etc/vmc fonts || die
339 +}