From bdffb505eca41fccdac6625b586f7a7ed05159b4 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Thu, 7 May 2020 01:28:47 +0200 Subject: [PATCH] new eclass for R packages, taken from the R_Overlay Signed-off-by: Alessandro Barbieri --- eclass/R-packages-guru.eclass | 54 +++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 eclass/R-packages-guru.eclass diff --git a/eclass/R-packages-guru.eclass b/eclass/R-packages-guru.eclass new file mode 100644 index 0000000000..e365b0336c --- /dev/null +++ b/eclass/R-packages-guru.eclass @@ -0,0 +1,54 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +inherit eutils + +EXPORT_FUNCTIONS src_unpack src_prepare src_compile src_install pkg_postinst + +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="byte-compile" + +DEPEND="dev-lang/R" +RDEPEND="${DEPEND}" + +R-packages-guru_src_unpack() { + unpack ${A} + if [[ -d "${PN//_/.}" ]] && [[ ! -d "${P}" ]]; then + mv ${PN//_/.} "${P}" + fi +} + +if has "${EAPI:-0}" 0 1 2 3 4 5; then + R-packages-guru_src_prepare() { + epatch_user + } +else + R-packages-guru_src_prepare() { + default + } +fi + +R-packages-guru_src_compile() { + MAKEFLAGS="CFLAGS=${CFLAGS// /\\ } CXXFLAGS=${CXXFLAGS// /\\ } FFLAGS=${FFLAGS// /\\ } FCFLAGS=${FCFLAGS// /\\ } LDFLAGS=${LDFLAGS// /\\ }" \ + R CMD INSTALL . -l "${WORKDIR}" $(use byte-compile && echo "--byte-compile") +} + +R-packages-guru_src_install() { + insinto /usr/$(get_libdir)/R/site-library + doins -r "${WORKDIR}"/${PN//_/.} +} + +R-packages-guru_pkg_postinst() { + if [[ "${_UNRESOLVABLE_PACKAGES:-}" ]]; then + # _UNRESOLVABLE_PACKAGES is only set if it has more than zero items + local _max=${#_UNRESOLVABLE_PACKAGES[*]} i= + + einfo "Dependency(-ies):" + for (( i=0; i<"${_max}"; i++ )); do + einfo "- ${_UNRESOLVABLE_PACKAGES[$i]}" + done + einfo 'are (is) suggested by upstream but could not be found.' + einfo 'Please install it manually from the R interpreter if you need it.' + fi +}