R package guidelines (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Status de tradução: Esse artigo é uma tradução de R package guidelines. Data da última tradução: 2019-11-09. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.
Diretrizes de pacotes do Arch

32-bitCLRCMakeCrossDKMSEclipseElectronFonteFree PascalGNOMEGoHaskellJavaKDEKernelLispMesonMinGWNode.jsNonfreeOCamlPerlPHPPythonRRubyRustVCSWebWine

Este documento abrange padrões e diretrizes para escrever PKGBUILDs para pacotes R. A maioria das informações pode ser obtida consultando o arquivo DESCRIPTION do pacote. Você pode obter a maior parte de dentro do R executando tools::CRAN_package_db().

Nomenclatura de pacote

Pacotes devem ser nomeados r-pkgname, sendo pkgname retirado do campo Package do arquivo DESCRIPTION. O nome do pacote deve estar em letras minúsculas.

Versão de pacote

Pegue no campo Version. R permite que os pacotes tenham dois pontos e hífenes em sua versão, isso não é permitido em PKGBUILDs. Converta estes para um período ou sublinhado.

Arch

Veja PKGBUILD (Português)#arch. Se a página web do CRAN do pacote tiver NeedsCompilation: yes, é provável que seja específico da arquitetura. Caso contrário, é provável que não.

Dependências

Os pacotes R listados nos campos Depends, Imports ou LinkingTo no arquivo DESCRIPTION de um pacote devem ser listados em depends.

Os pacotes R listados em Suggests devem ser listados como optdepends.

Alguns pacotes requerem ferramentas externas, estas estão listadas em SystemRequirements.

O gcc-fortran é necessário como makedepends para alguns pacotes, mas nem sempre é listado no arquivo DESCRIPTION.

Fonte

Todos os pacotes R disponíveis no CRAN estão disponíveis no site https://cran.r-project.org/src/contrib/cranname_cranversion.tar.gz, sendo cranname o nome do pacote no CRAN e cranversion a versão cran.

Compilação e empacotamento

R tem suporte embutido para compilar pacotes, nós só precisamos instalar e copiar o pacote compilado depois:

 build(){
     R CMD INSTALL pkg.tar.gz -l "$srcdir"
 }
 package() {
     install -dm0775 "$pkgdir"/usr/lib/R/library
     cp -a --no-preserve=ownership pkgname "$pkgdir"/usr/lib/R/library
 }

Exemplos

RcppEigen

 pkgname=r-rcppeigen
 pkgver=0.3.3.4.0
 pkgrel=1
 pkgdesc="Rcpp Integration for the Eigen Templated Linear Algebra Library"
 arch=('x86_64')
 url="https://cran.r-project.org/package=RcppEigen"
 license=('GPL')
 depends=('r' 'r-rcpp')
 optdepends=('r-inline' 'r-runit' 'r-pkgkitten')
 source=("https://cran.r-project.org/src/contrib/RcppEigen_$pkgver.tar.gz")
 md5sums=('78ee1ef7c6043efa875434ae5fcea2ec')
 
 build(){
     R CMD INSTALL RcppEigen_"$pkgver".tar.gz -l "$srcdir"
 }
 package() {
     install -dm0755 "$pkgdir"/usr/lib/R/library
     cp -a --no-preserve=ownership RcppEigen "$pkgdir"/usr/lib/R/library
 }

XML

Um exemplo em que o pacote R possui caracteres não permitidos no pkgver:

 _cranver=3.98-1.11
 pkgname=r-xml
 pkgver=${_cranver//[:-]/.}
 pkgrel=1
 pkgdesc='Tools for Parsing and Generating XML Within R and S-Plus'
 arch=('x86_64')
 url='https://cran.r-project.org/package=XML'
 license=('BSD')
 depends=('r' 'libxml2')
 optdepends=('r-bitops' 'r-rcurl')
 replaces=('r-cran-xml')
 source=("https://cran.r-project.org/src/contrib/XML_$_cranver.tar.gz")
 md5sums=('6c67f5730ada3456372520773a920b8e')
 
 build(){
     R CMD INSTALL XML_"$_cranver".tar.gz -l "$srcdir"
 }
 package() {
     install -dm0755 "$pkgdir"/usr/lib/R/library
     cp -a --no-preserve=ownership XML "$pkgdir"/usr/lib/R/library
 }

Dicas e truques

Para verificar rapidamente se algum dos seus pacotes R (ou outro usuário) no AUR ficou desatualizado, você pode usar a ferramenta aurrpkgs-gitAUR (substitua nome-de-usuário pelo valor desejado):

$ aurrpkgs nome-de-usuário

Essa ferramenta mostra todos os pacotes desatualizados e as novas versões disponíveis para eles.