]> Cypherpunks.ru repositories - gogost.git/blob - makedist.sh
Autogenerate INSTALL/NEWS
[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 find . -name .git -type d | xargs rm -fr
59 rm -f *.texi www.mk style.css makedist.sh TODO
60
61 find . -type d -exec chmod 755 {} \;
62 find . -type f -exec chmod 644 {} \;
63
64 cd ..
65 tar cvf gogost-"$release".tar --uid=0 --gid=0 --numeric-owner gogost-"$release"
66 xz -9 gogost-"$release".tar
67 gpg --detach-sign --sign --local-user 82343436696FC85A gogost-"$release".tar.xz
68
69 tarball=gogost-"$release".tar.xz
70 size=$(( $(stat -f %z $tarball) / 1024 ))
71 hash=$(gpg --print-md SHA256 < $tarball)
72 hashsb=$($HOME/work/gogost/streebog256 < $tarball)
73 release_date=$(date "+%Y-%m-%d")
74
75 cat <<EOF
76 An entry for documentation:
77 @item @ref{Release $release, $release} @tab $release_date @tab $size KiB
78 @tab @url{gogost-${release}.tar.xz, link} @url{gogost-${release}.tar.xz.sig, sign}
79 @tab @code{$hash}
80 @tab @code{$hashsb}
81 EOF
82
83 cat <<EOF
84 Subject: [EN] GoGOST $release release announcement
85
86 I am pleased to announce GoGOST $release release availability!
87
88 GoGOST is free software pure Go GOST cryptographic functions library.
89 GOST is GOvernment STandard of Russian Federation (and Soviet Union).
90
91 ------------------------ >8 ------------------------
92
93 The main improvements for that release are:
94
95
96 ------------------------ >8 ------------------------
97
98 GoGOST'es home page is: http://gogost.cypherpunks.ru/
99
100 Source code and its signature for that version can be found here:
101
102     http://gogost.cypherpunks.ru/gogost-${release}.tar.xz ($size KiB)
103     http://gogost.cypherpunks.ru/gogost-${release}.tar.xz.sig
104
105 Streebog-256 hash: $hashsb
106 SHA256 hash: $hash
107 GPG key: CEBD 1282 2C46 9C02 A81A  0467 8234 3436 696F C85A
108          GoGOST releases <gogost at cypherpunks dot ru>
109
110 Please send questions regarding the use of GoGOST, bug reports and patches
111 to mailing list: https://lists.cypherpunks.ru/mailman/listinfo/gost
112 EOF
113
114 cat <<EOF
115 Subject: [RU] Состоялся релиз GoGOST $release
116
117 Я рад сообщить о выходе релиза GoGOST $release!
118
119 GoGOST это свободное программное обеспечение реализующее
120 криптографические функции ГОСТ на чистом Go. ГОСТ -- ГОсударственный
121 СТандарт Российской Федерации (а также Советского Союза).
122
123 ------------------------ >8 ------------------------
124
125 Основные усовершенствования в этом релизе:
126
127
128 ------------------------ >8 ------------------------
129
130 Домашняя страница GoGOST: http://gogost.cypherpunks.ru/
131
132 Исходный код и его подпись для этой версии могут быть найдены здесь:
133
134     http://gogost.cypherpunks.ru/gogost-${release}.tar.xz ($size KiB)
135     http://gogost.cypherpunks.ru/gogost-${release}.tar.xz.sig
136
137 Streebog-256 хэш: $hashsb
138 SHA256 хэш: $hash
139 GPG ключ: CEBD 1282 2C46 9C02 A81A  0467 8234 3436 696F C85A
140           GoGOST releases <gogost at cypherpunks dot ru>
141
142 Пожалуйста, все вопросы касающиеся использования GoGOST, отчёты об
143 ошибках и патчи отправляйте в gost почтовую рассылку:
144 https://lists.cypherpunks.ru/mailman/listinfo/gost
145 EOF
146
147 mv $tmp/$tarball $tmp/"$tarball".sig $cur/gogost.html/