openSUSE:Build Service comparison
Strength of OBS
Think of OBS as a gitorious for package creation: you can easily clone a project and play with it in your home project. Change compilation flags to add features, add patches, build it for other OS'es like Debian, Ubuntu and Fedora or fix bugs in the packaging. You can then contribute back your changes by doing a merge request.
build.opensuse.org supports 21 operating systems on 6 architectures and OBS offers full control over the packaging process, making it the ultimate packaging platform.
- Building for multiple distributions
- User friendliness. Using OBS one can start as a novice packager using just the web interface and progress to more advanced features using OSC.
- Support for any OS and architecture due to the use of VM's for building the packages. This includes Windows (experimental) and Mac OS X (if anyone would want to work on that).
- Can also build full OS images, containers, appliances, 'golden images' for bare metal deployments or virtual machines
- Automatic rebuilding on dependency change (for all build formats)
- Supports not only the typical compressed source formats but can also pull directly from GIT, SVN and other SCM's
- Open System – nice integration with IDEs like QtCreator, Eclipse and others; Forges and tools
- Collaboration features which makes working within -devel projects and the main distro far easier. This significantly lowers the barriers for participating in openSUSE or collaboratively working on (groups of) packages. Clone a project, play with it in your own home and use merge requests to get your changes back to the project you cloned.
- Automatic dispatch to world wide mirrors. For upstream projects this is a very nice feature to enable them to provide fast local mirrors for their users.
- Automated quality control within the build system: rpmlint and post-build checks.the OS images
- Setup on a new system for a private OBS is quite easy to accomplish for a reasonably competent Linux user. There are even SUSE Studio images available.
Other systems
Note that the list below is not complete.
Project Builder
Project Builder is a tool for multi platform continuous packaging, it seems to target single projects.
Fedora Koji
Fedora Koji is the build system that Fedora uses to build their distribution.
Ubuntu Launchpad
Launchpad is not only a package building platform but a complete code hosting platform together with mailing lists and bug tracker.
Mandriva Build System
The Mandriva Build System is used to build the Mandriva distribution.
BuildBot
buildbot is a system to automate the compile/test cycle required by most software projects to validate code changes.
Poky
Poky, part of the Yocto project, aims to build custom images for embedded devices using profiles. Supports limited number of packages via 'recepies', using Bitbake, gentoo-portage based tool. Uses Qemu to build & test, offers integration in Anjuta and Eclipse.
Comparison
Name | Public instance | Easy local install | Connection of instances | Build for own distribution | Multi Archictecture support | Build for other distributions | Build packages not in distribution | Collaboration on packages | Package formats | Create Images | Fetch from GIT/SVN/etc | Automatic rebuild | External API | Control via webinterface | Command Line User Interface | Open Source |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Fedora Koji | yes | yes | no | yes | no | no | no | yes | rpm | yes | no | ? | yes | limited | yes | yes |
Launchpad | yes | no | no | yes | yes | no | yes | yes | deb | no | yes | no | yes | yes | no | yes |
Mandriva Build System | yes | no | no | yes | yes | no | no | yes | rpm | todo | todo | no | yes | no | yes | (uses OBS now) |
Project Builder | no | yes | no | no | yes | yes | yes | ? | deb,rpm,ebuild,pkg | no | no | ? | no | yes | yes | yes |
Buildbot | no | yes | no | yes(1) | yes(1) | no | no | no | n.a. | no | yes | n.a. | yes | yes (read-only) | yes | yes |
Poky/ Yocto | no | yes | no | yes | yes | no | no | no | rpm, deb, ipg, tgz | yes | yes | yes | yes | no | yes | yes |
Open Build Service | yes | yes | yes | yes | yes | yes | yes | yes | deb, rpm,tgz(2),exe(2) | yes | yes | yes | yes | yes | yes | yes |
Github | yes | no | yes | no | no | no | no | yes | n.a. | no | yes | no | yes | yes | yes | no |
Gitlab | yes | yes | yes | no | no | no | no | yes | n.a. | no | yes | no | yes | yes | yes | partly (Open Core) |
Jenkins | no | yes | yes | yes | yes | yes | yes | n.a. | n.a. | yes | yes | no | yes | yes | admin only | yes |
- (1) doesn't generate actual packages...
- (2) experimental/in development