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