Mailinglist Archive: opensuse-factory (1134 mails)

< Previous Next >
Re: [opensuse-factory] Build system solutions (was Re: Calling for a new openSUSE development model)
On Fri, Jun 22, 2012 at 11:37:06AM +0100, Cristian Morales Vega wrote:
On 18 June 2012 20:38, Stephan Kulow <coolo@xxxxxxx> wrote:
Am 18.06.2012 21:28, schrieb Stefan Seyfried:
Am 18.06.2012 17:21, schrieb Greg KH:

Tumbleweed this weekend, update e2fsprogs and watch your whole distro
rebuild, that really shouldn't happen...)

One possible fix would be to only rebuild down the dependency chain, if
the binary rpms changed.

Example dependency list

  AAAA +------BBBB-----CCCC
       |
       +------DDDD-----EEEE

You update AAAA -> rebuild of BBBB and DDDD gets triggered. Since BBBB
only uses a part of AAAA that did not change, BBBB produces identical
packages which build-compare catches -> CCCC (and everything
"downstream") is *not* rebuilt.
DDDD uses one of the new features of AAAA and produces different binary
RPMs => EEEE will be rebuilt.

I think right now everything is always rebuilt.

No, it's not. But if BBBB requires (subpackages of) AAAA for runtime ,
then a changed AAAA will also affect the rebuilding of CCCC, no matter
if BBBB is changed or not. It's pretty much insane, but you avoid the
manual rebuilds :)

I am correct in thinking rebuild="direct" is not the default just
because people may have forgotten some BuildRequires that are actually
added to the build environment through dependencies?
If so, couldn't rebuild="transitive" made more clever and only follow
requires through packages with "-devel" in it's name?

If my package "BuildRequires: libA-devel" and libA-devel "Requires:
libB-devel", a change in "libB" should trigger a rebuild of my
package. But if libA-devel requires libA, and libA requires libC, a
change in libC shouldn't trigger a rebuild of my package.

A transitive closure build is what OBS does by default.

However coolo operates factory in a "source changed" + "manual" rebuild
strategy, mostly for the reason to keep the RPM count you need to download
for factory updates small.

Ciao, Marcus
--
To unsubscribe, e-mail: opensuse-factory+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-factory+owner@xxxxxxxxxxxx

< Previous Next >
This Thread