]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Add release script
authorChris Wright <chrisw@osdl.org>
Thu, 30 Jun 2005 00:57:23 +0000 (17:57 -0700)
committerChris Wright <chrisw@osdl.org>
Thu, 30 Jun 2005 00:57:23 +0000 (17:57 -0700)
scripts/dorelease [new file with mode: 0755]

diff --git a/scripts/dorelease b/scripts/dorelease
new file mode 100755 (executable)
index 0000000..f97ea98
--- /dev/null
@@ -0,0 +1,69 @@
+#!/bin/bash
+# build -stable release from current -stable series
+# Copyright (c) 2005 Chris Wright <chrisw@osdl.org>
+
+if [ $# -ne 1 ]; then
+       echo -e "Usage:\t $0 release_number\ne.g.\t $0 2.6.11.12"
+       exit 1
+fi
+
+RELEASE=$1
+REL_ARRAY=(${RELEASE//./ })
+BASE=${REL_ARRAY[0]}.${REL_ARRAY[1]}.${REL_ARRAY[2]}
+REL=${REL_ARRAY[3]}
+LAST=$(($REL - 1))
+if [ $LAST -eq 0 ]; then
+       LAST_REL=${BASE}
+else
+       LAST_REL=${BASE}.${LAST}
+fi
+echo "creating stable release $RELEASE (base $BASE last version $LAST_REL)"
+echo "[ret] to continue ^C to quit"
+read
+
+RELDIR="../release-$RELEASE"
+mkdir $RELDIR
+
+# apply patches
+quilt series | while read PATCH
+do
+       cat $PATCH >> $RELDIR/apply.mbox
+done
+dotest $RELDIR/apply.mbox
+rm $RELDIR/apply.mbox
+
+# update EXTRAVERSION
+vim +/^EXTRAVERSION Makefile
+
+# check that the EXTRAVERSION change is all that's outstanding
+echo
+echo "**** About to commit ****"
+echo
+git-diff-files -p
+
+echo "[ret] to continue"
+read
+
+# commit EXTRAVERSION change
+git-update-cache Makefile
+RELEASE_COMMIT=$(echo "Linux $RELEASE" | git-commit-tree $(git-write-tree) -p HEAD)
+echo $RELEASE_COMMIT > .git/HEAD
+
+# tag it
+TAG=$(echo "This is the $RELEASE stable release" | git-tag-script v$RELEASE)
+echo $TAG > .git/refs/tags/v$RELEASE
+
+BASE_COMMIT="$(git-cat-file tag $(cat .git/refs/tags/v${BASE}) | grep object | cut -d" " -f2)"
+LAST_COMMIT="$(git-cat-file tag $(cat .git/refs/tags/v${LAST_REL}) | grep object | cut -d" " -f2)"
+
+# build release materials, tarball, base patch, incr patch, changelog
+git-tar-tree HEAD linux-$RELEASE | gzip -9 > $RELDIR/linux-${RELEASE}.tar.gz
+git-diff-tree -p $BASE_COMMIT $RELEASE_COMMIT | gzip -9 > $RELDIR/patch-${RELEASE}.gz
+git-diff-tree -p $LAST_COMMIT $RELEASE_COMMIT | gzip -9 > $RELDIR/patch-${LAST_REL}-${REL}.gz
+zcat $RELDIR/patch-${LAST_REL}-${REL}.gz | diffstat -p1 > $RELDIR/diffstat-${LAST_REL}-${REL} 2>/dev/null
+git log ${LAST_COMMIT}..${RELEASE_COMMIT} > $RELDIR/ChangeLog-$RELEASE
+< $RELDIR/ChangeLog-$RELEASE git-shortlog > $RELDIR/shortlog-$RELEASE
+
+echo "ready to upload files"
+echo "scp $RELDIR/* master.kernel.org:$RELDIR/"
+echo "don't forget to update LATEST-IS"