[mod_webdav] create file w/ LOCK request if ENOENT
[lighttpd.git] / packdist.sh
blobb69781198485c971bc0f8e9cca07aad98ce2909f
1 #!/bin/bash
3 SRCTEST=src/server.c
4 PACKAGE=lighttpd
5 BASEDOWNLOADURL="http://download.lighttpd.net/lighttpd/releases-1.4.x"
6 SNAPSHOTURL="http://download.lighttpd.net/lighttpd/snapshots-1.4.x"
8 AUTHOR=stbuehler
10 # may take one argument for prereleases like
11 # ./packdist.sh [--nopack] rc1-r10
13 syntax() {
14 echo "./packdist.sh [--nopack] [--help] [~rc1]" >&2
15 exit 2
18 if [ ! -f ${SRCTEST} ]; then
19 echo "Current directory is not the source directory"
20 exit 1
23 dopack=1
25 while [ $# -gt 0 ]; do
26 case "$1" in
27 "--nopack")
28 dopack=0
30 "--help")
31 syntax
33 "rc"*|"~rc"*)
34 if [ -n "$append" ]; then
35 echo "Only one append allowed" >&2
36 syntax
38 echo "Appending '$1'"
39 append="$1"
40 BASEDOWNLOADURL="${SNAPSHOTURL}"
43 echo "Unknown option '$1'" >&2
44 syntax
46 esac
47 shift
48 done
50 force() {
51 "$@" || {
52 echo "Command failed: $*"
53 exit 1
57 # summarize all changes since last release
58 genchanges() {
60 cat ../NEWS | sed "/^- ${version}/,/^-/p;d" | sed "/^- /d;/^$/d" | sed -e 's/^ \*/\*/'
61 ) > CHANGES
62 return 0
65 # genereate links in old textile format "text":url
66 genlinks_changes() {
67 local repourl ticketurl inf out
68 repourl="http://redmine.lighttpd.net/projects/lighttpd/repository/revisions/"
69 ticketurl="http://redmine.lighttpd.net/issues/"
70 inf="$1"
71 outf="$1".links
73 sed -e 's%\(http://[a-zA-Z0-9.:_/\-]\+\)%"\1":\1%g' |
74 sed -e 's%#\([0-9]\+\)%"#\1":'"${ticketurl}"'\1%g' |
75 sed -e 's%r\([0-9]\+\)%"r\1":'"${repourl}"'\1%g' |
76 sed -e 's%\(CVE-[0-9\-]\+\)%"\1":http://cve.mitre.org/cgi-bin/cvename.cgi?name=\1%g' |
77 cat
78 ) < "$inf" > "$outf"
80 genlinks_downloads() {
81 local repourl ticketurl inf out
82 repourl="http://redmine.lighttpd.net/projects/lighttpd/repository/revisions/"
83 ticketurl="http://redmine.lighttpd.net/issues/"
84 inf="$1"
85 outf="$1".links
87 sed -e 's%\(http://[a-zA-Z0-9.:_/\-]\+\)%"\1":\1%g' |
88 cat
89 ) < "$inf" > "$outf"
92 blog_post() {
93 if [ -z "${append}" ]; then
94 # release
95 cat <<EOF
96 ---
97 layout: post
98 title: ${version}
99 author: $AUTHOR
100 author_email: ${AUTHOR}@lighttpd.net
101 categories:
102 - download
103 tags:
104 - ${version}
105 - lighttpd
106 - releases
108 {% excerpt %}
110 TODO
112 h2. Important changes
114 TODO
116 h2. Downloads
119 cat DOWNLOADS.links
120 cat <<EOF
122 {% endexcerpt %}
123 h2. Changes from ${prevversion}
126 cat CHANGES.links
127 else
128 # pre release
129 cat <<EOF
131 layout: post
132 title: 'PRE-RELEASE: lighttpd ${version}${append}'
133 categories:
134 - lighttpd
135 tags:
136 - '1.4'
137 - ${version}
138 - lighttpd
139 - prerelease
141 {% excerpt %}
142 We would like to draw your attention to the latest pre-release of the stable 1.4 branch of lighttpd.
144 You can get the pre-release from these urls:
146 cat DOWNLOADS.links
147 cat <<EOF
149 Please test it as much as possible and provide us with feedback.
150 A lot of testing ensures a good release.
152 <!-- TODO: describe major changes -->
154 {% endexcerpt %}
156 h4. Changes from ${prevversion}
159 cat CHANGES.links
161 cat <<EOF
163 If you want to get the latest source for any branch, you can get it from our svn repository.
164 Documentation to do so can be obtained from this page: "DevelSubversion":http://redmine.lighttpd.net/projects/lighttpd/wiki/DevelSubversion
165 Bug reports or feature requests can be filed in our ticket system: "New Issue":http://redmine.lighttpd.net/projects/lighttpd/issues/new
166 Please make sure to check if there isn't a ticket already here: "Issues":http://redmine.lighttpd.net/projects/lighttpd/issues
167 Perhaps you also want to have a look at our "download site":http://download.lighttpd.net/lighttpd/
169 Thank you for flying light.
174 if [ ${dopack} = "1" ]; then
175 force ./autogen.sh
177 if [ -d distbuild ]; then
178 # make distcheck may leave readonly files
179 chmod u+w -R distbuild
180 rm -rf distbuild
183 force mkdir distbuild
184 force cd distbuild
186 force ../configure --prefix=/usr
188 # force make
189 # force make check
191 force make distcheck
192 force fakeroot make dist
193 else
194 force cd distbuild
197 version=`./config.status -V | head -n 1 | cut -d' ' -f3`
198 name="${PACKAGE}-${version}"
199 if [ -n "${append}" ]; then
200 cp "${name}.tar.gz" "${name}${append}.tar.gz"
201 cp "${name}.tar.xz" "${name}${append}.tar.xz"
202 name="${name}${append}"
205 force sha256sum "${name}.tar."{gz,xz} > "${name}.sha256sum"
207 rm -f "${name}".tar.*.asc
209 force gpg -a --output "${name}.tar.gz.asc" --detach-sig "${name}.tar.gz"
210 force gpg -a --output "${name}.tar.xz.asc" --detach-sig "${name}.tar.xz"
213 echo "* ${BASEDOWNLOADURL}/${name}.tar.gz"
214 echo "** GPG signature: ${BASEDOWNLOADURL}/${name}.tar.gz.asc"
215 echo "** SHA256: @$(sha256sum ${name}.tar.gz | cut -d' ' -f1)@"
216 echo "* ${BASEDOWNLOADURL}/${name}.tar.xz"
217 echo "** GPG signature: ${BASEDOWNLOADURL}/${name}.tar.xz.asc"
218 echo "** SHA256: @$(sha256sum ${name}.tar.xz | cut -d' ' -f1)@"
219 echo "* SHA256 checksums: ${BASEDOWNLOADURL}/${name}.sha256sum"
220 ) > DOWNLOADS
223 echo "* \"${name}.tar.gz\":${BASEDOWNLOADURL}/${name}.tar.gz (\"GPG signature\":${BASEDOWNLOADURL}/${name}.tar.gz.asc)"
224 echo "** SHA256: @$(sha256sum ${name}.tar.gz | cut -d' ' -f1)@"
225 echo "* \"${name}.tar.xz\":${BASEDOWNLOADURL}/${name}.tar.xz (\"GPG signature\":${BASEDOWNLOADURL}/${name}.tar.xz.asc)"
226 echo "** SHA256: @$(sha256sum ${name}.tar.xz | cut -d' ' -f1)@"
227 echo "* \"SHA256 checksums\":${BASEDOWNLOADURL}/${name}.sha256sum"
228 ) > DOWNLOADS.links
230 force genchanges
231 force genlinks_changes CHANGES
232 #force genlinks_downloads DOWNLOADS
234 prevversion="${version%.*}.$((${version##*.} - 1))"
236 if [ -z "${append}" ]; then
237 # only for Releases
239 cat <<EOF
240 h1. Release Info
242 * Version: ${version}
243 * Previous version: [[Release-${prevversion//./_}|${prevversion}]]
244 * Branch: 1.4
245 * Status: stable
246 * Release Purpose: bug fixes
247 * Release manager: $AUTHOR
248 * Released date: $(date +"%Y-%m-%d")
250 h1. Important changes from ${prevversion}
252 TODO
254 h1. Downloads
257 cat DOWNLOADS
258 cat <<EOF
260 h1. Changes from ${prevversion}
263 cat CHANGES
264 cat <<EOF
266 h1. External references
268 * http://www.lighttpd.net/$(date +"%Y/%-m/%-d")/${version}
271 ) > "Release-${version//./_}.page"
273 cat "Release-${version//./_}.page"
276 echo
277 echo -------
278 echo
282 blog_post > $(date +"%Y-%m-%d")-"${version}.textile"
283 cat $(date +"%Y-%m-%d")-"${version}.textile"
285 echo
286 echo -------
287 echo
289 echo wget "${BASEDOWNLOADURL}/${name}".'{tar.gz,tar.xz,sha256sum}; sha256sum -c '${name}'.sha256sum'