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