Hi Neil,

Thank you!

Neil Shephard <[email protected]> writes:

> Thanks for taking the time to resolve this, that has worked nicely and
> Rcpp now emerges.
>
> I continued trying to replace all the packages I have installed
> directly through R with emerges from R_Overlay and opted to emerge the
> meta-package tidyverse which pulls in a ton of packages as well as
> more explicit packages that aren't pulled in. In doing so I've
> encountered three problems....
>
> 1. Some ebuilds try to pull in old versions.

> 2. Some ebuilds from R_Overlay require "USE=minimal dev-lang/R" whilst
> others require "USE=-minimal dev-lang/R" which makes it difficult to
> emerge things.

> 3. I found one package that is on CRAN but for which there is no ebuild.
>
> 1. Old Versions
> ============
>
> I found the following old version were pulled in....
>
> | Package | R_Overlay Version | CRAN version |
> |-----------|-------------------|---------------|
> | xml2 | 0.1.2 | 1.2.0 |
> | lubridate | 1.7.0 | 1.7.3 |

This is because the parser fails on the new version.  Taking xml2 for
example, the "system requirements" field on CRAN is:

  libxml2: libxml2-dev (deb), libxml2-devel (rpm)

The parser did not know "(deb)" this maps to dev-libs/libxml2, nor it
could match 'libxml2-devel'.


Before I had to fix these cornor cases manually.  I am thinking of
exposing the configuration file so that users can contribute to the new
parsing rules.

> 2. dev-lang/R [-]minimal conflicts
> ==========================
>
> Tried emerging a bundle of packages and get conflicts relating to the
> USE=minimal, also resulted in some slot conflicts that I couldn't
> see. Its mostly the 'virtual/[pkg]' that require -minimal....
>
> emerge -av ggridges ggraph ggrepel ggnetwork ggmosaic gglasso ggimage
> ggforce gge ggalt ggROC ggHorizon ggExtra ggbeeswarm lme4 glmnet rpart
> caret survival Hmisc rms epitools pwr TrialSize longpower simglm
> clusterPower samplesize PowerTOST blockrand bookdown ...
>
> !!! Multiple package instances within a single package slot have been pulled
> !!! into the dependency graph, resulting in a slot conflict:
>
> dev-lang/R:0
>
> The following USE changes are necessary to proceed:
> (see "package.use" in the portage(5) man page for more details)
> # required by sci-CRAN/survival-2.41.3::R_Overlay
> # required by sci-CRAN/multcomp-1.4.8::R_Overlay
> # required by sci-CRAN/rms-5.1.2::R_Overlay
> # required by rms (argument)
>>=dev-lang/R-3.4.4 minimal
>
> Strangely virtual/rpart is listed as requiring USE=-minimal but the
> rpart package itself requires USE=minimal.

The short answer is, reinstall R with USE=minimal.

Long story: dev-lang/R[-minimal] installs a set of R-recommended packages,

  https://cran.r-project.org/src/contrib/3.3.3/Recommended/

The packages are bundled with R.  Then some package foo in R_Overlay,
depends on Matrix-1.4.  It is not a problem for R, because it does not
track files and Matrix-1.4 overwrites the bundled Matrix-1.2.8.  Portage
is strict on file collisions.  Therefore, we have introduced the
virtuals.  If you read the virtual ebuilds, e.g. matrix, it speaks for
itself

DESCRIPTION="Virtual of a R recommended package"
RDEPEND="
        || (
                dev-lang/R[-minimal]
                sci-CRAN/Matrix
        )"

> 3. Missing ebuild for one package
> ==========================
>
> I was going to try emergeing the blogdown package 
> (https://cran.r-project.org/web/packages/blogdown/) but there is no ebuild 
> for it in
> R_Overlay...
>
> # emerge -av blogdown
>
> emerge: there are no ebuilds to satisfy "blogdown".
>
> emerge: searching for similar names...
> emerge: Maybe you meant any of these: sci-CRAN/bookdown,
> sci-BIOC/ballgown, app-admin/logmon?

Reading CRAN blogdown

SystemRequirements: Hugo (<https://gohugo.io>) and Pandoc
(<http://pandoc.org>)

The parser will not know it is hugo (not yet packaged in Gentoo) and
app-text/pandoc.

> One minor caeveat is that I'm using a locally bumped version of R as
> the bugreport I've filed for bumping in portage
> (https://bugs.gentoo.org/632364) hasn't been addressed yet. I'm
> currently using =dev-lang/R-3.4.4

Thanks for the bug report.

> I'm unsure how the ebuilds in R_Overlay are generated, is it
> automatically based on available builds?

Yes, it has been a Google summer of code project by André Erdmann
mentored by calchan:

  
https://blogs.gentoo.org/calchan/2015/04/05/why-we-do-not-have-nor-want-r-packages-in-the-tree/

Now I find myself the only one left to do the server maintenance with
our infra team.

> Thanks for yours and others work on this, having R packages managed by
> portage is a real boon, as it removes the need to update.packages(ask
> = FALSE) so regularly.

You're welcome.  I myself is an active user of it.

> If there is something I can do to help please let me know.

Keep on discussion.

If you have a connection with R development team, can we talk to them to
impose a machine-readable format on the "SystemRequirements:"?

Cheers,
Benda

Reply via email to