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