# Contributor: Nirosan # Contributor: Jakub Jirutka # Maintainer: Jakub Jirutka global pkgname := 'R' global pkgver := '3.4.2' global pkgrel := '0' global pkgdesc := '"Language and environment for statistical computing'" global url := '"https://www.r-project.org'" global arch := '"all !s390x'" global license := '"GPL-2 GPL-3 LGPL-2.1'" global depends := ""$pkgname-mathlib"" global depends_dev := '"gcc gfortran icu-dev libjpeg-turbo libpng-dev make openblas-dev pcre-dev>=8.10 readline-dev xz-dev zlib-dev bzip2-dev curl-dev>=7.28 '" global makedepends := ""$depends_dev cairo-dev libxmu-dev openjdk8-jre-base pango-dev perl tiff-dev tk-dev "" global install := ""$pkgname.post-install"" global subpackages := ""$pkgname-mathlib $pkgname-dev $pkgname-doc"" global source := ""https://cran.r-project.org/src/base/R-$(pkgver%%.*)/$pkgname-$pkgver.tar.gz"" global builddir := ""$srcdir/$pkgname-$pkgver"" global _rhome := '"usr/lib/R'" global ldpath := ""/$_rhome/lib"" proc build { cd $builddir # 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 env 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 \ --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 } # TODO: Run provided test suite. proc check { cd $builddir ./bin/R --version ./bin/R --slave --vanilla -e 'print("Hello, world!")' } proc package { var destdir = ""$pkgdir/$_rhome"" cd $builddir 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 var f = ''; for f in [*] { mv $f "$pkgdir"/etc/R/ && ln -sf /etc/R/$f $f } cd - } proc mathlib { global pkgdesc := '"Standalone math library from the R project'" mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libRmath.so* "$subpkgdir"/usr/lib } global sha512sums := '"d432b65aad8d8ed41a8470365c4d354b83a0e1228413963420f753aead8b84596c9ca3efc58506c8797e887af9dd6fdaf833ac1ad9339ac1ffb4b5aed577803d R-3.4.2.tar.gz'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(R)} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(3.4.2)} spids:[12])] spids: [12] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[15])] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Language and environment for statistical computing"))} spids: [18] ) ] spids: [18] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("https://www.r-project.org"))} spids: [23] ) ] spids: [23] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ ("all !s390x"))} spids:[28])] spids: [28] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:license) op: Equal rhs: {(DQ ("GPL-2 GPL-3 LGPL-2.1"))} spids: [33] ) ] spids: [33] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") (-mathlib))} spids: [38] ) ] spids: [38] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends_dev) op: Equal rhs: { (DQ ("gcc gfortran icu-dev libjpeg-turbo libpng-dev make openblas-dev\n") ("\tpcre-dev>=8.10 readline-dev xz-dev zlib-dev bzip2-dev curl-dev>=7.28\n") ("\t") ) } spids: [44] ) ] spids: [44] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: { (DQ ($ VSub_Name "$depends_dev") (" cairo-dev libxmu-dev openjdk8-jre-base pango-dev\n") ("\tperl tiff-dev tk-dev\n") ("\t") ) } spids: [51] ) ] spids: [51] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:install) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") (.post-install))} spids: [59] ) ] spids: [59] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-mathlib ") ($ VSub_Name "$pkgname") ("-dev ") ($ VSub_Name "$pkgname") (-doc) ) } spids: [65] ) ] spids: [65] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("https://cran.r-project.org/src/base/R-") (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(".*")}) spids: [78 82] ) (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver") (.tar.gz) ) } spids: [75] ) ] spids: [75] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver"))} spids: [90] ) ] spids: [90] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:_rhome) op:Equal rhs:{(DQ (usr/lib/R))} spids:[100])] spids: [100] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ldpath) op: Equal rhs: {(DQ (/) ($ VSub_Name "$_rhome") (/lib))} spids: [105] ) ] spids: [105] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (SimpleCommand words: [ {(./configure)} {(--prefix) (Lit_Other "=") (/usr)} {(--sysconfdir) (Lit_Other "=") (/etc/R)} {(--localstatedir) (Lit_Other "=") (/var)} {(--mandir) (Lit_Other "=") (/usr/share/man)} {(--libdir) (Lit_Other "=") (/usr/lib)} {(Lit_VarLike "rdocdir=") (/usr/share/doc/R)} {(Lit_VarLike "rincludedir=") (/usr/include/R)} {(Lit_VarLike "rsharedir=") (/usr/share/R)} {(--disable-nls)} {(--enable-R-shlib)} {(--enable-java)} {(--without-recommended-packages)} {(--with-blas) (Lit_Other "=") (openblas)} {(--with-cairo)} {(--with-ICU)} {(--with-jpeglib)} {(--with-lapack)} {(--with-libpng)} {(--with-libtiff)} {(--with-tcltk)} {(--with-x)} ] more_env: [ (env_pair name: CXXFLAGS val: {(DQ ($ VSub_Name "$CXXFLAGS") (" -D__MUSL__"))} spids: [140] ) ] ) (C {(make)}) (C {(make)} {(-C)} {(src/nmath/standalone)}) ] spids: [117] ) spids: [113 116] ) (FuncDef name: check body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(./bin/R)} {(--version)}) (C {(./bin/R)} {(--slave)} {(--vanilla)} {(-e)} {(SQ <"print(\"Hello, world!\")">)}) ] spids: [268] ) spids: [264 267] ) (FuncDef name: package body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:destdir) op: Equal rhs: {(DQ ($ VSub_Name "$pkgdir") (/) ($ VSub_Name "$_rhome"))} spids: [308] ) ] spids: [306] ) (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (C {(cd)} {(src/nmath/standalone)}) (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (C {(cd)} {(-)}) (C {(rm)} {(DQ ($ VSub_Name "$destdir")) (/bin/R)}) (C {(ln)} {(-sf)} {(/usr/bin/R)} {(DQ ($ VSub_Name "$destdir")) (/bin/R)}) (C {(rm)} {(DQ ($ VSub_Name "$destdir")) (/COPYING)} {(DQ ($ VSub_Name "$destdir")) (/SVN-REVISION)} ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/R)}) (C {(cd)} {(DQ ($ VSub_Name "$destdir")) (/etc)}) (Sentence child: (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:f) op:Equal spids:[437])] spids: [435] ) terminator: ) (ForEach iter_name: f iter_words: [{(Lit_Other "*")}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(mv)} {(DQ ($ VSub_Name "$f"))} {(DQ ($ VSub_Name "$pkgdir")) (/etc/R/)}) (C {(ln)} {(-sf)} {(/etc/R/) ($ VSub_Name "$f")} {($ VSub_Name "$f")}) ] op_id: Op_DAmp ) ] spids: [449 475] ) spids: [445 447] ) (C {(cd)} {(-)}) ] spids: [303] ) spids: [299 302] ) (FuncDef name: mathlib body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Standalone math library from the R project"))} spids: [492] ) ] spids: [492] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib)}) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/libRmath.so) (Lit_Other "*")} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib)} ) ] spids: [489] ) spids: [485 488] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "d432b65aad8d8ed41a8470365c4d354b83a0e1228413963420f753aead8b84596c9ca3efc58506c8797e887af9dd6fdaf833ac1ad9339ac1ffb4b5aed577803d R-3.4.2.tar.gz" ) ) } spids: [525] ) ] spids: [525] ) ] )