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