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