Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dev-lang/R/Manifest
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
DIST R-4.4.3.tar.gz 40234425 BLAKE2B 2a7efdf1841c7bae66a0e8aef07b9e79dec9d2f1b4c32f12640eaf84f99b05ca2846eaf10a5d03e0a7fb6d0a4f00ab16cd84a618ebef7bec29c31bc04458f0db SHA512 2a1d1e5ee2e18c928e2b3e58df372083b4bbd0822863a8441404999209035436e236c8ffe3970827fbf3d765157365800ebb0bb46f361c6abe473ddec30be06f
DIST R-4.5.0.tar.gz 40466335 BLAKE2B 29ebfab54139320a7da30dfc976e5e210c3536c7be13014210e0ea51529a688962ec0f5298fe82989174ecd1fcec3146aad9c29de3882e8e5bbe0dbeb187c880 SHA512 e32de0115f32c3e44f3a003deae6b35fa0ae1ed951f8a74d815e8a417de0e84547c2ec5386cf965208cc1c81e5d43a3706a15af929d295056201f2ffe6b9d84b
DIST rcompletion-78d6830e28ea90a046da79a9b4f70c39594bb6d6.tar.gz 5043 BLAKE2B edf0182d8e47971e6e916d8b42d25ca48f111d4486c8c73ff38282a097fcbc506d18bf62da1fa0098a5d5d8baad670c12faec80840991cdc9543c99d382a571e SHA512 5ee5c177cea9e992cd00d9468c723dd82119d11163796ecfe980fe6715a53194cef13124460e25a665d63467e3281784be37cc4b4f82f67a1fc7988d1e80ed7a
235 changes: 235 additions & 0 deletions dev-lang/R/R-4.5.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit bash-completion-r1 autotools flag-o-matic fortran-2 toolchain-funcs

# latest git commit for R bash completion: https://github.com/deepayan/rcompletion
BCPV=78d6830e28ea90a046da79a9b4f70c39594bb6d6

DESCRIPTION="Language and environment for statistical computing and graphics"
HOMEPAGE="https://www.r-project.org/"
SRC_URI="
https://cran.r-project.org/src/base/R-4/R-4.5.0.tar.gz -> R-4.5.0.tar.gz
https://github.com/deepayan/rcompletion/archive/78d6830e28ea90a046da79a9b4f70c39594bb6d6.tar.gz -> rcompletion-78d6830e28ea90a046da79a9b4f70c39594bb6d6.tar.gz"

LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1"
SLOT="0"
KEYWORDS="*"
IUSE="cairo doc icu java jpeg +lapack lto minimal nls openmp perl png prefix profile readline static-libs test tiff tk X"

REQUIRED_USE="png? ( || ( cairo X ) )
jpeg? ( || ( cairo X ) )
tiff? ( || ( cairo X ) )
"

# At least one package installation in the test suite requires TeX,
# and will fail without it (bug #718056).
BDEPEND="virtual/pkgconfig
doc? (
virtual/latex-base
dev-texlive/texlive-fontsrecommended
)
test? ( virtual/latex-base )"
DEPEND="
app-arch/bzip2:0=
app-arch/xz-utils:0=
app-text/ghostscript-gpl
dev-libs/libpcre2:=
net-libs/libtirpc
net-misc/curl
virtual/blas:0
|| ( sys-apps/coreutils app-misc/realpath )
cairo? ( x11-libs/cairo:0=[X=] x11-libs/pango:0= )
icu? ( dev-libs/icu:= )
jpeg? ( virtual/jpeg:0 )
lapack? ( virtual/lapack:0 )
perl? ( dev-lang/perl )
png? ( media-libs/libpng:0= )
readline? ( sys-libs/readline:0= )
tiff? ( media-libs/tiff:0= )
tk? ( dev-lang/tk:0= )
X? ( x11-libs/libXmu:0= x11-libs/libXt x11-misc/xdg-utils )"

RDEPEND="${DEPEND}
sys-libs/zlib:0[minizip]
java? ( >=virtual/jre-1.8:* )"

RESTRICT="minimal? ( test )
!test? ( test )"

PATCHES=(
"${FILESDIR}"/${PN}-3.4.1-parallel.patch
"${FILESDIR}"/${PN}-3.4.1-rmath-shared.patch
"${FILESDIR}"/${PN}-3.6.2-no-LDFLAGS-in-libR-pkg-config.patch
"${FILESDIR}"/${PN}-3.6.2-no-gzip-doc.patch
)

pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}

pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
FORTRAN_NEED_OPENMP=1
fi
fortran-2_pkg_setup
filter-ldflags -Wl,-Bdirect -Bdirect
# avoid using existing R installation
unset R_HOME
}

