]> Cypherpunks repositories - keks.git/commitdiff
Tarball preparation
authorSergey Matveev <stargrave@stargrave.org>
Wed, 25 Jun 2025 13:31:52 +0000 (16:31 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 29 Jun 2025 13:45:27 +0000 (16:45 +0300)
15 files changed:
PUBKEY-CM.pub [new file with mode: 0644]
PUBKEY-CM.pub.asc [new file with mode: 0644]
PUBKEY-SSH.pub [new file with mode: 0644]
PUBKEY-SSH.pub.asc [new file with mode: 0644]
makedist [new file with mode: 0755]
spec/.swgignore
spec/INSTALL
spec/Integrity [new file with mode: 0644]
spec/PUBKEY-CM.pub [new symlink]
spec/PUBKEY-CM.pub.asc [new symlink]
spec/PUBKEY-SSH.pub [new symlink]
spec/PUBKEY-SSH.pub.asc [new symlink]
spec/download [new file with mode: 0644]
spec/index
spec/mk-html

diff --git a/PUBKEY-CM.pub b/PUBKEY-CM.pub
new file mode 100644 (file)
index 0000000..5e6bc0f
Binary files /dev/null and b/PUBKEY-CM.pub differ
diff --git a/PUBKEY-CM.pub.asc b/PUBKEY-CM.pub.asc
new file mode 100644 (file)
index 0000000..45e9c40
--- /dev/null
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQTbL/jtRAp+lJhvt3bSI36ECQhstwUCaGEDswAKCRDSI36ECQhs
+twPcAPwLJuuTjhU3y6sSRNqr/69Q452vv1a2TWUNxTCyxCPd0wD/fWPvM/PxO8aW
+lt/Yfko5vPVbnwFP/GczCzugHFGWZws=
+=ydWw
+-----END PGP SIGNATURE-----
diff --git a/PUBKEY-SSH.pub b/PUBKEY-SSH.pub
new file mode 100644 (file)
index 0000000..455baf5
--- /dev/null
@@ -0,0 +1 @@
+keks@cypherpunks.su ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILy9ZiS9KFbm3jpie6SRjP5/ZlMQxozOP95Twsf0xNoU
diff --git a/PUBKEY-SSH.pub.asc b/PUBKEY-SSH.pub.asc
new file mode 100644 (file)
index 0000000..d1f0e8e
--- /dev/null
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQTbL/jtRAp+lJhvt3bSI36ECQhstwUCaGECgwAKCRDSI36ECQhs
+t7PvAP9t+Mcieth/k7qRoQFuiU+mjr3tm2YghPp9HG17HXlwEwD9G6mlqrI9Y5nA
+WDO2u2PADcbzCbYnNx0mYG6RroHC+g4=
+=exd4
+-----END PGP SIGNATURE-----
diff --git a/makedist b/makedist
new file mode 100755 (executable)
index 0000000..955164e
--- /dev/null
+++ b/makedist
@@ -0,0 +1,125 @@
+#!/bin/sh -ex
+
+cur=$(pwd)
+tmp=$(mktemp -d ${TMPDIR:-/tmp}/keks-distXXXXXX)
+release=$1
+[ -n "$release" ]
+
+git clone . $tmp/keks-$release
+git checkout v$release || :
+
+cd $tmp/keks-$release
+echo $release >VERSION
+redo \
+    c/doc/keks.info \
+    c/lib/cm/pub.schema.keks.c.in \
+    go/cm/enc/encrypted.schema.keks \
+    go/cm/hash/prehash.schema.keks \
+    go/cm/sign/pub.schema.keks \
+    go/cm/sign/signed.schema.keks \
+    go/rpc/rpc.schema.keks
+rm -r c/doc/build c/doc/docstringer.log
+
+cd py3/tests
+mkdir fuzz-inputs
+cd fuzz-inputs
+PATH=../../../tcl:$PATH TCLLIBPATH=../../../tcl ../../../tcl/mk-fuzz-inputs
+
+cd ../../../go
+go mod vendor
+./mk-fuzz-testdata
+cd cmd/pp
+go mod vendor
+cd ../../cm
+go mod vendor
+rm -r vendor/golang.org/x/sys/windows
+cd ..
+$HOME/work/sgodup/sgodup -basedir cm/vendor -dupdir cmd/pp/vendor -action hardlink
+$HOME/work/sgodup/sgodup -basedir cm/vendor -dupdir vendor -action hardlink
+cd ..
+
+cd spec
+swg info >../spec.info
+./mk-html
+mv ../spec.info .
+cd ..
+
+redo-cleanup full
+rm -fr .git makedist
+mkdir third-party
+
+cd ..
+zstd -d <$HOME/work/bass/build/distfiles/libtap-0.1.0-44-gb53e4ef.tar.zst >keks-"$release"/third-party/libtap-0.1.0-44-gb53e4ef.tar
+zstd -d <$HOME/src/monocypher-4.0.2.tar.zst >keks-"$release"/third-party/monocypher-4.0.2.tar
+zstd -d <$HOME/work/goredo/doc/goredo.html/download/goredo-2.6.4.tar.zst >keks-"$release"/third-party/goredo-2.6.4.tar
+
+git clone $HOME/work/sharness sharness-v1.2.1
+cd sharness-v1.2.1
+git checkout v1.2.1
+rm -fr .git
+cd ..
+detpax sharness-v1.2.1 >keks-"$release"/third-party/sharness-v1.2.1.tar
+
+git clone $HOME/work/swg swg-v1.0.0
+cd swg-v1.0.0
+git checkout v1.0.0
+rm -fr .git
+cd ..
+detpax swg-v1.0.0 >keks-"$release"/third-party/swg-v1.0.0.tar
+
+detpax keks-"$release" >keks-"$release".tar
+zstd -22 --ultra -v keks-"$release".tar
+tarball=keks-"$release".tar.zst
+ssh-keygen -Y sign -f ~/.ssh/sign/keks@cypherpunks.su -n file "$tarball"
+meta4ra-create -fn "$tarball" -mtime "$tarball" \
+    -sig-ssh "$tarball".sig \
+    http://www.keks.cypherpunks.su/download/"$tarball" \
+    http://y.www.keks.cypherpunks.su/download/"$tarball" <"$tarball" >"$tarball".meta4
+cmsigtool -d 4<$HOME/.cm/sign/keks@cypherpunks.su.pub \
+    8<$HOME/.cm/sign/keks@cypherpunks.su.prv <"$tarball" >"$tarball".sig
+touch -r "$tarball" "$tarball".sig
+
+size=$(( $(stat -f %z $tarball) / 1024 ))
+release_date=$(date "+%Y-%m-%d")
+cat <<EOF
+An entry for documentation:
+$release | $release_date | $size KiB
+    => download/$tarball.meta4
+    => download/$tarball
+    => download/$tarball.sig
+EOF
+
+mv "$tarball" "$tarball".meta4 "$tarball".sig $cur/spec/spec.html/download
+
+cat <<EOF
+Subject: KEKS $release release announcement
+
+I am pleased to announce KEKS $release release availability!
+
+KEKS is compact, deterministic, concise and streaming binary
+serialisation format. It is aimed to be lightweight in terms of CPU,
+memory, storage and codec implementation size usage. It supports wide
+range of data types, making it able to transparently replace JSON.
+
+------------------------ >8 ------------------------
+
+The main improvements for that release are:
+
+
+------------------------ >8 ------------------------
+
+KEKS's home page is: http://www.keks.cypherpunks.su/
+
+Source code and its signature for that version can be found here:
+
+    http://www.keks.cypherpunks.su/download/keks-${release}.tar.zst ($size KiB)
+    http://www.keks.cypherpunks.su/download/keks-${release}.tar.zst.sig
+
+OpenSSH key: SHA256:egDNCXj0/8mCSWVEc3mlB788/yM86m0C5UYitppZyc8
+cm/signed key: C8E1B383FADA392E08F8F9F6B07C2F11861F14BE6D98C008C9AB8A9185527B5F
+EOF
+echo mutt -s \"KEKS $release release announcement\" \
+    keks@lists.cypherpunks.su \
+    -a $cur/spec/spec.html/download/"$tarball".meta4
+
+rm -fr $tmp
index fc8ef183e2da2461a1af71bdbc93aa24aa98f52116a9d58e25cd4dc2ca5acb99..9f870032c73c40b20de8a1ff57f855c82299c334ca5b085b36e78de703d14ecb 100644 (file)
@@ -1,2 +1,4 @@
 ^mk-html$
+^PUBKEY-
 ^spec.html/
+^spec.info$
index b45bcd789aaa3ffecc42c2614cfae28f6c388d92d20f4a54109de51bb3ad90dc..9e31622b7a151e161178bae98d9f36f1a7329da9fef5b63b5d13b4239d2f94a1 100644 (file)
@@ -1,6 +1,10 @@
 Currently there are draft versions of the codec written in
 C99, Go, Python3 and Tcl.
 
+<<[download]\r
+
+<<[Integrity]\r
+
 You can obtain development source code with:
     git clone git://git.cypherpunks.su/keks.git
 
diff --git a/spec/Integrity b/spec/Integrity
new file mode 100644 (file)
index 0000000..c49d86a
--- /dev/null
@@ -0,0 +1,11 @@
+You *have to* verify downloaded tarballs authenticity to be sure that
+you retrieved trusted and untampered software. Metalink4 file contains
+its OpenSSH signature, that can be verified with
+=> PUBKEY-SSH.pub\r
+=> PUBKEY-SSH.pub.asc\r
+[cm/signed/] .sig file can be verified with
+=> PUBKEY-CM.pub\r
+=> PUBKEY-CM.pub.asc\r
+
+=> https://www.openssh.com/ OpenSSH\r
+=> https://gnupg.org/ GnuPG\r
diff --git a/spec/PUBKEY-CM.pub b/spec/PUBKEY-CM.pub
new file mode 120000 (symlink)
index 0000000..524a15e
--- /dev/null
@@ -0,0 +1 @@
+../PUBKEY-CM.pub
\ No newline at end of file
diff --git a/spec/PUBKEY-CM.pub.asc b/spec/PUBKEY-CM.pub.asc
new file mode 120000 (symlink)
index 0000000..82d0d43
--- /dev/null
@@ -0,0 +1 @@
+../PUBKEY-CM.pub.asc
\ No newline at end of file
diff --git a/spec/PUBKEY-SSH.pub b/spec/PUBKEY-SSH.pub
new file mode 120000 (symlink)
index 0000000..7b8572c
--- /dev/null
@@ -0,0 +1 @@
+../PUBKEY-SSH.pub
\ No newline at end of file
diff --git a/spec/PUBKEY-SSH.pub.asc b/spec/PUBKEY-SSH.pub.asc
new file mode 120000 (symlink)
index 0000000..2151320
--- /dev/null
@@ -0,0 +1 @@
+../PUBKEY-SSH.pub.asc
\ No newline at end of file
diff --git a/spec/download b/spec/download
new file mode 100644 (file)
index 0000000..f02f1fb
--- /dev/null
@@ -0,0 +1,4 @@
+0.1.0 | XXXX-XX-XX | XXX KiB
+    => download/keks-0.1.0.tar.zst.meta4\r
+    => download/keks-0.1.0.tar.zst\r
+    => download/keks-0.1.0.tar.zst.sig\r
index 45b0c911d85fbe5985ee003a1bae09c8e3881cfd5d2d71c986cc0e5d863a4508..42c8e2209c9f10d24a711d7c783ca1bf470fa53f911e9a5955383a6ba4c9d5ae 100644 (file)
@@ -36,4 +36,7 @@ requirements below.
       [RPC] -- Remote Procedure Call
    [THANKS]
 
+Announcements go to:
+=> http://lists.cypherpunks.su/keks.html maillist\r
+
 Copyright © 2024-2025 Sergey Matveev <stargrave@stargrave.org>
index 6b8bfbdf61712eafecad02e6f3f2985b88119a5d0c8c5a56f03250aa88a3c64d..43489634257d7cf910f37eca8d85bc018fc6efd721da3908fa4759a6cdb6b0b7 100755 (executable)
@@ -4,5 +4,6 @@
 html=spec.html
 SWG_DO_BACKS=0 SWG_DO_SRC=0 swg htmls $html
 perl -i -npe 's#^<title>.*$#<title>KEKS</title>#' $html/index.html
+cp ../PUBKEY-* $html
 find $html -type d -exec chmod 755 {} +
 find $html -type f -exec chmod 644 {} +