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