]> Cypherpunks.ru repositories - goredo.git/blob - makedist
Download link for 2.6.2 release
[goredo.git] / makedist
1 #!/bin/sh -ex
2
3 cur=$(pwd)
4 tmp=$(mktemp -d)
5 release=$1
6 [ -n "$release" ]
7
8 git clone . $tmp/goredo-$release
9 cd $tmp/goredo-$release
10 git checkout v$release
11 go generate
12
13 redo-ifchange VERSION
14
15 ########################################################################
16 cd doc
17 cat > download.texi <<EOF
18 You can obtain releases source code prepared tarballs on
19 @url{http://www.goredo.cypherpunks.ru/}.
20 EOF
21
22 mkinfo() {
23     ${MAKEINFO:-makeinfo} --plaintext \
24         --set-customization-variable ASCII_PUNCTUATION=1 \
25         -D "VERSION `cat ../VERSION`" $@
26 }
27
28 texi=$(mktemp)
29
30 cat > $texi <<EOF
31 \input texinfo
32 @documentencoding UTF-8
33 @settitle NEWS
34 @node News
35 `sed -n '3,$p' < news.texi`
36 @bye
37 EOF
38 mkinfo --output NEWS $texi
39
40 cat > $texi <<EOF
41 \input texinfo
42 @documentencoding UTF-8
43 @settitle INSTALL
44 @include install.texi
45 @bye
46 EOF
47 mkinfo --output INSTALL $texi
48
49 cat > $texi <<EOF
50 \input texinfo
51 @documentencoding UTF-8
52 @settitle THANKS
53 `cat thanks.texi`
54 @bye
55 EOF
56 mkinfo --output THANKS $texi
57
58 rm $texi
59 redo goredo.info
60 mv goredo.info INSTALL NEWS THANKS ..
61 cd ..
62
63 ########################################################################
64
65 mkdir -p src
66 mv *.go go.* src
67 cd src
68 go mod vendor
69 modvendor -v -copy="**/*_test.go **/private-gen.go **/main.go **/vectors.json **/gen.go"
70 rm -rf vendor/golang.org/x/sys/plan9 vendor/golang.org/x/sys/windows
71 find vendor/golang.org/x/sys -name "*_test.go" -delete
72 find . \( -name .gitignore -o -name .travis.yml \) -delete
73 cd ..
74
75 ########################################################################
76
77 rm -rf *.texi .redo .git .gitignore doc makedist VERSION.do
78 find . -type d -exec chmod 755 {} +
79 find . -type f -exec chmod 644 {} +
80 find t/redo-sh.tests -name test -exec chmod +x {} +
81 find t -name wrapper.rc -exec chmod +x {} +
82 chmod +x t/apenwarr/sleep t/goredo-*.t
83
84 cd ..
85 tar cvf goredo-"$release".tar --uid=0 --gid=0 --numeric-owner goredo-"$release"
86 zstd -19 -v goredo-"$release".tar
87 tarball=goredo-"$release".tar.zst
88 ssh-keygen -Y sign -f ~/.ssh/sign/goredo@cypherpunks.ru -n file $tarball
89 gpg --armor --detach-sign --sign --local-user 3A528DDE952C7E93 "$tarball"
90 meta4-create -fn "$tarball" -mtime "$tarball" \
91     -sig-pgp "$tarball".asc -sig-ssh "$tarball".sig \
92     http://www.goredo.cypherpunks.ru/download/"$tarball" \
93     http://y.www.goredo.cypherpunks.ru/download/"$tarball" < "$tarball" > "$tarball".meta4
94
95 size=$(( $(stat -f %z $tarball) / 1024 ))
96 release_date=$(date "+%Y-%m-%d")
97
98 release_underscored=`echo $release | tr . _`
99 cat <<EOF
100 An entry for documentation:
101 @item @ref{Release $release_underscored, $release} @tab $release_date @tab $size KiB @tab
102 @url{download/$tarball.meta4, meta4}
103 @url{download/$tarball, tar}
104 @url{download/$tarball.asc, pgp}
105 @url{download/$tarball.sig, ssh}
106 EOF
107
108 mv $tmp/$tarball $tmp/"$tarball".asc $tmp/"$tarball".sig $tarball.meta4 $cur/doc/goredo.html/download
109
110 cat <<EOF
111 Subject: goredo $release release announcement
112
113 I am pleased to announce goredo $release release availability!
114
115 goredo is Go implementation of djb's redo,
116 Makefile replacement that sucks less.
117
118 ------------------------ >8 ------------------------
119
120 The main improvements for that release are:
121
122
123 ------------------------ >8 ------------------------
124
125 goredo's home page is: http://www.goredo.cypherpunks.ru/
126
127 Source code and its signature for that version can be found here:
128
129     http://www.goredo.cypherpunks.ru/download/goredo-${release}.tar.zst ($size KiB)
130     http://www.goredo.cypherpunks.ru/download/goredo-${release}.tar.zst.{asc,sig}
131
132 OpenPGP key: 7531 BB84 FAF0 BF35 960C  63B9 3A52 8DDE 952C 7E93
133              goredo releases <goredo@cypherpunks.ru>
134 OpenSSH key: SHA256:ddOaswnUBtNbuoEBYQtfcF59sR3Bvzo9pIfSlw9sKx8
135
136 Please send questions regarding the use of goredo, bug reports and patches
137 to mailing list: http://lists.cypherpunks.ru/goredo_002ddevel.html
138 EOF
139
140 echo mutt -s \"goredo $release release announcement\" \
141     goredo-devel@lists.cypherpunks.ru \
142     -a $cur/doc/goredo.html/download/"$tarball".meta4