summaryrefslogtreecommitdiff
path: root/packdist.sh
diff options
context:
space:
mode:
authorStefan Bühler <stbuehler@web.de>2013-11-10 13:41:12 +0000
committerStefan Bühler <stbuehler@web.de>2013-11-10 13:41:12 +0000
commit1985df2a48fdcf66de2e1651150c47c9af680d5a (patch)
treef66a6fc6e98273808895f823bd2a99e828c3beef /packdist.sh
parentcb02c738602ea6d71fb19da83151174c771ca4d9 (diff)
downloadlighttpd1.4-1985df2a48fdcf66de2e1651150c47c9af680d5a.tar.gz
lighttpd1.4-1985df2a48fdcf66de2e1651150c47c9af680d5a.zip
add "packdist.sh" script to build (pre-) releases
From: Stefan Bühler <stbuehler@web.de> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2915 152afb58-edef-0310-8abb-c4023f1b3aa9
Diffstat (limited to 'packdist.sh')
-rwxr-xr-xpackdist.sh295
1 files changed, 295 insertions, 0 deletions
diff --git a/packdist.sh b/packdist.sh
new file mode 100755
index 00000000..a24268d0
--- /dev/null
+++ b/packdist.sh
@@ -0,0 +1,295 @@
+#!/bin/bash
+
+SRCTEST=src/server.c
+PACKAGE=lighttpd
+BASEDOWNLOADURL="http://download.lighttpd.net/lighttpd/releases-1.4.x"
+SNAPSHOTURL="http://download.lighttpd.net/lighttpd/snapshots-1.4.x"
+
+AUTHOR=stbuehler
+
+# may take one argument for prereleases like
+# ./packdist.sh [--nopack] rc1-r10
+
+syntax() {
+ echo "./packdist.sh [--nopack] [--help] [rc1-r10]" >&2
+ exit 2
+}
+
+if [ ! -f ${SRCTEST} ]; then
+ echo "Current directory is not the source directory"
+ exit 1
+fi
+
+dopack=1
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ "--nopack")
+ dopack=0
+ ;;
+ "--help")
+ syntax
+ ;;
+ "rc"*)
+ if [ -n "$append" ]; then
+ echo "Only one append allowed" >&2
+ syntax
+ fi
+ echo "Appending '$1'"
+ append="$1"
+ BASEDOWNLOADURL="${SNAPSHOTURL}"
+ ;;
+ *)
+ echo "Unknown option '$1'" >&2
+ syntax
+ ;;
+ esac
+ shift
+done
+
+force() {
+ "$@" || {
+ echo "Command failed: $*"
+ exit 1
+ }
+}
+
+# summarize all changes since last release
+genchanges() {
+ (
+ cat ../NEWS | sed "/^- ${version}/,/^-/p;d" | sed "/^- /d;/^$/d" | sed -e 's/^ \*/\*/'
+ ) > CHANGES
+ return 0
+}
+
+# genereate links in old textile format "text":url
+genlinks_changes() {
+ local repourl ticketurl inf out
+ repourl="http://redmine.lighttpd.net/projects/lighttpd/repository/revisions/"
+ ticketurl="http://redmine.lighttpd.net/issues/"
+ inf="$1"
+ outf="$1".links
+ (
+ sed -e 's%\(http://[a-zA-Z0-9.:_/\-]\+\)%"\1":\1%g' |
+ sed -e 's%#\([0-9]\+\)%"#\1":'"${ticketurl}"'\1%g' |
+ sed -e 's%r\([0-9]\+\)%"r\1":'"${repourl}"'\1%g' |
+ sed -e 's%\(CVE-[0-9\-]\+\)%"\1":http://cve.mitre.org/cgi-bin/cvename.cgi?name=\1%g' |
+ cat
+ ) < "$inf" > "$outf"
+}
+genlinks_downloads() {
+ local repourl ticketurl inf out
+ repourl="http://redmine.lighttpd.net/projects/lighttpd/repository/revisions/"
+ ticketurl="http://redmine.lighttpd.net/issues/"
+ inf="$1"
+ outf="$1".links
+ (
+ sed -e 's%\(http://[a-zA-Z0-9.:_/\-]\+\)%"\1":\1%g' |
+ cat
+ ) < "$inf" > "$outf"
+}
+
+blog_post() {
+ if [ -z "${append}" ]; then
+ # release
+ cat <<EOF
+---
+layout: post
+title: ${version}
+author: $AUTHOR
+author_email: ${AUTHOR}@lighttpd.net
+categories:
+- download
+tags:
+- ${version}
+- lighttpd
+- releases
+---
+{% excerpt %}
+h2. Important changes
+
+TODO
+
+h2. Downloads
+
+EOF
+ cat DOWNLOADS.links
+ cat <<EOF
+
+{% endexcerpt %}
+h2. Changes from ${prevversion}
+
+EOF
+ cat CHANGES.links
+ else
+ # pre release
+ cat <<EOF
+---
+layout: post
+title: 'PRE-RELEASE: lighttpd ${version}${append}'
+categories:
+- lighttpd
+tags:
+- '1.4'
+- ${version}
+- lighttpd
+- prerelease
+---
+{% excerpt %}
+We would like to draw your attention to the latest pre-release of the stable 1.4 branch of lighttpd.
+
+You can get the pre-release from these urls:
+EOF
+ cat DOWNLOADS.links
+ cat <<EOF
+
+Please test it as much as possible and provide us with feedback.
+A lot of testing ensures a good release.
+
+<!-- TODO: describe major changes -->
+
+{% endexcerpt %}
+
+h4. Changes from ${prevversion}
+
+EOF
+ cat CHANGES.links
+
+ cat <<EOF
+
+If you want to get the latest source for any branch, you can get it from our svn repository.
+Documentation to do so can be obtained from this page: "DevelSubversion":http://redmine.lighttpd.net/projects/lighttpd/wiki/DevelSubversion
+Bug reports or feature requests can be filed in our ticket system: "New Issue":http://redmine.lighttpd.net/projects/lighttpd/issues/new
+Please make sure to check if there isn't a ticket already here: "Issues":http://redmine.lighttpd.net/projects/lighttpd/issues
+Perhaps you also want to have a look at our "download site":http://download.lighttpd.net/lighttpd/
+
+Thank you for flying light.
+EOF
+ fi
+}
+
+if [ ${dopack} = "1" ]; then
+ force ./autogen.sh
+
+ if [ -d distbuild ]; then
+ # make distcheck may leave readonly files
+ chmod u+w -R distbuild
+ rm -rf distbuild
+ fi
+
+ force mkdir distbuild
+ force cd distbuild
+
+ force ../configure --prefix=/usr
+
+ # force make
+ # force make check
+
+ force make distcheck
+ force make dist-gzip
+ force make dist-bzip2
+ force make dist-xz
+else
+ force cd distbuild
+fi
+
+version=`./config.status -V | head -n 1 | cut -d' ' -f3`
+name="${PACKAGE}-${version}"
+if [ -n "${append}" ]; then
+ cp "${name}.tar.gz" "${name}${append}.tar.gz"
+ cp "${name}.tar.bz2" "${name}${append}.tar.bz2"
+ cp "${name}.tar.xz" "${name}${append}.tar.xz"
+ name="${name}${append}"
+fi
+
+force sha256sum "${name}.tar."{gz,bz2,xz} > "${name}.sha256sum"
+
+rm -f "${name}".tar.*.asc
+
+force gpg -a --output "${name}.tar.gz.asc" --detach-sig "${name}.tar.gz"
+force gpg -a --output "${name}.tar.bz2.asc" --detach-sig "${name}.tar.bz2"
+force gpg -a --output "${name}.tar.xz.asc" --detach-sig "${name}.tar.xz"
+
+(
+ echo "* ${BASEDOWNLOADURL}/${name}.tar.gz"
+ echo "** GPG signature: ${BASEDOWNLOADURL}/${name}.tar.gz.asc"
+ echo "** SHA256: @$(sha256sum ${name}.tar.gz | cut -d' ' -f1)@"
+ echo "* ${BASEDOWNLOADURL}/${name}.tar.bz2"
+ echo "** GPG signature: ${BASEDOWNLOADURL}/${name}.tar.bz2.asc"
+ echo "** SHA256: @$(sha256sum ${name}.tar.bz2 | cut -d' ' -f1)@"
+ echo "* ${BASEDOWNLOADURL}/${name}.tar.xz"
+ echo "** GPG signature: ${BASEDOWNLOADURL}/${name}.tar.xz.asc"
+ echo "** SHA256: @$(sha256sum ${name}.tar.xz | cut -d' ' -f1)@"
+ echo "* SHA256 checksums: ${BASEDOWNLOADURL}/${name}.sha256sum"
+) > DOWNLOADS
+
+(
+ echo "* \"${name}.tar.gz\":${BASEDOWNLOADURL}/${name}.tar.gz (\"GPG signature\":${BASEDOWNLOADURL}/${name}.tar.gz.asc)"
+ echo "** SHA256: @$(sha256sum ${name}.tar.gz | cut -d' ' -f1)@"
+ echo "* \"${name}.tar.bz\":${BASEDOWNLOADURL}/${name}.tar.bz2 (\"GPG signature\":${BASEDOWNLOADURL}/${name}.tar.bz2.asc)"
+ echo "** SHA256: @$(sha256sum ${name}.tar.bz2 | cut -d' ' -f1)@"
+ echo "* \"${name}.tar.xz\":${BASEDOWNLOADURL}/${name}.tar.xz (\"GPG signature\":${BASEDOWNLOADURL}/${name}.tar.xz.asc)"
+ echo "** SHA256: @$(sha256sum ${name}.tar.xz | cut -d' ' -f1)@"
+ echo "* \"SHA256 checksums\":${BASEDOWNLOADURL}/${name}.sha256sum"
+) > DOWNLOADS.links
+
+force genchanges
+force genlinks_changes CHANGES
+#force genlinks_downloads DOWNLOADS
+
+prevversion="${version%.*}.$((${version##*.} - 1))"
+
+if [ -z "${append}" ]; then
+ # only for Releases
+ (
+ cat <<EOF
+h1. Release Info
+
+* Version: ${version}
+* Previous version: [[Release-${prevversion//./_}|${prevversion}]]
+* Branch: 1.4
+* Status: stable
+* Release Purpose: bug fixes
+* Release manager: $AUTHOR
+* Released date: $(date +"%Y-%m-%d")
+
+h1. Important changes from ${prevversion}
+
+TODO
+
+h1. Downloads
+
+EOF
+ cat DOWNLOADS
+ cat <<EOF
+
+h1. Changes from ${prevversion}
+
+EOF
+ cat CHANGES
+ cat <<EOF
+
+h1. External references
+
+* http://www.lighttpd.net/$(date +"%Y/%m/%d")/${version//./-}
+
+EOF
+ ) > "Release-${version//./_}.page"
+
+ cat "Release-${version//./_}.page"
+fi
+
+echo
+echo -------
+echo
+
+
+
+blog_post > $(date +"%Y-%m-%d")-"${version//./-}.textile"
+cat $(date +"%Y-%m-%d")-"${version//./-}.textile"
+
+echo
+echo -------
+echo
+
+echo wget "${BASEDOWNLOADURL}/${name}".'{tar.gz,tar.bz2,tar.xz,sha256sum}; sha256sum -c '${name}'.sha256sum'