From maechler at stat.math.ethz.ch  Fri Nov 24 09:18:31 2017
From: maechler at stat.math.ethz.ch (Martin Maechler)
Date: Fri, 24 Nov 2017 09:18:31 +0100
Subject: [Rd] Bug in R CMD INSTALL when handling invalid
	LazyData	DESCRIPTION field
In-Reply-To: <f5019bfa-ce82-1359-0353-200127556e45@catalyst.net.nz>
References: <f5019bfa-ce82-1359-0353-200127556e45@catalyst.net.nz>
Message-ID: <23063.54743.153721.18694@stat.math.ethz.ch>

>>>>> Aaron Wells <aaronw at catalyst.net.nz>
>>>>>     on Fri, 24 Nov 2017 12:46:48 +1300 writes:

    > Hi, I think I've found a bug in R CMD INSTALL. When it tries to parse a
    > DESCRIPTION file with an invalid LazyData field, it errors out while
    > trying to print the correct error message:

    >> R CMD INSTALL .
    > * installing to library ?/home/example/R/x86_64-pc-linux-gnu-library/3.4?
    > * installing *source* package ?samplepackage? ...
    > ** data
    > Error in errmsg("invalid value of ", field, " field in DESCRIPTION") :
    > could not find function "errmsg"
    > * removing ?/home/example/R/x86_64-pc-linux-gnu-library/3.4/samplepackage?


    > It should instead be using that errmsg() function to print the more
    > helpful error message: "invalid value of LazyData field in DESCRIPTION".

    > I've traced it down to this line of code in tools:::.install_packages()
    > https://github.com/wch/r-source/blob/trunk/src/library/tools/R/install.R#L977
    > . The errmsg() function actually is defined earlier on in the function,
    > but there seems to be a scoping issue that makes it not available here.

    > I've uploaded a sample project to reproduce the bug here:
    > https://github.com/agwells/R-CMD-INSTALL-bug

    > I'm running R version 3.4.2 (2017-09-28), on Ubuntu 16.04.

    > Cheers,
    > Aaron

Thank you very much, Aaron.
This is indeed a bug, and it looks that I had caused it when
introducing the internal str_parse() utlity.

It's too bad this is so close before release of R 3.4.3 and the
fix to the bug is not trivial (not very hard either) such that
it most probably will not make it into 3.4.3.

Martin Maechler
ETH Zurich



[Rd] Bug in R CMD INSTALL when handling invalid LazyData DESCRIPTION field
Martin Maechler