I use Scratchbox a lot to do embedded GNOME and Maemo development work. When it works its wonderful, compared to all the other crappy embedded development environments I’ve had to use. But scratchbox is rather fragile.
There’s a lot of theoretical things to discuss about Scratchbox and alternatives, usually mentioning OpenEmbedded. I don’t bother with that discussion for now- life is complicated enough. But life would be a lot easier if they just got some basic things right – at least that would reduce the set of possible causes of the other problems. This is like a case study in apparently poorly maintained software:
- Bad names and version numbers: (edited due to my understandably confused wrongness. In fact I should remove this point really.) There’s Scratchbox 0.9.8 and there’s Scratchbox “Apophis” version 1.0.1 … 1.0.8 (though the early ones were not considered stable, I think). There’s a Scratchbox 2 (not obviously unstable, but probably so), at a separate web site.
- Unstable API/feature-list: Between 1.0.7 and 1.0.8, the devkits changed name (“debian” was removed and “debian-etch”/”debian-sarge”, and “maemo3-debian” and “maemo3-tools” were added). This breaks any instructions and scripts that used the old devkit names.
Please be like GNOME: Don’t use even minor version numbers for unstable releases, and don’t change or add features or API without increasing the minor version number. Sometimes it means more work for you, but it makes life easier for users.
And when each new micro release doesn’t risk destroying something, you can finally get this thing into the regular Debian and Ubuntu repositories, instead of maintaining your own Debian packages and producing various eccentric forks.
They maybe had their reasons for both of these messes, but I doubt it was worth it and, on the evidence, I’m sceptical that they understand the problem.
4 thoughts on “Scratchbox Moving Target”
Scratchbox 2 is just that: 2.x. Scratchbox 1.x is really just 1.x. This is Scratchbox 2: http://people.freedesktop.org/~lle/sbox2-releases/. Note the lack of 1.0.1 through 1.0.8.
(God, it’s an unfortunate day when I’m forced to defend Scratchbox.)
Yeah, I realised that I was confusing Scratchbox 2 with Scratchbox “Apophis”. Updated. Still, the breakage is annoying.
I feel your pain. Scratchbox is a necessary evil for purposes of developing/debugging within a specific root file system environment. Fortunately, for actually building the root filesystem image you can pitch it and use OpenEmbedded.