From ripley at stats.ox.ac.uk  Mon Sep 20 18:30:46 2004
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Mon Sep 20 18:30:49 2004
Subject: [Rd] R-2.0.0 Install problem for pkg bundle w inter-dependent
	namespaces
In-Reply-To: <16718.42417.822821.357884@gargle.gargle.HOWL>
Message-ID: <Pine.LNX.4.44.0409201728470.11743-100000@gannet.stats>

On Mon, 20 Sep 2004, Martin Maechler wrote:

> >>>>> "Greg" == Warnes, Gregory R <gregory_r_warnes@groton.pfizer.com>
> >>>>>     on Fri, 17 Sep 2004 14:18:29 -0400 writes:
> 
>     Greg> I have a revised version of the gregmisc package,
>     Greg> which I've converted into a package bundle each of
>     Greg> which has a namespace: gplots, gmodels, gdata,
>     Greg> gtoools.  Of course, there are interdependencies among
>     Greg> these namespaces:
> 
>     Greg> gsun374: /tmp [11]> cd gregmisc/
>     Greg> gsun374: gregmisc [12]> grep import */NAMESPACE
>     Greg>   gdata/NAMESPACE:importFrom(gtools, odd, invalid, mixedsort)
>     Greg> gmodels/NAMESPACE:importFrom(MASS, ginv)
>     Greg>  gplots/NAMESPACE:importFrom(gtools, invalid)
>     Greg>  gplots/NAMESPACE:importFrom(gtools, odd)
>     Greg>  gplots/NAMESPACE:importFrom(gdata, nobs)
> 
> since nobody else has answered yet (and a considerable portion
> of R-core is traveling this week) :
> 
> If I understand correctly, your basic package 'gtools' and the
> dependency you need is
> 
>  gplots --> gdata --> gtools
>         \----->----/
> 
> Have you made sure to use the proper  'Depends: ' entries in
> the DESCRIPTION(.in) files of your bundle packages ?
> 
> This works fine if the packages are *not* in a bundle, right?
> 
>     Greg> Under R-1.9.1, this package bundle passes R CMD check
>     Greg> and installs happily.  However, under yesterday's
>     Greg> R-2.0.0-alpha, the package fails to install (& hence
>     Greg> pass CMD CHECK) with the error
> 
>     Greg> ** preparing package for lazy loading
>     Greg> Error in loadNamespace(i[[1]], c(lib.loc, .libPaths()), keep.source)
>     Greg> : 
>     Greg> There is no package called 'gdata'
>     Greg> Execution halted
>     Greg> ERROR: lazy loading failed for package 'gplots'
> 
>     Greg> because the gdata package is the last in the bundle to
>     Greg> be installed, so it is not yet present.
> 
>     Greg> So, what is the proper way to handle this?  Is there
>     Greg> some way to manually specify the package install order?
> 
> Well, isn't the order in the 'Contains:' field of the bundle
> DESCRIPTION file used?  

I believe so (but am in Slovenia).   We have ways to resolve dependencies 
for non-bundles (new in 2.0.0), but for bundles we assume the order given 
by the author(s) is the correct one.

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


[Rd] R-2.0.0 Install problem for pkg bundle w inter-dependent namespaces
Prof Brian Ripley