What about starting to use project-builder for native packages?
Richard Bos
ml at radoeka.nl
Sat Apr 17 21:42:25 CEST 2010
Op donderdag 15 april 2010 11:36:18 schreef Christoph Wickert:
> > Short reply on Thomas' remark, I'll reply on Gunnar's email later:
> > - the packages build on the openSUSE build server are, native Fedora,
> > Mandriva, Ubuntu, Debian packages! They are -->not<-- openSUSE
> > specific.
>
> FWIW they are kind of specific. Please let me explain:
> Each distribution has different packaging guidelines, different macros
> different package names and all that stuff. Developers usually focus on
> this or that distribution. I for example focus on Fedora/CentOS and
> Debian/Ubuntu but hardly don't know anything about OpenSUSE or Mandriva
> and nearly nothing about Gentoo...
>
> In general I think that packagers should only build packages for distros
> that they are familiar with.
Cross-distribution Specfiles are the smallest part of what the OBS does. If
you are a single packager they make sense, and until now the efforts to
promote the OBS outside openSUSE have targetted this group. They are more
complex, but less work to maintain and keep in sync than a suit of native
specfiles for different distro versions. If OTOH you already have a team of
distribution specialist packagers then they can continue to use native
specfiles in branched projects that share a common set of tarballs and
patches. OBS saves the overhead of distributing updated sources to all and
publishing built packages to repos.
> > Takes this repository as an example:
> > http://download.opensuse.org/repositories/home:/rbos:/ib/
>
> I looked at your packages and none of the specs for the Fedora
> packages would really be acceptable for inclusion in Fedora, even though
> the guidelines for Fedora and OpenSUSE are pretty similar (because
> OpenSUSE took over large parts of Fedora's guidelines, including the typos
> ;)). Please don't take this as personal criticism, I'm just stating facts.
>
> > One spec file (for rpm based distributions) results in packages for many
> > different distributions and architectures. This is done by loading an
> > image with e.g. Mandriva and perform the build the build of the spec file
> > in that image. Really wonderful
>
> If you try to honor all the differences between the distributions, you end
> up with a spec full of conditionals. So what happens is that the spec
> gets hard to maintain, but on the other hand the value it adds - one spec
> to rule them all - is pretty small.
This is a given and is valid for any package build system, that results in
packages for different distributions.
The build service can be used in many different ways. One spec file for all,
or if you want more control: branch the project (even against a remote build
service). It's all possible! BTW if Kolab wants to get kolab into
distributions' own repositories and maintain the specfiles themselves, they
need native specfiles.
A possible project hierarchy for native spec files could be:
Kolab: (containing only sources and patches)
/openSUSE:/11.2
/11.3
/debian:/hardy
/Unbuntu10.4
/fedora:/12
/Centos
which all add the spec/.dsc/control files. If a branch cannot accept a
version update from the main branch, it can copy the old tarball in and
continue to build using that.
> For those who never looked at the OpenSUSE Build Service, please take a
> look at
> http://en.opensuse.org/Build_Service/cross_distribution_package_how_to
>
> Even worse than a cluttered spec: A lot of the macros are OSB specific, so
> the resulting SRPMs cannot be rebuild on the distributions they were
> built for - they can only be built inside the OSB.
If customers need to rebuild locally they can always use 'osc build' to build
using cross-distribution specfiles.
If all you are interested in is distributing binary packages to users, the
resulting RPMs from cross-distro specfiles, given thorough packaging work, are
indistinguishable from natively built RPMs.
> I haven't looked at project-builder yet, but I think we should take it
> into account because for me OSB is not an option.
Because the OBS (openSUSE Build Service) is hosted by openSUSE? I sincerely
hope, that it is not for this reason! If it is, Kolab can host the build
service at e.g. http://build.kolab.org or why not at http://build.kolabsys.com
(or even on both locations) The tools are open source and freely downloadable
from http://download.opensuse.org/repositories/openSUSE:/Tools and
http://gitorious.org/opensuse/build-service
--
Richard
More information about the users
mailing list