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