]> Cypherpunks.ru repositories - nncp.git/blob - doc/news.texi
Fix nncp-stat -pkt direction output
[nncp.git] / doc / news.texi
1 @node News
2 @unnumbered News
3
4 See also this page @ref{Новости, on russian}.
5
6 @node Release 5.5.0
7 @section Release 5.5.0
8 @itemize
9
10 @item
11 Bugfixes in @command{nncp-call(er)}/@command{nncp-daemon},
12 @command{nncp-bundle} and @command{nncp-stat}.
13
14 @item
15 @command{nncp-rm} has @option{-dryrun} and @option{-older} options now.
16
17 @item
18 Updated dependencies.
19
20 @end itemize
21
22 @node Release 5.4.1
23 @section Release 5.4.1
24 @itemize
25
26 @item
27 Fixed @code{SENDMAIL} variable usage during the build.
28
29 @end itemize
30
31 @node Release 5.4.0
32 @section Release 5.4.0
33 @itemize
34
35 @item
36 Updated dependencies.
37
38 @item
39 Build system is moved from Makefiles to @url{http://cr.yp.to/redo.html, redo}.
40 This should not influence package maintainers, because minimal @command{redo}
41 implementation is included in tarball.
42
43 @end itemize
44
45 @node Release 5.3.3
46 @section Release 5.3.3
47 @itemize
48
49 @item
50 More various error checks.
51
52 @item
53 Updated dependencies.
54
55 @end itemize
56
57 @node Release 5.3.2
58 @section Release 5.3.2
59 @itemize
60
61 @item
62 Fixed incorrect logic of @option{onlinedeadline} timeout, where
63 connection won't take into account incoming packets events and will
64 forcefully disconnect.
65
66 @end itemize
67
68 @node Release 5.3.1
69 @section Release 5.3.1
70 @itemize
71
72 @item
73 Fixed @option{onlinedeadline} workability with call addresses that use
74 external commands (@verb{#"|somecmd"#}).
75
76 @item
77 @command{nncp-stat} has @option{-pkt} option displaying information
78 about each packet in the spool.
79
80 @end itemize
81
82 @node Release 5.3.0
83 @section Release 5.3.0
84 @itemize
85
86 @item
87 Progress messages contain prefix, describing the running action.
88
89 @item
90 Fixed not occurring handshake messages padding.
91
92 @item
93 Finish all SP protocol related goroutines, less memory leak.
94
95 @item
96 SP protocol generates less socket write calls, thus generating less TCP
97 packets.
98
99 @item
100 Check @option{onlinedeadline} and @option{maxonlinetime} options every
101 second, independently from socket reads (up to 10 seconds).
102
103 @item
104 Once per minute, if no other traffic exists, PING packets are sent in
105 SP-connection. That allows faster determining of connection unworkability.
106
107 @item
108 @command{nncp-toss} uses lock-file to prevent simultaneous tossing.
109
110 @end itemize
111
112 @node Release 5.2.1
113 @section Release 5.2.1
114 @itemize
115
116 @item
117 Fixed SP protocol error handling, sometimes causing program panic.
118
119 @end itemize
120
121 @node Release 5.2.0
122 @section Release 5.2.0
123 @itemize
124
125 @item
126 Most commands by default show oneline operations progress.
127 @option{-progress}, @option{-noprogress} command line options,
128 @option{noprogress} configuration file option appeared.
129
130 @item
131 Fixed incorrect @command{nncp-check} command return code, that returned
132 bad code when everything is good.
133
134 @item
135 Free disk space check during @command{nncp-bundle -rx} call.
136
137 @end itemize
138
139 @node Release 5.1.2
140 @section Release 5.1.2
141 @itemize
142
143 @item
144 @strong{Critical} vulnerability: remote peers authentication could lead
145 to incorrect identification of remote side, allowing foreign encrypted
146 packets downloading.
147
148 @item
149 Bugfix: private and public Noise keys were swapped in newly created
150 configuration files, that lead to inability to authenticate online peers.
151
152 @item
153 Explicit directories fsync-ing for guaranteed files renaming.
154
155 @end itemize
156
157 @node Release 5.1.1
158 @section Release 5.1.1
159 @itemize
160
161 @item
162 Fixed workability of @command{nncp-file} with @option{-chunked 0} option.
163
164 @end itemize
165
166 @node Release 5.1.0
167 @section Release 5.1.0
168 @itemize
169
170 @item
171 @command{nncp-file} can send directories, automatically creating pax
172 archive on the fly.
173
174 @item
175 Free disk space is checked during outbound packets creation.
176
177 @item
178 @option{freq}, @option{freqminsize}, @option{freqchunked} configuration
179 file options replaced with the structure:
180 @option{freq: @{path: ..., minsize: ..., chunked: ...@}}.
181
182 @item
183 Added @option{freq.maxsize} configuration file option, forbidding of
184 freq sending larger than specified size.
185
186 @item
187 Ability to notify about successfully executed commands (exec) with
188 @option{notify.exec} configuration file option.
189
190 @end itemize
191
192 @node Release 5.0.0
193 @section Release 5.0.0
194 @itemize
195
196 @item
197 @strong{Incompatible} configuration file format change: YAML is
198 replaced with Hjson, due to its simplicity, without noticeable lack
199 of either functionality or convenience.
200
201 @item
202 @strong{Incompatible} plain packet format changes. Older versions are
203 not supported. @code{zlib} compression is replaced with
204 @code{Zstandard}, due to its speed and efficiency, despite library
205 version is not mature enough.
206
207 @item
208 Ability to call remote nodes via pipe call of external command, not only
209 through TCP.
210
211 @item
212 @command{nncp-cfgnew} generates configuration file with many
213 comments. @option{-nocomments} option can be used for an old
214 behaviour.
215
216 @item
217 Duplicate filenames have @file{.CTR} suffix, instead of @file{CTR}, to
218 avoid possible collisions with @file{.nncp.chunkCTR}.
219
220 @item
221 Ability to override process umask through configuration file option.
222
223 @item
224 Files and directories are created with 666/777 permissions by default,
225 allowing control with @command{umask}.
226
227 @item
228 Updated dependencies.
229
230 @item
231 Full usage of go modules for dependencies management
232 (@code{go.cypherpunks.ru/nncp/v5} namespace is used).
233
234 @item
235 Forbid any later GNU GPL version autousage
236 (project's licence now is GNU GPLv3-only).
237
238 @end itemize
239
240 @node Release 4.1
241 @section Release 4.1
242 @itemize
243 @item Workability on GNU/Linux systems and Go 1.10 is fixed.
244 @end itemize
245
246 @node Release 4.0
247 @section Release 4.0
248 @itemize
249
250 @item
251 @strong{Incompatible} encrypted and eblob packet format change: AEAD
252 encryption mode with 128 KiB blocks is used now, because previously
253 @command{nncp-toss} did not verify encrypted packet's MAC before feeding
254 decrypted data to external command. Older versions are not supported.
255
256 @item
257 Available free space checking before copying in @command{nncp-xfer},
258 @command{nncp-daemon}, @command{nncp-call(er)}.
259
260 @item
261 @command{nncp-call} has ability only to list packets on remote node,
262 without their transmission.
263
264 @item
265 @command{nncp-call} has ability to transfer only specified packets.
266
267 @item
268 Workability of @option{xxrate} preference in @option{calls}
269 configuration file section.
270
271 @item
272 Dependant libraries are updated.
273
274 @item
275 Minor bugfixes.
276
277 @item
278 Begin using of @code{go.mod} subsystem.
279
280 @end itemize
281
282 @node Release 3.4
283 @section Release 3.4
284 @itemize
285 @item @command{nncp-daemon} can be run as @command{inetd}-service.
286 @end itemize
287
288 @node Release 3.3
289 @section Release 3.3
290 @itemize
291
292 @item
293 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller} check
294 if @file{.seen} exists and treat it like file was already downloaded.
295 Possibly it was transferred out-of-bound and remote side needs to be
296 notifier about that.
297
298 @item
299 If higher priority packet is spooled, then @command{nncp-daemon} will
300 queue its sending first, interrupting lower priority transmissions.
301
302 @item
303 Simple packet rate limiter added to online-related tools
304 (@command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}).
305
306 @item
307 Ability to specify niceness with symbolic notation:
308 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, etc.
309
310 @item
311 Changed default niceness levels:
312 for @command{nncp-exec} from 64 to 96,
313 for @command{nncp-freq} from 64 to 160,
314 for @command{nncp-file} from 196 to 224.
315
316 @end itemize
317
318 @node Release 3.2
319 @section Release 3.2
320 @itemize
321 @item
322 @strong{Incompatible} @emph{bundle} archive format changes and
323 @command{nncp-bundle} workability with Go 1.10+. Bundles must be
324 valid tar archives, but Go 1.9 made them invalid because of long paths
325 inside. NNCP accidentally was dependant on that bug. Explicit adding of
326 @file{NNCP/} directory in archive restores workability with valid tar
327 archives.
328 @end itemize
329
330 @node Release 3.1
331 @section Release 3.1
332 @itemize
333 @item
334 Ability to disable relaying at all using @verb{|-via -|} command line option.
335 @end itemize
336
337 @node Release 3.0
338 @section Release 3.0
339 @itemize
340
341 @item
342 @strong{Incompatible} plain packet format changes. Older versions are
343 not supported.
344
345 @item
346 Ability to queue remote command execution, by configuring @option{exec}
347 option in configuration file and using @command{nncp-exec} command:
348     @itemize
349     @item
350     @command{nncp-mail} command is replaced with more flexible
351     @command{nncp-exec}. Instead of @verb{|nncp-mail NODE RECIPIENT|}
352     you must use @verb{|nncp-exec NODE sendmail RECIPIENT|}.
353     @item
354     @option{sendmail} configuration file option is replaced with
355     @option{exec}. @verb{|sendmail: [...]|} must be replaced with
356     @verb{|exec: sendmail: [...]|}.
357     @end itemize
358
359 @item
360 Ability to override @option{via} configuration option for destination
361 node via @option{-via} command line option for following commands:
362 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
363
364 @item
365 Chunked files, having size less than specified chunk size, will be sent
366 as an ordinary single file.
367
368 @item
369 Exec commands are invoked with additional @env{NNCP_NICE} and
370 @env{NNCP_SELF} environment variables.
371
372 @item
373 Files, that are sent as a reply to freq, have niceness level taken from
374 the freq packet. You can set desired niceness during @command{nncp-freq}
375 invocation using @option{-replynice} option.
376
377 @item
378 @command{nncp-toss} command can ignore specified packet types during
379 processing: @option{-nofile}, @option{-nofreq}, @option{-noexec},
380 @option{-notrns}.
381
382 @item
383 @command{nncp-file} command uses
384 @option{FreqMinSize}/@option{FreqChunked} configuration file options
385 for @option{-minsize}/@option{-chunked} by default. You can turn this
386 off by specifying zero value.
387
388 @end itemize
389
390 @node Release 2.0
391 @section Release 2.0
392 @itemize
393
394 @item
395 @strong{Incompatible} encrypted/eblob packet format changes. Older
396 versions are not supported.
397
398 @item
399 Twofish encryption algorithm is replaced with ChaCha20. It is much more
400 faster. One cryptographic primitive less.
401
402 @item
403 HKDF-BLAKE2b-256 KDF algorithm is replaced with BLAKE2Xb XOF. Yet
404 another cryptographic primitive less (assuming that BLAKE2X is nearly
405 identical to BLAKE2).
406
407 @end itemize
408
409 @node Release 1.0
410 @section Release 1.0
411 @itemize
412
413 @item
414 @strong{Incompatible} encrypted packet format changes. Older versions
415 are not supported.
416
417 @item
418 @command{nncp-bundle} command can either create stream of encrypted
419 packets, or digest it. It is useful when dealing with stdin/stdout based
420 transmission methods (like writing to CD-ROM without intermediate
421 prepared ISO image and working with tape drives).
422
423 @item
424 @command{nncp-toss} is able to create @file{.seen} files preventing
425 duplicate packets receiving.
426
427 @item
428 Single background checksum verifier worker is allowed in
429 @command{nncp-call}. This is helpful when thousands of small inbound
430 packets could create many goroutines.
431
432 @item
433 Ability to override path to spool directory and logfile through either
434 command line argument, or environment variable.
435
436 @item
437 @command{nncp-rm} is able to delete outbound/inbound, @file{.seen},
438 @file{.part}, @file{.lock} and temporary files.
439
440 @end itemize
441
442 @node Release 0.12
443 @section Release 0.12
444 @itemize
445 @item Sendmail command is called with @env{NNCP_SENDER} environment variable.
446 @end itemize
447
448 @node Release 0.11
449 @section Release 0.11
450 @itemize
451 @item @command{nncp-stat}'s command output is sorted by node name.
452 @end itemize
453
454 @node Release 0.10
455 @section Release 0.10
456 @itemize
457 @item
458 @command{nncp-freq}'s @file{DST} argument is optional now. Last
459 @file{SRC} path's element will be used by default.
460 @end itemize
461
462 @node Release 0.9
463 @section Release 0.9
464 @itemize
465 @item
466 Fix @option{-rx}/@option{-tx} arguments processing in
467 @command{nncp-call} command. They were ignored.
468 @end itemize
469
470 @node Release 0.8
471 @section Release 0.8
472 @itemize
473 @item
474 Little bugfix in @command{nncp-file} command, where @option{-minsize}
475 option for unchunked transfer was not in KiBs, but in bytes.
476 @end itemize
477
478 @node Release 0.7
479 @section Release 0.7
480 @itemize
481
482 @item
483 Ability to feed @command{nncp-file} from stdin, that uses an encrypted
484 temporary file for that.
485
486 @item
487 Chunked files transmission appeared with corresponding
488 @command{nncp-reass} command and @option{freqchunked} configuration file
489 entry. Useful for transferring big files over small storage devices.
490
491 @item
492 @option{freqminsize} configuration file option, analogue to
493 @option{-minsize} one.
494
495 @item
496 @command{nncp-xfer}'s @option{-force} option is renamed to
497 @option{-mkdir} for clarity.
498
499 @item
500 @option{-minsize} option is specified in KiBs, not bytes, for
501 convenience.
502
503 @item
504 @command{nncp-newcfg} command is renamed to @command{nncp-cfgnew},
505 and @command{nncp-mincfg} to @command{nncp-cfgmin} -- now they have
506 common prefix and are grouped together for convenience.
507
508 @item
509 @command{nncp-cfgenc} command appeared, allowing configuration file
510 encryption/decryption, for keeping it safe without any either OpenPGP or
511 similar tools usage.
512
513 @item
514 Cryptographic libraries (dependencies) are updated.
515
516 @end itemize
517
518 @node Release 0.6
519 @section Release 0.6
520 @itemize
521 @item Small @command{nncp-rm} command appeared.
522 @item Cryptographic libraries (dependencies) are updated.
523 @end itemize
524
525 @node Release 0.5
526 @section Release 0.5
527 @itemize
528 @item
529 Trivial small fix in default niceness level of @command{nncp-file}
530 and @command{nncp-freq} commands.
531 @end itemize
532
533 @node Release 0.4
534 @section Release 0.4
535 @itemize
536
537 @item
538 Small fix in @command{nncp-call}, @command{nncp-caller},
539 @command{nncp-daemon}: they can segmentation fail sometimes (no data is
540 lost).
541
542 @item
543 @command{nncp-newnode} renamed to @command{nncp-newcfg} -- it is shorter
544 and more convenient to use.
545
546 @item
547 @command{nncp-mincfg} command appeared: helper allowing to create
548 minimalistic stripped down configuration file without private keys, that
549 is useful during @command{nncp-xfer} usage.
550
551 @end itemize
552
553 @node Release 0.3
554 @section Release 0.3
555 @itemize
556 @item Fixed compatibility with Go 1.6.
557 @end itemize
558
559 @node Release 0.2
560 @section Release 0.2
561 @itemize
562
563 @item
564 @strong{Incompatible} packet's format change (magic number is changed
565 too): size field is encrypted and is not send in plaintext anymore.
566
567 @item
568 @option{-minsize} option gives ability to automatically pad outgoing
569 packets to specified minimal size.
570
571 @item
572 @command{nncp-daemon} and @command{nncp-call}/@command{nncp-caller}
573 always check new @emph{tx} packets appearance in the background while
574 connected. Remote side is immediately notified.
575
576 @item
577 @option{-onlinedeadline} option gives ability to configure timeout of
578 inactivity of online connection, when it could be disconnected. It could
579 be used to keep connection alive for a long time.
580
581 @item
582 @option{-maxonlinetime} option gives ability to set maximal allowable
583 online connection aliveness time.
584
585 @item
586 @command{nncp-caller} command appeared: cron-ed TCP daemon caller.
587
588 @item
589 @command{nncp-pkt} command can decompress the data.
590
591 @end itemize