Building customised Linux distributions

"We develop both Debian-and Ubuntu-based remixes," says James, "using mostly official packages, but including some non-official packages (for example configuration scripts or graphic themes) and some backported packages for important applications, which let our users stick to a stable system like Etch or Hardy, while using bleeding-edge versions of other software at the same time."

Accounting for taste

"It's a very effective approach if you want to develop a pre-configured, controlled, replicable and maintainable system to be installed on hundreds or thousands of machines," and it is equally useful for those companies with large internal GNU/Linux deployments.

An enterprise that has 10,000 machines across many departments "could use PDK to create not only server and workstation installers, but different flavours of these custom distros for different departments. The engineer's desktop machines could have an APT server for updates that was different to the one in use for the accountants. This would allow IT managers to update machines in a fine-grained way, for instance if the engineers needed a major Python update to support one particular application, but no-one else did."

Working from their own base at 64 Studio, the company maintains stable and testing branches of its custom distributions "so we can be sure that production machines aren't going to break after an upgrade. These branches are independent of the release cycles of the parent distros."

Ekanayaka believes that there is a ready market for the product "among companies that want tailor-made systems to fit their specific needs, and for system administrators seeking a highly structured way to administrate their systems."

"As well as our OEM work, we also offer consultancy on PDK deployments," James elaborates. "We have already used PDK to create an enterprise-ready version of Ubuntu, in desktop and server flavours, for an industrial customer in Italy. The emphasis was on pre-configured, out-of-the-box support for features like LDAP, which usually have to be set up manually after installation of a general-purpose GNU/Linux distro. We're very pleased with how that distro shaped up, and are considering making it available through a network of consultants across Europe and elsewhere."

Parent and child

PDK represents a revival of Progeny's vision of "componentised Linux", a useful way for Linux companies to provide customised versions of Linux for those clients with specialised requirements. "We do not want to fork," says Ekanayaka. "We just believe that a generic general purpose distribution is not always what you want."

As Daniel James puts it: "We take the 'feedback loop' principle that improves individual free software applications, and apply it to the creation of GNU/Linux distros. There are no forks, just parent and child distributions. If the parent project doesn't want the changes that the child distro suggests, then the patches can continue to be applied downstream."

"But in most cases, an improvement for one user is an improvement for all. We'd encourage more companies to base their products and internal projects on Debian and Ubuntu, and support their engineers through the Debian Developer process. Engineering time saved with tools like PDK can be applied directly to improving the core applications."