From maechler at stat.math.ethz.ch  Mon Jun 12 20:43:09 2006
From: maechler at stat.math.ethz.ch (Martin Maechler)
Date: Mon, 12 Jun 2006 20:43:09 +0200
Subject: [Rd] about integration of a  library into package creation
In-Reply-To: <448DA8D4.5050704@statistik.uni-dortmund.de>
References: <448D81F9.8040406@jouy.inra.fr> <448D864F.2070704@stats.uwo.ca>
	<Pine.LNX.4.64.0606121652510.31903@gannet.stats.ox.ac.uk>
	<448D955F.9050201@jouy.inra.fr> <448D9790.5030609@stats.uwo.ca>
	<448DA538.8050100@jouy.inra.fr>
	<448DA8D4.5050704@statistik.uni-dortmund.de>
Message-ID: <17549.46525.795075.576823@stat.math.ethz.ch>

>>>>> "UweL" == Uwe Ligges <ligges at statistik.uni-dortmund.de>
>>>>>     on Mon, 12 Jun 2006 19:48:04 +0200 writes:

    UweL> Nicolas Turenne wrote:
    >> your answer is correct after checking some doc
    >> but examples are rare
    >> 
    >> when i write in the description file
    >> Depends: R (>= 2.3), quadprog, ade4, spdep 
    >> 
    >> and in the namespcae file
    >> 
    >> useDynLib(quadprog)
    >> useDynLib(spdep)
    >> useDynLib(ade4)
    >> importFrom("dist.dudi", "ade4")


    UweL> Please do it the right way (package name first!):

    UweL> importFrom("ade4", "dist.dudi")

    UweL> Uwe Ligges



and also add a Line 
------------------------------------
Imports: ade4, quadprog, spdep
------------------------------------
to your DESCRIPTION file

[[yes, it is slightly unfortunate that things have to be *both*
  in DESCRIPTION and in NAMESPACE, 
  but that's the way it currently is ]]


   >> importFrom("solve.QP", "quadprog")
    >> importFrom("mstree", "ade4")
    >> importFrom("neig2mat", "ade4")
    >> importFrom("dist.dudi", "ade4")
    >> importFrom("dudi.pca", "ade4")
    >> importFrom("dudi.coa", "ade4")
    >> importFrom("knearneigh", "spdep")
    >> 
    >> i obtain :
    >> Namespace dependencies not required:
    >> dist.dudi dudi.coa dudi.pca knearneigh mstree neig2mat solve.QP
    >> 
    >> if i delete the importFrom lines
    >> i get an error about "loading / namespace not succesful" for svcr
    >> 
    >> i think the solution is not far but it is disturbing
    >> 
    >> thank for help
    >> 
    >> ---
    >> Nicolas
    >> 
    >> 
    >> Duncan Murdoch a ?crit :
    >> 
    >>> On 6/12/2006 12:25 PM, Nicolas Turenne wrote:
    >>> 
    >>>> in that sense, it is useless to load the library from R source code 
    >>>> making my package
    >>>> which is supposed to include it and load it
    >>>> 
    >>>> so if i understand the R philosophy it is not possible to load dll 
    >>>> from outside ;
    >>>> the user has to load my package  and manually has to load the 
    >>>> necessary libraries
    >>>> each time he has to use my library,  right ?
    >>> 
    >>> Not at all.  When set up correctly, the user should just need to say
    >>> library(svcR) and all necessary packages and DLLs will be loaded.
    >>> 
    >>> The way to specify other packages is through the "Depends" line in the 
    >>> DESCRIPTION file, and/or the import/importFrom lines in your NAMESPACE 
    >>> file.
    >>> 
    >>> Duncan Murdoch
    >>> 
    >>>> -- 
    >>>> Nicolas
    >>>> 
    >>>> Prof Brian Ripley a ?crit :
    >>>> 
    >>>>> And also to load  the package, maybe with
    >>>>> 
    >>>>> rterm R_DEFAULT_PACKAGES=NULL
    >>>>> 
>>>>> library(svcR)
    >>>>> 
    >>>>> 
    >>>>> as these messages often indicate missing package dependencies.
    >>>>> 
    >>>>>>> * checking package subdirectories ... WARNING
    >>>>>>> Subdirectory 'src' contains no source files.
    >>>>>>> * checking R files for syntax errors ... OK
    >>>>>>> * checking R files for library.dynam ... OK
    >>>>>>> * checking S3 generic/method consistency ... WARNING
    >>>>>>> Erreur : le chargement du package / espace de noms a echoue' pour 
    >>>>>>> 'svcR'
    >>>>>>> Sequence d'appel :
    >>>>>>> 2: stop(gettextf("package/namespace load failed for '%s'",
    >>>>>>> libraryPkgName(packag
    >>>>>>> e)),
    >>>>>>> call. = FALSE, domain = NA)
    >>>>>>> 1: library(package, lib.loc = lib.loc, character.only = TRUE, 
    >>>>>>> verbose =
    >>>>>>> FALSE)
    >>>>>>> Execution arrete'e
    >>>>>>> See section 'Generic functions and methods' of the 'Writing R 
    >>>>>>> Extensions'
    >>>>>>> manual.
    >>>>>>> * checking replacement functions ... WARNING
    >>>>>>> Erreur : le chargement du package / espace de noms a echoue' pour 
    >>>>>>> 'svcR'
    >>>>>>> Sequence d'appel :
    >>>>>>> 2: stop(gettextf("package/namespace load failed for '%s'",
    >>>>>>> libraryPkgName(packag
    >>>>>>> e)),
    >>>>>>



[Rd] about integration of a library into package creation
Martin Maechler