[CentOS-devel] progress?

Wed Feb 23 15:34:25 UTC 2011
Ljubomir Ljubojevic <office at plnet.rs>

Les Mikesell wrote:
> On 2/23/11 4:59 AM, Karanbir Singh wrote:
>> I am not sure how to say this any other way, its been said many times
>> over and over again : we dont use any super magic juice anywhere, its
>> mostly just mock in a for loop. Lets assume that there still exists some
>> fear and doubt somewhere about the process in exact terms.
> If it is just mock in a for loop, then wouldn't spreading it over more machines 
> be guaranteed to make it complete faster?  And if you drop the problem in enough 
> people's laps, maybe someone will come up with a better automation to 
> reverse-engineer the RHEL binaries to predict the correct build order and the 
> right missing libraries.  I'm too dumb to do it, so don't bother pointing that 
> out (as Johnny likes to), but it doesn't seem like an impossible problem - or 
> one that should be done case-by-case, manually.
You should have few things in mind. My envisioning the rebuilding 
process is:

1. It was pointed out that they (have) run first mock loop with 
default/basic environment and selected non-building SRPMS for further 
analysis and problem solving. They will not re-run SRPMS that can build 
until they start the final build.

2. When you deal with hidden dependencies, what comes to my mind is to 
first see dependencies from Fedora12(+) packages by *manually* 
extracting and comparing .spec files one SRPMS at the time (everybody 
from team was assigned part of the non-building SRPMS).

3. Dependencies that are found to be missing are added to the building 
list, and if there are no SRPMS for them bug is filed to Red Hat and 
then I guess they add the SRPM from Fedora and reconfigure the .spec 
file, or maybe wait for Red Hat to publish missing SRPM.

4. SRPMS that have dependencies that will not build left for the end.

5. For those SRPMS that only have missing dependency, they start 
comfiguring mock config that will allow them to build that SRPMS.

6. Built RPMS from item 5 are then compared to the RHEL original. If 
they pass the test, their mock config if filed for final build and 
package is marked solved. If RPMS are not the same as RHEL's, they have 
to, again manually, to find why, what is different. This comparing is 
mostly done one by one, as soon as one of the team members thinks (s)he 
finished it.

As you can see, there is no much automation going on except for few 
initial runs, just hard manual labor and frustration. I have tried to 
compile many packages for CentOS 5.x that depend on much newer core 
files, and finding out what packages I also need to recompile from 
Fedora was highly frustrating, and I was just using known dependencies 
from existing .spec files.

Certain packages (especially their newer versions) would have as much as 
15-20 dependencies (6-7 layers of dependencies deep) until I would hit 
some core package I was unwilling to change. And then I would start with 
older package version hopping that they do nor require those core packages.

It would take me even 10-12 hours (until I learn how to cut it shorter), 
for a single package.