]> Cypherpunks.ru repositories - gogost.git/blob - makedist.sh
FAQ
[gogost.git] / makedist.sh
1 #!/bin/sh -ex
2
3 cur=$(pwd)
4 tmp=$(mktemp -d)
5 release=$1
6 [ -n "$release" ]
7
8 git clone . $tmp/gogost-$release
9 cd $tmp/gogost-$release
10 git checkout v$release
11
12 mod_name=$(sed -n 's/^module //p' go.mod)
13 crypto_mod_path=$(sed -n 's#^require \(golang.org/x/crypto\) \(.*\)$#\1@\2#p' go.mod)
14 mkdir -p src/$mod_name
15 mv \
16     gost28147 \
17     gost3410 \
18     gost34112012256 \
19     gost34112012512 \
20     gost341194 \
21     gost3412128 \
22     gost341264 \
23     gost3413 \
24     mgm \
25     prfplus \
26     cmd internal gogost.go go.mod go.sum src/$mod_name
27
28 mkdir -p src/golang.org/x/crypto
29 ( cd $GOPATH/pkg/mod/$crypto_mod_path ; \
30     tar cf - AUTHORS CONTRIBUTORS LICENSE PATENTS README.md pbkdf2 hkdf ) |
31     tar xfC - src/golang.org/x/crypto
32
33 cat > download.texi <<EOF
34 You can obtain releases source code prepared tarballs on
35 @url{http://gocheese.cypherpunks.ru/}.
36 EOF
37
38 texi=$(mktemp)
39 cat > $texi <<EOF
40 \input texinfo
41 @documentencoding UTF-8
42 @settitle INSTALL
43 @include install.texi
44 @bye
45 EOF
46 makeinfo --plaintext -o INSTALL $texi
47 rm $texi
48
49 cat > $texi <<EOF
50 \input texinfo
51 @documentencoding UTF-8
52 @settitle NEWS
53 @include news.texi
54 @bye
55 EOF
56 makeinfo --plaintext -o NEWS $texi
57
58 cat > $texi <<EOF
59 \input texinfo
60 @documentencoding UTF-8
61 @settitle FAQ
62 @include faq.texi
63 @bye
64 EOF
65 makeinfo --plaintext -o NEWS $texi
66
67 find . -name .git -type d | xargs rm -fr
68 rm -f *.texi www.mk style.css makedist.sh TODO
69
70 find . -type d -exec chmod 755 {} \;
71 find . -type f -exec chmod 644 {} \;
72
73 cd ..
74 tar cvf gogost-"$release".tar --uid=0 --gid=0 --numeric-owner gogost-"$release"
75 xz -9 gogost-"$release".tar
76 gpg --detach-sign --sign --local-user 82343436696FC85A gogost-"$release".tar.xz
77
78 tarball=gogost-"$release".tar.xz
79 size=$(( $(stat -f %z $tarball) / 1024 ))
80 hash=$(gpg --print-md SHA256 < $tarball)
81 hashsb=$($HOME/work/gogost/streebog256 < $tarball)
82 release_date=$(date "+%Y-%m-%d")
83
84 cat <<EOF
85 An entry for documentation:
86 @item @ref{Release $release, $release} @tab $release_date @tab $size KiB
87 @tab @url{gogost-${release}.tar.xz, link} @url{gogost-${release}.tar.xz.sig, sign}
88 @tab @code{$hash}
89 @tab @code{$hashsb}
90 EOF
91
92 cat <<EOF
93 Subject: [EN] GoGOST $release release announcement
94
95 I am pleased to announce GoGOST $release release availability!
96
97 GoGOST is free software pure Go GOST cryptographic functions library.
98 GOST is GOvernment STandard of Russian Federation (and Soviet Union).
99
100 ------------------------ >8 ------------------------
101
102 The main improvements for that release are:
103
104
105 ------------------------ >8 ------------------------
106
107 GoGOST'es home page is: http://gogost.cypherpunks.ru/
108
109 Source code and its signature for that version can be found here:
110
111     http://gogost.cypherpunks.ru/gogost-${release}.tar.xz ($size KiB)
112     http://gogost.cypherpunks.ru/gogost-${release}.tar.xz.sig
113
114 Streebog-256 hash: $hashsb
115 SHA256 hash: $hash
116 GPG key: CEBD 1282 2C46 9C02 A81A  0467 8234 3436 696F C85A
117          GoGOST releases <gogost at cypherpunks dot ru>
118
119 Please send questions regarding the use of GoGOST, bug reports and patches
120 to mailing list: https://lists.cypherpunks.ru/mailman/listinfo/gost
121 EOF
122
123 cat <<EOF
124 Subject: [RU] Состоялся релиз GoGOST $release
125
126 Я рад сообщить о выходе релиза GoGOST $release!
127
128 GoGOST это свободное программное обеспечение реализующее
129 криптографические функции ГОСТ на чистом Go. ГОСТ -- ГОсударственный
130 СТандарт Российской Федерации (а также Советского Союза).
131
132 ------------------------ >8 ------------------------
133
134 Основные усовершенствования в этом релизе:
135
136
137 ------------------------ >8 ------------------------
138
139 Домашняя страница GoGOST: http://gogost.cypherpunks.ru/
140
141 Исходный код и его подпись для этой версии могут быть найдены здесь:
142
143     http://gogost.cypherpunks.ru/gogost-${release}.tar.xz ($size KiB)
144     http://gogost.cypherpunks.ru/gogost-${release}.tar.xz.sig
145
146 Streebog-256 хэш: $hashsb
147 SHA256 хэш: $hash
148 GPG ключ: CEBD 1282 2C46 9C02 A81A  0467 8234 3436 696F C85A
149           GoGOST releases <gogost at cypherpunks dot ru>
150
151 Пожалуйста, все вопросы касающиеся использования GoGOST, отчёты об
152 ошибках и патчи отправляйте в gost почтовую рассылку:
153 https://lists.cypherpunks.ru/mailman/listinfo/gost
154 EOF
155
156 mv $tmp/$tarball $tmp/"$tarball".sig $cur/gogost.html/