]> Cypherpunks.ru repositories - nncp.git/commitdiff
Merge branch 'develop' into master v5.4.0
authorSergey Matveev <stargrave@stargrave.org>
Sun, 27 Sep 2020 15:57:45 +0000 (18:57 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 27 Sep 2020 15:57:45 +0000 (18:57 +0300)
49 files changed:
.gitignore [new file with mode: 0644]
Makefile
README
README.RU
VERSION [deleted file]
VERSION.do [new file with mode: 0644]
all.do [new file with mode: 0644]
bin/.gitignore [new file with mode: 0644]
bin/all.do [new file with mode: 0644]
bin/clean.do [new file with mode: 0644]
bin/cmd.list [new file with mode: 0644]
bin/default.do [new file with mode: 0644]
clean.do [new file with mode: 0644]
config [new file with mode: 0644]
doc.do [new file with mode: 0644]
doc/.gitignore
doc/Makefile [deleted file]
doc/all.do [new file with mode: 0644]
doc/building.texi
doc/default.plantuml.txt.do [new file with mode: 0644]
doc/download.texi
doc/index.texi
doc/install.texi
doc/integration.texi
doc/news.ru.texi
doc/news.texi
doc/nncp.html.do [new file with mode: 0644]
doc/nncp.info.do [new file with mode: 0644]
doc/sources.texi
doc/sp.plantuml [new file with mode: 0644]
doc/sp.texi
doc/sp.txt [deleted file]
doc/style.css
doc/thanks.texi
gopath.do [new file with mode: 0644]
install-strip.do [new file with mode: 0644]
install.do [new file with mode: 0644]
makedist.sh
module-name.do [new file with mode: 0644]
ports/nncp/Makefile
ports/nncp/pkg-plist
src/go.mod
src/go.sum
src/log.go
src/nncp.go
src/sp.go
src/uilive/writer.go
test.do [new file with mode: 0644]
uninstall.do [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..b7ee15f
--- /dev/null
@@ -0,0 +1,3 @@
+gopath
+module-name
+VERSION
index fd65c2511333673266d6a21fc4f2cba16be61d5c..1ae4fe84f5182a176da55887b3c41fc4916f91a8 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,80 +1,19 @@
-GOPATH != pwd
-VERSION != cat VERSION
+REDO ?= contrib/do -c
 
-GO ?= go
-PREFIX ?= /usr/local
+warning:
+       @echo WARNING: this is not real Makefile. Just proxying commands to redo command
 
-SENDMAIL ?= /usr/sbin/sendmail
-CFGPATH ?= $(PREFIX)/etc/nncp.hjson
-SPOOLPATH ?= /var/spool/nncp
-LOGPATH ?= /var/spool/nncp/log
+all: warning
+       $(REDO) $@
 
-BINDIR = $(DESTDIR)$(PREFIX)/bin
-INFODIR = $(DESTDIR)$(PREFIX)/info
-DOCDIR = $(DESTDIR)$(PREFIX)/share/doc/nncp
+clean: warning
+       $(REDO) $@
 
-MOD = go.cypherpunks.ru/nncp/v5
+install: warning
+       $(REDO) $@
 
-LDFLAGS = \
-       -X $(MOD).Version=$(VERSION) \
-       -X $(MOD).DefaultCfgPath=$(CFGPATH) \
-       -X $(MOD).DefaultSendmailPath=$(SENDMAIL) \
-       -X $(MOD).DefaultSpoolPath=$(SPOOLPATH) \
-       -X $(MOD).DefaultLogPath=$(LOGPATH)
+install-strip: warning
+       $(REDO) $@
 
-ALL = \
-       $(BIN)/nncp-bundle \
-       $(BIN)/nncp-call \
-       $(BIN)/nncp-caller \
-       $(BIN)/nncp-cfgenc \
-       $(BIN)/nncp-cfgmin \
-       $(BIN)/nncp-cfgnew \
-       $(BIN)/nncp-check \
-       $(BIN)/nncp-daemon \
-       $(BIN)/nncp-exec \
-       $(BIN)/nncp-file \
-       $(BIN)/nncp-freq \
-       $(BIN)/nncp-log \
-       $(BIN)/nncp-pkt \
-       $(BIN)/nncp-reass \
-       $(BIN)/nncp-rm \
-       $(BIN)/nncp-stat \
-       $(BIN)/nncp-toss \
-       $(BIN)/nncp-xfer
-
-SRC := $(PWD)/src
-BIN := $(PWD)/bin
-
-all: $(ALL)
-
-$(ALL):
-       mkdir -p $(BIN)
-       cd $(SRC) ; GOPATH=$(GOPATH) $(GO) build \
-               -o $(BIN)/$$(basename $@) \
-               -ldflags "$(LDFLAGS)" \
-               $(MOD)/cmd/$$(basename $@)
-
-test:
-       cd $(SRC) ; GOPATH=$(GOPATH) $(GO) test -failfast $(MOD)/...
-
-clean:
-       rm -rf $(BIN)
-
-.PHONY: doc
-
-doc:
-       $(MAKE) -C doc
-
-install: all doc
-       mkdir -p $(BINDIR)
-       cp -f $(ALL) $(BINDIR)
-       for e in $(ALL) ; do chmod 755 $(BINDIR)/$$(basename $$e) ; done
-       mkdir -p $(INFODIR)
-       cp -f doc/nncp.info $(INFODIR)
-       chmod 644 $(INFODIR)/nncp.info
-       mkdir -p $(DOCDIR)
-       cp -f -L AUTHORS NEWS NEWS.RU README README.RU THANKS $(DOCDIR)
-       chmod 644 $(DOCDIR)/*
-
-install-strip: install
-       for e in $(ALL) ; do strip $(BINDIR)/$$(basename $$e) ; done
+uninstall: warning
+       $(REDO) $@
diff --git a/README b/README
index 11f7bc99bfab571685c05117a3420b5bc3a84b1d..1650f2a654352695b7b12dccb0297531866dad38 100644 (file)
--- a/README
+++ b/README
@@ -25,6 +25,6 @@ patches to nncp-devel mailing list:
 https://lists.cypherpunks.ru/pipermail/nncp-devel/
 
 Development Git source code repository currently is located here:
-https://git.cypherpunks.ru/cgit.cgi/nncp.git/
+http://git.cypherpunks.ru/cgit.cgi/nncp.git/
 
 For further information please read either doc/nncp.info or doc/nncp.texi.
index f0ae3c1afccad522c3d992f432b12c463f6c95ad..d19720906c468be3db2c462ace0d3cd2de7ba12a 100644 (file)
--- a/README.RU
+++ b/README.RU
@@ -30,7 +30,7 @@ NNCP это свободное программное обеспечением:
 https://lists.cypherpunks.ru/pipermail/nncp-devel/
 
 Исходный код для разработчика находится в Git репозитории:
-https://git.cypherpunks.ru/cgit.cgi/nncp.git/
+http://git.cypherpunks.ru/cgit.cgi/nncp.git/
 
 Для дополнительной информации пожалуйста читайте или doc/nncp.info
 или doc/nncp.texi.
diff --git a/VERSION b/VERSION
deleted file mode 100644 (file)
index 74664af..0000000
--- a/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-5.3.3
diff --git a/VERSION.do b/VERSION.do
new file mode 100644 (file)
index 0000000..488da2c
--- /dev/null
@@ -0,0 +1,2 @@
+redo-ifchange src/nncp.go
+perl -ne 'print "$1\n" if /Version.* = "(.*)"$/' < src/nncp.go
diff --git a/all.do b/all.do
new file mode 100644 (file)
index 0000000..8c7fdb1
--- /dev/null
+++ b/all.do
@@ -0,0 +1 @@
+redo-ifchange bin/all
diff --git a/bin/.gitignore b/bin/.gitignore
new file mode 100644 (file)
index 0000000..a507544
--- /dev/null
@@ -0,0 +1 @@
+nncp-*
diff --git a/bin/all.do b/bin/all.do
new file mode 100644 (file)
index 0000000..5519b54
--- /dev/null
@@ -0,0 +1,2 @@
+redo-ifchange cmd.list
+redo-ifchange `cat cmd.list`
diff --git a/bin/clean.do b/bin/clean.do
new file mode 100644 (file)
index 0000000..7dbb858
--- /dev/null
@@ -0,0 +1 @@
+rm -f `cat cmd.list`
diff --git a/bin/cmd.list b/bin/cmd.list
new file mode 100644 (file)
index 0000000..6c4cf72
--- /dev/null
@@ -0,0 +1,18 @@
+nncp-bundle
+nncp-call
+nncp-caller
+nncp-cfgenc
+nncp-cfgmin
+nncp-cfgnew
+nncp-check
+nncp-daemon
+nncp-exec
+nncp-file
+nncp-freq
+nncp-log
+nncp-pkt
+nncp-reass
+nncp-rm
+nncp-stat
+nncp-toss
+nncp-xfer
diff --git a/bin/default.do b/bin/default.do
new file mode 100644 (file)
index 0000000..8ec11e7
--- /dev/null
@@ -0,0 +1,12 @@
+cd ..
+redo-ifchange config gopath module-name
+. ./config
+. ./gopath
+mod=`cat module-name`
+redo-ifchange src/*.go src/cmd/$1/*.go
+GO_LDFLAGS="$GO_LDFLAGS -X $mod.DefaultCfgPath=$CFGPATH"
+GO_LDFLAGS="$GO_LDFLAGS -X $mod.DefaultSpoolPath=$SENDMAIL"
+GO_LDFLAGS="$GO_LDFLAGS -X $mod.DefaultSpoolPath=$SPOOLPATH"
+GO_LDFLAGS="$GO_LDFLAGS -X $mod.DefaultLogPath=$LOGPATH"
+cd src
+GOPATH=$GOPATH ${GO:-go} build -o ../bin/$3 -ldflags "$GO_LDFLAGS" $mod/cmd/$1
diff --git a/clean.do b/clean.do
new file mode 100644 (file)
index 0000000..9c9f7cd
--- /dev/null
+++ b/clean.do
@@ -0,0 +1,2 @@
+redo bin/clean
+rm gopath module-name VERSION
diff --git a/config b/config
new file mode 100644 (file)
index 0000000..92406c5
--- /dev/null
+++ b/config
@@ -0,0 +1,14 @@
+GO=${GO:-go}
+MAKEINFO=${MAKEINFO:-makeinfo}
+PLANTUML=${PLANTUML:-plantuml}
+
+PREFIX=${PREFIX:-/usr/local}
+
+SENDMAIL=${SENDMAIL:-/usr/sbin/sendmail}
+CFGPATH=${CFGPATH:-$PREFIX/etc/nncp.hjson}
+SPOOLPATH=${SPOOLPATH:-/var/spool/nncp}
+LOGPATH=${LOGPATH:-/var/spool/nncp/log}
+
+BINDIR=${DESTDIR}${PREFIX}/bin
+INFODIR=${DESTDIR}${PREFIX}/info
+DOCDIR=${DESTDIR}${PREFIX}/share/doc/nncp
diff --git a/doc.do b/doc.do
new file mode 100644 (file)
index 0000000..e8a354a
--- /dev/null
+++ b/doc.do
@@ -0,0 +1 @@
+redo-ifchange doc/all
index a53111bb2957cffb7aa68c6bd4eb9d0add8c384b..932e42bf6b8f8b9f0c501a2a96391107ed06b91b 100644 (file)
@@ -1,3 +1,3 @@
 nncp.info
 nncp.html
-sp.utxt
+sp.plantuml.txt
diff --git a/doc/Makefile b/doc/Makefile
deleted file mode 100644 (file)
index c3af5d4..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-MAKEINFO ?= makeinfo
-
-all: nncp.info nncp.html
-
-sp.utxt: sp.txt
-       plantuml -tutxt sp.txt
-
-nncp.info: *.texi sp.utxt pedro.txt
-       $(MAKEINFO) -o nncp.info index.texi
-
-CSS != cat style.css
-
-nncp.html: *.texi sp.utxt pedro.txt
-       rm -f nncp.html/*.html
-       $(MAKEINFO) --html \
-               --set-customization-variable EXTRA_HEAD='<link rev="made" href="mailto:webmaster@nncpgo.org">' \
-               --set-customization-variable CSS_LINES='$(CSS)' \
-               --set-customization-variable SHOW_TITLE=0 \
-               --set-customization-variable USE_ACCESSKEY=0 \
-               --set-customization-variable DATE_IN_HEADER=1 \
-               --set-customization-variable TOP_NODE_UP_URL=index.html \
-               --set-customization-variable CLOSE_QUOTE_SYMBOL=\" \
-               --set-customization-variable OPEN_QUOTE_SYMBOL=\" \
-               -o nncp.html index.texi
-       cp -r .well-known nncp.html/
diff --git a/doc/all.do b/doc/all.do
new file mode 100644 (file)
index 0000000..3ec13ad
--- /dev/null
@@ -0,0 +1 @@
+redo-ifchange nncp.info nncp.html
index cb4d4393e1f88f0c13a95248c6d05ad50e3b3d7d..2a2bfc1db4448cdf0b42bfc6ecce898c2a074451 100644 (file)
@@ -15,12 +15,19 @@ $ [fetch|wget] http://www.nncpgo.org/download/nncp-@value{VERSION}.tar.xz
 $ [fetch|wget] http://www.nncpgo.org/download/nncp-@value{VERSION}.tar.xz.sig
 $ gpg --verify nncp-@value{VERSION}.tar.xz.sig nncp-@value{VERSION}.tar.xz
 $ xz --decompress --stdout nncp-@value{VERSION}.tar.xz | tar xf -
-$ make -C nncp-@value{VERSION} all
+$ cd nncp-@value{VERSION}
+$ redo all
 @end example
 
+It uses @url{http://cr.yp.to/redo.html, redo} build system for that
+examples. You can use either dozen of various implementations, or at
+least minimalistic POSIX shell @command{contrib/do} (just replace
+@command{redo} with @command{contrib/do} in the example above) included
+in tarball.
+
 There is @command{install} make-target respecting @env{DESTDIR}. It will
 install binaries and info-documentation:
 
 @example
-# make -C nncp-@value{VERSION} install PREFIX=/usr/local
+# PREFIX=/usr/local redo install
 @end example
diff --git a/doc/default.plantuml.txt.do b/doc/default.plantuml.txt.do
new file mode 100644 (file)
index 0000000..cb5bf3e
--- /dev/null
@@ -0,0 +1,5 @@
+src=${1%.txt}
+redo-ifchange $src ../config
+. ../config
+$PLANTUML -tutxt -pipe < $src
+
index 8cb558f6ee509567b0eead7c8daafc473bea6978..f3af872f3b31b741607b0c89f015080d54c32982 100644 (file)
@@ -24,6 +24,10 @@ Tarballs include all necessary required libraries:
 @multitable {XXXXX} {XXXX-XX-XX} {XXXX KiB} {link sign} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
 @headitem Version @tab Date @tab Size @tab Tarball @tab SHA256 checksum
 
+@item @ref{Release 5.3.3, 5.3.3} @tab 2020-01-23 @tab 1116 KiB
+@tab @url{download/nncp-5.3.3.tar.xz, link} @url{download/nncp-5.3.3.tar.xz.sig, sign}
+@tab @code{707CD852 4E424C24 BCB22D6B 4BC81709 71C42A5F E0062B93 A8D1DD9D 7FB365D0}
+
 @item @ref{Release 5.3.2, 5.3.2} @tab 2019-12-28 @tab 1118 KiB
 @tab @url{download/nncp-5.3.2.tar.xz, link} @url{download/nncp-5.3.2.tar.xz.sig, sign}
 @tab @code{6E2D1B3C CA0DD462 A6F5F8DE 5CB8DE15 C3D33C74 238A2C52 373C7BD6 A126A834}
index 0278b86faa077d9e3e18ad890ed424772dc60240..57f1db7e212e23d1fa73831458cc07941ab0ec2b 100644 (file)
@@ -3,7 +3,7 @@
 @settitle NNCP
 
 @copying
-This manual is for NNCP (Node to Node copy) --  collection of utilities
+This manual is for NNCP (Node to Node copy) -- collection of utilities
 simplifying secure store-and-forward files and mail exchanging.
 
 Copyright @copyright{} 2016-2020 @email{stargrave@@stargrave.org, Sergey Matveev}
index 89c15d547612ad04d0381fac0c02d77fddd40d25..2da6378ce5a1dab1233a51594e47764b1fa20784 100644 (file)
@@ -1,16 +1,14 @@
 @node Installation
 @unnumbered Installation
 
-@set VERSION 5.3.3
-
 Possibly NNCP package already exists for your distribution:
 
 @itemize
 @item @url{https://www.freshports.org/net/nncp/, FreeBSD ports}
 @item @url{https://github.com/DragonFlyBSD/DPorts/tree/master/net/nncp, DragonFly BSD ports}
+@item @url{https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/misc/nncp, NixOS packages}
 @item @url{https://github.com/void-linux/void-packages/blob/master/srcpkgs/nncp/template, Void Linux}
 @item @url{https://qa.debian.org/developer.php?login=jgoerzen@@complete.org, Debian packages} (pending inclusion, maintainer's page)
-@item @url{https://github.com/NixOS/nixpkgs/pull/75772, NixOS packages} (pending inclusion, maintainer's page)
 @end itemize
 
 NNCP should run on any POSIX-compatible operating system.
index a8a8b9ea4cc606d73a1fb7df2e9dac25a85f1a27..8879d91f59f341254f8ee9e45089a139c9f254b4 100644 (file)
@@ -167,7 +167,7 @@ $ r2e new rss-robot@@address.com
 and add feeds you want to retrieve:
 
 @example
-$ r2e add https://git.cypherpunks.ru/cgit.cgi/nncp.git/atom/?h=master
+$ r2e add http://git.cypherpunks.ru/cgit.cgi/nncp.git/atom/?h=master
 @end example
 
 and run the process:
index 5abadc475030b4c1b05dbd8ee49d0c80deb5f326..f423162b649f771e603b08bff59c4b321d5068ec 100644 (file)
@@ -1,6 +1,20 @@
 @node Новости
 @section Новости
 
+@node Релиз 5.4.0
+@subsection Релиз 5.4.0
+@itemize
+
+@item
+Обновлены зависимые библиотеки.
+
+@item
+Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
+Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
+реализация @command{redo} включена в tarball.
+
+@end itemize
+
 @node Релиз 5.3.3
 @subsection Релиз 5.3.3
 @itemize
index 244331cb3ad46a2a622d36f771fc844b6efa5acc..9d0046344981c9104f263af1dea5c412b27de176 100644 (file)
@@ -3,6 +3,20 @@
 
 See also this page @ref{Новости, on russian}.
 
+@node Release 5.4.0
+@section Release 5.4.0
+@itemize
+
+@item
+Updated dependencies.
+
+@item
+Build system is moved from Makefiles to @url{http://cr.yp.to/redo.html, redo}.
+This should not influence package maintainers, because minimal @command{redo}
+implementation is included in tarball.
+
+@end itemize
+
 @node Release 5.3.3
 @section Release 5.3.3
 @itemize
diff --git a/doc/nncp.html.do b/doc/nncp.html.do
new file mode 100644 (file)
index 0000000..3295cdd
--- /dev/null
@@ -0,0 +1,7 @@
+rm -fr nncp.html
+MAKEINFO_OPTS="$MAKEINFO_OPTS --html"
+MAKEINFO_OPTS="$MAKEINFO_OPTS --set-customization-variable SHOW_TITLE=0"
+MAKEINFO_OPTS="$MAKEINFO_OPTS --set-customization-variable DATE_IN_HEADER=1"
+MAKEINFO_OPTS="$MAKEINFO_OPTS --set-customization-variable TOP_NODE_UP_URL=index.html"
+MAKEINFO_OPTS="$MAKEINFO_OPTS" . nncp.info.do
+cp -r .well-known $3
diff --git a/doc/nncp.info.do b/doc/nncp.info.do
new file mode 100644 (file)
index 0000000..6b0c858
--- /dev/null
@@ -0,0 +1,9 @@
+redo-ifchange ../config ../VERSION *.texi sp.plantuml.txt pedro.txt
+. ../config
+${MAKEINFO:-makeinfo} \
+    -D "VERSION `cat ../VERSION`" \
+    $MAKEINFO_OPTS \
+    --set-customization-variable CLOSE_QUOTE_SYMBOL=\" \
+    --set-customization-variable OPEN_QUOTE_SYMBOL=\" \
+    --set-customization-variable CSS_LINES="`cat style.css`" \
+    --output $3 index.texi
index 1cc1ea1b84fec00ddf23c9d484245da1695aff91..d1970e654ae508e023cc935a3a984f7a0900021b 100644 (file)
@@ -11,21 +11,3 @@ $ git clone git://git.cypherpunks.ru/nncp.git
 $ cd nncp
 $ git checkout develop
 @end example
-
-Also there is mirror of dependent libraries for safety if their native
-repositories will be unavailable (they are seldom updated):
-
-@multitable @columnfractions .50 .50
-@headitem Software/library @tab Mirror
-@item @code{github.com/davecgh/go-xdr} @tab @url{git://git.cypherpunks.ru/go-xdr.git}
-@item @code{github.com/dustin/go-humanize} @tab @url{git://git.cypherpunks.ru/go-humanize.git}
-@item @code{github.com/flynn/noise} @tab @url{git://git.cypherpunks.ru/noise.git}
-@item @code{github.com/google/go-cmp} @tab @url{git://git.cypherpunks.ru/go-cmp.git}
-@item @code{github.com/gorhill/cronexpr} @tab @url{git://git.cypherpunks.ru/cronexpr.git}
-@item @code{github.com/hjson/hjson-go} @tab @url{git://git.cypherpunks.ru/hjson-go.git}
-@item @code{github.com/klauspost/compress} @tab @url{git://git.cypherpunks.ru/compress.git}
-@item @code{golang.org/x/crypto} @tab @url{git://git.cypherpunks.ru/crypto.git}
-@item @code{golang.org/x/net} @tab @url{git://git.cypherpunks.ru/net.git}
-@item @code{golang.org/x/sys} @tab @url{git://git.cypherpunks.ru/sys.git}
-@item @code{gopkg.in/check.v1} @tab @url{git://git.cypherpunks.ru/check.git}
-@end multitable
diff --git a/doc/sp.plantuml b/doc/sp.plantuml
new file mode 100644 (file)
index 0000000..89440ba
--- /dev/null
@@ -0,0 +1,34 @@
+     ┌─────────┐                       ┌─────────┐     
+     │Initiator│                       │Responder│     
+     └────┬────┘                       └────┬────┘     
+          │                                 │          
+          │         ╔═════════════╗         │          
+══════════╪═════════╣ preparation ╠═════════╪══════════
+          │         ╚═════════════╝         │          
+          │                                 │          
+          │              [s]                │          
+          │<────────────────────────────────│          
+          │                                 │          
+          │                                 │          
+          │         ╔═════════════╗         │          
+══════════╪═════════╣ interactive ╠═════════╪══════════
+          │         ╚═════════════╝         │          
+          │                                 │          
+          │[e, es, s, ss], INFO..., HALT... │          
+          │────────────────────────────────>│          
+          │                                 │          
+          │ [e, ee, se], INFO..., HALT...   │          
+          │<────────────────────────────────│          
+          │                                 │          
+          │   INFO..., FREQ..., DONE...     │          
+          │────────────────────────────────>│          
+          │                                 │          
+          │   INFO..., FREQ..., DONE...     │          
+          │<────────────────────────────────│          
+          │                                 │          
+          │FILE..., INFO..., DONE..., PING  │          
+          │────────────────────────────────>│          
+          │                                 │          
+          │FILE..., INFO..., DONE..., PING  │          
+          │<────────────────────────────────│          
+          │                                 │          
index ef00f63404bc3b80221d3e62a2e4b9ec40f4289d..8169e99d151747a20094cbacd45700de0775f46d 100644 (file)
@@ -154,7 +154,7 @@ just an unsigned integer telling what body structure follows.
 
 Typical peer's behaviour is following:
 
-@verbatiminclude sp.utxt
+@verbatiminclude sp.plantuml.txt
 
 @enumerate
 @item Perform @emph{Noise-IK} handshake:
diff --git a/doc/sp.txt b/doc/sp.txt
deleted file mode 100644 (file)
index b86ee68..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-@startuml
-hide footbox
-participant Initiator
-participant Responder
-
-== preparation ==
-
-Initiator <- Responder : [s]
-
-== interactive ==
-
-Initiator -> Responder : [e, es, s, ss], INFO..., HALT...
-Initiator <- Responder : [e, ee, se], INFO..., HALT...
-Initiator -> Responder : INFO..., FREQ..., DONE...
-Initiator <- Responder : INFO..., FREQ..., DONE...
-Initiator -> Responder : FILE..., INFO..., DONE..., PING
-Initiator <- Responder : FILE..., INFO..., DONE..., PING
-
-@enduml
index 0dec0f2156face811f2b44954c850c6327a7fce9..17f3b71cb358b255b2328e68226338fff4186fed 100644 (file)
@@ -7,5 +7,5 @@ body {
 h1, h2, h3, h4 { text-align: center }
 h1, h2, h3, h4, strong { color: #900090 }
 pre { background-color: #CCCCCC }
-table, th, td { border: 1px solid black }
+table, th, td { border: 1px solid black ; border-collapse: collapse }
 --></style>
index f118c0ba937cb0cd522aef1c2a3592e51fe66624..c0cb8082b15935d844055b6a06293a5a5f5ef658 100644 (file)
@@ -8,6 +8,9 @@ There are people deserving to be thanked for helping this project:
 @item Shawn K. Quinn for his descriptive instructions about building
 NNCP under Ubuntu GNU/Linux distributions and bug reports.
 
+@item @url{mailto:nncp@@woffs.de, Frank Doepper} for his bug reports
+feedback and NixOS package maintenance.
+
 @item @url{mailto:jgoerzen@@complete.org, John Goerzen} for his feature
 suggestions and Debian package maintenance.
 
diff --git a/gopath.do b/gopath.do
new file mode 100644 (file)
index 0000000..141e16d
--- /dev/null
+++ b/gopath.do
@@ -0,0 +1 @@
+echo GOPATH=${GOPATH:-`pwd`}
diff --git a/install-strip.do b/install-strip.do
new file mode 100644 (file)
index 0000000..63b442e
--- /dev/null
@@ -0,0 +1,5 @@
+redo-ifchange config install
+. ./config
+for cmd in `cat bin/cmd.list` ; do
+    strip $BINDIR/$cmd
+done
diff --git a/install.do b/install.do
new file mode 100644 (file)
index 0000000..95c71cb
--- /dev/null
@@ -0,0 +1,16 @@
+redo-ifchange config bin/all doc/nncp.info
+. ./config
+
+mkdir -p $BINDIR
+for cmd in `cat bin/cmd.list` ; do
+    cp -f bin/$cmd $BINDIR
+    chmod 755 $BINDIR/$cmd
+done
+
+mkdir -p $INFODIR
+cp -f doc/nncp.info $INFODIR
+chmod 644 $INFODIR/nncp.info
+
+mkdir -p $DOCDIR
+cp -f -L AUTHORS NEWS NEWS.RU README README.RU THANKS $DOCDIR
+chmod 644 $DOCDIR/*
index 21368a2a555f1b32965e1372bd4c06209a1c320f..bf21b01584b6abde66af349392f63c13e8ddc813 100755 (executable)
@@ -8,9 +8,10 @@ release=$1
 git clone . $tmp/nncp-$release
 cd $tmp/nncp-$release
 git checkout v$release
+redo module-name VERSION
+mod_name=`cat module-name`
 rm -fr .git
 
-mod_name=$(sed -n 's/^module //p' src/go.mod)
 mv src src.orig
 mkdir -p src/$mod_name
 mv src.orig/* src/$mod_name
@@ -67,6 +68,7 @@ golang.org/x/sys/AUTHORS
 golang.org/x/sys/CONTRIBUTORS
 golang.org/x/sys/cpu
 golang.org/x/sys/go.mod
+golang.org/x/sys/internal/unsafeheader
 golang.org/x/sys/LICENSE
 golang.org/x/sys/PATENTS
 golang.org/x/sys/README.md
@@ -99,7 +101,14 @@ rm -r src/github.com/flynn/noise/vector*
 rm src/github.com/hjson/hjson-go/build_release.sh
 rm src/github.com/gorhill/cronexpr/APLv2
 rm -fr ports
-rm makedist.sh
+find . -name .gitignore -delete
+rm makedist.sh module-name.do VERSION.do
+
+mkdir contrib
+cp ~/work/redo/minimal/do contrib/do
+echo echo GOPATH=\`pwd\` > gopath.do
+
+perl -p -i -e "s#src/#src/$mod_name/#g" bin/default.do
 
 cat > doc/download.texi <<EOF
 @node Tarballs
@@ -111,13 +120,20 @@ perl -i -ne 'print unless /include pedro/' doc/index.texi doc/about.ru.texi
 perl -p -i -e 's/^(.verbatiminclude) .*$/$1 PUBKEY.asc/g' doc/integrity.texi
 mv doc/.well-known/openpgpkey/hu/i4cdqgcarfjdjnba6y4jnf498asg8c6p.asc PUBKEY.asc
 ln -s ../PUBKEY.asc doc
-make -C doc
+redo doc
 
 ########################################################################
 # Supplementary files autogeneration
 ########################################################################
 texi=$(TMPDIR=doc mktemp)
 
+mkinfo() {
+    ${MAKEINFO:-makeinfo} --plaintext \
+        --set-customization-variable CLOSE_QUOTE_SYMBOL=\" \
+        --set-customization-variable OPEN_QUOTE_SYMBOL=\" \
+        -D "VERSION `cat VERSION`" $@
+}
+
 cat > $texi <<EOF
 \input texinfo
 @documentencoding UTF-8
@@ -127,7 +143,7 @@ cat > $texi <<EOF
 `sed -n '5,$p' < doc/news.texi`
 @bye
 EOF
-makeinfo --plaintext -o NEWS $texi
+mkinfo --output NEWS $texi
 
 cat > $texi <<EOF
 \input texinfo
@@ -138,7 +154,7 @@ cat > $texi <<EOF
 `sed -n '3,$p' < doc/news.ru.texi | sed 's/^@subsection/@section/'`
 @bye
 EOF
-makeinfo --plaintext -o NEWS.RU $texi
+mkinfo --output NEWS.RU $texi
 
 cat > $texi <<EOF
 \input texinfo
@@ -147,7 +163,7 @@ cat > $texi <<EOF
 @include install.texi
 @bye
 EOF
-makeinfo --plaintext -o INSTALL $texi
+mkinfo --output INSTALL $texi
 
 cat > $texi <<EOF
 \input texinfo
@@ -156,25 +172,26 @@ cat > $texi <<EOF
 `cat doc/thanks.texi`
 @bye
 EOF
-makeinfo --plaintext -o THANKS $texi
+mkinfo --output THANKS $texi
 
 rm -f $texi
+rm -r doc/.well-known doc/nncp.html/.well-known
 
 ########################################################################
 
-rm -r doc/.gitignore doc/.well-known doc/nncp.html/.well-known
-
+rm -r .redo
 find . -type d -exec chmod 755 {} \;
 find . -type f -exec chmod 644 {} \;
 find . -type f -name "*.sh" -exec chmod 755 {} \;
+chmod 755 contrib/do
 
 cd ..
 tar cvf nncp-"$release".tar --uid=0 --gid=0 --numeric-owner nncp-"$release"
 xz -9v nncp-"$release".tar
 gpg --detach-sign --sign --local-user releases@nncpgo.org nncp-"$release".tar.xz
-mv -v $tmp/nncp-"$release".tar.xz $tmp/nncp-"$release".tar.xz.sig $cur/doc/nncp.html/download
+mv -v $tmp/nncp-"$release".tar.xz $tmp/nncp-"$release".tar.xz.sig $cur/doc/download
 
-tarball=$cur/doc/nncp.html/download/nncp-"$release".tar.xz
+tarball=$cur/doc/download/nncp-"$release".tar.xz
 size=$(( $(stat -f %z $tarball) / 1024 ))
 hash=$(gpg --print-md SHA256 < $tarball)
 release_date=$(date "+%Y-%m-%d")
diff --git a/module-name.do b/module-name.do
new file mode 100644 (file)
index 0000000..4de5370
--- /dev/null
@@ -0,0 +1,2 @@
+redo-ifchange src/go.mod
+sed -n 's/^module //p' < src/go.mod
index 527eb9e5af38a733164f1897d968f12888acb9c0..792703f1aa2e34589d3a66c08af7c1b74e449c8e 100644 (file)
@@ -1,7 +1,7 @@
 # $FreeBSD: $
 
 PORTNAME=      nncp
-DISTVERSION=   5.3.3
+DISTVERSION=   5.4.0
 CATEGORIES=    net
 MASTER_SITES=  http://www.nncpgo.org/download/
 
@@ -26,6 +26,7 @@ PORTDOCS=     AUTHORS NEWS NEWS.RU README README.RU THANKS
 OPTIONS_DEFINE=        DOCS
 
 post-install:
+       ${MKDIR} ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d
        ${INSTALL_DATA} ${FILESDIR}/nncp.newsyslog.conf.sample ${STAGEDIR}${PREFIX}/etc/nncp.conf.sample
 
 .include <bsd.port.mk>
index e98d84ea198a7f7ae4ba9f59da91b4f1e297bb3d..e7d9c876e74c18da5ac47065104d46008ab2de58 100644 (file)
@@ -16,4 +16,5 @@ bin/nncp-rm
 bin/nncp-stat
 bin/nncp-toss
 bin/nncp-xfer
+@dir etc/newsyslog.conf.d
 @sample etc/nncp.conf.sample etc/newsyslog.conf.d/nncp.conf
index b2710f7fed892438a566d43d81edf443e4fa3446..7bfe83aedca1e20e99751de529f51c157cf8958e 100644 (file)
@@ -5,14 +5,14 @@ require (
        github.com/dustin/go-humanize v1.0.0
        github.com/flynn/noise v0.0.0-20180327030543-2492fe189ae6
        github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75
-       github.com/hjson/hjson-go v3.0.1+incompatible
-       github.com/klauspost/compress v1.9.8
-       github.com/kr/pretty v0.1.0 // indirect
+       github.com/hjson/hjson-go v3.1.0+incompatible
+       github.com/klauspost/compress v1.11.0
+       github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect
        go.cypherpunks.ru/balloon v1.1.1
-       golang.org/x/crypto v0.0.0-20200117160349-530e935923ad
+       golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a
        golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa
-       golang.org/x/sys v0.0.0-20200122134326-e047566fdf82
-       gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
+       golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d
+       gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b // indirect
 )
 
 go 1.10
index f29a40b36cf86afcb6603f4429a2ba1a769a97fc..d1d7a3f5918f49aa266260cca36986b3b9f60a1a 100644 (file)
@@ -6,28 +6,27 @@ github.com/flynn/noise v0.0.0-20180327030543-2492fe189ae6 h1:u/UEqS66A5ckRmS4yNp
 github.com/flynn/noise v0.0.0-20180327030543-2492fe189ae6/go.mod h1:1i71OnUq3iUe1ma7Lr6yG6/rjvM3emb6yoL7xLFzcVQ=
 github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75 h1:f0n1xnMSmBLzVfsMMvriDyA75NB/oBgILX2GcHXIQzY=
 github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA=
-github.com/hjson/hjson-go v3.0.1+incompatible h1:JwOXblcMiBbiWue7iPkoFK9oXSnW8n+qXh/0Fio6TCo=
-github.com/hjson/hjson-go v3.0.1+incompatible/go.mod h1:qsetwF8NlsTsOTwZTApNlTCerV+b2GjYRRcIk4JMFio=
-github.com/klauspost/compress v1.9.8 h1:VMAMUUOh+gaxKTMk+zqbjsSjsIcUcL/LF4o63i82QyA=
-github.com/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
-github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/hjson/hjson-go v3.1.0+incompatible h1:DY/9yE8ey8Zv22bY+mHV1uk2yRy0h8tKhZ77hEdi0Aw=
+github.com/hjson/hjson-go v3.1.0+incompatible/go.mod h1:qsetwF8NlsTsOTwZTApNlTCerV+b2GjYRRcIk4JMFio=
+github.com/klauspost/compress v1.11.0 h1:wJbzvpYMVGG9iTI9VxpnNZfd4DzMPoCWze3GgSqz8yg=
+github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
+github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 go.cypherpunks.ru/balloon v1.1.1 h1:ypHM1DRf/XuCrp9pDkTHg00CqZX/Np/APb//iHvDJTA=
 go.cypherpunks.ru/balloon v1.1.1/go.mod h1:k4s4ozrIrhpBjj78Z7LX8ZHxMQ+XE7DZUWl8gP2ojCo=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20200117160349-530e935923ad h1:Jh8cai0fqIK+f6nG0UgPW5wFk8wmiMhM3AyciDBdtQg=
-golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
+golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM=
+golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa h1:F+8P+gmewFQYRk6JoLQLwjBCTu3mcIURZfNkVweuRKA=
 golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200122134326-e047566fdf82 h1:ywK/j/KkyTHcdyYSZNXGjMwgmDSfjglYZ3vStQ/gSCU=
-golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d h1:L/IKR6COd7ubZrs2oTnTi73IhgqJ71c9s80WsQnh0Es=
+golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U=
+gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
index dfa2a4c6e0c5780501fd7422c62e1a2eb342c82b..23a43d96b8767922be0924b8531edec55543814e 100644 (file)
@@ -75,6 +75,7 @@ func (ctx *Ctx) Log(msg string) {
                fmt.Fprintln(os.Stderr, "Can not open lock for log:", err)
                return
        }
+       defer fdLock.Close()
        fdLockFd := int(fdLock.Fd())
        err = unix.Flock(fdLockFd, unix.LOCK_EX)
        if err != nil {
index 22d75782c2e93a2e22db878b2e81b127c949fc00..d27ed0acdeade8796ed82e28d0eeb7c00f17970d 100644 (file)
@@ -38,7 +38,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.`
 )
 
 var (
-       Version string = "UNKNOWN"
+       Version string = "5.4.0"
 
        Base32Codec *base32.Encoding = base32.StdEncoding.WithPadding(base32.NoPadding)
 )
index 94b37ff624893f8560a7d4b0f1f0f3ed827c4eff..cff83854813969028ff991104824f3aa0a19ad4d 100644 (file)
--- a/src/sp.go
+++ b/src/sp.go
@@ -226,11 +226,11 @@ func (state *SPState) SetDead() {
        }
        close(state.isDead)
        go func() {
-               for _ = range state.payloads {
+               for range state.payloads {
                }
        }()
        go func() {
-               for _ = range state.pings {
+               for range state.pings {
                }
        }()
 }
index 2a4010e0da1ecb31084c5769116a3fd8c65339bc..911769c4e7136ada5391eb52620d56a7c9a57e9f 100644 (file)
@@ -6,9 +6,6 @@
 // * By default it uses stderr
 // * By default it uses 10ms refresh period
 // * defer-s are removed for less CPU usage
-// * By default it uses stderr
-// * By default it uses stderr
-// * By default it uses stderr
 // * Removed newline/bypass related code. No Windows support
 
 package uilive
diff --git a/test.do b/test.do
new file mode 100644 (file)
index 0000000..7f3c01e
--- /dev/null
+++ b/test.do
@@ -0,0 +1,6 @@
+redo-ifchange config gopath module-name
+. ./config
+. ./gopath
+mod=`cat module-name`
+cd src
+GOPATH=$GOPATH ${GO:-go} test -failfast $mod/...
diff --git a/uninstall.do b/uninstall.do
new file mode 100644 (file)
index 0000000..fcec27c
--- /dev/null
@@ -0,0 +1,5 @@
+redo-ifchange config
+. ./config
+for cmd in `cat bin/cmd.list` ; do rm -f $BINDIR/$cmd ; done
+rm -f $INFODIR/nncp.info
+rm -fr $DOCDIR