aboutsummaryrefslogtreecommitdiff
path: root/NEWS
blob: 01c80919fd6d5717c5f4b502495daf1a8e3b3abf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
Wydawca NEWS -- history of user-visible changes. 2020-04-26
See the end of file for copying conditions.

Please send Wydawca bug reports to <bug-wydawca@gnu.org.ua>.

Version 3.1.95 (git)

This is a complete rewrite of the wydawca code base.  The operating
model changed from multi-process to multi-thread.

Other important changes:

* Configuration file name changed to "wydawca.conf"

* Initial scanning of spools

Upon startup, wydawca always scans the configured spools.  This
ensures that when started in daemon mode, it will pick up any
triplets that may have been upload while it was down.

* No unnecessary chdirs.

Wydawca uses POSIX *at() functions instead of changing directories or
using absolute pathnames.  During operation, the daemon stays at the
"/" as its current working directory.  The only exception is changing
to the temporary working directory when running the distribution
verification script (which occurs in a sub-process).

As a consequence the number of file descriptors wydawca needs to have
open is increased.  The following relation gives the estimate:

   S + T + D + 2

where S is the number of configured spools, D is the number of
dictionaries, and T is the maximum number of triplets to handle
simultaneously.

* Simultaneous use and spool locking

Previous versions of wydawca allowed for several instances to be run
at the same time.  In particular, it allowed for wydawca to be started
in cron mode while another instance of the program was running as a
deamon.  To prevent two wydawca instances from accessing the same
spool simultaneously lock files were used.

This version does not allow for such usage.  Only one copy of wydawca
can be running.  Therefore spool locking has been discontinued.

* Command line usage

** The --single-process option removed

** The -d (--debug) option takes optional argument

The argument is a decimal number specifying the desired debug level.
Thus, instead of -ddd, use -d3 (or --debug=3).

The legacy usage (each -d increasing the debugging level) is still supported.

* Configuration changes

** The wakeup-interval statement removed

** The locking statement removed

** The single-process statement removed

** max-connections statement

This new statement configures the maximum number of upload
notification connections.  Default is 16.

** idle-timeout statement

This new statement configures the maximum idle timeout of an
upload notification connection. Default is 10 seconds.

** spool timers

References to particular spool timers in expansion strings have the
form

   ${timer:spool:TAG:TM}

where TAG is the spool tag and TM is one of "user", "real", "system".
E.g.: ${timer:spool:release:system} expands to the system time spent
while processing the "release" spool.

* Testsuite completely rewritten

Hopefully it provides a better coverage.
Testsuite requires GNU Privacy Guard 2.1 or later.  If it is not
available, most tests will be disabled.


Version 3.1, 2020-03-13

* Variable expansion syntax

This release uses wordsplit v1.0-9-g7eaa3c4.  Normal shell like
expansion is allowed.  This means that curly braces around variable
names are optional and that the following forms are now allowed:

${VARIABLE:-WORD}
     "Use Default Values".  If VARIABLE is unset or null, the
     expansion of WORD is substituted.  Otherwise, the value of
     VARIABLE is substituted.

${VARIABLE:=WORD}
     "Assign Default Values".  If VARIABLE is unset or null, the
     expansion of WORD is assigned to variable.  The value of
     VARIABLE is then substituted.

     The assigned value remains in effect during expansion of the
     current string.

${VARIABLE:?WORD}
     "Display Error if Null or Unset".  If VARIABLE is null or
     unset, the expansion of WORD (or a message to that effect if
     WORD is not present) is output to the current logging channel.
     Otherwise, the value of VARIABLE is substituted.

${VARIABLE:+WORD}
    "Use Alternate Value".  If VARIABLE is null or unset, nothing
     is substituted, otherwise the expansion of WORD is
     substituted.

* Handling of undefined variables

Attempt to expand undefined variable causes fatal error.  Use one of
the advanced forms described above to handle such cases gracefully.

* Variable names

Several variable names have changed.  Names that contained dash,
now use underscore instead.  These are:

  Old name             Use this instead
  -------------------  -------------------
  stat:check-failures  stat:check_failures
  dest-dir             dest_dir
  source-dir           source_dir
  user:real-name       user:real_name

* $- is gone

Trailing newlines are automatically removed from all variable
expansions.  Consequently, the $- marker (delete to the end of line)
has been removed.


Version 3.0, 2019-07-22

* Introduce loadable modules.

Two modules are provided: mailutils, for mail notification using GNU
mailutils, and logstat, for logging statistics.

* Directory setup

The new statement "create-directories" instructs wydawca to create
missing source, destination and archive directories.  Additional
configuration statements are provided to configure ownership and modes
of the created directories.

* Bugfixes
** Avoid processing same triplet twice.
** Fix memory allocation bugs.


