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