| #!/bin/bash |
| |
| if [ $# -ne 2 ] ; then |
| echo "usage: $0 <quagga-release-tag> <quagga-previous-release-tag>" |
| exit |
| fi |
| |
| errmsg () { |
| echo "Error occurred. To rerun you may first need to delete the tag". |
| exit 1 |
| } |
| |
| trap errmsg ERR |
| |
| REL=${1:?Release version must be given as first argument!} |
| PREV=${2:?Previous release version must be given as second argument!} |
| |
| TMPDIR=`mktemp -d /tmp/quagga-rel-XXXXXXXXX` |
| |
| if [ ! -d $TMPDIR ] ; then |
| echo "Problem making temp directory ${TMPDIR}!" |
| exit 1; |
| fi |
| |
| echo "Tagging branch head as release ${REL}" |
| |
| git tag -u 0x6FE57CA8C1A4AEA6 -m "Quagga release $REL" ${REL} |
| |
| mkdir -p ${TMPDIR}/a || exit 1 |
| mkdir -p ${TMPDIR}/verify || exit 1 |
| |
| echo "Making git archive" |
| |
| ( git archive ${REL} | tar xC ${TMPDIR}/a ) || exit 1 |
| |
| git log ${PREV}..${REL} > ${TMPDIR}/a/${REL}.changelog.txt || exit 1 |
| git log --pretty=%s ${PREV}..${REL} > ${TMPDIR}/a/${REL}.subjects.txt || exit 1 |
| |
| cd ${TMPDIR}/a || exit 1 |
| |
| echo "Doing test build of archive file and making dist tarball" |
| |
| (autoreconf -i && ./configure && make -j && make dist-gzip) || exit 1 |
| |
| echo "Verifying dist tarball" |
| |
| cp ${REL}.tar.gz ${TMPDIR}/verify || exit 1 |
| |
| cd ${TMPDIR}/verify || exit 1 |
| tar -zxf ${REL}.tar.gz || exit 1 |
| cd ${REL} || exit 1 |
| autoreconf -i && ./configure && make -j |
| |
| cd ${TMPDIR}/a || exit 1 |
| gpg -u 0x6FE57CA8C1A4AEA6 -a --detach-sign ${REL}.tar.gz |
| |
| cat <<- EOF |
| |
| Release tagged as: ${REL} |
| |
| Release files are in ${TMPDIR}/a: |
| |
| ${TMPDIR}/a/${REL}.tar.gz |
| ${TMPDIR}/a/${REL}.tar.gz.asc |
| ${TMPDIR}/a/${REL}.changelog.txt |
| |
| If you need to redo the release, you must delete the tag first: |
| |
| git tag -d ${REL} |
| |
| To finish the release: |
| |
| * push the tag to savannah: |
| |
| git push <savannah remote name> tag ${REL} |
| |
| * Upload the 3 files to the savannah releases area: |
| |
| scp ${TMPDIR}/a/${REL}.tar.gz \ |
| ${TMPDIR}/a/${REL}.tar.gz.asc \ |
| ${TMPDIR}/a/${REL}.changelog.txt |
| <username>@dl.sv.nongnu.org:/releases/quagga |
| |
| * Update the version list in bugzilla: |
| |
| https://bugzilla.quagga.net/editversions.cgi?action=add&product=Quagga |
| |
| * Add a news entry to the Savannah front page. The short list of commit |
| subjects (${TMPDIR}/a/${REL}.subjects.txt) may be useful here. |
| |
| * Email the quagga-dev and quagga-users lists |
| |
| EOF |