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