summaryrefslogtreecommitdiffstats
path: root/scripts/find-bad-builds.py
blob: cd470029cac52165e38770bd4101cfef2d0878d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/python

# template for finding builds that meet some time/buildroot component critera.
# Edit to suit.

import koji

kojisession = koji.ClientSession('http://koji.fedoraproject.org/kojihub')
potentials = []
tocheck = []
needbuild = []
reallyneedbuild = []

f8builds = kojisession.listTagged('dist-f8', inherit=True, latest=True)

for build in f8builds:
    if build['creation_time'] > '2007-06-12 04:01:15.000000':
        potentials.append(build)

for build in potentials:
    if build['creation_time'] < '2007-07-31 02:10:19.000000':
        tocheck.append(build)

for build in tocheck:
    for task in kojisession.getTaskChildren(build['task_id']):
        if build in needbuild:
            continue
        if task['method'] == 'buildArch':
            for rootid in kojisession.listBuildroots(taskID=task['id']):
                for pkg in kojisession.listRPMs(componentBuildrootID=rootid['id']):
                    if pkg['name'] == 'binutils':
                        if pkg['version'] == '2.17.50.0.16':
                            if not build in needbuild:
                                needbuild.append(build)
                        elif pkg['version'] == '2.17.50.0.17' and pkg['release'] < '7':
                            if not build in needbuild:
                                needbuild.append(build)
                        else:
                            print "%s had binutils, but it was %s" % (build['nvr'], pkg['nvr'])

rebuildnames = []
for build in needbuild:
    for rpm in kojisession.listBuildRPMs(build['nvr']):
        if rpm['arch'] == 'ppc':
            if not build in reallyneedbuild:
                reallyneedbuild.append(build)
                rebuildnames.append(build['name'])

rebuildnames.sort()
for build in rebuildnames:
    print build