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