sci-physics/root: update live ebuild for upstream changes
authorGuilherme Amadio <amadio@gentoo.org>
Thu, 2 May 2019 14:50:17 +0000 (16:50 +0200)
committerGuilherme Amadio <amadio@gentoo.org>
Tue, 7 May 2019 06:30:26 +0000 (08:30 +0200)
Package-Manager: Portage-2.3.66, Repoman-2.3.12
Signed-off-by: Guilherme Amadio <amadio@gentoo.org>
sci-physics/root/root-9999.ebuild

index df57dd82e74a4421e88ab6b6ffcac7513b2d3b86..0c248faf0e5afe55dea1d845fced15dbba1c8305 100644 (file)
@@ -10,18 +10,7 @@ FORTRAN_NEEDED="fortran"
 PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
 
 inherit cmake-utils cuda eapi7-ver elisp-common eutils fortran-2 \
-       prefix python-single-r1 toolchain-funcs
-
-if [[ ${PV} == "9999" ]] ; then
-       inherit git-r3
-       KEYWORDS=""
-       EGIT_REPO_URI="http://root.cern/git/root.git"
-       SLOT=0
-else
-       KEYWORDS="~amd64 ~x86"
-       SRC_URI="https://root.cern/download/${PN}_v${PV}.source.tar.gz"
-       SLOT="$(ver_cut 1-2)/$(ver_cut 3)"
-fi
+       llvm prefix python-single-r1 toolchain-funcs
 
 DESCRIPTION="C++ data analysis framework and interpreter from CERN"
 HOMEPAGE="https://root.cern"
@@ -33,10 +22,26 @@ IUSE="+X aqua +asimage +c++11 c++14 c++17 cuda +davix emacs +examples
        table +tbb test +threads +tiff +tmva +unuran vc xinetd +xml xrootd
        zeroconf"
 
+if [[ ${PV} =~ "9999" ]] ; then
+       inherit git-r3
+       KEYWORDS=""
+       EGIT_REPO_URI="http://root.cern/git/root.git"
+       if [[ ${PV} == "9999" ]]; then
+               SLOT="0"
+       else
+               SLOT="$(ver_cut 1-2)/$(ver_cut 3)"
+               EGIT_BRANCH="v$(ver_cut 1)-$(ver_cut 2)-00-patches"
+       fi
+else
+       KEYWORDS="~amd64 ~x86"
+       SRC_URI="https://root.cern/download/${PN}_v${PV}.source.tar.gz"
+fi
+
 LICENSE="LGPL-2.1 freedist MSttfEULA LGPL-3 libpng UoI-NCSA"
 
 REQUIRED_USE="
        ^^ ( c++11 c++14 c++17 )
+       cuda? ( tmva !c++17 )
        !X? ( !asimage !opengl !qt5 !tiff )
        davix? ( ssl xml )
        python? ( ${PYTHON_REQUIRED_USE} )
@@ -49,19 +54,19 @@ CDEPEND="
        app-arch/lz4
        app-arch/xz-utils
        fortran? ( dev-lang/cfortran )
-       dev-libs/libpcre:3=
+       dev-libs/libpcre:3
        dev-libs/xxhash
        media-fonts/dejavu
