xref: /lighttpd1.4/packdist.sh (revision bff59765)
11985df2aSStefan Bühler#!/bin/bash
21985df2aSStefan Bühler
31985df2aSStefan BühlerSRCTEST=src/server.c
41985df2aSStefan BühlerPACKAGE=lighttpd
50c1aed55SGlenn StraussBASEDOWNLOADURL="https://download.lighttpd.net/lighttpd/releases-1.4.x"
60c1aed55SGlenn StraussSNAPSHOTURL="https://download.lighttpd.net/lighttpd/snapshots-1.4.x"
71985df2aSStefan Bühler
84184c382SGlenn Straussif [[ "`id -un`" != "stbuehler" ]] && [[ -z "$AUTHOR" ]]; then
94184c382SGlenn Strauss  export AUTHOR="gstrauss"
104184c382SGlenn Strauss  export KEYID="AF16D0F0"
114184c382SGlenn Straussfi
124184c382SGlenn Strauss
13052a049fSGlenn StraussAUTHOR="${AUTHOR:-stbuehler}"
141985df2aSStefan Bühler
151985df2aSStefan Bühler# may take one argument for prereleases like
161985df2aSStefan Bühler# ./packdist.sh [--nopack] rc1-r10
171985df2aSStefan Bühler
181985df2aSStefan Bühlersyntax() {
1966d4e93bSStefan Bühler	echo "./packdist.sh [--nopack] [--help] [~rc1]" >&2
201985df2aSStefan Bühler	exit 2
211985df2aSStefan Bühler}
221985df2aSStefan Bühler
231985df2aSStefan Bühlerif [ ! -f ${SRCTEST} ]; then
241985df2aSStefan Bühler	echo "Current directory is not the source directory"
251985df2aSStefan Bühler	exit 1
261985df2aSStefan Bühlerfi
271985df2aSStefan Bühler
281985df2aSStefan Bühlerdopack=1
291985df2aSStefan Bühler
301985df2aSStefan Bühlerwhile [ $# -gt 0 ]; do
311985df2aSStefan Bühler	case "$1" in
321985df2aSStefan Bühler	"--nopack")
331985df2aSStefan Bühler		dopack=0
341985df2aSStefan Bühler		;;
351985df2aSStefan Bühler	"--help")
361985df2aSStefan Bühler		syntax
371985df2aSStefan Bühler		;;
3866d4e93bSStefan Bühler	"rc"*|"~rc"*)
391985df2aSStefan Bühler		if [ -n "$append" ]; then
401985df2aSStefan Bühler			echo "Only one append allowed" >&2
411985df2aSStefan Bühler			syntax
421985df2aSStefan Bühler		fi
431985df2aSStefan Bühler		echo "Appending '$1'"
441985df2aSStefan Bühler		append="$1"
451985df2aSStefan Bühler		BASEDOWNLOADURL="${SNAPSHOTURL}"
461985df2aSStefan Bühler		;;
471985df2aSStefan Bühler	*)
481985df2aSStefan Bühler		echo "Unknown option '$1'" >&2
491985df2aSStefan Bühler		syntax
501985df2aSStefan Bühler		;;
511985df2aSStefan Bühler	esac
521985df2aSStefan Bühler	shift
531985df2aSStefan Bühlerdone
541985df2aSStefan Bühler
551985df2aSStefan Bühlerforce() {
561985df2aSStefan Bühler	"$@" || {
571985df2aSStefan Bühler		echo "Command failed: $*"
581985df2aSStefan Bühler		exit 1
591985df2aSStefan Bühler	}
601985df2aSStefan Bühler}
611985df2aSStefan Bühler
621985df2aSStefan Bühler# summarize all changes since last release
631985df2aSStefan Bühlergenchanges() {
641985df2aSStefan Bühler	(
651985df2aSStefan Bühler		cat ../NEWS | sed "/^- ${version}/,/^-/p;d" | sed "/^- /d;/^$/d" | sed -e 's/^  \*/\*/'
661985df2aSStefan Bühler	) > CHANGES
671985df2aSStefan Bühler	return 0
681985df2aSStefan Bühler}
691985df2aSStefan Bühler
70c752d469SGlenn Strauss# generate links in old textile format "text":url
711985df2aSStefan Bühlergenlinks_changes() {
721985df2aSStefan Bühler	local repourl ticketurl inf out
730c1aed55SGlenn Strauss	repourl="https://redmine.lighttpd.net/projects/lighttpd/repository/revisions/"
740c1aed55SGlenn Strauss	ticketurl="https://redmine.lighttpd.net/issues/"
751985df2aSStefan Bühler	inf="$1"
761985df2aSStefan Bühler	outf="$1".links
771985df2aSStefan Bühler	(
780c1aed55SGlenn Strauss		sed -e 's%\(https://[a-zA-Z0-9.:_/\-]\+\)%"\1":\1%g' |
791985df2aSStefan Bühler		sed -e 's%#\([0-9]\+\)%"#\1":'"${ticketurl}"'\1%g' |
801985df2aSStefan Bühler		sed -e 's%r\([0-9]\+\)%"r\1":'"${repourl}"'\1%g' |
810c1aed55SGlenn Strauss		sed -e 's%\(CVE-[0-9\-]\+\)%"\1":https://cve.mitre.org/cgi-bin/cvename.cgi?name=\1%g' |
821985df2aSStefan Bühler		cat
831985df2aSStefan Bühler	) < "$inf" > "$outf"
841985df2aSStefan Bühler}
851985df2aSStefan Bühlergenlinks_downloads() {
861985df2aSStefan Bühler	local repourl ticketurl inf out
870c1aed55SGlenn Strauss	repourl="https://redmine.lighttpd.net/projects/lighttpd/repository/revisions/"
880c1aed55SGlenn Strauss	ticketurl="https://redmine.lighttpd.net/issues/"
891985df2aSStefan Bühler	inf="$1"
901985df2aSStefan Bühler	outf="$1".links
911985df2aSStefan Bühler	(
920c1aed55SGlenn Strauss		sed -e 's%\(https://[a-zA-Z0-9.:_/\-]\+\)%"\1":\1%g' |
931985df2aSStefan Bühler		cat
941985df2aSStefan Bühler	) < "$inf" > "$outf"
951985df2aSStefan Bühler}
961985df2aSStefan Bühler
971985df2aSStefan Bühlerblog_post() {
981985df2aSStefan Bühler	if [ -z "${append}" ]; then
991985df2aSStefan Bühler		# release
1001985df2aSStefan Bühler		cat <<EOF
1011985df2aSStefan Bühler---
1021985df2aSStefan Bühlerlayout: post
1031985df2aSStefan Bühlertitle: ${version}
1041985df2aSStefan Bühlerauthor: $AUTHOR
1051985df2aSStefan Bühlerauthor_email: ${AUTHOR}@lighttpd.net
1061985df2aSStefan Bühlercategories:
1071985df2aSStefan Bühler- download
1081985df2aSStefan Bühlertags:
1091985df2aSStefan Bühler- ${version}
1101985df2aSStefan Bühler- lighttpd
1111985df2aSStefan Bühler- releases
1121985df2aSStefan Bühler---
1131985df2aSStefan Bühler{% excerpt %}
11490a93221SStefan Bühler
1151985df2aSStefan Bühlerh2. Important changes
1161985df2aSStefan Bühler
1171985df2aSStefan BühlerTODO
1181985df2aSStefan Bühler
1191985df2aSStefan Bühlerh2. Downloads
1201985df2aSStefan Bühler
1211985df2aSStefan BühlerEOF
1221985df2aSStefan Bühler		cat DOWNLOADS.links
1231985df2aSStefan Bühler		cat <<EOF
1241985df2aSStefan Bühler
1251985df2aSStefan Bühler{% endexcerpt %}
1261985df2aSStefan Bühlerh2. Changes from ${prevversion}
1271985df2aSStefan Bühler
1281985df2aSStefan BühlerEOF
1291985df2aSStefan Bühler		cat CHANGES.links
1301985df2aSStefan Bühler	else
1311985df2aSStefan Bühler		# pre release
1321985df2aSStefan Bühler		cat <<EOF
1331985df2aSStefan Bühler---
1341985df2aSStefan Bühlerlayout: post
1351985df2aSStefan Bühlertitle: 'PRE-RELEASE: lighttpd ${version}${append}'
1361985df2aSStefan Bühlercategories:
1371985df2aSStefan Bühler- lighttpd
1381985df2aSStefan Bühlertags:
1391985df2aSStefan Bühler- '1.4'
1401985df2aSStefan Bühler- ${version}
1411985df2aSStefan Bühler- lighttpd
1421985df2aSStefan Bühler- prerelease
1431985df2aSStefan Bühler---
1441985df2aSStefan Bühler{% excerpt %}
1451985df2aSStefan BühlerWe would like to draw your attention to the latest pre-release of the stable 1.4 branch of lighttpd.
1461985df2aSStefan Bühler
1471985df2aSStefan BühlerYou can get the pre-release from these urls:
1481985df2aSStefan BühlerEOF
1491985df2aSStefan Bühler		cat DOWNLOADS.links
1501985df2aSStefan Bühler		cat <<EOF
1511985df2aSStefan Bühler
1521985df2aSStefan BühlerPlease test it as much as possible and provide us with feedback.
1531985df2aSStefan BühlerA lot of testing ensures a good release.
1541985df2aSStefan Bühler
1551985df2aSStefan Bühler<!-- TODO: describe major changes -->
1561985df2aSStefan Bühler
1571985df2aSStefan Bühler{% endexcerpt %}
1581985df2aSStefan Bühler
1591985df2aSStefan Bühlerh4. Changes from ${prevversion}
1601985df2aSStefan Bühler
1611985df2aSStefan BühlerEOF
1621985df2aSStefan Bühler		cat CHANGES.links
1631985df2aSStefan Bühler
1641985df2aSStefan Bühler		cat <<EOF
1651985df2aSStefan Bühler
1661985df2aSStefan BühlerIf you want to get the latest source for any branch, you can get it from our svn repository.
1670c1aed55SGlenn StraussDocumentation to do so can be obtained from this page: "DevelSubversion":https://redmine.lighttpd.net/projects/lighttpd/wiki/DevelSubversion
1680c1aed55SGlenn StraussBug reports or feature requests can be filed in our ticket system: "New Issue":https://redmine.lighttpd.net/projects/lighttpd/issues/new
1690c1aed55SGlenn StraussPlease make sure to check if there isn't a ticket already here: "Issues":https://redmine.lighttpd.net/projects/lighttpd/issues
1700c1aed55SGlenn StraussPerhaps you also want to have a look at our "download site":https://download.lighttpd.net/lighttpd/
1711985df2aSStefan Bühler
1721985df2aSStefan BühlerThank you for flying light.
1731985df2aSStefan BühlerEOF
1741985df2aSStefan Bühler	fi
1751985df2aSStefan Bühler}
1761985df2aSStefan Bühler
1771985df2aSStefan Bühlerif [ ${dopack} = "1" ]; then
1781985df2aSStefan Bühler	force ./autogen.sh
1791985df2aSStefan Bühler
1801985df2aSStefan Bühler	if [ -d distbuild ]; then
1811985df2aSStefan Bühler		# make distcheck may leave readonly files
1821985df2aSStefan Bühler		chmod u+w -R distbuild
1831985df2aSStefan Bühler		rm -rf distbuild
1841985df2aSStefan Bühler	fi
1851985df2aSStefan Bühler
1861985df2aSStefan Bühler	force mkdir distbuild
1871985df2aSStefan Bühler	force cd distbuild
1881985df2aSStefan Bühler
1891985df2aSStefan Bühler	force ../configure --prefix=/usr
1901985df2aSStefan Bühler
1911985df2aSStefan Bühler	# force make
1921985df2aSStefan Bühler	# force make check
1931985df2aSStefan Bühler
194e82b9809SGlenn Strauss	force make -j 4 distcheck
1955307fd5dSStefan Bühler	force fakeroot make dist
1961985df2aSStefan Bühlerelse
1971985df2aSStefan Bühler	force cd distbuild
1981985df2aSStefan Bühlerfi
1991985df2aSStefan Bühler
2001985df2aSStefan Bühlerversion=`./config.status -V | head -n 1 | cut -d' ' -f3`
2011985df2aSStefan Bühlername="${PACKAGE}-${version}"
2021985df2aSStefan Bühlerif [ -n "${append}" ]; then
2031985df2aSStefan Bühler	cp "${name}.tar.gz" "${name}${append}.tar.gz"
2041985df2aSStefan Bühler	cp "${name}.tar.xz" "${name}${append}.tar.xz"
2051985df2aSStefan Bühler	name="${name}${append}"
2061985df2aSStefan Bühlerfi
2071985df2aSStefan Bühler
20866d4e93bSStefan Bühlerforce sha256sum "${name}.tar."{gz,xz} > "${name}.sha256sum"
209*bff59765SGlenn Straussforce sha512sum "${name}.tar."{gz,xz} > "${name}.sha512sum"
2101985df2aSStefan Bühler
2111985df2aSStefan Bühlerrm -f "${name}".tar.*.asc
2121985df2aSStefan Bühler
213052a049fSGlenn Straussforce gpg ${KEYID:+-u "${KEYID}"} -a --output "${name}.tar.gz.asc" --detach-sig "${name}.tar.gz"
214052a049fSGlenn Straussforce gpg ${KEYID:+-u "${KEYID}"} -a --output "${name}.tar.xz.asc" --detach-sig "${name}.tar.xz"
2151985df2aSStefan Bühler
2161985df2aSStefan Bühler(
2171985df2aSStefan Bühler	echo "* ${BASEDOWNLOADURL}/${name}.tar.gz"
2181985df2aSStefan Bühler	echo "** GPG signature: ${BASEDOWNLOADURL}/${name}.tar.gz.asc"
2191985df2aSStefan Bühler	echo "** SHA256: @$(sha256sum ${name}.tar.gz | cut -d' ' -f1)@"
2201985df2aSStefan Bühler	echo "* ${BASEDOWNLOADURL}/${name}.tar.xz"
2211985df2aSStefan Bühler	echo "** GPG signature: ${BASEDOWNLOADURL}/${name}.tar.xz.asc"
2221985df2aSStefan Bühler	echo "** SHA256: @$(sha256sum ${name}.tar.xz | cut -d' ' -f1)@"
2231985df2aSStefan Bühler	echo "* SHA256 checksums: ${BASEDOWNLOADURL}/${name}.sha256sum"
224*bff59765SGlenn Strauss	echo "* SHA512 checksums: ${BASEDOWNLOADURL}/${name}.sha512sum"
2251985df2aSStefan Bühler) > DOWNLOADS
2261985df2aSStefan Bühler
2271985df2aSStefan Bühler(
2281985df2aSStefan Bühler	echo "* \"${name}.tar.gz\":${BASEDOWNLOADURL}/${name}.tar.gz (\"GPG signature\":${BASEDOWNLOADURL}/${name}.tar.gz.asc)"
2291985df2aSStefan Bühler	echo "** SHA256: @$(sha256sum ${name}.tar.gz | cut -d' ' -f1)@"
2301985df2aSStefan Bühler	echo "* \"${name}.tar.xz\":${BASEDOWNLOADURL}/${name}.tar.xz (\"GPG signature\":${BASEDOWNLOADURL}/${name}.tar.xz.asc)"
2311985df2aSStefan Bühler	echo "** SHA256: @$(sha256sum ${name}.tar.xz | cut -d' ' -f1)@"
2321985df2aSStefan Bühler	echo "* \"SHA256 checksums\":${BASEDOWNLOADURL}/${name}.sha256sum"
233*bff59765SGlenn Strauss	echo "* \"SHA512 checksums\":${BASEDOWNLOADURL}/${name}.sha512sum"
2341985df2aSStefan Bühler) > DOWNLOADS.links
2351985df2aSStefan Bühler
2361985df2aSStefan Bühlerforce genchanges
2371985df2aSStefan Bühlerforce genlinks_changes CHANGES
2381985df2aSStefan Bühler#force genlinks_downloads DOWNLOADS
2391985df2aSStefan Bühler
2401985df2aSStefan Bühlerprevversion="${version%.*}.$((${version##*.} - 1))"
2411985df2aSStefan Bühler
2421985df2aSStefan Bühlerif [ -z "${append}" ]; then
2431985df2aSStefan Bühler	# only for Releases
2441985df2aSStefan Bühler	(
2451985df2aSStefan Bühler		cat <<EOF
2461985df2aSStefan Bühlerh1. Release Info
2471985df2aSStefan Bühler
2481985df2aSStefan Bühler* Version: ${version}
2491985df2aSStefan Bühler* Previous version: [[Release-${prevversion//./_}|${prevversion}]]
2501985df2aSStefan Bühler* Branch: 1.4
2511985df2aSStefan Bühler* Status: stable
2521985df2aSStefan Bühler* Release Purpose: bug fixes
2531985df2aSStefan Bühler* Release manager: $AUTHOR
2541985df2aSStefan Bühler* Released date: $(date +"%Y-%m-%d")
2551985df2aSStefan Bühler
2561985df2aSStefan Bühlerh1. Important changes from ${prevversion}
2571985df2aSStefan Bühler
2581985df2aSStefan BühlerTODO
2591985df2aSStefan Bühler
2601985df2aSStefan Bühlerh1. Downloads
2611985df2aSStefan Bühler
2621985df2aSStefan BühlerEOF
2631985df2aSStefan Bühler		cat DOWNLOADS
2641985df2aSStefan Bühler		cat <<EOF
2651985df2aSStefan Bühler
2661985df2aSStefan Bühlerh1. Changes from ${prevversion}
2671985df2aSStefan Bühler
2681985df2aSStefan BühlerEOF
2691985df2aSStefan Bühler		cat CHANGES
2701985df2aSStefan Bühler		cat <<EOF
2711985df2aSStefan Bühler
2721985df2aSStefan Bühlerh1. External references
2731985df2aSStefan Bühler
2740c1aed55SGlenn Strauss* https://www.lighttpd.net/$(date +"%Y/%-m/%-d")/${version}
2751985df2aSStefan Bühler
2761985df2aSStefan BühlerEOF
2771985df2aSStefan Bühler	) > "Release-${version//./_}.page"
2781985df2aSStefan Bühler
2791985df2aSStefan Bühler	cat "Release-${version//./_}.page"
2801985df2aSStefan Bühlerfi
2811985df2aSStefan Bühler
2821985df2aSStefan Bühlerecho
2831985df2aSStefan Bühlerecho -------
2841985df2aSStefan Bühlerecho
2851985df2aSStefan Bühler
2861985df2aSStefan Bühler
2871985df2aSStefan Bühler
28890a93221SStefan Bühlerblog_post > $(date +"%Y-%m-%d")-"${version}.textile"
28990a93221SStefan Bühlercat $(date +"%Y-%m-%d")-"${version}.textile"
2901985df2aSStefan Bühler
2911985df2aSStefan Bühlerecho
2921985df2aSStefan Bühlerecho -------
2931985df2aSStefan Bühlerecho
2941985df2aSStefan Bühler
295*bff59765SGlenn Straussecho wget "${BASEDOWNLOADURL}/${name}".'{tar.gz,tar.xz,sha256sum,sha512sum}'
296*bff59765SGlenn Straussecho sha256sum -c "${name}".sha256sum
297*bff59765SGlenn Straussecho sha512sum -c "${name}".sha512sum
298