From hb at biostat.ucsf.edu  Tue Oct 28 19:58:44 2014
From: hb at biostat.ucsf.edu (Henrik Bengtsson)
Date: Tue, 28 Oct 2014 11:58:44 -0700
Subject: [Rd] OSX Yosemite (10.10): Are package binaries the same as for
 OSX Mavericks (10.9)?
In-Reply-To: <417165047.270497.1414438430656.JavaMail.root@fredhutch.org>
References: <CAFDcVCT_=9EfVW=ZZy_Q7Nw7YZxJgmpveK1BUci7iDRtVdKsGQ@mail.gmail.com>
	<417165047.270497.1414438430656.JavaMail.root@fredhutch.org>
Message-ID: <CAFDcVCRJXgjP=gmnreqJFEDhJrPVaUgqVMUkwNEaxX7EUOX1nA@mail.gmail.com>

On Mon, Oct 27, 2014 at 12:33 PM, Dan Tenenbaum <dtenenba at fredhutch.org> wrote:
>
>
> ----- Original Message -----
>> From: "Henrik Bengtsson" <hb at biostat.ucsf.edu>
>> To: "Dan Tenenbaum" <dtenenba at fredhutch.org>
>> Cc: "R-devel" <r-devel at r-project.org>
>> Sent: Monday, October 27, 2014 12:21:49 PM
>> Subject: Re: [Rd] OSX Yosemite (10.10): Are package binaries the same as for OSX Mavericks (10.9)?
>>
>> On Mon, Oct 27, 2014 at 11:23 AM, Dan Tenenbaum
>> <dtenenba at fredhutch.org> wrote:
>> >
>> >
>> > ----- Original Message -----
>> >> From: "Dan Tenenbaum" <dtenenba at fredhutch.org>
>> >> To: "Henrik Bengtsson" <hb at biostat.ucsf.edu>
>> >> Cc: "R-devel" <r-devel at r-project.org>
>> >> Sent: Monday, October 27, 2014 11:21:59 AM
>> >> Subject: Re: [Rd] OSX Yosemite (10.10): Are package binaries the
>> >> same as for OSX Mavericks (10.9)?
>> >>
>> >>
>> >>
>> >> ----- Original Message -----
>> >> > From: "Henrik Bengtsson" <hb at biostat.ucsf.edu>
>> >> > To: "R-devel" <r-devel at r-project.org>
>> >> > Sent: Monday, October 27, 2014 11:16:10 AM
>> >> > Subject: [Rd] OSX Yosemite (10.10): Are package binaries the
>> >> > same
>> >> > as for OSX Mavericks (10.9)?
>> >> >
>> >> > I'm trying to help someone to troubleshoot possible OSX Yosemite
>> >> > issues, but I've only got access to OSX (< 10.9) so I cannot
>> >> > check
>> >> > myself.
>> >> >
>> >> > When building/installing binary R packages, there are different
>> >> > binaries depending on OSX version.  For instance, CRAN provides
>> >> > different binaries for 'OS X Snow Leopard' and 'OS X Mavericks',
>> >> > e.g.
>> >> > http://cran.r-project.org/web/packages/matrixStats/index.html.
>> >> >
>> >> > What about the new OSX Yosemite?  From
>> >> > http://cran.r-project.org/doc/manuals/r-devel/R-admin.html#Yosemite
>> >> > it
>> >> > looks like its binaries are the same/compatible with those of
>> >> > 'OS X
>> >> > Mavericks' - can someone please confirm this?  Another way to
>> >> > put
>> >> > it,
>> >> > if a repository provides OSX Mavericks binaries will an OSX
>> >> > Yosemite
>> >> > user install these or we s/he fall back to installing from
>> >> > source?
>> >> >
>> >>
>> >> Yes, a Yosemite user will by default be installing packages built
>> >> on
>> >> Mavericks using the Mavericks build of R, and they should work.
>> >>
>> >
>> > Provided of course that that Yosemite user is using the Mavericks
>> > build of R. They could also be using the Snow Leopard build of R
>> > which should also work, and would be installing by default
>> > packages build on Snow Leopard using the Snow Leopard build of R.
>>
>> Thanks for this Dan.
>>
>> As far as I understand, for an OSX user to install binary packages
>> option 'pkgType' has to be set to either "mac.binary" or
>> "mac.binary.mavericks".  A few questions for clarification:
>>
>> Q. Is it the default that 'pkgType' be set to "mac.binary" on OSX (<
>> 10.9) and to "mac.binary.mavericks" on OSX (>= 10.9)?
>>
>
>> Q. Are you saying that if an OSX (>= 10.9) user uses
>> options(pkgType="mac.binary"), then install.packages() will install
>> the OSX 10.6 (Snow Leopard) binaries *and* that these binaries are
>> backward compatible and should work equally well?
>>
>> Q. In other words, if a user have problems with a particular OSX 10.9
>> (Mavericks) binary, would a first step of troubleshooting be to ask
>> that user to try the OSX 10.6 (Snow Leopard) build?
>>
>> Q. If a user has options(pkgType="mac.binary.mavericks"), but the
>> repository does not provide such binaries, will install.packages()
>> fall back to "mac.binary", or will it go directly to "source"?
>>
>
>
> First of all, this should be on R-SIG-Mac.

