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