Re: Don't update to current cooker

Jeffrey Johnson <[email protected]> Tue, 24 Jan 2012 10:21:13 -0500
Newsgroups gmane.linux.mandrake.cooker.devel
Message-ID <[email protected]>
On Jan 24, 2012, at 10:02 AM, Denis Silakov wrote:

>>> 
>>> Breaks in cooker happen quite often, they are just not as big as the ones caused by Perl update. Some big updates can require more manual work and for them a special process can make sense, indeed. But I believe that such updates are not numerous/frequent.
>>> 
>> I will never question your "belief" other than to point out that reality is
>> sometimes different.
>> 
> Surely :) But we don't seem to have reliable statistics for well-reasoned discussion.
> 

Well you do have some reliable statistics, more needs to be done (see below).

The size of a package is measured and saved reliably in a *.src.rpm.

The results of the %prep/%build/%install/%clean exit codes are collected
during build. I forget whether I've put the results into *.src.rpm headers yet,
its merely one call to headerPut() somewhere.

In order to display build progress bars (through setproctitle(3), 16b
or progress bar buried into /proc/* was merely a parlor trick when
@rpm5.org drifted off into various displays of progress like spinning
wheels and "Knight Rider" displays and I was frustrated with the discussion)
implicitly assumes
	1) there is a stop watch on the build process
	2) the total time is known a prior it so that 0 -> 100% normalization is possible
There are some minor scaling issues that need to be solved for a
measured build time to be distributed "portably": wall clock time depends
implicitly on CPU Hz etc)

And rusage(3) to capture memory and diskspace (and other) metrics isn't
hard coding. What is hard is that every additional piece of information
added to *.rpm headers triggers a
	Bloat! Bloat! Bloat! Bloat!
fire drill discussion (so I choose my RPM battles carefully and wisely).

There is no build system I am aware of that has a scheduler that
fully integrates process metrics with queues. The more typical
(and perhaps better) problem that is always implemented is "clout"
	This build is more important than other builds and so goes first.

rpm build is wonderfully positioned to collect whatever reliable
statistics you wish to see. Here's another (and wilder) suggestion
for a metric:
	Compression algorithms remove redundancy and increase residual entropy.
	Different compressors are better/worse dependent on residual entropy.
rpm build is very well positioned to calculate residual entropy reliably
both per-package and per-file and heuristics can then be devised
to use the most effective compression.

Instead what is being done is this:
	1) Compress tar balls using bzip2 to minimize build system diskspace,
	2) Compress *.src.rpm payloads to minimize download bandwidth.

What is silly is that 1) and 2) have conflicting goals and two compressions
is more cpu costly than 1).

hth

73 de Jeff


> -- 
> Denis Silakov, ROSA Laboratory.
> www.rosalab.ru
>