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