src_prepare() {
default

# fix packages.html for doc (gentoo bug #205103)
sed -e "s:../../../library:../../../../$(get_libdir)/R/library:g" \
-i src/library/tools/R/Rd.R || die

# fix Rscript path when installed (gentoo bug #221061)
sed -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${EROOT}/usr/$(get_libdir)/${PN}\"':" \
-i src/unix/Makefile.in || die "sed unix Makefile failed"

# fix HTML links to manual (gentoo bug #273957)
sed -e 's:\.\./manual/:manual/:g' \
-i $(grep -Flr ../manual/ doc) || die "sed for HTML links failed"

use lapack && \
export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)"

if use X; then
export R_BROWSER="$(type -p xdg-open)"
export R_PDFVIEWER="$(type -p xdg-open)"
fi
use perl && \
export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}"

# don't search /usr/local
sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die
# Fix for Darwin (OS X)
if use prefix; then
if [[ ${CHOST} == *-darwin* ]] ; then
sed -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \
-e 's:-install_name libRlapack.dylib:-install_name ${libdir}/R/lib/libRlapack.dylib:' \
-e 's:-install_name libRblas.dylib:-install_name ${libdir}/R/lib/libRblas.dylib:' \
-e "/SHLIB_EXT/s/\.so/.dylib/" \
-i configure.ac || die
# sort of "undo" 2.14.1-rmath-shared.patch
sed -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT}/usr/$(get_libdir)/libRmath.dylib:" \
-i src/nmath/standalone/Makefile.in || die
else
append-ldflags -Wl,-rpath="${EROOT}/usr/$(get_libdir)/R/lib"
fi
fi
AT_M4DIR=m4
eautoreconf
}

src_configure() {
# --with-system-tre \
# tre is patched from upstream
econf \
--enable-byte-compiled-packages \
--enable-R-shlib \
--disable-R-framework \
--with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \
rdocdir="${EPREFIX}/usr/share/doc/${PF}" \
$(use_enable java) \
$(use_enable lto lto R) \
$(use_enable nls) \
$(use_enable openmp) \
$(use_enable profile R-profiling) \
$(use_enable profile memory-profiling) \
$(use_enable static-libs static) \
$(use_enable static-libs R-static-lib) \
$(use_with cairo) \
$(use_with icu ICU) \
$(use_with jpeg jpeglib) \
$(use_with lapack) \
$(use_with !minimal recommended-packages) \
$(use_with png libpng) \
$(use_with readline) \
$(use_with tiff libtiff) \
$(use_with tk tcltk) \
$(use_with tk tk-config "${EPREFIX}"/usr/$(get_libdir)/tkConfig.sh) \
$(use_with tk tcl-config "${EPREFIX}"/usr/$(get_libdir)/tclConfig.sh) \
$(use_with X x)
}

src_compile() {
export VARTEXFONTS="${T}/fonts"
emake AR="$(tc-getAR)"
emake -C src/nmath/standalone \
shared $(use static-libs && echo static) AR="$(tc-getAR)"
use doc && emake info pdf
}

src_install() {
default
emake -j1 -C src/nmath/standalone DESTDIR="${D}" install

if use doc; then
emake DESTDIR="${D}" install-info install-pdf
dosym ../manual /usr/share/doc/${PF}/html/manual
fi

cat > 99R <<-EOF
LDPATH=${EROOT}/usr/$(get_libdir)/${PN}/lib
R_HOME=${EROOT}/usr/$(get_libdir)/${PN}
EOF
doenvd 99R

newbashcomp "${WORKDIR}/rcompletion-${BCPV}/bash_completion/R" ${PN}
# The buildsystem has a different understanding of install_names than
# we require. Since it builds modules like shared objects (wrong), many
# objects (all modules) get an incorrect install_name. Fixing the build
# system here is not really trivial.
if [[ ${CHOST} == *-darwin* ]] ; then
local mod
pushd "${ED}"/usr/$(get_libdir)/R > /dev/null
for mod in $(find . -name "*.dylib") ; do
mod=${mod#./}
install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/R/${mod}" \
"${mod}"
done
popd > /dev/null
fi

# Users are encouraged to access some of the the R documentation
# interactively, through functions like "contributors()" that
# tries to open the "AUTHORS" file. Other files can be accessed
# by name with RShowDoc(), and the documentation for e.g. license()
# and RShowDoc() suggests a few of these names. Here we try to
# collect as many names as possible that a user might actually
# try to view through R, because if we don't decompress them,
# then R doesn't know what to do with 'em. Bug #556706.
INTERACTIVE_DOCS=(
AUTHORS
COPYING
FAQ
NEWS
THANKS
)

# Other data sources that are shipped as "documentation," but which
# need to be accessible via their original unmolested filenames.
INTERACTIVE_DATA=(
BioC_mirrors.csv
CRAN_mirrors.csv
KEYWORDS.db
NEWS.rds
)

NOCOMPRESS_DOCS=( "${INTERACTIVE_DOCS[@]}" "${INTERACTIVE_DATA[@]}" )

for f in "${NOCOMPRESS_DOCS[@]}"; do
docompress -x "/usr/share/doc/${PF}/${f}"
done
}

pkg_postinst() {
if use java; then
einfo "Re-initializing java paths for ${P}"
R CMD javareconf
fi
}
Loading