blob: 4d7234684e7a88fd6d870661c409931d3fe97e52 [file] [log] [blame]
#!/bin/bash
# build -stable release from current -stable series
# Copyright (c) 2005 Chris Wright <chrisw@osdl.org>
#
# modified/updated for 2.6.34-longterm - Paul Gortmaker.
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
echo $1 | grep -q v
if [ $? = 0 ]; then
echo no \"v\" in version, i.e. 2.6.11, NOT v2.6.11
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
if [ $? != 0 ]; then
echo mkdir for release failed, STBU.
exit 1
fi
# apply patches
~/git/stable/longterm-queue-2.6.34/scripts/queue-builder \
~/git/stable/longterm-queue-2.6.34/queue-2.6.34
if [ $? != 0 ]; then
echo tree build failed, STBU.
exit 1
fi
# update EXTRAVERSION
#vim +/^EXTRAVERSION Makefile
sed -i 's/EXTRAVERSION = \.'$LAST'/EXTRAVERSION = \.'$REL/ Makefile
# check that the EXTRAVERSION change is all that's outstanding
echo
echo "**** About to commit ****"
echo
git diff
echo "[ret] to continue"
read
# commit EXTRAVERSION change
git add Makefile
if [ $? != 0 ]; then
echo git add failed, STBU.
exit 1
fi
git commit -m "Linux $RELEASE"
if [ $? != 0 ]; then
echo git commit failed, STBU.
exit 1
fi
# tag it
git tag -u "${GIT_GPG_KEY}" -m "This is the $RELEASE stable release" v$RELEASE
if [ $? != 0 ]; then
echo git tag failed, STBU.
exit 1
fi
# build release materials, tarball, base patch, incr patch, changelog
git archive --format=tar --prefix=linux-${RELEASE}/ HEAD | gzip -9 > ${RELDIR}/linux-${RELEASE}.tar.gz
if [ $? != 0 ]; then
echo git archive failed, STBU.
exit 1
fi
git diff-tree -p v${BASE} HEAD | gzip -9 > ${RELDIR}/patch-${RELEASE}.gz
if [ $? != 0 ]; then
echo git diff failed, STBU.
exit 1
fi
git diff-tree -p v${LAST_REL} HEAD | gzip -9 > ${RELDIR}/patch-${LAST_REL}-${REL}.gz
if [ $? != 0 ]; then
echo incremental git diff failed, STBU.
exit 1
fi
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}
if [ $? != 0 ]; then
echo Changelog generation failed, STBU.
exit 1
fi
git shortlog < ${RELDIR}/ChangeLog-${RELEASE} > ${RELDIR}/shortlog-${RELEASE}
if [ $? != 0 ]; then
echo shortlog generation failed, STBU.
exit 1
fi
echo "ready to upload files"
echo "scp -r ${RELDIR} master.kernel.org:"
echo "don't forget to update LATEST-IS"