Hacker News new | ask | show | jobs
by m_rcin 4332 days ago
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."

[1] https://bugs.launchpad.net/launchpad/+bug/188564

2 comments

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!

[1]: http://en.opensuse.org/openSUSE:Build_Service_Tutorial

[2]: http://en.opensuse.org/openSUSE:OSC

[3]: https://en.opensuse.org/openSUSE:Packaging_guidelines

Have you tried to follow the simple video tutorial?

http://vimeo.com/30550722