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