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