| #!/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" |