summaryrefslogtreecommitdiffstats
path: root/rebuild-scripts/semi_auto_rebuild.txt
blob: e258cb826645253a572f15bd5a7a728008888f7e (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Log of things done for the last semi-mass rebuild
# $Id: semi_auto_rebuild.txt,v 1.1.1.1 2006/10/06 22:22:02 c4chris Exp $


# Grab list of noarch packages
repoquery -a --repoid=extras-development \
  --qf='%{buildtime} %{name} %{arch} %{version}-%{release} %{sourcerpm}' \
  | sort | grep ' noarch ' > pkg_noarch.txt

# Grab list of source packages in the repo, with their build time
repoquery -a --repoid=buildcheck-extras-development-source \
  --qf='%{buildtime} %{name} %{version}-%{release}' \*.src \
  | sort -nr > lst.txt

# Turn the time in a readable form
perl -ane '$F[0] = localtime($F[0]); print join(" ", @F), "\n"' \
  lst.txt > lst2.txt

# Apply script to determine which ones need a rebuild
./check_rebuild2 lst2.txt > lst3.txt

# Remove the noarch packages from the list
./rm_noarch lst3.txt >lst4.txt

# Produce a list of package names to include in a mail
perl -ane 'print "$F[5]\n"' lst4.txt|sort >~/to_rebuild.txt

# Add package owner email field in the list of packages to rebuild
./add_owner lst4.txt >lst5.txt

# Edit list to hand-remove packages that other people said they'd handle
# themselves
vi lst5.txt

# Mark out packages that do not have a simple numeric release field
./check_release lst5.txt > lst_noauto.txt

# Extract the list of simple packages
diff lst5.txt lst_noauto.txt |grep '^<'|sed 's/^..//' >lst_auto.txt

# Make sure we have the latest version of all packages in our CVS checkout
pushd /export/scratch/extras/
cvs update
popd

# Do the automated mass rebuild for the simple packages
for f in `awk '{print $6}' lst_auto.txt`; do
  echo $f
  ./bumpspecfile.py /export/scratch/extras/$f/devel/$f.spec
  pushd /export/scratch/extras/$f/devel
  cvs commit -m 'automated bump and rebuild' && make tag && make build
  popd
done

# Now do the rest of the packages (repeat for each package...)
  for f in `head -1 lst_noauto.txt | awk '{print $6}'`; do
    echo $f
    ./bumpspecfile.py /export/scratch/extras/$f/devel/$f.spec
    pushd /export/scratch/extras/$f/devel
    cvs diff
  done
  vi <package>.spec
  cvs diff
  cvs commit -m 'automated bump and rebuild' && make tag && make build
  popd
  vi lst_noauto.txt # To remove the first line
# Done...