[R-SIG-Mac] Building binary packages for distribution

Simon Urbanek simon.urbanek at r-project.org
Fri Apr 13 19:41:58 CEST 2012

On Apr 13, 2012, at 1:34 PM, Prof Brian Ripley wrote:

> Thanks, that is bad news.

There is a lot of bad new from Apple recently ;)

> I really don't want to ask our sysadmins to maintain a Leopard system for the very limited amount of package building we do, so we'll have to hope this suffices.

FWIW you can run Leopard in VirtualBox on Lion so if the building is limited, that may be something to think about.
Another alternative would be to use the RForge.net package building system (which essentially just requires to a URL to get the tar ball from).


> On 13/04/2012 18:05, Simon Urbanek wrote:
>> On Apr 13, 2012, at 11:36 AM, Prof Brian Ripley wrote:
>>> I have hitherto used a Leopard system to build Mac binary packages
>>> for distribution, but that system has died and we only have Lion
>>> systems left (and the replacement hardware only runs Lion).  I'm
>>> only concerned with building i386/x86_64 packages.
>>> We saw problems with packages built on Snow Leopard which would not
>>> run on Leopard, and the trick was to use -mmacosx-version-min=10.5
>>> for compiling and linking.
>> It is only partially sufficient. The min version makes sure that the
>> Mach-O output is 10.5-compatible, but it will still happily use
>> Lion-only libraries when linking. You have to use 10.5 SDK (typically
>> via -isysroot) in order to make sure the linked frameworks and
>> libraries are actually compatible and present on Leopard.
>> I have at some point contemplated building the R releases and
>> packages on SL with the 10.5 SDK, but it is simply too fragile. There
>> are issues in details of dependencies, such as packages that use
>> configuration scripts to determine flags (like gsl-config) -- you'd
>> have to maintain a full system and worry about paths (linker/include
>> paths may work with -isysroot re-direction but any other paths
>> won't).
>> That said, it is possible to build R itself that way. I'd even argue
>> that it's better to simply create pre-drivers for compilers that
>> automatically add the corresponding -isysroot et al. and then exec
>> the compiler rather than setting the flags fully.
>>> Does anyone know for certain if that suffices?  And does setting
>>> the environment variable MACOSX_DEPLOYMENT_TARGET to 10.5 do the
>>> same thing?  (My man pages suggest so, but I don't trust Apple's
>>> documentation to be current.)
>> AFAIK, yes, but it is equally insufficient. Apple has been warning
>> about the env vars for a while that they may get rid of them, but I
>> dont' think they did so far (there were more useful ones for managing
>> sysroot which I think they got rid of by now).
>> Best, Simon
> -- 
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-SIG-Mac mailing list