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