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