From simon.urbanek at r-project.org  Tue Jun 28 22:44:56 2011
From: simon.urbanek at r-project.org (Simon Urbanek)
Date: Tue, 28 Jun 2011 16:44:56 -0400
Subject: [Rd] R CMD check --force-multiarch does not install all the
	archs for testing
In-Reply-To: <4E0A2F44.3010109@fhcrc.org>
References: <4E0912EE.7020105@fhcrc.org>
	<4E099478.4030609@statistik.tu-dortmund.de>
	<4E0A2507.1010904@fhcrc.org>
	<CA592CAB-B8DB-49C6-9AFD-9DB2C2087806@r-project.org>
	<4E0A2F44.3010109@fhcrc.org>
Message-ID: <EBE00C6D-476A-4DA5-9CB8-A0F320D2B042@r-project.org>


On Jun 28, 2011, at 3:45 PM, Herv? Pag?s wrote:

> 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'
> 

No, that's not what it does (and I assume you mean --force-biarch). It builds the package just once, you're simply overriding the default behavior of checking for configure.win, that's all. The two flags are orthogonal, --force-biarch makes no sense with --merge-multiarch, they are for all practical purposes mutually exclusive by definition of what they do.


>> 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.
> 

... with the assumption that the package supports it even though it has a configure script which may to may not work unlike --merge-multiarch which will always work. --force-biarch is just a way to flag packages that have configure.win that has no effect on the binary settings (flags etc.). It forces R to try multi-arch build in one flight, but it may or may not work depending on the package. It is a way to save time by not running --merge-multiarch (and thus building the package twice).

Cheers,
Simon


>> 
>> 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
Simon Urbanek