From maechler at stat.math.ethz.ch  Mon Sep 20 11:41:05 2004
From: maechler at stat.math.ethz.ch (Martin Maechler)
Date: Mon Sep 20 11:41:07 2004
Subject: [Rd] R-2.0.0 Install problem for pkg bundle w inter-dependent
	namespaces
In-Reply-To: <D7A3CFD7825BD6119B880002A58F06C20C521C2E@groexmb02.pfizer.com>
References: <D7A3CFD7825BD6119B880002A58F06C20C521C2E@groexmb02.pfizer.com>
Message-ID: <16718.42417.822821.357884@gargle.gargle.HOWL>

>>>>> "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?  
If not, please consider sending patches for  
src/scripts/INSTALL.in

There are not too many bundles AFAIK, and conceptually
(inspite of the recommended VR one) the improved package
management tools that we (and the bioconductor project) have
been adding to R for a while noe
really aim for "R package objects" and clean version /
dependency handling of inidividual packages in many different concepts.

If bundle installation etc could rely entirely on the package
tools, bundles would "work automagically".  But probably, for
this a bundle would have to be treated as a "package repository"
which it isn't currently AFAIK.

Regards,
Martin Maechler


[Rd] R-2.0.0 Install problem for pkg bundle w inter-dependent namespaces
Martin Maechler