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