blob: 3ab46c01f2c4c55c419e499d3d7002d8cb74fdfd [file] [log] [blame]
#!/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
if [ -z "${GIT_GPG_KEY}" ]; then
echo -e "Error:\tMust set GIT_GPG_KEY env variable"
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
git quiltimport
# 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-index Makefile
git commit -m "Linux $RELEASE"
# tag it
git tag -u "${GIT_GPG_KEY}" -m "This is the $RELEASE stable release" v$RELEASE
# build release materials, tarball, base patch, incr patch, changelog
git-archive --format=tar --prefix=linux-${RELEASE}/ HEAD | gzip -9 > ${RELDIR}/linux-${RELEASE}.tar.gz
git-diff-tree -p v${BASE} HEAD | gzip -9 > ${RELDIR}/patch-${RELEASE}.gz
git-diff-tree -p v${LAST_REL} HEAD | 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 v${LAST_REL}..HEAD > ${RELDIR}/ChangeLog-${RELEASE}
< ${RELDIR}/ChangeLog-${RELEASE} git-shortlog > ${RELDIR}/shortlog-${RELEASE}
echo "ready to upload files"
echo "scp -r ${RELDIR} master.kernel.org:"
echo "don't forget to update LATEST-IS"