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