]> Cypherpunks repositories - bass.git/commitdiff
Ability to build Go with GOST TLS 1.3
authorSergey Matveev <stargrave@stargrave.org>
Thu, 25 Jul 2024 14:29:00 +0000 (17:29 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Thu, 25 Jul 2024 14:29:00 +0000 (17:29 +0300)
build/distfiles/.gitignore
build/distfiles/gogost-6.0.0.tar.zst.meta4 [new file with mode: 0644]
build/distfiles/gostls13-1.22.5.patch.zst.do [moved from build/distfiles/gostls13-debash-1.22.5.tar.zst.do with 83% similarity]
build/skel/lang/go1.22.5.do

index 691968f32ffcaf2a960e6bcd2f8423cb6ffbe2b3344e7838c2ba0891f3c8d336..3ebbc498803612240d19b1c13b31e6404980156b8d521c11a77c8c7c109c3baa 100644 (file)
 /go1.22.5.tar.gz
 /go1.4.3.tar.gz
 /gocheese-4.2.0.tar.zst
+/gogost-6.0.0.tar.zst
 /gogost-v6.0.0-modcache
 /golang.org-x-tools-0.18.0-modcache
 /gomodcache/
 /goredo-2.6.2.tar.zst
 /gosha3-v1.0.0-modcache
-/gostls13-debash-1.22.5.tar.zst
+/gostls13-1.22.5.patch.zst
 /gostls13.git/
 /gpgme-1.23.2.tar.bz2
 /graphviz-11.0.0.tar.xz
diff --git a/build/distfiles/gogost-6.0.0.tar.zst.meta4 b/build/distfiles/gogost-6.0.0.tar.zst.meta4
new file mode 100644 (file)
index 0000000..49cf880
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metalink xmlns="urn:ietf:params:xml:ns:metalink">
+  <file name="gogost-6.0.0.tar.zst">
+    <hash type="blake3-256">5c9f875df0189aa79f43435e80820b8f3b6fd4950948429fe5fba70e5989d7f7</hash>
+    <hash type="blake2b-512">44c5dca0c2d47004d7ce3aa3942c820097a4ecc94ced560b2621e1d4b0154365a5d51ac49c97d7e4440b761d9ea964456f3ad77abd7c278aaab43394b6294428</hash>
+    <hash type="blake2b-256">3ee79481531966f5b9c4f79eea78a375a7f67fb4a97bae5b7ebef1b1fa34f9b5</hash>
+    <hash type="skein-512">23ee7f71a5415ff916a29c8204a5621132f9f3daff46e54a51228d595572d58815ff354649193062c55ab3c7ef5d50f2ea0ba547f882f383dd2e4631f90751c5</hash>
+    <hash type="shake128">123c3cc93c5c9abf6d0e0c146c5a2d323da2848844a228d9bf2cbb330ec719b8</hash>
+    <hash type="shake256">962ec5fba0f1f17fb597c70bd5f8b22e1f40aa7e89651c3cce148abfb3af4f0c5e2e81a688fc1c39132e2932706f2417fc5fa16484f5e950663d5e4821765ea8</hash>
+    <hash type="sha-512">27a0965faee507d429074ea6dad57357754aa30e6890aeb5db567fb3c281c8bc5aa917a68a134b8d5f11772d08b380b1c48a62909f72e8a46fb2c92e73c20ed1</hash>
+    <hash type="sha-256">a6e9037809e2fcf84d65885d621b3d94a70b8538272675c067c2d922724dfb04</hash>
+    <hash type="streebog-512">5967e8ab58eb4f28cd8e4b60279468aa7b1bdd2bc775853fd3bae6c22becdb7cb2e9ab908f1a918f132567cbc83d611c29e0f6b0c942cb4ed3c58a9a51ef673a</hash>
+    <hash type="streebog-256">fd782282ec7f72ffc921437276e4075cc35c03dc1c85f5e3eee5f4d6dfb0e0d4</hash>
+    <hash type="xxh3-128">176aaeeec2c6446c6329f5b3857bfe20</hash>
+    <signature mediatype="application/pgp-signature"><![CDATA[
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEzr0SgixGnAKoGgRngjQ0NmlvyFoFAmafn/EACgkQgjQ0Nmlv
+yFoIeQf/WQ6sQ9is92q0sdclqDoobwtcMqwhHuujCpAFXMC9fHEsW69dbDa1QIKE
+j9ssaSw1e0uQ+2bECVuL874hfLD4mfYVXBiceCzdKtmlG6WCyQcfMIF7cEuRsIeE
+htUXmfNkoqzU8LUzBghXUWZFUnLpEESZ2W396YBP4lHmCl2XKxBcLulkwTGEA6JY
+XmsCeabo5L62IdPhD5T/Rd4oEr58pqvgoV//Bd1jrneJAz4ODsD+ZkmK3GGgFCs/
+389EbaFScqm9fM6KkBBym7gMJ+qF6V5AY7/3VQbZcpGqRYJDVEyAI9iJDaRAHbss
+btDlGjsXHoxg5B4r5T7Hhsv8e4+2Hw==
+=mHFQ
+-----END PGP SIGNATURE-----
+]]></signature>
+    <signature mediatype="application/ssh-signature"><![CDATA[
+-----BEGIN SSH SIGNATURE-----
+U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgW8bjcAb6OOSK11027QOL2nIg3t
+tYhHKao7wAre2IxjsAAAAEZmlsZQAAAAAAAAAGc2hhNTEyAAAAUwAAAAtzc2gtZWQyNTUx
+OQAAAEC7gyBjxa/fEmbmFjCGoGvATYQUbYXDubBK59FadHP8XiuMryWkveLACFuKy+szXQ
+Dit9D4jTIAr8IIOKGan1kK
+-----END SSH SIGNATURE-----
+]]></signature>
+    <size>87756</size>
+    <url>http://www.gogost.cypherpunks.su/gogost-6.0.0.tar.zst</url>
+    <url>http://y.www.gogost.cypherpunks.su/gogost-6.0.0.tar.zst</url>
+  </file>
+</metalink>
similarity index 83%
rename from build/distfiles/gostls13-debash-1.22.5.tar.zst.do
rename to build/distfiles/gostls13-1.22.5.patch.zst.do
index 54345efab6dbb721005c7f22783ef626d6ba7f2ffe89b3f13237e498d23b16c5..0fe055bb10d7acedbe426558f4faf18564d2027879dd1faf662049b105df2853 100644 (file)
@@ -3,8 +3,8 @@ sname=$1.do . "$BASS_ROOT"/lib/rc
 [ -d gostls13.git ] || git clone --depth 1 --bare git://git.cypherpunks.su/gostls13.git >&2
 cd gostls13.git
 tag=go1.22.5-gost
-git fetch origin tag $tag >&2
+git fetch origin tag $tag ${tag%-gost} >&2
 echo gostls13@cypherpunks.su ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILuX3gTqrFb3G2oW/osn3LIa7X5spo0MTsEIRLKVfJrq >allowed-signers
 git config gpg.ssh.allowedSignersFile "$(realpath allowed-signers)"
 git tag --verify $tag >&2
-git archive --prefix=${1%.tar.zst}/ $tag debash | $COMPRESSOR
+git diff ${tag%-gost}..$tag | $COMPRESSOR
index 6b9683a2efab91baa11c3aa055739b479e9aa1dacd3e9fe0b5de06911dc53004..9f552936e6d5328b538449120eab1434bccf499cc41937dfc1f1b8f5c779b879 100644 (file)
@@ -5,21 +5,33 @@ sname=$1.do . "$BASS_ROOT"/lib/rc
 bdeps="rc-paths stow archivers/zstd"
 command -v bash >/dev/null 2>/dev/null || bdeps="$bdeps lang/perl-5.32.1"
 goprev=go1.20.14
-debash=gostls13-debash-1.22.5
-redo-ifchange $bdeps "$DISTFILES"/$NAME.tar.gz \
-    "$DISTFILES"/$debash.tar.zst lang/$goprev
+redo-ifchange $bdeps "$DISTFILES"/$NAME.tar.gz lang/$goprev
+[ -z "$GOSTLS13_ENABLED" ] ||
+    redo-ifchange "$DISTFILES"/gostls13-1.22.5.patch.zst "$DISTFILES"/gogost-6.0.0.tar.zst
 hsh=$("$BASS_ROOT"/build/bin/cksum $BASS_REV $SPATH)
 
 . "$BASS_ROOT"/build/lib/create-tmp-for-build.rc
 "$BASS_ROOT"/build/bin/pkg-inst $bdeps lang/$goprev
 . ./rc
 bootstrap="$(realpath local/$goprev)"
-$TAR xf "$DISTFILES"/$debash.tar.zst
 $TAR xf "$DISTFILES"/$NAME.tar.gz
 "$BASS_ROOT"/bin/rm-r "$SKELBINS"/$ARCH/$NAME-$hsh
 
 cd go
-command -v bash >/dev/null 2>/dev/null || ../$debash/debash
+if [ -n "$GOSTLS13_ENABLED" ] ; then
+    zstd -d <"$DISTFILES"/gostls13-1.22.5.patch.zst | patch >&2
+    cp "$DISTFILES"/gogost-6.0.0.tar.zst .
+    chmod +x debash gogost-install
+    ./gogost-install >&2
+    command -v bash >/dev/null 2>/dev/null || ./debash
+    cat >>src/crypto/tls/gost.go <<EOF
+func init() {
+       GOSTInstall()
+}
+EOF
+else
+    command -v bash >/dev/null 2>/dev/null || "$BASS_ROOT"/contrib/go-debash/v1
+fi
 cd src
 GOROOT_BOOTSTRAP=$bootstrap ./make.bash >&2
 cd ../..