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