From hb at biostat.ucsf.edu  Sun Aug 26 01:15:51 2012
From: hb at biostat.ucsf.edu (Henrik Bengtsson)
Date: Sat, 25 Aug 2012 16:15:51 -0700
Subject: [Rd] include dll in R-package
In-Reply-To: <1061068273.1067395.1345819159812.JavaMail.root@psu.edu>
References: <CAC2h7ut1dfy-Tzf+j4zs8gOe-AobGYnvapwwqXhZoDu6BLcAoA@mail.gmail.com>
	<1061068273.1067395.1345819159812.JavaMail.root@psu.edu>
Message-ID: <CAFDcVCQz16VPvjMDVYyC74MRuXUbPRUA_3UONFOMfzC080pPUQ@mail.gmail.com>

On Fri, Aug 24, 2012 at 7:39 AM, LIYING HUANG <lxh37 at psu.edu> wrote:
>
> Thanks for the clarification. Just wonder if I don't host the
> package on CRAN, am I able to build a package without
> source codes to distribute it from my institutions homepage?
> Seems not for the newer version?

I think that is a valid point; R is not CRAN and CRAN is not R, but
for obvious reasons they sometimes tend to blend.

Either way, I wanna second what's already been said by others.  Try
your best to distribute as much as possible of your tools as open
source.  If there are pieces that are impossible to put under open
source, at least identify them and maybe put them in a separate
package, and make the rest open source.  On our end, doing science
with non open source/access tools is really a pain, and I know lots of
people avoiding such tools as far as possible, because you know that
one day or the other you'll pay the price of not being able to
check/validate what's really going on in your analysis.  So open
source is great...

...and to make the point, have a look at
https://svn.r-project.org/R/trunk/src/library/tools/R/check.R and
you'll see that you most likely will be able to disable those tests.
Alternatively, make sure to read 'Checking packages' in Writing R
Extensions.  It may be dense, but it is very informative and useful.
One section reads "Use R CMD check --help to obtain more information
about the usage of the R package checker. A subset of the checking
steps can be selected by adding command-line options. It also allows
customization by setting environment variables _R_CHECK_*_:, as
described in Tools: [...]."  So, check out that 'Tools' documentation,
and I think you'll find a solution.

My $.02 GFPL v1.3 comments

/Henrik

>
> Thanks!
> Liying
>
>
> ----- Original Message -----
> From: "Kasper Daniel Hansen" <kasperdanielhansen at gmail.com>
> To: "Dirk Eddelbuettel" <edd at debian.org>
> Cc: "LIYING HUANG" <lxh37 at psu.edu>, r-devel at r-project.org
> Sent: Friday, August 24, 2012 10:21:18 AM
> Subject: Re: [Rd] include dll in R-package
>
> On Fri, Aug 24, 2012 at 10:16 AM, Dirk Eddelbuettel < edd at debian.org > wrote:
>
>
>
>
>
> On 24 August 2012 at 09:06, LIYING HUANG wrote:
> | We have several projects in the center done by researchers over years
> | in Fortran, there are copy right issues etc to prevent us from
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> | giving away the source codes, but a lot of social scientist are
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
>
> | interested to use the program. We tried to use dlls to make plugins
> | (available in our website) in various statistics platforms
> | (SAS, STATA and R) to make it available to general public.
> |
> | We used to be able to build R package using dll on version R-2.7.0,
> | , but failed to build with newer R version with the same source.
> | Any help is greatly appreciated.
> |
> | When I try to build R package for newer version of R, I could build
> | to get "lcca_1.0.0.tar.gz", but when I "R CMD check lcca_1.0.0.tar.gz",
> | I got error message as:
> |
> | * using log directory 'D:/project/LCCA/lcca.Rcheck'
> | * using R version 2.15.1 (2012-06-22)
> | * using platform: i386-pc-mingw32 (32-bit)
> | * using session charset: ISO8859-1
> | * checking for file 'lcca/DESCRIPTION' ... OK
> | * checking extension type ... Package
> | * this is package 'lcca' version '1.0.0'
> | * checking package namespace information ... OK
> | * checking package dependencies ... OK
> | * checking if this is a source package ... OK
> | * checking if there is a namespace ... OK
> | * checking for executable files ... WARNING
> | Found the following executable file(s):
> | libs/lcca.dll
> | Source packages should not contain undeclared executable files.
> | See section 'Package structure' in the 'Writing R Extensions' manual.
> | * checking whether package 'lcca' can be installed ... ERROR
>
> This tells you that in order to have a proper package, you need to include
> the very source code you want to hide.
>
> This is a CRAN Policy decision enforced by current R versions (but not the
> rather old version you compared against), and there is now way around it.
> You could try to construct "defunct" packages lacking the DLLs and instruct
> the users to get them from somewhere else, but that is at the same rather
> error prone (as you will lack all the built-time checks you would have with
> source code, as well as a better assurrance that compatible tools are used)
> and distasteful as CRAN is about Open Source.
>
> So your best bet may be to go back to the copyright holders....
>
>
>
> Dirk's comments are extremely relevant if you were hoping to host the package on CRAN (which you basically won't be allowed to). You can still distribute it from your institutions homepage I think.
>
>
> Kasper
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] include dll in R-package
Henrik Bengtsson