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
|
Wydawca NEWS -- history of user-visible changes. 2020-04-17
See the end of file for copying conditions.
Please send Wydawca bug reports to <bug-wydawca@gnu.org.ua>.
Version 3.1.95 (git)
* Configuration file name changed to "wydawca.conf"
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:
|