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