I considered that, but I'm also asking this as a package developer and
wonder what happens if someone installs my packages incorrectly and I
need to troubleshoot what's reported as a bugs but may not be, so I
though it would be more appropriate here.

>
> It all depends on what build of R you are using. You can be on Snow Leopard or later (including Mavericks and Yosemite)  and use the Snow Leopard build. The default package type will be mac.binary.
>
> You can be on Mavericks or later and using the Mavericks build of R and your package type will by default be mac.binary.mavericks.

Just for the record: I've verified that it is not possible to install
the Mavericks build of R on a pre-Mavericks OSX version by mistake; on
an OSX 10.6.8 machine I get:

$ wget http://r.research.att.com/mavericks/R-3.1-branch/R-3.1-branch-mavericks.pkg
$ sudo installer -pkg R-3.1-branch-mavericks.pkg -target "/"
...
installer: This build of R requires Mac OS X 10.9 or higher.
$

>
> The two types of binary packages are NOT binary compatible! You should not mix and match them. (Technically, if a given package does not have native code in it, it should work, but you don't really want to go there.)

I understand that packages without native code should work, but is
there a reason for why R and install.packages() allows such mix and
matching in the first place?  I've tested
install.packages("matrixStats", type="mac.binary.mavericks") on an OSX
10.6.8 machine and it install the package without complaints.
Wouldn't it be better then if it gave an error:

> install.packages("matrixStats", type="mac.binary.mavericks")
Installing package into '/Users/hb/Library/R/3.1/library'
(as 'lib' is unspecified)
Error in install.packages("matrixStats", type = "mac.binary.mavericks") :
  cannot install Mavericks binary packages on this platform

cf. install.packages("matrixStats", type = "win.binary")?

>
> If you're using the Mavericks build of R and the repository does not provide mac.binary.mavericks packages, don't (see above) install mac.binary packages, install from source.

Thanks for your answers they helped me a lot.

/Henrik

>
> Dan
>
>
>
>> /Henrik
>>
>> PS. <rant>From a non-active OSX user, using names instead of numbers
>> to refer to versions is cute but insane. You need a very good memory
>> to keep track of the ordering of Snow Leopard, Leopard, Mavericks
>> etc.
>> and it's not getting easier.</rant>  It would be great if R/BioC and
>> everyone else would always present the version number when talking
>> about OSX version and only use the name for redundancy.
>>
>> >
>> > Dan
>> >
>> >
>> >> Dan
>> >>
>> >>
>> >> > Thanks
>> >> >
>> >> > Henrik
>> >> >
>> >> > ______________________________________________
>> >> > R-devel at r-project.org mailing list
>> >> > https://stat.ethz.ch/mailman/listinfo/r-devel
>> >> >
>> >>
>> >> ______________________________________________
>> >> R-devel at r-project.org mailing list
>> >> https://stat.ethz.ch/mailman/listinfo/r-devel
>> >>
>>



[Rd] OSX Yosemite (10.10): Are package binaries the same as for OSX Mavericks (10.9)?
Henrik Bengtsson