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