From hpages at fhcrc.org  Tue Jun 28 21:45:08 2011
From: hpages at fhcrc.org (=?windows-1252?Q?Herv=E9_Pag=E8s?=)
Date: Tue, 28 Jun 2011 12:45:08 -0700
Subject: [Rd] R CMD check --force-multiarch does not install all the
 archs for testing
In-Reply-To: <CA592CAB-B8DB-49C6-9AFD-9DB2C2087806@r-project.org>
References: <4E0912EE.7020105@fhcrc.org>
	<4E099478.4030609@statistik.tu-dortmund.de>
	<4E0A2507.1010904@fhcrc.org>
	<CA592CAB-B8DB-49C6-9AFD-9DB2C2087806@r-project.org>
Message-ID: <4E0A2F44.3010109@fhcrc.org>

Hi Simon,

On 11-06-28 12:19 PM, Simon Urbanek wrote:
>
> On Jun 28, 2011, at 3:01 PM, Herv? Pag?s wrote:
>
>> Hi Uwe,
>>
>> On 11-06-28 01:44 AM, Uwe Ligges wrote:
>>>
>>>
>>> On 28.06.2011 01:31, Herv? Pag?s wrote:
>>>> Hi,
>>>>
>>>> Why isn't 'R CMD check --force-multiarch' installing the package
>>>> for all the architectures that are going to be checked?
>>>
>>> Herv?,
>>>
>>> no, since it cannot know that that you need
>>>
>>> --merge-multiarch
>>>
>>> as an additional install flag for this particular package.
>>
>> Why not just use this flag anyway? Does it hurt to use it on packages that don't strictly need it?
>>
>
> It does for two reasons: a) everything is built twice

That's exactly what I want when I do 'R CMD check --force-multiarch'

> and b) package authors don't expect the necessity to support --libs-only if the package doesn't require separate build runs.

When specifying --force-multiarch, the user really expects the package
to be installed for all sub-archs.

