On Mon, 2015-03-23 at 16:53 +0100, Yamaban wrote:
Can some one give some englightment, please?
For my understanding, a 'bindings'-package for a lib, should not build WITHIN the build for the lib, but as a seperate cycle, with a 'BuildRequire: libname-devel'.
That way the libs (and the build-cycle for it) yould be completely independent from the package that the 'bindings' is build in.
It depends. In many cases, the bindings are shipped as 'extra' packages (e.g glibmm, gtkmm, gstreamermm) and in this case, of course, the bindings are built in a sep. cycle Other packages ship a set of bindings as part of the main source tree (libproxy for example ships python, perl and mono bindings all intree). In this specific case, it was split out, as libproxy turned out to go 'deep' in any stack and cycles turned out to be large. gmime also provides the bindings 'intree'. Average build time for the package is ~ 4 minutes (of which ~ 140s are setting up the buildroot)
Pro: - small cycles for the base libs / apps that the 'bindings' are build for. - Build of mono-core stays small.
build of mono-core does not change: mono-core is needed TO build those packages, not the other way around.
- seperate small cycles for 'bindings'-packages
'cycles' as in package a requires package b requires package a? Those are generally disallowed in openSUSE:Factory already and are always a reason to split. If no cycle is introduced, the overhead of maintaining two packages of one source is often too excessive.
Contra: - You have to keep libs/bindings/mono in sync at abi changes. The idea to pack the 'bindings' for a, b, c, blubber into the the same spec as the lib itself and the same rpm build cycle, looks nice at the first glance, but is hell in reality -- just look at bootstrap, no-one wants a second issue of that.
As said above: the strategy differs between upstream projects: if
upstream has it in one source tree, it's overhead to split it in the
distro.
As a rule of thumb: one .tar.xz file from upstream == one package in
openSUSE.
Dominique
--
Dimstar / Dominique Leuenberger