blob: ac6522a4ce94a9cdab158fcabdd50c6d5555fb1a (
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
#!/bin/bash
KORG26="http://ftp.kernel.org/pub/linux/kernel/v2.6"
KORG26SNAPS="${KORG26}/snapshots"
KORG26TESTING="${KORG26}/testing"
if [ ! -f /usr/bin/curl ]; then
echo yum install curl
exit 0
fi
# Current kernel bits
if [ `grep -c patch-2.6 sources` -ge 1 ]; then
export OLD=`grep patch-2.6 sources | awk '{print $2}' | tail -n1 | sed s/patch-// | sed s/\.bz2//`
else
export OLD=`grep linux-2.6 sources | awk '{print $2}' | tail -n1 | sed s/linux-// | sed s/\.tar\.bz2//`
fi
export OLDBASE=`echo $OLD | sed s/-/\ /g | sed s/2\.6\.// | awk '{ print $1 }'`
if [ `echo $OLD | grep -c rc` -ge 1 ]; then
export OLDRC=`echo $OLD | sed s/-/\ /g | sed s/rc// | awk '{ print $2 }'`
if [ `echo $OLD | grep -c git` -ge 1 ]; then
export OLDGIT=`echo $OLD | sed s/-/\ /g | sed s/git// | awk '{ print $3 }'`
else
export OLDGIT=0
fi
else
export OLDRC=0
if [ `echo $OLD | grep -c git` -ge 1 ]; then
export OLDGIT=`echo $OLD | sed s/-/\ /g | sed s/git// | awk '{ print $2 }'`
else
export OLDGIT=0
fi
fi
# Is there a new snapshot or prepatch ?
NEW=`curl -s http://www.kernel.org/kdist/finger_banner | grep "latest snapshot 2.6 version"`
if [ -z "$NEW" ] ; then
NEW=`curl -s http://www.kernel.org/kdist/finger_banner | grep "latest mainline 2.6 version"`
if [ -z "$NEW" ] ; then
if [ "$OLDRC" -ne 0 ] ; then
NEW=`curl -s http://www.kernel.org/kdist/finger_banner | grep "latest stable 2.6." | head -n1`
else
echo "No new rc or git snapshot of stable branch".
exit 0
fi
fi
fi
export N=`echo $NEW | awk '{ print $11 }'`
if [ -z "$N" ]; then
# "Stable version"
export NEW=`echo $NEW | awk '{ print $10 }'`
else
export NEW=`echo $NEW | awk '{ print $11 }'`
fi
export NEWBASE=`echo $NEW | sed s/-/\ /g | sed s/2\.6\.// | awk '{ print $1 }'`
if [ `echo $NEW | grep -c rc` -ge 1 ]; then
export NEWRC=`echo $NEW | sed s/-/\ /g | sed s/rc// | awk '{ print $2 }'`
if [ `echo $NEW | grep -c git` -ge 1 ]; then
export NEWGIT=`echo $NEW | sed s/-/\ /g | sed s/git// | awk '{ print $3 }'`
else
export NEWGIT=0
fi
else
export NEWRC=0
if [ `echo $NEW | grep -c git` -ge 1 ]; then
export NEWGIT=`echo $NEW | sed s/-/\ /g | sed s/git// | awk '{ print $2 }'`
else
export NEWGIT=0
fi
fi
echo "OLD kernel was $OLD BASE=$OLDBASE RC=$OLDRC GIT=$OLDGIT"
echo "NEW kernel is $NEW BASE=$NEWBASE RC=$NEWRC GIT=$NEWGIT"
if [ "$OLDRC" -eq 0 -a "$OLDGIT" -eq 0 -a "$OLDGIT" -ne "$NEWGIT" ]; then
echo "Rebasing from a stable release to a new git snapshot"
perl -p -i -e 's/^%define\ released_kernel\ 1/\%define\ released_kernel\ 0/' kernel.spec
perl -p -i -e 's/^%define\ rawhide_skip_docs\ 1/\%define\ rawhide_skip_docs\ 0/' kernel.spec
# force these to zero in this case, they may not have been when we rebased to stable
perl -p -i -e 's/^%define\ rcrev.*/\%define\ rcrev\ 0/' kernel.spec
perl -p -i -e 's/^%define\ gitrev.*/\%define\ gitrev\ 0/' kernel.spec
fi
# make sure we build docs at least once per -rc kernel, shut it off otherwise
if [ "$OLDRC" -ne 0 -a "$NEWRC" -gt "$OLDRC" ]; then
perl -p -i -e 's/^%define\ rawhide_skip_docs\ 1/\%define\ rawhide_skip_docs\ 0/' kernel.spec
else
if [ "$NEWRC" -eq "$OLDRC" -a "$NEWGIT" -gt "$OLDGIT" ]; then
# common case, same -rc, new -git, make sure docs are off.
perl -p -i -e 's/^%define\ rawhide_skip_docs\ 0/\%define\ rawhide_skip_docs\ 1/' kernel.spec
fi
fi
if [ "$NEWRC" -eq 0 -a "$NEWGIT" -eq 0 ]; then
echo "Rebasing from -rc to final release."
perl -p -i -e 's/^%define\ released_kernel\ 0/\%define\ released_kernel\ 1/' kernel.spec
perl -p -i -e 's/^%define\ rawhide_skip_docs\ 1/\%define\ rawhide_skip_docs\ 0/' kernel.spec
export OLD_TARBALL_BASE=$(($OLDBASE-1))
perl -p -i -e 's/^%define\ base_sublevel\ $ENV{OLD_TARBALL_BASE}/%define\ base_sublevel\ $ENV{NEWBASE}/' kernel.spec
perl -p -i -e 's/^%define\ rcrev.*/\%define\ rcrev\ 0/' kernel.spec
perl -p -i -e 's/^%define\ gitrev.*/\%define\ gitrev\ 0/' kernel.spec
grep -v kernel-2.6.$OLD_TARBALL_BASE .gitignore >.gitignore.tmp ; mv .gitignore.tmp .gitignore
echo kernel-2.6.$NEWBASE >> .gitignore
for i in sources .gitignore
do
grep -v linux-2.6.$OLD_TARBALL_BASE.tar.bz2 $i > .$i.tmp; mv .$i.tmp $i
grep -v patch-2.6.$OLDBASE-rc$OLDRC.bz2 $i > .$i.tmp; mv .$i.tmp $i
grep -v patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2 $i > .$i.tmp; mv .$i.tmp $i
done
rm -f linux-2.6.$OLD_TARBALL_BASE.tar.bz2
rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2
rm -f patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2
curl -O $KORG26/linux-$NEW.tar.bz2
fedpkg upload linux-$NEW.tar.bz2
exit 1
fi
if [ "$OLDRC" != "$NEWRC" ]; then
echo "Different rc. Rebasing from $OLDRC to $NEWRC"
perl -p -i -e 's/^%define\ rcrev.*/\%define\ rcrev\ $ENV{"NEWRC"}/' kernel.spec
perl -p -i -e 's/$ENV{OLDBASE}-rc$ENV{OLDRC}.bz2/$ENV{NEWBASE}-rc$ENV{NEWRC}.bz2/' .gitignore
grep -v patch-2.6.$OLDBASE-rc$OLDRC.bz2 sources > .sources.tmp; mv .sources.tmp sources
grep -v patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2 .gitignore >.gitignore.tmp ; mv .gitignore.tmp .gitignore
if [ `grep -c patch-2.6.$NEWBASE-rc$NEWRC.bz2 sources` -eq 0 ]; then
echo patch-2.6.$NEWBASE-rc$NEWRC.bz2 >> .gitignore
fi
rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2
curl -O $KORG26TESTING/patch-2.6.$NEWBASE-rc$NEWRC.bz2
fedpkg upload FILES=patch-2.6.$NEWBASE-rc$NEWRC.bz2
# Another awkward (albeit unlikely) corner case.
# Moving from say 26-rc3-git1 to 26-rc4-git1
# The above will grab the new -rc, but the below will
# think that the -git hasn't changed.
# Fudge around this, by pretending the old git was something crazy.
OLDGIT=99
fi
if [ "$OLDGIT" != "$NEWGIT" ]; then
if [ "$OLDRC" -eq 0 -a "$OLDGIT" -eq 0 ]; then
echo "Rebasing to pre-rc git$NEWGIT"
else
echo "Different git. Rebasing from git$OLDGIT to git$NEWGIT"
fi
perl -p -i -e 's/^%define\ gitrev.*/\%define\ gitrev\ $ENV{"NEWGIT"}/' kernel.spec
if [ "$OLDGIT" -ne 0 ]; then
if [ "$NEWGIT" -ne 0 ]; then
perl -p -i -e 's/$ENV{OLD}/$ENV{NEW}/' .gitignore
fi
grep -v patch-$OLD.bz2 sources > .sources.tmp; mv .sources.tmp sources
else
echo patch-$NEW.bz2 >> .gitignore
fi
if [ "$NEWGIT" -ne 0 ]; then
curl -O $KORG26SNAPS/patch-$NEW.bz2
fi
fedpkg upload patch-$NEW.bz2
if [ "$OLDGIT" -ne 0 ]; then
rm -f patch-$OLD.bz2
fi
fi
if [ "$OLDRC" != "$NEWRC" -o "$OLDGIT" != "$NEWGIT" ]; then
perl -p -i -e 's|^ApplyPatch\ git-linus.diff|#ApplyPatch\ git-linus.diff|' kernel.spec
> git-linus.diff
fedpkg clog
exit 1
else
exit 0
fi
|