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