LEGO WeDo and Munki

As part of Mr Gove’s wonderful new Computing Curriculum in Primary schools, we’ve invested in some LEGO WeDo kit to teach some simple robotics stuff to KS2. It’s basically a USB hub which connects to a computer, into which you can plug a motor, a distance sensor or a tilt sensor. You can then program these sensors using LEGO’s own WeDo software (or MIT’s Scratch!) to build cool stuff like a spinning top, an aeroplane or an automatic goalie.

So far so good.

Then I came to trying to install the software on all the Macs in the school using Munki. I love Munki as it means I can remotely install and update stuff on all the Macs in the school really quickly. But it does rely on software coming in a reasonably decently packaged form. Which LEGO WeDo does not. Rather than using a sensible .pkg file, it instead has an Installer App (I know!) which then asks you to choose a language, which then opens up a meta package (.mpkg) which runs 6 different installers, each with various pre and post-flight scripts that liberally sprinkle files across various parts of your system.

Lovely.

Having used Pacifist to look inside the meta-package to see what was being installed, I tried using Munki to install each of these packages remotely. Except this didn’t work – the App icon for WeDo stopped working and you couldn’t view all the build instructions (leaving the dreaded greyed-out LEGO head).

So I tried a different tack. I downloaded Packages, a brilliant package-builder for Mac, and decided to build my own package for the software. The LEGO installer handily gave a list of all the files to delete to uninstall it, so I just added those to my package. And this worked. Kinda, only the LEGO head was stilled greyed out.

[Incidently, making changes to a package and changing the version number of the package, makes it keep testing an installation on Munki. Because Munki checks package receipts, it won’t reinstall a package it’s already installed. But it will install a package with a higher version number.]

Having spent far to much time on this problem already, I decided to give LEGO support a call. They were quite helpful, and suggested I try log in with an administrator account and see if that worked. Lo and behold, it did. They then suggested I tweak permissions on different files and folders to see if that helped. I basically gave write permissions to anyone on all files and that seemed to fix it. Not ideal really.