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