-
Notifications
You must be signed in to change notification settings - Fork 58
S3 cached binaries incompatible with all but most recent Macs #18
Comments
Another for reference: |
I'm seeing this as well, on a mid-2010 Mac Mini with an Intel Core 2 Duo. It's not my primary dev machine, but I'm still hoping someone finds a way to opt-out of the S3 binaries or that this puppet module gets updated to circumvent this issue. |
I'm curious as to the hardware requirements of the S3 binaries. Can anyone on the Boxen team comment on how recent your hardware must be for S3 Homebrew bottles to work? |
It depends on GCC vs clang, and what optimization levels these things are On Tuesday, April 30, 2013, Geoffrey Oxberry wrote:
|
I'm seeing the same thing on a Core 2 Duo from end of 2010. "Illegal instruction: 4" or similar for python, nginx, imagemagick so far. |
+1 We're seeing this on an older Mac Mini 2GHz Core 2 Duo from early 2009. |
In Homebrew, we build binaries for Core 2 in 64-bit mode, and Core in 32-bit mode. You can see the flags we use here: https://github.com/mxcl/homebrew/blob/master/Library/Homebrew/os/mac/hardware.rb#L2-L10 |
Sounds like this is something specific to the way boxen generates the binary bottles. Do we have any workaround to tell a boxen run to always compile from source no matter what? |
Are you building bottles with |
This will also occur on VMs in VirtualBox/VMWare (on mac hardware). To resolve, I think it would require both an option to not use the binary bottles and a workaround/resolution to this one: Homebrew/legacy-homebrew#21778 |
@b2jrock If Boxen used Homebrew's bottle-generating mechanism (e.g. using the |
I've found if I add --install-from-source to the package options to the python package, the issue resolves for me. However, this would need to be done per module. The resulting package definition looks like (python/manifests/init.pp): package { 'boxen/brews/python':
ensure => $version,
provider => homebrew,
install_options => ['--build-from-source'],
require => [ Class['xquartz'], File['/opt/boxen/homebrew/Library/ENV/4.3/cc'] ],
} |
@b2jrock i am having very good experience with that approach. however, i just made it a directive default in Package {
provider => homebrew,
require => Class['homebrew'],
install_options => ['--build-from-source'],
} now everything builds from source, which is much more reliable than the s3 bottles; albeit slower. |
The solution here is using |
If it's still is not building from source, even with Confirming this works on ancient 2007 MBP! |
This is now fixed, |
Whatever method is being used to generate the cached boxen version of homebrew binary bottles that are stored on S3 seems to be generating binaries that will die fatally on anything but the newest intel architecture macs.
See, for example,
#17
boxen/puppet-emacs#5
This affects Macs that are not very old at all, for example, 2011 model Macbook Airs (current revision) that use Core2Duo processors.
I'm not sure if there is a way to generate more compatible binaries? (If not, machines that cannot use the precompiled binaries should not download them from S3, and instead compile from source. As it is currently, they happily install a bunch of broken binaries, which borks all of boxen (and other things) since that includes a broken version of git.)
The text was updated successfully, but these errors were encountered: