]>
git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - scripts/dorelease
2 # build -stable release from current -stable series
3 # Copyright (c) 2005 Chris Wright <chrisw@osdl.org>
4 # Copyright (c) 2006-2011 Greg Kroah-Hartman <greg@kroah.com>
9 KETCHUP
= `which kv 2>/dev/null`
10 if [ -z " $KETCHUP " ]; then
11 echo -e "Usage: \t $0 release_number"
12 echo -e "e.g. \t $0 2.6.11.12"
13 echo -e "or install ketchup to automatically release the latest kernel version."
21 REL_ARRAY
=( ${RELEASE//./ } )
22 BASE
= ${REL_ARRAY[0]}.${REL_ARRAY[1]}.${REL_ARRAY[2]}
28 # see if this is a "longterm" kernel or not
29 if [ $MAJOR == "2" ]; then
30 if [ $MINOR == "27" ]; then
33 if [ $MINOR == "32" ]; then
36 if [ $MINOR == "33" ]; then
39 if [ $MINOR == "34" ]; then
42 if [ $MINOR == "35" ]; then
46 #echo "major = $MAJOR, minor = $MINOR, longterm = $LONGTERM"
48 # 5.x or 4.x or 3.x or 2.6?
50 if [ ${MAJOR} == "3" ] ; then
53 BASE
= ${REL_ARRAY[0]} .
${REL_ARRAY[1]}
57 if [ ${MAJOR} == "4" ] ; then
60 BASE
= ${REL_ARRAY[0]} .
${REL_ARRAY[1]}
64 if [ ${MAJOR} == "5" ] ; then
67 BASE
= ${REL_ARRAY[0]} .
${REL_ARRAY[1]}
71 if [ ${MAJOR} == "6" ] ; then
74 BASE
= ${REL_ARRAY[0]} .
${REL_ARRAY[1]}
82 if [ $LAST -eq 0 ]; then
86 LAST_REL
= ${BASE} .
${LAST}
88 echo "# About to create stable release $RELEASE (base $BASE last version $LAST_REL )"
91 BASE_COMMIT
= "$(git cat-file tag v ${BASE} | grep object | cut -d" " -f2)"
92 LAST_COMMIT
= "$(git cat-file tag v ${LAST_REL} | grep object | cut -d" " -f2)"
93 RELEASE_COMMIT
= "$(git cat-file tag v ${RELEASE} | grep object | cut -d" " -f2)"
94 #echo "# BASE_COMMIT=$BASE_COMMIT"
95 #echo "# LAST_COMMIT=$LAST_COMMIT"
96 #echo "# RELEASE_COMMIT=$RELEASE_COMMIT"
99 echo -n "# [ret] to continue"
102 RELDIR
= "../release- $RELEASE "
104 if [ -d ${RELDIR} ] ; then
110 echo "# building tree in ${RELDIR} "
112 # build release materials, tarball, base patch, incr patch, changelog
113 #git archive --format=tar --prefix=linux-$RELEASE/ HEAD | gzip -9 > $RELDIR/linux-${RELEASE}.tar.gz
114 #git diff-tree -p $BASE_COMMIT $RELEASE_COMMIT | gzip -9 > $RELDIR/patch-${RELEASE}.gz
115 #if [ $INCREMENTAL -ne 0 ]; then
116 # git diff-tree -p $LAST_COMMIT $RELEASE_COMMIT | gzip -9 > $RELDIR/patch-${LAST_REL}-${REL}.gz
118 #zcat $RELDIR/patch-${LAST_REL}-${REL}.gz | diffstat -p1 > $RELDIR/diffstat-${LAST_REL}-${REL} 2>/dev/null
120 git archive
--format = tar --prefix = linux-
$RELEASE / $RELEASE_COMMIT > $RELDIR / linux-
${RELEASE} .
tar
121 git diff-tree
-p $BASE_COMMIT $RELEASE_COMMIT > $RELDIR / patch-
${RELEASE}
122 if [ $INCREMENTAL -ne 0 ]; then
123 git diff-tree
-p $LAST_COMMIT $RELEASE_COMMIT > $RELDIR / patch-
${LAST_REL} - ${REL}
124 cat $RELDIR / patch-
${LAST_REL}-${REL} | diffstat -p1 > $RELDIR/diffstat-${LAST_REL}-${REL} 2 >/ dev
/ null
126 cat $RELDIR / patch-
${RELEASE} | diffstat
-p1 > $RELDIR / diffstat-
${RELEASE} 2 >/ dev
/ null
128 git log
${LAST_COMMIT} ..
${RELEASE_COMMIT} > $RELDIR / ChangeLog-
$RELEASE
129 < $RELDIR / ChangeLog-
$RELEASE git shortlog
> $RELDIR / shortlog-
$RELEASE
131 # sign all the needed files
132 gpg
-a -b ${RELDIR} / linux-
${RELEASE} .
tar
133 gpg
-a -b ${RELDIR} / patch-
${RELEASE}
134 gpg
-a -b ${RELDIR} / ChangeLog-
${RELEASE}
135 if [ $INCREMENTAL -ne 0 ]; then
136 gpg
-a -b ${RELDIR}/patch-${LAST_REL}-${REL}
141 #HOST="gregkh@geb.kernel.org"
142 HOST
= "git@gitolite.kernel.org"
143 SCRIPT
= " ${RELDIR} /upload_v ${RELEASE} "
147 if [ $LONGTERM -eq 1 ]; then
148 echo "# This is a longterm release"
149 echo "# finalize the release:"
151 echo "kup --host= ${HOST} --subcmd=kup-server put --tar --prefix=linux-${RELEASE}/ /pub/scm/linux/kernel/git/stable/linux-stable.git v${RELEASE} linux-${RELEASE}.tar.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/linux-${RELEASE}.tar.gz" | tee -a ${SCRIPT}
152 echo " kup
--host = ${HOST} --subcmd=kup-server put ChangeLog-${RELEASE} ChangeLog-${RELEASE}.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/" | tee -a ${SCRIPT}
153 echo "kup --host= ${HOST} --subcmd=kup-server put patch-${RELEASE} patch-${RELEASE}.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/patch-${RELEASE}.gz" | tee -a ${SCRIPT}
154 if [ $INCREMENTAL -ne 0 ]; then
155 echo " kup
--host = ${HOST} --subcmd=kup-server put patch-${LAST_REL}-${REL} patch-${LAST_REL}-${REL}.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/incr/patch-${LAST_REL}-${REL}.gz" | tee -a ${SCRIPT}
157 # echo "mv $RELDIR/linux-${RELEASE}.tar.gz ~/v2.6/longterm/v${BASE}/"
158 # echo "mv $RELDIR/ChangeLog-${RELEASE} ~/v2.6/longterm/v${BASE}/"
159 # echo "mv $RELDIR/patch-${RELEASE}.gz ~/v2.6/longterm/v${BASE}/"
160 # echo "cp $RELDIR/patch-${LAST_REL}-${REL}.gz ~/v2.6/longterm/v${BASE}/incr/"
161 # echo "mv $RELDIR/patch-${LAST_REL}-${REL}.gz ~"
162 # echo "mv $RELDIR/diffstat-${LAST_REL}-${REL} ~"
163 # echo "mv $RELDIR/shortlog-${RELEASE} ~"
165 echo "# This is a stable release"
166 echo "# finalize it:"
168 echo "kup --host= ${HOST} --subcmd=kup-server put --tar --prefix=linux-${RELEASE}/ /pub/scm/linux/kernel/git/stable/linux-stable.git v${RELEASE} linux-${RELEASE}.tar.asc /pub/linux/kernel/v${VER}/linux-${RELEASE}.tar.gz" | tee -a ${SCRIPT}
169 echo " kup
--host = ${HOST} --subcmd=kup-server put ChangeLog-${RELEASE} ChangeLog-${RELEASE}.asc /pub/linux/kernel/v${VER}/" | tee -a ${SCRIPT}
170 echo "kup --host= ${HOST} --subcmd=kup-server put patch-${RELEASE} patch-${RELEASE}.asc /pub/linux/kernel/v${VER}/patch-${RELEASE}.gz" | tee -a ${SCRIPT}
171 if [ $INCREMENTAL -ne 0 ]; then
172 echo " kup
--host = ${HOST} --subcmd=kup-server put patch-${LAST_REL}-${REL} patch-${LAST_REL}-${REL}.asc /pub/linux/kernel/v${VER}/incr/patch-${LAST_REL}-${REL}.gz" | tee -a ${SCRIPT}
174 # echo "mv $RELDIR/patch-${LAST_REL}-${REL}.gz ~"
175 # echo "mv $RELDIR/diffstat-${LAST_REL}-${REL} ~"
176 # echo "mv $RELDIR/shortlog-${RELEASE} ~"
177 # LATEST=`ls ~/v${VER}/LATEST-IS*`
178 # LATEST=`basename $LATEST`
179 # echo "# current LATEST-IS is '$LATEST' is that what it should be?"
180 # echo "# mv ~/v${VER}/${LATEST} ~/v${VER}/LATEST-IS-${RELEASE}"
185 #Subject: Linux ${RELEASE}
187 cat << __EOF__ > ${RELDIR} /email
188 I'm announcing the release of the ${RELEASE} kernel.
190 All users of the ${BASE} kernel series must upgrade.
192 The updated ${BASE} .y git tree can be found at:
193 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux- ${BASE} .y
194 and can be browsed at the normal kernel.org git web browser:
195 https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
205 if [ $INCREMENTAL -ne 0 ]; then
206 cat ${RELDIR}/diffstat-${LAST_REL}-${REL} >> ${RELDIR} / email
208 cat ${RELDIR}/diffstat-${RELEASE} >> ${RELDIR} / email
211 echo "" >> ${RELDIR} / email
212 cat $RELDIR / shortlog-
$RELEASE >> ${RELDIR} / email
215 # create script to send email out
217 cat << __EOF__ > ${RELDIR} /send_email
220 FROM="Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
221 TO="linux-kernel@vger.kernel.org, akpm@linux-foundation.org, torvalds@linux-foundation.org, stable@vger.kernel.org"
222 CC="lwn@lwn.net, jslaby@suse.cz"
223 SUBJECT="Linux ${RELEASE} "
224 ID=\$(make_message_id)
227 makemail -to="\ ${TO} " \\
230 -subject="\ ${SUBJECT} " \\
231 -message_id="\ ${ID} " \\
232 -date="\$(date -R)" \\
235 PATCH_ID=\$(make_message_id)
236 cat patch- ${LAST_REL} - ${REL} | \\
237 makemail -to="\ ${TO} " \\
240 -subject="Re: \ ${SUBJECT} " \\
241 -message_id="\ ${PATCH_ID} " \\
242 -reply_to="\ ${ID} " \\
243 -date="\$(date -R)" \\
246 git send-email msg.000 msg.001
249 chmod 755 ${RELDIR} / send_email