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