I use OBS to provide Linux packages of the latest version of my project for multiple Linux distros. Because of the release cycle Linux distros usually come with older versions of the program, so when the user reports a problem it's handy to have an easy way for her to update and try the latest version. (Compilation from sources is not an easy way)
I spent many hours to write a spec file portable enough to build on OpenSuse/Fedora/RHEL/Mandriva (there was Mandriva Linux at that time), and to prepare debian/ directory, but after this initial work updating spec/debian and triggering builds for a new release takes only a few minutes.
I really appreciate that SUSE is providing resources to build packages for other distros. This is in contrast with Canonical refusing to build packages for Debian in PPA[1]:
"PPA builds consume a great deal of resources and it's difficult justify spending that amount of money as a gift, especially if the net effect would be to encourage people to build packages which don't necessarily work with Ubuntu."
That's a very selective quote. You failed to quote the very next sentence: "But we can see the benefits of encouraging developers to factor both Ubuntu and Debian into their packaging efforts, so we're open to that."
> This is in contrast with Canonical refusing to build packages for Debian...
False, as demonstrated by reading the full quote. There is no refusal there, just resource allocation in sorting out the infrastructure.
OK, it was a selective quote and there was no refusal. Ubuntu developers just want to fix first all the bugs that matter for Ubuntu users (which is as distant now as 5 years ago, in practice it's the same as refusal).
So there is a contrast. Ubuntu devs haven't made what would be a nice gesture toward their upstream distro. OTOH SUSE provides resources for building packages for several unrelated distros.
> Ubuntu devs haven't made what would be a nice gesture toward their upstream distro.
They make nice gestures toward their upstream distro all the time, just not this one, for which they have said that code contributions are welcome. 3913 nice gestures (in the form of patches) are logged at http://udd.debian.org/cgi-bin/ubuntu_usertag.cgi, for example.
> OTOH SUSE provides resources for building packages for several unrelated distros.
Sure, and Ubuntu has chosen to focus contributions in other areas. I think that's perfectly reasonable.
One issue here is that the build infrastructure around Launchpad is (presumably) designed around securely building packages for a single distribution. To support other distributions, it seems to me that it would need some mechanism for users to supply their own chroots, or some other way of maintaining those chroots. This is quite different from the Debian builder model, which is designed around third party build contributions. I imagine (I don't know) that this affects the amount of effort required to make this all work on Launchpad. Remember that PPA support was added in later, not present from the start (http://blog.launchpad.net/ppa/personal-package-archives-for-... looks like the original announcement).
On the other hand, as far as I understand SUSE designed their system to be able to handle several unrelated distros from the beginning. That presumably made it easier for them to do it.
I don't think it's fair to complain that X won't expend resources on something but Y will, when the amount of resource required by X and Y may differ quite considerably.
Especially since replicating Open Build Service would be a waste of effort. It already exists. There doesn't need to be a Canonical version of it. If someone wants to build a package for multiple distros, use Open Build Service. Launchpad serves a different purpose.
OBS looks great but somehow I always get hung at the learning phase. Is there some pointers that you recommend for new users to build their own packages ?
The first thing to look at is probably the tutorial[1], followed by the wiki page about OSC[2], which is the command-line tool that interfaces with OBS itself. The Packaging Guidelines[3] provide additional information for specific use cases, corner cases and packages and is also quite helpful!
OBS is a fantastic service. As other comments have pointed out, you can build for other distributions as well, but as an openSUSE user, I use it for quite a bit.
Some of the packages I would otherwise compile locally but that don't need to be in the distribution itself, I simply compile on there, add my personal repository to my repository list and they will stay in sync with other build requirements etc. On top of that, this allows me to have them in the package manager proper, and I can easily build my packages for multiple openSUSE versions, usually current (13.1), Tumbleweed and Factory.
OBS also makes it really easy to fork packages to fix something and/or apply patches, and depending on what kind of changes one made, it also includes pull requests. That way you can fix or extend a piece of software via forking, and if it works and might be useful for everybody, you can send your changes to the maintainer, who can integrate it if they find them adequate. This makes it quite a bit easier and lowers the barriers of helping "upstream" with improving the whole distribution.
Is this openSUSE only, or can you build packages for other distributions with this service? It's hard to tell from their documentation or website.
EDIT: The openSUSE instance [0] says:
The openSUSE Build Service is the public instance of the
Open Build Service (OBS) used for development of the
openSUSE distribution and to offer packages from same
source for Fedora, Debian, Ubuntu, SUSE Linux Enterprise
and other distributions..
Can you actually build for Arch with this? I can't see an option for this, (thinking it might be a typo of yours). In addition, I'm trying to figure out how it works, what form do you need to upload the package as?
Yes you can. You just need a tarball and a PKGBUILD file. There's one downside in that in the official Arch repos, the sourcecode is just defined as a download link to the tarball but since the OBS builder can't access the internet (for security I guess) you have to provide a tarball yourself. The Build Service does however provide hooks for automatically downloading tarballs or grabbing code from version control systems.
Quite remarkably, it supports Windows too (via cross-compilation). The Julia WinRPM tool [1] automatically downloads dependencies for various Julia packages from OBS - including some very interdependent, complex libraries like Glib and Gtk.
The SUSE engineers and community really make some fantastic tools. I was a long-time openSUSE user but I found the package repositories were not so well maintained and eventually I switched away, but tools like Zypper (the only mainstream Linux package manager that gives you fine-grained control on what to do if a package dependency cannot be fulfilled - a pet peeve of mine on Debian systems), SUSEStudio (web service for interactively building Linux appliances, Live CDs, etc) and it's back-end Kiwi, etc. - really very cool stuff.
I find zypper is SUSE's killer app that gets very little love from people unfamiliar with it's use. Yum is a close second but I never understand the love afair people have for apt-get it makes me want to scream all the time. The very terminology of update doesn't update your software or machine but that upgrade does update but does not upgrade you to the newest release is enough crazy. Also apt-get search != search is also crazy.
That surprises me. I've used Fedora for a while (it was preinstalled on a laptop that was gifted to me), and found that the repositories were both much smaller and much less well-maintained than the equivalents on openSUSE.
I have found a few handy tools that openSUSE had packaged long before Fedora. I think the credit for that goes to openSUSE's much more accessible build service :) Haven't had any issues with the repositories, myself, though - been using Fedora on and off since F11.
It mostly does. There are a few things that are in openSUSEs main repositories and not in those of Fedora, but in many cases the openSUSE packages were indeed in user repositories.
Fedora repositories were so bad for me that I ended up searching for Fedora packages on the openSUSE Build Service, and using those instead.
You can download packages from
http://software.opensuse.org/search
Click on the button far right to go to the detailed search, which allows to select a distribution.
Open Build Service has always been one of the more attractive features of OpenSuSe, along with Suse Studio.
Unfortunately, after spending some time with the newest release of OpenSuSe, I found it had become very bloated and I feel I will never return to the distribution.
The straw on the camel's back was finding out about the 'tmpfiles.d' or similar. Seems very messy and got me thinking about the direction some of the Linux distributions are going.
I spent many hours to write a spec file portable enough to build on OpenSuse/Fedora/RHEL/Mandriva (there was Mandriva Linux at that time), and to prepare debian/ directory, but after this initial work updating spec/debian and triggering builds for a new release takes only a few minutes.
I really appreciate that SUSE is providing resources to build packages for other distros. This is in contrast with Canonical refusing to build packages for Debian in PPA[1]:
"PPA builds consume a great deal of resources and it's difficult justify spending that amount of money as a gift, especially if the net effect would be to encourage people to build packages which don't necessarily work with Ubuntu."
[1] https://bugs.launchpad.net/launchpad/+bug/188564