]> Cypherpunks.ru repositories - gogost.git/blob - makedist.sh
Use Texinfo 7.0 features
[gogost.git] / makedist.sh
1 #!/bin/sh -ex
2
3 cur=$(pwd)
4 tmp=$(mktemp -d)
5 release=$1
6 [ -n "$release" ]
7
8 redo-ifchange streebog256
9 git clone . $tmp/gogost-$release
10 cd $tmp/gogost-$release
11 git checkout v$release
12 redo VERSION
13 go mod vendor
14 mkdir contrib
15 cp ~/work/redo/apenwarr/minimal/do contrib/do
16
17 cat > download.texi <<EOF
18 You can obtain releases source code prepared tarballs on
19 @url{http://www.gogost.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 cat > $texi <<EOF
30 \input texinfo
31 @documentencoding UTF-8
32 @settitle INSTALL
33 @include install.texi
34 @bye
35 EOF
36 mkinfo --output INSTALL $texi
37
38 cat > $texi <<EOF
39 \input texinfo
40 @documentencoding UTF-8
41 @settitle NEWS
42 @include news.texi
43 @bye
44 EOF
45 mkinfo --output NEWS $texi
46
47 cat > $texi <<EOF
48 \input texinfo
49 @documentencoding UTF-8
50 @settitle FAQ
51 @include faq.texi
52 @bye
53 EOF
54 mkinfo --output FAQ $texi
55
56 rm -rf .git
57 redo-cleanup full
58 rm -f \
59     $texi \
60     *.texi \
61     .gitignore \
62     clean.do \
63     makedist.sh \
64     style.css \
65     TODO \
66     VERSION.do \
67     www.do
68
69 perl -i -npe "s/build/build -mod=vendor/" default.do
70 perl -i -npe "s/test/test -mod=vendor/" bench.do
71
72 find . -type d -exec chmod 755 {} +
73 find . -type f -exec chmod 644 {} +
74 chmod +x contrib/do
75
76 cd ..
77 tar cvf gogost-"$release".tar --uid=0 --gid=0 --numeric-owner gogost-"$release"
78 zstd -19 -v gogost-"$release".tar
79 tarball=gogost-"$release".tar.zst
80 gpg --detach-sign --sign --local-user 82343436696FC85A $tarball
81 gpg --enarmor < "$tarball".sig |
82     sed "/^Comment:/d ; s/ARMORED FILE/SIGNATURE/" > "$tarball".asc
83 meta4-create -file "$tarball" -mtime "$tarball" -sig "$tarball".asc \
84     http://www.gogost.cypherpunks.ru/"$tarball" \
85     http://y.www.gogost.cypherpunks.ru/"$tarball" > "$tarball".meta4
86
87 size=$(( $(stat -f %z $tarball) / 1024 ))
88 hash=$(gpg --print-md SHA256 < $tarball)
89 hashsb=$($HOME/work/gogost/streebog256 < $tarball)
90 release_date=$(date "+%Y-%m-%d")
91
92 cat <<EOF
93 An entry for documentation:
94 @item @ref{Release $release, $release} @tab $release_date @tab $size KiB
95 @tab
96     @url{$tarball.meta4, meta4}
97     @url{$tarball, link}
98     @url{$tarball.sig, sig}
99 @tab @code{$hash}
100 @tab @code{$hashsb}
101 EOF
102
103 cat <<EOF
104 Subject: [EN] GoGOST $release release announcement
105
106 I am pleased to announce GoGOST $release release availability!
107
108 GoGOST is free software pure Go GOST cryptographic functions library.
109 GOST is GOvernment STandard of Russian Federation (and Soviet Union).
110
111 ------------------------ >8 ------------------------
112
113 The main improvements for that release are:
114
115
116 ------------------------ >8 ------------------------
117
118 GoGOST'es home page is: http://www.gogost.cypherpunks.ru/
119
120 Source code and its signature for that version can be found here:
121
122     http://www.gogost.cypherpunks.ru/gogost-${release}.tar.zst ($size KiB)
123     http://www.gogost.cypherpunks.ru/gogost-${release}.tar.zst.sig
124
125 Streebog-256 hash: $hashsb
126 SHA256 hash: $hash
127 GPG key: CEBD 1282 2C46 9C02 A81A  0467 8234 3436 696F C85A
128          GoGOST releases <gogost at cypherpunks dot ru>
129
130 Please send questions regarding the use of GoGOST, bug reports and patches
131 to mailing list: http://lists.cypherpunks.ru/gost.html
132 EOF
133
134 cat <<EOF
135 Subject: [RU] Состоялся релиз GoGOST $release
136
137 Я рад сообщить о выходе релиза GoGOST $release!
138
139 GoGOST это свободное программное обеспечение реализующее
140 криптографические функции ГОСТ на чистом Go. ГОСТ -- ГОсударственный
141 СТандарт Российской Федерации (а также Советского Союза).
142
143 ------------------------ >8 ------------------------
144
145 Основные усовершенствования в этом релизе:
146
147
148 ------------------------ >8 ------------------------
149
150 Домашняя страница GoGOST: http://www.gogost.cypherpunks.ru/
151
152 Исходный код и его подпись для этой версии могут быть найдены здесь:
153
154     http://www.gogost.cypherpunks.ru/gogost-${release}.tar.zst ($size KiB)
155     http://www.gogost.cypherpunks.ru/gogost-${release}.tar.zst.sig
156
157 Streebog-256 хэш: $hashsb
158 SHA256 хэш: $hash
159 GPG ключ: CEBD 1282 2C46 9C02 A81A  0467 8234 3436 696F C85A
160           GoGOST releases <gogost at cypherpunks dot ru>
161
162 Пожалуйста, все вопросы касающиеся использования GoGOST, отчёты об
163 ошибках и патчи отправляйте в gost почтовую рассылку:
164 http://lists.cypherpunks.ru/gost.html
165 EOF
166
167 mv $tmp/$tarball $tmp/"$tarball".sig $tmp/"$tarball".meta4 $cur/gogost.html/
168 rm -fr $tmp