Version 2.2 "HGY", 2013-01-01

* Implements upload protocol version 1.2

* Input file locations include start and end columns.

* When available, uses inotify(7) to watch the input spools.

The use of inotify allows wydawca to act immediately upon finished
uploads without the need of external notifications.  This makes the
TCP-based notification unnecessary on GNU/Linux systems.


Version 2.1 "KMB", 2010-01-06

* Incompatible changes

The following meta-variables are renamed:

   Old name              New name
   ---------------+---------------------
   triplet:full          triplet:ls:full         
   triplet:upload        triplet:ls:upload
   triplet:dist          triplet:ls:dist  
   triplet:sig           triplet:ls:sig   
   triplet:dir           triplet:ls:dir

The expansions of {triplet:ls:full} and {triplet:ls:upload} include
trailing newline. This means that if your config contains one of these
variables on a line by itself, you will need to add $- at the end of
that line, to suppress an extra newline. See "listings" in subsection
4.14.4 "Event Notification", for an example.
   
To update your configuration, use the following (extended) sed expression:

   s/\{(triplet):(full|upload)\}/{\1:ls:\2}$-/g
   s/\{(triplet):(dist|sig|dir)\}/{\1:ls:\2}/g
   
* Distribution verification.

The new keyword `check-script' defines a shell script to
verify the submitted tarball. See the documentation, section
4.12 "Distribution Verification", for details.

* New configuration statements

sql default {
  config-file "file";
  config-group "grp";
}

The `config-file' statement specifies the SQL configuration file
to use. The `config-group' statement indicates the group in that
file to read. The defaults for both statements depend on the
underlying database implementation. Currently only MySQL is supported,
so the defaults are "/etc/my.cnf" for "file", and "client" for
"group".

These options can be used to store security-sensitive information
in another file, and thus to relax permission requirements for
wydawca.rc.

* New meta-variables

   email:admin   Full email address of the systems administrator.
   email:owner   Full email address of the project administrator.
   email:user    Full email address of the user who did the upload.

Note: `email:user' is not to be confused with `user:email'. The latter
is expanded to email address only, while the former yields full email
address, i.e. an address with a personal part, e.g.:

    "Ty Coon" <ty@coon.org>

* New meta-construct

The special construct $-, when used in message texts, causes removal
of the character following it. Its intended use is primarily to
remove the following newline character (like dnl in m4).


Version 2.0, 2009-12-22

* Configuration file support rewritten from scratch.

New configuration file is well structured.

* Message templates can include timers.

A timer is a special variable that is replaced by the
actual amount of time (real or CPU), spent while performing
a certain task.

* New `daemon' mode

The daemon mode allows to update submission target directories
in real time.

In this mode, Wydawca can receive upload notifications from
GNU Rush.

* TCP wrapper support.

Access to the wydawca socket can be controlled using TCP wrappers.

* Wydawca runs as a non-privileged user.
* Spool locking.
* Support for GPG signing of outgoing messages.
* Submissions can be uploaded via anonymous FTP.
* Uploaders are not required to have an account on wydawca server.
* Per-spool notifications.

Mail notifications can be configured on a per-spool basis.

* Mail notifications can be sent to arbitrary email addresses.

* Testsuite.


Version 1.2, 2009-01-22

* Implicit signature archivation.

When archivation of `file' is requested by `archive: file' statement
in the directive file, the file `file.sig' will also be archived.

This behavior can be disabled by setting `archive-signatures no' in
the wydawca configuration file.

* Symlink removal

When handling `symlink: src dst' statement, existing `dst' is silently
removed, if it is a symbolic link. If it exists, but is not a symlink
an error is signalled and operation is aborted.

* Bugfixes

Fixed handling of standalone directives.


Version 1.1, 2009-01-17

* Log detailed statistics only if at least one counter is not zero.

* Handling of the `symlink' directive.

If the symlink target exists, it is silently removed and the new link
is created. This behavior is compatible with that of ftp.gnu.org.


Version 1.0, 2008-08-23

	First release.



----------------------------------------------------------------------
Copyright information:

Copyright (C) 2007-2020 Sergey Poznyakoff

   Permission is granted to anyone to make or distribute verbatim copies
   of this document as received, in any medium, provided that the
   copyright notice and this permission notice are preserved,
   thus giving the recipient permission to redistribute in turn.

   Permission is granted to distribute modified versions
   of this document, or of portions of it,
   under the above conditions, provided also that they
   carry prominent notices stating who last changed them.

Local variables:
mode: outline
paragraph-separate: "[ 	]*$"
eval: (add-hook 'write-file-functions 'time-stamp)
time-stamp-start: "changes. "
time-stamp-format: "%:y-%02m-%02d"
time-stamp-end: "\n"
end:

Return to:

Send suggestions and report system problems to the System administrator.