Debian, Ubuntu patching up rocky romance
Deb supremo speaks as devs link arms in ARM
By Damon Hart-Davis • In Operating Systems • At 09:01 GMT 14th February 2012
The recent FOSDEM was great this year, and Belgium still had beer left before, during and after. Still lots of people, though with an extra building open – it was a little less crowded. There were over 400 sessions on themes from Mozilla, Java, cross-distro and embedded to Ada and law.
There was lots of Debian at FOSDEM, and I followed up with "Zack" – AKA Stefano Zacchiroli, Debian Project Leader – afterwards.
Many things are afoot in the Debian world: ideas to reduce distro complexity and developer feedback cycle time; the embrace of the rise of ARM; and more TLC between Debian and its derivatives.
ARM Linux developer Wookey gave a presentation on the multiarch (warning: PDF) work to allow installation of libraries for multiple architectures simultaneously on a single system. This reminded me strongly of the cross-platform deliveries I used to do at a certain ex-bank, to Windows and several *nx variants, though my charges also included executables and header files and some data, plus debug and optimised versions where appropriate.
Multiarch moves on from having a single fixed location such as /usr/lib/ for a particular library, with renaming or other bodging when two or more instances need to cohabit. Instead, the architecture name is injected into the path using a GNU-triplet-style extra directory level eg /usr/lib/i386-linux-gnu/ or /usr/lib/arm-linux-gnueabi/. Packaging and build and making tools that currently 'know' where things are (read: "hardwired") needs some attention, but otherwise the project seems to be working and is visible in Debian and Ubuntu with many packages upgraded.
Meanwhile, the technical lead of Red Hat's open-source Java team – Andrew Haley – announced that the ARM Port Without a Name (APWaN) passed the Java Community Process' Technology Compatibility Kit, so now there are 'officially good' FLOSS ARM Java alternatives.
Also at the event, Codethink's vice president of of business development and marketing Gabriel Vizzard was busting to tell me about work by Luc Verhaegen reverse-engineering the ARM Mali graphics architecture to allow fully-open-source drivers, see limadriver.org. With the distros' (especially Debian's) resistance to being "captured" by narrow external interests, this should be frightening the socks off Intel, since an ordinary dev now really can do everything as freely and easily on ARM as in mainstream development.
Coder Lars Wirzenius used FOSDEM to talk about re-thinking system and distro development. While claiming to be controversial, he seemed to me to be making the entirely pragmatic point that as distros get bigger with tens of thousands of packages and cover multiple architectures, no two developers (or end users) will likely even have exactly the same combination of packages and versions on their machines, making testing and support unreasonably hard.
We agreed (from bitter experience) it is worth consolidating some of them into super-packages, at least for common use patterns, to reduce version-number hell – then automate the build process and add as many automated tests as possible to give rapid feedback to all developers that some innocent change broke something they may not even have been aware of.
Lars suggested that automated continuous integration and build across all packages and and architectures (and to my mind incremental releases) could generate dev feedback for such a 'bad' package change in under a day while it's still fresh in the mind.
I had visions of a dev's own CI system pushing their very latest tested build into (say) Debian's, getting through Debian's complete stack of tests and builds, and popping out in someone's apt-get of bleeding-edge/unstable on the other side of the world within hours without human intervention. How good might that be? Gabriel pointed out: "Monolithic Linux distributions... are enormously expensive to maintain."
Touchy feely time
I used FOSDEM to get a feel about the current state of Debian, and about relations with Ubuntu, recently rocky. According to Lars: "As far as I can see, Debian is doing well and is getting ready to freeze for release later this year, and I don't see anything on the radar to prevent that from happening." And that as to the Ubuntu relationship: "I hear it is getting better all the time." He pointed me to Zack for a more official point of view.
By email, Zack explained where he'd been putting his recent efforts: focusing on package quality "we release when it's ready", freedom, independence, no dictator/'owner'/capture. For the derivative distros, such as Ubuntu, and the 'transitive derivatives' - those two or more steps derived from Debian, recognising that they present Debian's efforts to a much wider audience and can focus on customisation (Ubuntu stands out on both counts).
He talked about making patches flow more easily back up from derivatives, and also being better about spreading the love, giving credit where it's due and remembering that "Free Software" is more important than any one of its individual parts.
I put it to Zack that he's doing a very touchy-feely social interaction job in a very techy world where most of us are not naturally life's extroverts with a high emotional IQ.
Zack told me: "That feeling of yours is correct. And it's also normal for the role of the DPL [Debian Project Lead]: I'm in charge of Debian 'politics', if you want, most of which is about interaction with representative[s] of other projects and communities which form the Free Software ecosystem in which Debian lives. I've been trying to show people why Debian role is important there, bringing facts with me.
"Regarding the techy part, I promised to the Debian community to put on hold my tech activities while in charge as DPL, and I've respected that (which has been very good for my mental health!)"
I asked what specific steps he'd taken to improve the working relationship with Ubuntu: was it management-speak and bonding sessions, or more write access into one another's repositories?
So far, he has collected Debian feedback on what was not working; presented it to Ubuntu to dispel some myths; presented a vision of why all communities should "do the right thing"; presented a vision of why Debian is important in part because it is at the root of an ecosystem of distributions; and participated in discussions with the Debian community on interaction with derivatives. This last point has seen Zack dispelling more myths and highlighting the good stuff received from derivatives. He says: "We too often tend to focus on the bad stuff only, ignoring the rest."
His new patch model improves the flow and reduces viscosity, and Lars' rethinking suggests some of the same lower friction and latency. Wouldn't a more incremental and automated approach that includes automatic testing on package/patch submission/update mean that some of those contributions would be able to jump the queue and be injected far closer to, well, Linus' repository in effect?
Zack disagreed. "We really want humans to triage patches and decide if they should be forwarded upstream or not. Not doing so would result in poor quality submission that would upset upstream; it would happen at the Debian-Ubuntu frontier pretty much as it would happen at the Other upstream-Debian frontier.
"What we want to encourage, at all steps, is a culture of doing the right thing for Free Software and work with your upstream so that they adopt your changes – if/when they are worthwhile," he said. ®