>
> The cross-platform way is to not use --merge-multiarch but use --libs-only instead as needed (easy to check after the first arch run which will tell you whether it's needed or not). I suspect that --merge-multiarch is just a convenience shortcut (and it's unclear to me why it's Windows-only...).

A great convenience indeed as it allows to do the multiarch install in
a single step. And it's unclear to me too why it's Windows-only but I
would have hoped you would know...

Thanks,
H.


>
> Cheers,
> Simon
>
>
>>> You will have to check it in repository maintainer's mode (as the CRAN
>>> maintainers do everywhere). Essentially this is for me (when also
>>> producing WIndows binaries):
>>>
>>>
>>> Step 1: Installation
>>>
>>> R CMD INSTALL --pkglock --compact-docs --build --merge-multiarch
>>> --library="D:/path/to/library" fabia_1.5.0.tar.gz>  fabia-install.out 2>&1
>>>
>>> (where the merge-multiarch part applies only to this package, of course)
>>>
>>>
>>>
>>> Step 2: Check (without installation, since that happened before already,
>>> using the install log from step 1)
>>>
>>> R CMD check --library="D:/path/to/library" --force-multiarch
>>> --install="check:fabia-install.out" fabia
>>
>> Whaoooo! Would be nice if there was a plan to make 'R CMD check' also
>> usable by normal people (including the package developer), not just
>> by a few privileged people that know about those undocumented tricks.
>>
>> Thanks,
>> H.
>>
>>>
>>> Best wishes,
>>> Uwe
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>> For some packages, it only installs for the default arch ('i386').
>>>> Then testing the package for 'x64' fails.
>>>>
>>>> For example,
>>>>
>>>> Output of R CMD check --force-multiarch fabia_1.5.0.tar.gz:
>>>> -----------------------------------------------------------
>>>> * using log directory 'D:/biocbld/bbs-2.9-bioc/meat/fabia.Rcheck'
>>>> * using R version 2.14.0 Under development (unstable) (2011-05-30 r56020)
>>>> * using platform: i386-pc-mingw32 (32-bit)
>>>> * using session charset: ISO8859-1
>>>> * using option '--no-vignettes'
>>>> * checking for file 'fabia/DESCRIPTION' ... OK
>>>> * this is package 'fabia' version '1.5.0'
>>>> * checking package name space information ... OK
>>>> * checking package dependencies ... OK
>>>> * checking if this is a source package ... OK
>>>> * checking whether package 'fabia' can be installed ... OK
>>>> * checking installed package size ... OK
>>>> * checking package directory ... OK
>>>> * checking for portable file names ... OK
>>>> * checking DESCRIPTION meta-information ... OK
>>>> * checking top-level files ... OK
>>>> * checking index information ... OK
>>>> * checking package subdirectories ... OK
>>>> * checking R files for non-ASCII characters ... OK
>>>> * checking R files for syntax errors ... OK
>>>> * loading checks for arch 'i386'
>>>> ** checking whether the package can be loaded ... OK
>>>> ** checking whether the package can be loaded with stated dependencies
>>>> ... OK
>>>> ** checking whether the package can be unloaded cleanly ... OK
>>>> ** checking whether the name space can be loaded with stated
>>>> dependencies ... OK
>>>> ** checking whether the name space can be unloaded cleanly ... OK
>>>> * loading checks for arch 'x64'
>>>> ** checking whether the package can be loaded ...Warning: running
>>>> command '"D:/biocbld/bbs-2.9-bioc/R/bin/x64/Rterm.exe"
>>>> R_ENVIRON_USER='no_such_file' --no-site-file --no-init-file --no-save
>>>> --no-restore --slave -f
>>>> D:\biocbld\bbs-2.9-bioc\tmpdir\RtmpO65p5H\Rin57456988' had status 1
>>>> ERROR
>>>> Error: package 'fabia' is not installed for 'arch=x64'
>>>> Execution halted
>>>>
>>>> It looks like this package has a loading problem: see the messages for
>>>> details.
>>>>
>>>> Content of fabia.Rcheck\00install.out:
>>>> --------------------------------------
>>>>
>>>> * installing *source* package 'fabia' ...
>>>> Building libRcpp.a in RcppSrc...
>>>> rm -f Rcpp.o libRcpp.a
>>>> g++ -c Rcpp.cpp -o Rcpp.o -I"D:/biocbld/BBS-2?1.9-B/R/include"
>>>> -I"D:/biocbld/BBS-2?1.9-B/R/src/include" -Wall -O2
>>>> ar r libRcpp.a Rcpp.o
>>>> C:\Rtools213\MinGW\bin\ar.exe: creating libRcpp.a
>>>> ranlib libRcpp.a
>>>> rm -f Rcpp.o
>>>> rm -f Rcpp.o
>>>> ** libs
>>>> running src/Makefile.win ...
>>>> rm -f fabia.o fabia.dll *.a *.o *.so *.dll
>>>> g++ -c fabiac.cpp -o fabia.o -I../RcppSrc
>>>> -I"D:/biocbld/BBS-2?1.9-B/R/include" -Wall -O2
>>>> g++ -shared -s -static-libgcc fabia.o -L../RcppSrc -lRcpp
>>>> -L"D:/biocbld/BBS-2?1.9-B/R/bin/i386" -lR -o fabia.dll
>>>> rm -f fabia.o *.a *.o *.so
>>>> installing to D:/biocbld/bbs-2.9-bioc/meat/fabia.Rcheck/fabia/libs/i386
>>>> ** R
>>>> ** demo
>>>> ** inst
>>>> ** preparing package for lazy loading
>>>> Creating a generic function for "plot" from package "graphics" in
>>>> package "fabia"
>>>> ** help
>>>> *** installing help indices
>>>> ** building package indices ...
>>>> *** tangling vignette sources ...
>>>> 'fabia.Rnw'
>>>> ** testing if installed package can be loaded
>>>>
>>>> * DONE (fabia)
>>>>
>>>> The source tarball for this package is available here:
>>>> http://bioconductor.org/packages/2.9/bioc/html/fabia.html
>>>>
>>>> What command should be used to perform a multiarch check of this
>>>> package?
>>>>
>>>> This is on a 64-bit Windows Server 2008 R2 Enterprise machine using a
>>>> recent combined Windows 32/64 bit binary of R-devel from CRAN.
>>>>
>>>> Thanks!
>>>> H.
>>>>
>>
>>
>> --
>> Herv? Pag?s
>>
>> Program in Computational Biology
>> Division of Public Health Sciences
>> Fred Hutchinson Cancer Research Center
>> 1100 Fairview Ave. N, M1-B514
>> P.O. Box 19024
>> Seattle, WA 98109-1024
>>
>> E-mail: hpages at fhcrc.org
>> Phone:  (206) 667-5791
>> Fax:    (206) 667-1319
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>>
>


-- 
Herv? Pag?s

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



[Rd] R CMD check --force-multiarch does not install all the archs for testing
=?windows-1252?Q?Herv=E9_Pag=E8s?=