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