I’ve packaged up Shoes 3.2b6 as installable dmg for OSX 10.9 Mavericks which you can download (see the download tab/link above). It will install in /Applications as Shoes-federales so it shouldn’t step on an existing Shoes installation.
How well does it work? Ahh, well, some samples work and some don’t. I can tell you that it does not exit properly. You have to Force Quit from the dock icon. Another gotcha – keystrokes are not delivered to Shoes so a lot of samples fail. simple-dialog/color will hang things. Those would be the first bugs to fix once I get the build process (and installer icons) worked out.
As you might suspect, I often take a hatchet to the Shoes rakefiles when I could have used a scalpel. First, I brute force (hack) it to work and then sometimes I might get around to cleaning up the wounds. That is the Hack way. Just fix things in the easiest way possible manner. I’m not going to apologize.
So I’m hacking my way until the OSX rake files work well enough. It’s not pretty and the nfs write speed is sucky. It was more sucky before I changed OSX’s nfs mount options.
The right hand meta key is mapped to the Apple-Fan key for virtual box. I’d prefer using the left hand side but I suspect that will get me deep into Ubuntu and virtualbox weeds. Someone might want to know that.
Shoes 3.2b6 OSX does run but I want to build a dmg I can share with testers. That’s between me and the rakefile and I’m losing the battle.
I figured out what the rake package task is doing (mostly). I modified the Rakefile
to put pkg and the dmg directories on the Mac’s HD (not nfs mount) which speeds up the packaging A Lot. I think I’ll do the same thing for dist/ but first I want to see if I can get the packaging to use my icons and version number scheme so I don’t step on existing Shoes installs. If my experience with Windows packager is any guide, that’s actually more difficult that I think. Stuff like .icns creation.
I’m going to let the following image speak for itself. Click to embiggen
Yes, that is Shoes 3.2/Ruby 2.0.0 running samples/simple-info.rb on OSX 10.9 Mavericks (hackintosh) in a virtual machine on Linux. The Shoes directory is NFS shared with Linux so there’s only one copy of the source code. Amazing, No?
Actually it is amazing.
There’s a butt load of work to do to get things correct. A big butt load of work and learning. Tonight I’ll just smile with the knowledge that it can be done. I just did it.
As I mention previously, I’ve got a 10.9.2 VM working (mostly) as a guest for Linux Virtualbox (4.3.10). Xcode 5 and commanline tools are installed. Ruby is 2.0.0-p451. OSX thinks it’s IP 10.0.2.15 but Virtualbox is doing some routing/rewriting and from the OSX VM I can connect with other machines on my local network (192.168.1.x). I enabled sshd on the Virtualbox host – 192.168.1.2 and I can ssh/sftp in which means the backup plan (rsync over ssh) could work if really needed.
Primarly plan? NFS export my Shoes source/build directory (rw) to the OSX VM. I just want to run rake on OSX and have the output on the Linux side. And run vi on either side. I had to clean up some old attempts with NFS back when I first got my raspberry pi. That needed doing.
NFS mounting (ro) works fine on a simple test from OSX. Writing is a problem. NFSv4, by itself doesn’t have a lot of mapping capabilities when it comes to users (uuid): exact and everything else. There are (were?) gruesome ways to map uuids. Call that plan C. I think I’ll change my MacOSX uuid from 501 (default) to what I have on my Linux boxes (1000). I’ve been burned many times doing this on Unix, OSX, & Linux but I don’t have a lot of OSX files of my own to deal with. Now would be the time. Google for how to do it. It’s not pretty or fast.
Know what? It works. It’s slow. I don’t know how much of that is NFS speed and how much is my funky Hackintosh (point finger there) but I could compile Shoes. Not successfully of course because it wants the 10.6 sdk framework and the rake files are serious out of date for OSX and I might have broken something in app.c #ifdef-ing. There is a lot to do to get the OSX VM happy. Much to do there. Mount the nfs drive at boot. Get the mouse/cursor working better. Keyboard repeat is awful and and I need a keymapping for the Apple-fan. Or use my old Apple keyboard.
But, proof of concept is proven and there are hints of cross compiling opportunities. It’s really quite amazing when I think about it.
I know I said I was giving up on Hackintosh in VirtualBox. I did, for a few days. I also don’t like things that don’t work for me when others report success. I also ran across some hints on the internets that involved cross compiling for OSX on Linux and fakeroots and that would be cool if it works (probably not but still?)
I found a 10.9.0 iso that virtualbox will boot from and install and has most of the kext hacks available and so on. It mostly works. It’s cranky at times with mouse tracking and like too much of the mac world, solutions seem to involve mysterious ‘try this’ and boot. We’ll see. I did get a nice 1800×940 window setup for it. That turned out to be the easy part. I’ll see soon if it can survive the update to 10.9.2 using a flaky cable modem. Ah, it did.
The next day, I installed the free Xcode from the App store (I had an old Apple ID that still works). I still need to tune up the machine with MultiBeast. It uses way more cpu than needed and the mouse/cursor action is the visible effect. Then nfs, rvm, homebrew and probably a bunch of other stuff. Just to build Shoes.