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