On 18 June 2012 20:38, Stephan Kulow <coolo(a)suse.de> 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
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.
I'm missing something? It would not save all the unneeded triggers but
should continue being 99.99% safe, and work even for interpreted
languages (I don't really know a lot about python packaging, but I see
python-gstreamer-0_10 vs python-gstreamer-0_10-devel packages).
To unsubscribe, e-mail: opensuse-factory+unsubscribe(a)opensuse.org
To contact the owner, e-mail: opensuse-factory+owner(a)opensuse.org