On Sat 26 May 2018 at 21:24, Eli Schwartz via aur-general <[email protected]> wrote:
> On 05/26/2018 12:04 PM, Alex Branham via aur-general wrote: >> Hi all - >> >> I'd like to use pacman to manage R packages, similar to how you can for >> other languages (e.g. the python packages are all named python-*). There >> are some packages available already, but not many (I count about 130 >> currently). I wrote a script[1] that generates PKGBUILDS for all the >> packages on the Comprehensive R Archive Network (CRAN). There's 12,593 >> packages on CRAN as of today. >> >> If you evaluate the script, then call write_all_pkgbuilds(), R will put >> each PKGBUILD into PKGBUILDS/r-cran-<pkgname>/PKGBUILD. Here's an >> example of the output.[2] It doesn't generate .SRCINFO or setup a git >> repo (yet). It also doesn't take into account (yet) that there are >> already 130ish R packages on the AUR. I named them r-cran-* rather than >> r-* because 1) it's clearer where the packages are coming from and 2) >> it's a pain to search for r-* >> >> Is this something people would like to have in the AUR? I figured I >> should ask before adding ~12.5k packages. >> >> Any and all comments/feedback appreciated! >> >> Thanks, >> Alex > > If you're generating PKGBUILDs for upload to the AUR, they should be > well-written. As observed, injecting "cran" into the name is confusing, > I think anyone looking for an R package will know how to find it based > on the rest of the name component. Yes, I think everyone prefers r-* to r-cran-*. That's easy enough to change. > I doubt anyone is just looking randomly to see which R packages are > available, but if they are, the most effective way would be to download > https://aur.archlinux.org/packages.gz and use regular expressions to > find packages matching the pattern ^r- It would be nice if the web search interface supported things like this. > This would find the regardless of whether they mentioned cran, and in a > highly effective manner. > >> Footnotes: >> [1] >> https://github.com/jabranham/r-cran-pkgbuilds/blob/master/gen-R-PKGBUILDS.R >> [2] >> >> # Maintainer: Alex Branham <email-address-removed> >> _cranname=A3 >> _cranver=1.0.0 >> pkgname=r-cran-a3 >> pkgver=1.0.0 > > Why is cryanver different from pkgver? CRAN versions can contain characters that aren't allowed in PKGBUILDS such as hyphens. > >> pkgrel=1 >> pkgdesc="Supplies tools for tabulating and analyzing the results of >> predictive models. The methods employed are applicable to virtually any >> predictive model and make comparisons between different methodologies >> straightforward." > > pkgdesc should be 80 chars, not 218 Thanks. I'll work on shortening the pkgdesc to around 80 characters. >> url="https://cran.r-project.org/web/packages/${_cranname}/index.html" >> arch=('x86_64') >> license=('GPL') >> depends=('r-cran-xtable' 'r-cran-pbapply') >> >> optdepends=('r-cran-randomforest' 'r-cran-e1071') >> >> source=("https://cran.r-project.org/src/contrib/${_cranname}_${_cranver}.tar.gz") >> md5sums=('027ebdd8affce8f0effaecfcd5f5ade2') >> package() { >> mkdir -p ${pkgdir}/usr/lib/R/library >> cd ${srcdir} >> R CMD INSTALL ${_cranname} -l ${pkgdir}/usr/lib/R/library >> } > > > This compiles source code into x86_64 ELF executable code, in the > package() step? Is your question here about the architecture? It automatically detects that during R CMD INSTALL. > Also ${srcdir} without quotes will guaranteedly break on at least some > users who build from directories which contain spaces. You carefully > quote array assignments, which do *not* contain spaces (note, I'm not > saying this was the wrong decision!) then neglect to do so for the only > two variables which contain content not under your control! Fixed, thanks! Thank you very much for the feedback, Eli. I don't have a ton of experience writing PKGBUILDs so this was very helpful! Alex