-       media-libs/freetype:2=
+       media-libs/freetype:2
        media-libs/libpng:0=
        sys-devel/llvm:5=
        sys-libs/ncurses:=
        sys-libs/zlib
        X? (
-               x11-libs/libX11:0=
-               x11-libs/libXext:0=
-               x11-libs/libXft:0=
-               x11-libs/libXpm:0=
+               x11-libs/libX11:0
+               x11-libs/libXext:0
+               x11-libs/libXft:0
+               x11-libs/libXpm:0
                opengl? (
                        media-libs/ftgl:0=
                        media-libs/glew:0=
@@ -85,8 +90,8 @@ CDEPEND="
        emacs? ( virtual/emacs )
        fftw? ( sci-libs/fftw:3.0= )
        fits? ( sci-libs/cfitsio:0= )
-       graphviz? ( media-gfx/graphviz:0= )
-       gsl? ( sci-libs/gsl )
+       graphviz? ( media-gfx/graphviz )
+       gsl? ( sci-libs/gsl:= )
        http? ( dev-libs/fcgi:0= )
        jemalloc? ( dev-libs/jemalloc )
        kerberos? ( virtual/krb5 )
@@ -98,8 +103,8 @@ CDEPEND="
        odbc? ( || ( dev-db/libiodbc dev-db/unixODBC ) )
        oracle? ( dev-db/oracle-instantclient-basic )
        postgres? ( dev-db/postgresql:= )
-       pythia6? ( sci-physics/pythia:6= )
-       pythia8? ( sci-physics/pythia:8= )
+       pythia6? ( sci-physics/pythia:6 )
+       pythia8? ( sci-physics/pythia:8 )
        python? ( ${PYTHON_DEPS} )
        R? ( dev-lang/R )
        shadow? ( virtual/shadow )
@@ -107,7 +112,7 @@ CDEPEND="
        ssl? ( dev-libs/openssl:0= )
        tbb? ( >=dev-cpp/tbb-2018 )
        tmva? ( dev-python/numpy[${PYTHON_USEDEP}] )
-       vc? ( dev-libs/vc )
+       vc? ( dev-libs/vc:= )
        xml? ( dev-libs/libxml2:2= )
        xrootd? ( net-libs/xrootd:0= )
 "
@@ -123,15 +128,15 @@ PATCHES=(
 )
 
 pkg_setup() {
+       LLVM_MAX_SLOT=5 llvm_pkg_setup
+
        use fortran && fortran-2_pkg_setup
        use python && python-single-r1_pkg_setup
 
-       elog "There are extra options on packages not yet in Gentoo:"
-       elog "Afdsmgrd, AliEn, castor, Chirp, dCache, gfal, Globus, gLite,"
-       elog "HDFS, Monalisa, MaxDB/SapDB, SRP, VecCore."
-       elog "You can use the environment variable EXTRA_ECONF for this."
-       elog "For example, for Chirp, you would set: "
-       elog "EXTRA_ECONF=\"-Dchirp=ON\""
+       elog "There are extra options on packages not available in Gentoo."
+       elog "You can use the environment variable EXTRA_ECONF to enable"
+       elog "these packages. For example, for Vdt you would set:"
+       elog "EXTRA_ECONF=\"-Dbuiltin_vdt=ON -Dvdt=ON\""
 }
 
 src_prepare() {
@@ -141,11 +146,13 @@ src_prepare() {
 
        # CSS should use local images
        sed -i -e 's,http://.*/,,' etc/html/ROOT.css || die "html sed failed"
+
+       hprefixify core/clingutils/CMakeLists.txt
 }
 
 # Note: ROOT uses bundled clang because it is patched and API-incompatible
 #       with vanilla clang. The patches enable the C++ interpreter to work.
-#       Since ROOT installs many files into /etc (~100MB in total) that don't
+#       Since ROOT installs many files into /etc (>100MB in total) that don't
 #       really belong there, we install it into another directory to avoid
 #       making /etc too big.
 
@@ -154,11 +161,11 @@ src_configure() {
                -DCMAKE_C_FLAGS="${CFLAGS}"
                -DCMAKE_CXX_FLAGS="${CXXFLAGS}"
                -DPYTHON_EXECUTABLE="${PYTHON}"
-               -DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr/$(get_libdir)/${PN}/$(ver_cut 1-2)"
-               -DCMAKE_INSTALL_MANDIR="${EPREFIX%/}/usr/$(get_libdir)/${PN}/$(ver_cut 1-2)/share/man"
-               -DCMAKE_INSTALL_LIBDIR=$(get_libdir)
+               -DLLVM_CONFIG="$(type -P "${CHOST}-llvm-config")"
+               -DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr/lib/${PN}/$(ver_cut 1-2)"
+               -DCMAKE_INSTALL_MANDIR="${EPREFIX%/}/usr/lib/${PN}/$(ver_cut 1-2)/share/man"
+               -DCMAKE_INSTALL_LIBDIR="lib"
                -DDEFAULT_SYSROOT="${EPREFIX}"
-               -DLLVM_CONFIG="${EPREFIX%/}/usr/lib/llvm/5/bin/llvm-config"
                -DCLING_BUILD_PLUGINS=OFF
                -Dexplicitlink=ON
                -Dexceptions=ON
@@ -291,41 +298,44 @@ src_compile() {
 src_install() {
        cmake-utils_src_install
 
-       ROOTSYS=${EPREFIX%/}/usr/$(get_libdir)/${PN}/$(ver_cut 1-2)
-       ROOTENV=9900${PN}-$(ver_cut 1-2)
+       ROOTSYS=${EPREFIX%/}/usr/lib/${PN}/$(ver_cut 1-2)
 
-       # ROOT fails without this symlink because it only looks in lib
-       if [[ ! -d ${D}/${ROOTSYS}/lib ]]; then
-               dosym $(get_libdir) /usr/$(get_libdir)/${PN}/$(ver_cut 1-2)/lib
+       if [[ ${PV} == "9999" ]]; then
+               ROOTENV=$((9900 - $(ver_cut 2)))${PN}-git
+       else
+               ROOTENV=$((9999 - $(ver_cut 2)))${PN}-$(ver_cut 1-2)-git
        fi
 
        cat > ${ROOTENV} <<- EOF || die
        MANPATH="${ROOTSYS}/share/man"
        PATH="${ROOTSYS}/bin"
        ROOTPATH="${ROOTSYS}/bin"
-       LDPATH="${ROOTSYS}/$(get_libdir)"
+       LDPATH="${ROOTSYS}/lib"
        EOF
 
        if use python; then
-               echo "PYTHONPATH=${ROOTSYS}/$(get_libdir)" >> ${ROOTENV} || die
+               echo "PYTHONPATH=\"${ROOTSYS}/lib\"" >> ${ROOTENV} || die
        fi
 
        doenvd ${ROOTENV}
 
-       pushd "${D}/${ROOTSYS}" > /dev/null
-
        if use emacs; then
                elisp-install ${PN}-$(ver_cut 1-2) "${BUILD_DIR}"/root-help.el
        fi
 
+       pushd "${D}/${ROOTSYS}" > /dev/null
+
+       rm -r test emacs bin/*.{csh,sh,fish} || die
+
        if ! use examples; then
                rm -r tutorials || die
        fi
 
-       if ! use tmva; then
-               rm -r tmva || die
+       # create versioned symlinks for binaries
+       if [[ ! ${PV} == "9999" ]]; then
+               cd bin;
+               for exe in *; do
+                       dosym "${exe}" "/usr/lib/${PN}/$(ver_cut 1-2)/bin/${exe}-$(ver_cut 1-2)"
+               done
        fi
-
-       # clean up unnecessary files from installation
-       rm -r emacs test || die
 }