aboutsummaryrefslogtreecommitdiff
path: root/NEWS
blob: 5ad16b9a7ad10acc49df2d2573d6b2da49a41fbb (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
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
Wydawca NEWS -- history of user-visible changes. 2023-03-31
See the end of file for copying conditions.

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

* Distribution verification is run in a separate temporary directory

* Directives in a directive file can appear in any order

* Improved verification of the directive file format

* Loadable Modules

The argument to the "module" statement must be the loadable library
name (with optional directive part).  Libtool-compatible ".la" files
are no longer supported.

Libraries are searched in the path defined by module-load-path and
module-prepend-load-path statements.  The LTDL_LIBRARY_PATH
environment variable is no longer used.

* New version of the configuration parser

* Various bugfixes


Version 4.0.3, 2021-01-06

Fix handling of archivation requests.


Version 4.0.2, 2020-10-12

* Timers removed

* Work over the bug in mailutils mailer implementation.

* Fix creation of spool source directories


Version 4.0.1, 2020-05-02

Fixed syslog logging if print-priority is set to true.


Version 4.0, 2020-05-02

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 uploaded 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.

* Default log facility changed to "daemon"

* 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.

** stat-report-schedule statement

Schedules generation of statistic reports in daemon mode.  The
argument is a crontab(5) time specification.  The default is
"@hourly".

** The "statistics" event.

New event "statistics" replaces the legacy "finish" event.

** 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-2022 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.