Dirk Eddelbuettel
2004-Dec-15 05:17 UTC
[Rd] Lazy loading errors building its package in a chroot
Trying to build its_1.0.4 in a chroot environment to update the
corresponding Debian package, I get
* Installing *source* package 'its' ...
** R
** inst
** save image
Loading required package: Hmisc
Hmisc library by Frank E Harrell Jr
Type library(help='Hmisc'), ?Overview, or ?Hmisc.Overview')
to see overall documentation.
NOTE:Hmisc no longer redefines [.factor to drop unused levels when
subsetting. To get the old behavior of Hmisc type dropUnusedLevels().
Attaching package 'Hmisc':
The following object(s) are masked from package:stats :
ecdf
Creating a new generic function for "names" in "its"
Creating a new generic function for "names<-" in "its"
Creating a new generic function for "print" in "its"
Creating a new generic function for "start" in "its"
Creating a new generic function for "end" in "its"
Creating a new generic function for "summary" in "its"
Creating a new generic function for "diff" in "its"
Creating a new generic function for "union" in "its"
Creating a new generic function for "intersect" in "its"
** preparing package for lazy loading
Error in loadNamespace(name) : There is no package called 'its'
Execution halted
ERROR: lazy loading failed for package 'its'
make: *** [R_any_arch] Error 1
pbuilder: Failed autobuilding of package
The package installs fine when built on the command-line. This is somehow
related to the reduced environment provided in the chroot -- I recall having
seen (and fixed) the error when other packages where needed during build
time. Hmisc is installed. Nothing else outside of R-base should be needed.
I think I am overlooking something simple, but a couple of simple attempts
didn't get me anywhere. The chroot isn't a problem per se as several
dozen
CRAN packages get built that way into Debian packages.
Puzzled, Dirk
--
If you don't go with R now, you will someday.
-- David Kane on r-sig-finance, 30 Nov 2004
Dirk Eddelbuettel
2004-Dec-18 19:06 UTC
[Rd] More on Lazy loading errors building its package in a chroot
I now have the package built in a chroot -- but at the price of setting
'LazyLoad: no' in DESCRIPTION.
I do not quite understand why that is needed. Can someone else help? I can
provide the following pointers for its-1.0.4
* The file 'DESCRIPTION' has the Depends on methods, stats and Hmisc.
Under
Debian Hmisc and acepack get properly loaded as needed to build this.
* A file 'install.R' still exists from the older version. I reckon it
can
be removed, but it doesn't seem to matter either way.
* The file 'NAMESPACE' is there, it contains import(), export(),
exportClass() and exportMetods() directives.
* The file R/itspkg.r has
.onLoad <- function(lib, pkg) require(methods)
[...]
as.its.zoo <- function(x) {
stopifnot(require(its))
index <- attr(x, "index")
stopifnot(inherits(index, "POSIXct"))
attr(x, "index") <- NULL
its(unclass(x), index)
}
and I have the feeling that these may interfere with the LazyLoad
directive. But I just don't understand how something can work in
session with a controlling terminal, but fail in the chroot'ed batch
built.
Comments would be highly welcome. But please speak very slowly when it comes
to S4 and LazyLoading matters.
Thanks, Dirk
On Tue, Dec 14, 2004 at 10:17:16PM -0600, Dirk Eddelbuettel
wrote:> Trying to build its_1.0.4 in a chroot environment to update the
> corresponding Debian package, I get
>
>
> * Installing *source* package 'its' ...
> ** R
> ** inst
> ** save image
> Loading required package: Hmisc
> Hmisc library by Frank E Harrell Jr
>
> Type library(help='Hmisc'), ?Overview, or ?Hmisc.Overview')
> to see overall documentation.
>
> NOTE:Hmisc no longer redefines [.factor to drop unused levels when
> subsetting. To get the old behavior of Hmisc type dropUnusedLevels().
>
> Attaching package 'Hmisc':
>
>
> The following object(s) are masked from package:stats :
>
> ecdf
>
> Creating a new generic function for "names" in "its"
> Creating a new generic function for "names<-" in
"its"
> Creating a new generic function for "print" in "its"
> Creating a new generic function for "start" in "its"
> Creating a new generic function for "end" in "its"
> Creating a new generic function for "summary" in "its"
> Creating a new generic function for "diff" in "its"
> Creating a new generic function for "union" in "its"
> Creating a new generic function for "intersect" in
"its"
>
> ** preparing package for lazy loading
> Error in loadNamespace(name) : There is no package called 'its'
> Execution halted
> ERROR: lazy loading failed for package 'its'
> make: *** [R_any_arch] Error 1
> pbuilder: Failed autobuilding of package
>
>
> The package installs fine when built on the command-line. This is somehow
> related to the reduced environment provided in the chroot -- I recall
having
> seen (and fixed) the error when other packages where needed during build
> time. Hmisc is installed. Nothing else outside of R-base should be needed.
>
> I think I am overlooking something simple, but a couple of simple attempts
> didn't get me anywhere. The chroot isn't a problem per se as
several dozen
> CRAN packages get built that way into Debian packages.
>
> Puzzled, Dirk
>
> --
> If you don't go with R now, you will someday.
> -- David Kane on r-sig-finance, 30 Nov 2004
>
> ______________________________________________
> R-devel@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
--
If you don't go with R now, you will someday.
-- David Kane on r-sig-finance, 30 Nov 2004