On Wed, Mar 10, 2021 at 12:18 AM I?aki Ucar <iucar at fedoraproject.org>
wrote:>
> On Tue, 9 Mar 2021 at 23:55, Jeroen Ooms <jeroenooms at gmail.com>
wrote:
> >
> > On Tue, Mar 9, 2021 at 2:27 PM I?aki Ucar <iucar at
fedoraproject.org> wrote:
> > >
> > > On Tue, 9 Mar 2021 at 13:26, Jeroen Ooms <jeroenooms at
gmail.com> wrote:
> > > >
> > > > When installing an R package from source on Fedora using the
standard
> > > > R-core rpm, we always get a warning at the end because of a
missing
> > > > css file /usr/share/doc/R/html/R.css:
> > > >
> > > > ** byte-compile and prepare package for lazy loading
> > > > ** help
> > > > *** installing help indices
> > > > Error in file.copy(file.path(R.home("doc"),
"html", "R.css"), outman) :
> > > > (converted from warning) problem copying
/usr/share/doc/R/html/R.css
> > > > to
/usr/lib64/R/library/00LOCK-systemfonts/00new/systemfonts/html/R.css:
> > > > No such file or directory
> > > >
> > > > But when I try to install the missing file, yum says it is
already installed:
> > > >
> > > > yum install /usr/share/doc/R/html/R.css
> > > > ## Package R-core-4.0.3-1.fc32.x86_64 is already
installed.
> > > >
> > > > However it does not actually exist. Perhaps the rpm could
make a copy
> > > > or symlink from /usr/lib64/R/library/base/html/R.css
> > >
> > > I assume you are doing this in a docker image. That file is not
> > > installed because our base images have "tsflags=nodocs"
set in
> > > /etc/dnf/dnf.conf. Unset this before installing R-core, or, even
> > > better, install packages with --no-docs.
> >
> > Perhaps --no-docs should then be the default if tsflags=nodocs? The
> > default behavior is unfortunate, because it makes install.packages()
> > fail even if the user is not even interested in documentation, and
> > people come up with all sorts of workarounds eg:
> > https://github.com/r-lib/devtools/issues/2084
>
> install.packages doesn't fail. devtools does. I see:
>
> Warning in file.create(f.tg) :
> cannot create file '/usr/share/doc/R/html/packages.html', reason
'No
> such file or directory'
> Warning in utils::make.packages.html(.Library, docdir =
R.home("doc")) :
> cannot update HTML package index
>
> The package is correctly installed and usable.
Many systems (including devtools, and many others) are set more strict
such that installation warnings are turned into errors, to ensure
users or applications never ends up installing broken packages.
Raising this warning by default for every install.packages() is really
unfortunate default behaviour, especially because it is evidently
unclear to users why this happens.