mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-06-07 04:44:57 +02:00
- R needs to work with date-times (R-admin documents 'tzdata' as essential) - configure now includes a check that date-times work correctly - for -dev, 'tzdata' was already implicitly available via tcl-dev - some checks fail without a time-zone database
160 lines
3.7 KiB
Text
160 lines
3.7 KiB
Text
# Contributor: Nirosan <pnirosan@gmail.com>
|
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
|
|
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
|
|
pkgname=R
|
|
pkgver=4.5.0
|
|
pkgrel=0
|
|
pkgdesc="Language and environment for statistical computing"
|
|
url="https://www.r-project.org/"
|
|
# riscv64: blocked by java-jre-headless
|
|
# loongarch64: test failure
|
|
arch="all !riscv64"
|
|
license="( GPL-2.0-only OR GPL-3.0-only ) AND LGPL-2.1-or-later"
|
|
depends="$pkgname-mathlib tzdata"
|
|
depends_dev="
|
|
bzip2-dev
|
|
curl-dev>=7.28
|
|
gcc
|
|
gfortran
|
|
icu-dev
|
|
libdeflate-dev
|
|
libjpeg-turbo
|
|
libpng-dev
|
|
make
|
|
musl-dev
|
|
openblas-dev>=0.3.0
|
|
pcre2-dev
|
|
readline-dev
|
|
xz-dev
|
|
zlib-dev
|
|
"
|
|
makedepends="
|
|
$depends_dev
|
|
cairo-dev
|
|
java-jdk
|
|
libxmu-dev
|
|
pango-dev
|
|
perl
|
|
tiff-dev
|
|
tk-dev
|
|
"
|
|
install="$pkgname.post-install"
|
|
subpackages="$pkgname-static $pkgname-mathlib $pkgname-dev:_dev $pkgname-doc"
|
|
source="https://cran.r-project.org/src/base/R-${pkgver%%.*}/R-$pkgver.tar.gz"
|
|
|
|
_rhome="usr/lib/R"
|
|
ldpath="/$_rhome/lib"
|
|
|
|
build() {
|
|
# Performance is more important than size for R. Moreover, -O2 has
|
|
# only minimal impact on the R package size (less than 1 %).
|
|
export CFLAGS="${CFLAGS/-Os/-O2}"
|
|
export CPPFLAGS="${CPPFLAGS/-Os/-O2}"
|
|
export CXXFLAGS="${CXXFLAGS/-Os/-O2}"
|
|
|
|
# CXXFLAGS is propagated to /etc/R/Makeconf that is read when building
|
|
# additional R modules. -D__MUSL__ is needed for some modules like Rcpp.
|
|
# htps://github.com/RcppCore/Rcpp/issues/448
|
|
export CXXFLAGS="$CXXFLAGS -D__MUSL__"
|
|
|
|
./configure \
|
|
--prefix=/usr \
|
|
--sysconfdir=/etc/R \
|
|
--localstatedir=/var \
|
|
--mandir=/usr/share/man \
|
|
--libdir=/usr/lib \
|
|
rdocdir=/usr/share/doc/R \
|
|
rincludedir=/usr/include/R \
|
|
rsharedir=/usr/share/R \
|
|
--disable-nls \
|
|
--enable-R-shlib \
|
|
--enable-java \
|
|
--enable-lto \
|
|
--without-recommended-packages \
|
|
--with-blas=openblas \
|
|
--with-cairo \
|
|
--with-ICU \
|
|
--with-jpeglib \
|
|
--with-lapack \
|
|
--with-libpng \
|
|
--with-libtiff \
|
|
--with-tcltk \
|
|
--with-x
|
|
|
|
make
|
|
make -C src/nmath/standalone
|
|
}
|
|
|
|
check() {
|
|
# Some tests fail if R cannot infer a time zone
|
|
export TZ=UTC
|
|
|
|
# Try running R (and also aid debugging).
|
|
./bin/R --vanilla -s -e 'sessionInfo(); R_compiled_by(); str(.Machine)'
|
|
|
|
case "$CARCH" in
|
|
# A (non-portable) numerical regression test currently (R 4.4.0)
|
|
# fails on the aarch64, loongarch64 and s390x runners.
|
|
# Run at least two basic test suites:
|
|
aarch64 | s390x | loongarch64)
|
|
make -C tests test-Examples && make -C tests test-Specific || {
|
|
tail -v -n 42 tests/*.fail; exit 1
|
|
}
|
|
;;
|
|
*)
|
|
make check || {
|
|
tail -v -n 42 tests/*.fail; exit 1
|
|
}
|
|
;;
|
|
esac
|
|
|
|
# NOTE: EST5EDT-related differences reported for datetime.Rout are known
|
|
# (see <https://mm.icann.org/pipermail/tz/2024-March/058740.html>
|
|
# or also <https://bugs.r-project.org/show_bug.cgi?id=16843#c12>)
|
|
}
|
|
|
|
package() {
|
|
local destdir="$pkgdir/$_rhome"
|
|
|
|
make DESTDIR="$pkgdir" install
|
|
|
|
# Install libRmath.so.
|
|
cd src/nmath/standalone
|
|
make DESTDIR="$pkgdir" install
|
|
cd -
|
|
|
|
# Fixup R wrapper script (taken from Arch).
|
|
rm "$destdir"/bin/R
|
|
ln -sf /usr/bin/R "$destdir"/bin/R
|
|
|
|
# Remove some useless files (COPYING is duplicated, it will be
|
|
# in -doc, don't worry).
|
|
rm "$destdir"/COPYING "$destdir"/SVN-REVISION
|
|
|
|
mkdir -p "$pkgdir"/etc/R
|
|
|
|
# R apparently ignores --sysconfdir, so we must manually move configs
|
|
# to /etc/R and make symlinks.
|
|
cd "$destdir"/etc
|
|
local f; for f in *; do
|
|
mv "$f" "$pkgdir"/etc/R/ && ln -sf /etc/R/$f $f
|
|
done
|
|
cd -
|
|
}
|
|
|
|
mathlib() {
|
|
pkgdesc="Standalone math library from the R project"
|
|
depends=
|
|
|
|
mkdir -p "$subpkgdir"/usr/lib
|
|
mv "$pkgdir"/usr/lib/libRmath.so* "$subpkgdir"/usr/lib
|
|
}
|
|
|
|
_dev() {
|
|
depends="R=$pkgver-r$pkgrel"
|
|
default_dev
|
|
}
|
|
|
|
sha512sums="
|
|
e32de0115f32c3e44f3a003deae6b35fa0ae1ed951f8a74d815e8a417de0e84547c2ec5386cf965208cc1c81e5d43a3706a15af929d295056201f2ffe6b9d84b R-4.5.0.tar.gz
|
|
"
|