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