[Rd] about integration of a library into package creation

Martin Maechler maechler at stat.math.ethz.ch
Mon Jun 12 20:43:09 CEST 2006


>>>>> "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)),
    >>>>>>



More information about the R-devel mailing list