Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.
Launchpad Entry: commercial-build-infrastructure
The proposal is to provide a turnkey solution to enable commercial developers to compile and provide Ubuntu packages for multiple versions of Ubuntu (eg. the most recent three) easily and without duplicate work.
The proposal is as follows: Provide a set of virtual images running various versions of Ubuntu, including
- an easy installer
- a ready-to-run development and .deb package creation environment,
- scripts (buildd?) to run parallel-compilation and hooks for custom scripts (e.g. tests) on all images
- good documentation
The installer should set up the images to run concurrently and be able to "talk" to each other over a virtual network (eg. via SSH). The images should preferably be in a format that does not require Ubuntu to be installed natively (e.g., VMware Player images).
Most commercial software under Linux suffers from the problem that their vendors only support certain distributions. The most often quoted reason for this is that they only have one "in-house" distribution and they cannot install and compile on all of them. Thus, many commercial vendors do not support the RPM or DEB package format because it is not as "universally usable" under Linux as e.g. InstallShield or MSI seems to be under Windows. This often creates a complete mess because the manually hacked install scripts make assumptions that might have been valid ten years ago under commercial Unices, but are completely out of date now.
Ubuntu provides an easy method of compiling software (the launchpad-buildhosts), however, commercial software distributors cannot use the (semi-public) launchpad build daemons to build their software, they require an in-house solution.
SuSE/Novell provides a method of building software by installing a virgin system from CD inside a chroot environment. This ensures that compilation on a development environment does not create binary dependancies on libraries that aren't on the distribution CD. Ubuntu should provide something similar, and virtual images provide this feature, can additionally test e.g. for kernel features, and also enable the user to compile for several versions of Ubuntu in one step.
Company A's commercial software only supports SuSE and Redhat. They would provide DEB packages if there were an easy way to integrated an automatic Ubuntu build system into their development environment. Company B's commercial software is a port from ancient UNIX and still uses shell scripts to manually copy files all over the place. They would provide packages if there were an easy turnkey solution of building them for various Linux distributions. SuSE/Novell provides this for RPMs, but they require an installed SuSE system to run. Ubuntu could do the same for DEB packages without requiring an installed system (using e.g. VMware).
The assumption is that there is an interest of providing commercial software for Ubuntu.
- create VMware images for Ubuntu's recent versions 7.10, 7.04, 6.10, 6.06 (always back to the latest LTS release)
- installation: development, compilers, autotools, and SSH server enabled
- create default user with password and SSH key that allows passwordless movement between images
- use buildd with appropriate pre-configuration
- provide method to copy finished packages plus log files to "outside directory" (SSH, on SMB share, whatever)