aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am18
-rw-r--r--doc/Makefile.am6
-rw-r--r--doc/wydawca.texi195
-rw-r--r--etc/messages.rc73
-rw-r--r--etc/wydawca.rc62
-rw-r--r--src/config.c2
-rw-r--r--src/directive.c2
-rw-r--r--src/diskio.c2
-rw-r--r--src/exec.c2
-rw-r--r--src/gpg.c2
-rw-r--r--src/mail.c2
-rw-r--r--src/mail.h2
-rw-r--r--src/method.c2
-rw-r--r--src/process.c2
-rw-r--r--src/sql.c2
-rw-r--r--src/sql.h2
-rw-r--r--src/triplet.c2
-rw-r--r--src/verify.c2
-rw-r--r--src/wydawca.c4
-rw-r--r--src/wydawca.h2
20 files changed, 305 insertions, 81 deletions
diff --git a/Makefile.am b/Makefile.am
index 0fffb5a..11ecd6f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,8 +1,24 @@
+# This file is part of Wydawca
+# Copyright (C) 2007 Sergey Poznyakoff
+#
+# Wydawca is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# Wydawca is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with wydawca. If not, see <http://www.gnu.org/licenses/>.
+
ACLOCAL_AMFLAGS = -I m4
AUTOMAKE_OPTIONS = gnu 1.8.5
SUBDIRS=gnu lib src doc etc
-# We never remove the contents of configuration directory
+# We never remove files from the configuration directory
distuninstallcheck_listfiles = \
find $(prefix) -type f -not -path '$(sysconfdir)/*'
diff --git a/doc/Makefile.am b/doc/Makefile.am
index fb4d036..7c7b135 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,18 +1,18 @@
# This file is part of Wydawca
# Copyright (C) 2007 Sergey Poznyakoff
#
-# This program is free software; you can redistribute it and/or modify it
+# Wudawca is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3 of the License, or (at your option)
# any later version.
#
-# This program is distributed in the hope that it will be useful,
+# Wydawca is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
-# with this program. If not, see <http://www.gnu.org/licenses/>.
+# with Wydawca. If not, see <http://www.gnu.org/licenses/>.
info_TEXINFOS=wydawca.texi
wydawca_TEXINFOS=fdl.texi rendition.texi macros.texi
diff --git a/doc/wydawca.texi b/doc/wydawca.texi
index 3109c9b..6bc79a9 100644
--- a/doc/wydawca.texi
+++ b/doc/wydawca.texi
@@ -22,7 +22,7 @@
@ifinfo
@direntry
-* wydawca: (wydawca). Automatic project upload daemon.
+* wydawca: (wydawca). Automatic release submission daemon.
@end direntry
@end ifinfo
@@ -102,15 +102,16 @@ How to Configure @command{wydawca}.
Mail Notification
* mailer::
-* admin notification::
-* user notification::
+* templates::
+* statreports::
+* event notification::
@end detailmenu
@end menu
@node Intro, overview, Top, Top
@chapter Introduction to Wydawca
-@UNREVISED{}
+@cindex introduction
Let's begin with a short synopsis. Suppose you run a developer's
site, like, e.g. @indicateurl{gnu.org}. You have at least two
@dfn{distribution @acronym{URL}s}: @indicateurl{ftp.gnu.org}, which
@@ -127,6 +128,9 @@ Uploads, maintain, Information for maintainers of GNU software}.
@uref{http://www.gnu.org/prep/maintain/html_node/Automated-Upload-Procedure.html,
Automated Upload Procedure}.
@end ifhtml
+@cindex upload site
+@cindex source directory
+@cindex directory, source
The following is a short summary of it: there is an @acronym{FTP}
@dfn{upload site}, which has two @dfn{source directories}, each one
corresponding to a certain distribution @acronym{URL}. For example,
@@ -137,21 +141,26 @@ corresponding to a certain distribution @acronym{URL}. For example,
@item @file{/incoming/alpha} @tab @indicateurl{alpha.gnu.org}
@end multitable
+@cindex @acronym{PGP}
+@cindex detached signature
+@cindex signature, detached
Now, if the maintainer of the project @samp{foo} wishes to make a release
-of the stable version @file{foo-1.0.tar.gz}, he creates a detached
-signature @file{foo-1.0.tar.gz.sig}, using his PGP key, the creates a
-special @dfn{directive} file, that contain some information needed bt
-the server, and clearsigns it, obtaining this way the file
+of the stable version @file{foo-1.0.tar.gz}, he first creates a detached
+signature @file{foo-1.0.tar.gz.sig}. Then he creates a special
+@dfn{directive} file, that contains information about where the
+distributed tarball must be placed, and clear-signs it using his
+@acronym{PGP} key, thus obtaining file
@file{foo-1.0.tar.gz.directive.asc}. Then he uploads these three files
(a @dfn{triplet}) to the upload site, storing them into the directory
@file{/incoming/ftp}.
- From now on it is the responsibility of an @dfn{automated upload
-daemon}, to scan the source directories, to gather the triplets,
-verify them, and to move the files to distribution sites, if they had
-passed the verification successfully.
+@cindex release submission daemon
+ From now on it is the responsibility of an @dfn{release submission daemon}
+to scan the source directories, to gather the triplets, verify them,
+and to any files that had passed the verification successfully to
+their distribution sites.
- @command{Wydawca} is such an automated upload daemon. It is able to
+ @command{Wydawca} is such a release submission daemon. It is able to
handle any number of @samp{source/destination} pairs, offers an
extensible logging and mail notification mechanism, allowing both
package maintainers and site administrators to be immediately notified
@@ -162,7 +171,76 @@ effective and consumes little resources.
@node overview, starting, Intro, Top
@chapter Operation Overview
-@UNREVISED{}
+@cindex operation
+@cindex overview
+ Usually, @command{wydawca} is installed on the machine that receives
+release uploads and is run periodically as a cron-job. It supposes
+that both upload and distribution directories are accessible in the
+local file system hierarchy. If that is not the case (e.g. if upload
+and distribution sites are handled by different machines), one of them
+should be mounted using @acronym{NFS}. Future versions will contain
+special provisions for that case.
+
+@cindex directory pair
+@cindex upload directory
+@cindex directory, upload
+@cindex source directory
+@cindex directory, source
+@cindex distribution directory
+@cindex directory, distribution
+@cindex destination directory
+@cindex directory, destination
+ The configuration file supplies the utility with the set of
+@dfn{directory pairs}, i.e. pairs of upload and corresponding
+distribution directories. In @command{wydawca} terminology, upload
+directories are also called @dfn{source}, and distribution directories
+-- @dfn{destination} directories. It also supplies all the information
+necessary to access user and project databases.
+
+ When started, @command{wydawca} scans each source directory and
+prepares a list of files found there. Then, it compacts this list by
+looking for @dfn{directive files} and re-arranging list members in
+@dfn{triplets}. A @dfn{directive file} is a special file that must be
+supplied with each upload, that contains directive regarding the
+placement of the uploaded files. A @dfn{triplet}, is a standard
+entity, consisting of three files: a clear-signed directive file, a
+file to be distributed, and a detached signature of the latter.
+In some special cases, a clear-signed directive file alone is valid,
+namely when it contains only @dfn{standalone directives}, as described
+in
+@ifnothtml
+@ref{FTP Upload Directive File - v1.1,
+Standalone directives, Standalone directives,
+maintain, Information for maintainers of GNU software}.
+@end ifnothtml
+@ifhtml
+@uref{http://www.gnu.org/prep/maintain/html_node/FTP-Upload-Directive-File-_002d-v1_002e1.html,
+Standalone directives}.
+@end ifhtml
+
+ Each @dfn{incomplete} triplet, i.e. such that misses one or more
+necessary files, is then verified by checking if the modification
+date of its oldest file is older than a predefined amount
+(@pxref{file-sweep-time}), and if so, all files from this triplet are
+removed (an @dfn{expired triplet}). This gives users the possibility
+to restart interrupted or otherwise broken uploads later.
+
+ Then the utility ensures that each of the remaining triplets is
+created by a single person, any triplets that do not are immediately
+removed.
+
+@cindex @acronym{PGP}
+@cindex detached signature
+@cindex signature, detached
+ Then, @acronym{PGP} signatures of directive files and any detached
+signatures (if available) are verified. If they do not match public
+keys of the user who uploaded the triplet, such a triplet is
+discarded.
+
+ Finally, the directives from each directive file are executed. On
+this stage of the processing, the uploaded files are actually moved to
+their destination directories, requested symbolic links are created,
+etc.
@node starting, configuring, overview, Top
@chapter How to invoke @command{wydawca}.
@@ -208,7 +286,7 @@ the same as @option{--syslog}, but it may change in the future.
@anchor{debug}
@xopindex{debug, described}
@sopindex{d, described}
- The @option{--debug} (@option{-d}) tells the program to inrease its
+ The @option{--debug} (@option{-d}) tells the program to increase its
debugging level by 1. The @dfn{debugging level} determines the amount
of information the program reports when it runs. By default it is 0,
meaning to report only errors and other critical conditions. Raising
@@ -478,6 +556,7 @@ end
@node access methods
@section Access Methods
@cindex Access method
+@cindex @acronym{PGP} key
An @dfn{access method} defines how @command{wydawca} can access some
piece of information it needs while verifying the submission. This
information can be, for example, the user's @acronym{PGP} key or his
@@ -503,7 +582,7 @@ below:
future use.
@end table
- Access methods are defined in the confguration file using the
+ Access methods are defined in the configuration file using the
following syntax:
@smallexample
@@ -564,6 +643,8 @@ on the database structure used in
@uref{http://gna.org/projects/savane, @command{Savane} system}.
@deffn {Access Method} gpg-key
+@cindex @acronym{PGP} public key, retrieving
+@cindex public @acronym{PGP} key, retrieving
Retrieve the public @acronym{PGP} key of a user. This method must
return exactly one string.
@@ -636,7 +717,7 @@ the ones uploaded earlier. Although this practice is not encouraged,
it still can happen. In that case, @command{wydawca} needs to first
@dfn{archive} the already existing file, and then put the new one in
its place. Moreover, the directive file format allows maintainers to
-explicitely require archivation of their existing files.
+explicitly require archivation of their existing files.
@cindex archivation methods
@kwindex archive
@@ -774,8 +855,8 @@ describing the pair. At least two statements are required:
distribution) directory. Apart from these obligatory statements, the
@code{directory} block may contain @code{archive} statement
(@pxref{archivation}) and access method definitions (@pxref{access
-methods}). If any of these statements is present, it override the
-corresponding global definition only for this directory pair. The
+methods}). Any of these statements, if present, overrides the
+corresponding global definition for this directory pair. The
@code{directory} statement ends with the @code{end} keyword on a
separate line.
@@ -794,8 +875,8 @@ end
This directory pair will be using archivation type and access methods
defined globally.
- The following example shows the same directory pair block, that additionally
-overriding the archivation method:
+ The following example shows the same directory pair block, that
+additionally overrides archivation method:
@smallexample
@group
@@ -815,8 +896,7 @@ such case.
@node statistics
@section Statistics
-@UNREVISED{}
-
+@cindex statistics
At the end of the run, @command{wydawca} can print the detailed
statistics of its execution on the diagnostic channel @samp{info}.
The following example illustrates what you might get if you configured
@@ -854,13 +934,14 @@ Any warning conditions occurred during the run.
@kwindex bad-signatures@r{, statistics}
@item bad-signatures
+@cindex @acronym{PGP} signature
A @acronym{PGP} signature not matches the public key for the user that
issued it.
@kwindex access-violations@r{, statistics}
@item access-violations
A user is attempting to upload files for some project, but it is not
-authorised to do so.
+authorized to do so.
@kwindex complete-triplets@r{, statistics}
@item complete-triplets
@@ -943,7 +1024,6 @@ statistics all errors warnings
@node notification
@section Mail Notification
-@UNREVISED{}
@cindex mail notification
While running, @command{wydawca} keeps track of certain events
occurring, such as, for example, broken @acronym{PGP} signatures or
@@ -962,7 +1042,7 @@ from-address ftp-uploads@@gnu.org.ua
@end smallexample
@noindent
-It is not strictly necessary to specify it, however. In the absense of
+It is not strictly necessary to specify it, however. In the absence of
@code{from-address} statement, the sender email will be constructed
from the name of the user @command{wydawca} runs as (usually
@samp{root}) and the full domain name of the machine it runs at.
@@ -970,8 +1050,8 @@ from the name of the user @command{wydawca} runs as (usually
@menu
* mailer::
* templates::
-* admin notification::
-* user notification::
+* statreports::
+* event notification::
@end menu
@node mailer
@@ -1045,7 +1125,7 @@ mailer smtp://remote.server.net:24
@cindex notification message template
@cindex message template
Each notification message is build from a message template, by
-expanding any occurrances of @samp{%@{@var{name}@}} within it with the value
+expanding any occurrences of @samp{%@{@var{name}@}} within it with the value
of macro-variable @var{name}. The sets of defined macro-variables
depend on the type of the notification and are described below.
@@ -1103,18 +1183,18 @@ define-message my-message -EOT
EOT
@end smallexample
-@node admin notification
-@subsection Admin Notification
+@node statreports
+@subsection Statistic Reports
@kwindex mail-admin-stat
- Sending notifications to the system administrator is enabled by
+ Sending statistic reports to the system administrator is enabled by
@code{mail-admin-stat} statement. It takes two or more arguments.
The first argument supplies the identifier of a message template,
which should be previously defined by a @code{define-message}.
The rest of arguments is a list of statistics keywords as described in
-@ref{statistics}. The notification will be sent only if statistics
+@ref{statistics}. A report will be sent only if statistics
counters for at least one of the requested categories are not
zero. For example, the following statement requires sending
-notifications only if there ocurred any errors or access violation
+notifications only if there occurred any errors or access violation
attempts, or any bad signature was uploaded:
@smallexample
@@ -1188,17 +1268,18 @@ Wydawca
end
@end smallexample
-@node user notification
-@subsection User Notification
-@UNREVISED{}
-@cindex mail notification, project admin
- Project administrators (@dfn{owners}) and/or users may recieve email
-notifications about any of the following events:
-
+@node event notification
+@subsection Event Notification
+@cindex event notification
+ The following @dfn{events} are tracked during the execution. Any of
+them can be used to trigger sending an email notification to any party
+concerned: the system administrator, project administrators, or
+the user that initiated the upload:
+
@table @code
@kwindex success
@item success
- Successfull upload.
+ Successful upload.
@kwindex bad-ownership
@item bad-ownership
@@ -1288,9 +1369,9 @@ Full listing of the uploaded triplet. It is equivalent to:
For example:
@smallexample
--rw-r--r-- gray users 2707278 2007-09-06 22:14:35 tar-1.18.tar.gz
--rw-r--r-- gray users 189 2007-09-06 22:14:35 tar-1.18.tar.gz.sig
--rw-r--r-- gray users 62 2007-09-06 22:14:35 tar-1.18.tar.gz.directive.asc
+-rw-r--r-- gray users 2707278 2007-09-06 22:14:35 tar-1.18.tar.gz
+-rw-r--r-- gray users 189 2007-09-06 22:14:35 tar-1.18.tar.gz.sig
+-rw-r--r-- gray user 62 2007-09-06 22:14:35 tar-1.18.tar.gz.directive.asc
@end smallexample
@kwindex triplet:upload
@@ -1298,8 +1379,8 @@ For example:
Listing of the uploaded files. E.g.:
@smallexample
--rw-r--r-- gray users 2707278 2007-09-06 22:14:35 tar-1.18.tar.gz
--rw-r--r-- gray users 189 2007-09-06 22:14:35 tar-1.18.tar.gz.sig
+-rw-r--r-- gray users 2707278 2007-09-06 22:14:35 tar-1.18.tar.gz
+-rw-r--r-- gray users 189 2007-09-06 22:14:35 tar-1.18.tar.gz.sig
@end smallexample
@kwindex triplet:dist
@@ -1372,7 +1453,7 @@ Appending Files to an Archive, Appending Files to an Archive, tar,
@item directory
The @var{archive-name} specifies a directory name where to store
-archive copies. If it is a relative pathname, this directory will be
+archive copies. If it is a relative file name, this directory will be
created under the @code{destination} directory. If it is absolute file
name, the archive name directory will be constructed for each triplet
using the following rule:
@@ -1504,6 +1585,7 @@ Is ignored.
@end table
@end deffn
+@anchor{file-sweep-time}
@deffn {Wydawca Statement} file-sweep-time @var{interval}
Sets the amount of time after which any unprocessed file will be
removed.
@@ -1531,14 +1613,16 @@ omitted, seconds are supposed.
Sets the umask to be used. The @var{value} must be octal.
@end deffn
-@deffn {Wydawca Statement} tar-command @var{string}
+@deffn {Wydawca Statement} tar-program @var{string}
Sets the file name of the @command{tar} utility. If @var{string} is
not an absolute file name, it will be searched in @env{PATH}.
+
+@xref{archivation}, for more information on when this statement is needed.
@end deffn
@deffn {Wydawca Block Statement} sql @var{identifier}
This statement begins a MySQL database definition. It may contain
-several substatements, defining how to access the database. The
+several sub-statements, defining how to access the database. The
statement ends with the @code{end} keyword on a line by itself.
@xref{sql}, for more information.
@@ -1630,6 +1714,8 @@ name.
@end deffn
@deffn {Wydawca Statement} gpg-key @var{type} @var{id} @var{command}
+@cindex @acronym{PGP} public key, retrieving
+@cindex public @acronym{PGP} key, retrieving
Defines an access method for retrieving user's public @acronym{PGP}
key.
@@ -1660,7 +1746,7 @@ a user.
@deffn {Wydawca Statement} admin-address @var{email}
Sets email address or addresses to send administrator notification to.
-@xref{admin notification}.
+@xref{statreports}.
@end deffn
@deffn {Wydawca Statement} from-address @var{email}
@@ -1670,10 +1756,9 @@ Sets the sender address for mail notifications.
@end deffn
@deffn {Wydawca Statement} mail-admin-stat @var{msg-id} @var{condition-list}
-Defines statistics categories that trigger administrator
-notifications.
+Defines statistics categories that trigger statistic reports.
-@xref{admin notification}.
+@xref{statreports}.
@end deffn
@deffn {Wydawca Statement} define-message
@@ -1778,7 +1863,7 @@ Print the program version and exit.
@chapter How to Report a Bug
As the purpose of bug reporting is to improve software, please be
-sure to include maximum information when reporting a bug. The mimimum
+sure to include maximum information when reporting a bug. The minimum
information needed is:
@itemize
diff --git a/etc/messages.rc b/etc/messages.rc
index 6589ea5..ee43499 100644
--- a/etc/messages.rc
+++ b/etc/messages.rc
@@ -1,3 +1,30 @@
+# Configurable email notifications for Wydawca.
+# Copyright (C) 2007 Sergey Poznyakoff
+#
+# Wydawca is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 3 of the License, or (at your option)
+# any later version.
+#
+# Wydawca is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with wydawca. If not, see <http://www.gnu.org/licenses/>.
+
+# An identifier following each `define-message' keyword is used to
+# refer to that message template from the main configuration file
+# (see `notify-event' and `mail-admin-stat' statements in wydawca.rc
+#
+# See `info wydawca templates', for more information.
+
+
+#############################################################################
+# A template for statistic reports
+#############################################################################
+
define-message admin-stat
Subject: Wydawca stats
@@ -22,6 +49,11 @@ Regards,
Wydawca
end
+
+#############################################################################
+# A template for user success notification
+#############################################################################
+
define-message user-success
Subject: Upload of %{project} successful
@@ -34,6 +66,11 @@ Wydawca
The Project Submission Robot
end
+
+#############################################################################
+# A template for project admin success notification.
+#############################################################################
+
define-message owner-success
Subject: Upload of %{project} successful
@@ -47,6 +84,13 @@ Wydawca
The Project Submission Robot
end
+
+#############################################################################
+# A template for bad-ownership notification. It is send to the project
+# admins, if someone non authorized attempted to upload some files for
+# the project they run.
+#############################################################################
+
define-message bad-ownership
Subject: Suspicious upload of %{project}
@@ -66,6 +110,13 @@ Wydawca
The Project Submission Robot
end
+
+#############################################################################
+# Notification about a bad directive signature. To be sent to the user.
+# It may be a good idea not to notify users about such events, just to
+# stay on a safe side. Notifying project admins will be quite enough.
+#############################################################################
+
define-message user-bad-directive-signature
Subject: Suspicious upload of %{project}
@@ -85,6 +136,13 @@ Wydawca
The Project Submission Robot
end
+
+#############################################################################
+# Notification about a bad directive signature. To be sent to the project
+# admins.
+# See the previous comment
+#############################################################################
+
define-message owner-bad-directive-signature
Subject: Suspicious upload of %{project}
@@ -101,6 +159,13 @@ Wydawca
The Project Submission Robot
end
+
+#############################################################################
+# Notification about a bad detached signature. To be sent to the user.
+# It may be a good idea not to notify users about such events, just to
+# stay on a safe side. Notifying project admins will be quite enough.
+#############################################################################
+
define-message user-bad-detached-signature
Subject: Suspicious upload of %{project}
@@ -120,6 +185,13 @@ Wydawca
The Project Submission Robot
end
+
+#############################################################################
+# Notification about a bad detached signature. To be sent to the project
+# admins.
+# See the previous comment
+#############################################################################
+
define-message owner-bad-detached-signature
Subject: Suspicious upload of %{project}
@@ -136,4 +208,5 @@ Wydawca
The Project Submission Robot
end
+# End of file
diff --git a/etc/wydawca.rc b/etc/wydawca.rc
index bec8d12..a447c9c 100644
--- a/etc/wydawca.rc
+++ b/etc/wydawca.rc
@@ -1,10 +1,40 @@
+# A sample configuration file for Wydawca
+# Copyright (C) 2007 Sergey Poznyakoff
+#
+# Wydawca is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 3 of the License, or (at your option)
+# any later version.
+#
+# Wydawca is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with wydawca. If not, see <http://www.gnu.org/licenses/>.
+
+# Configure logging via syslog.
+# Fror more info, run `info wydawca syslog'.
syslog-facility local1
syslog-tag wydawca
syslog-print-priority yes
+
+# Enable statistics output at the end of the run.
+# Fror more info, run `info wydawca statistics'.
statistics all
+# Remove any stray file that is more than an hour old.
file-sweep-time 1 hour
+# Set default umask
+umask 022
+# Set the name of the tar binary. This is optional.
+# See `info wydawca archivation', for more info.
+tar-program /bin/tar
+
+# Configure SQL databases.
+# See `info wydawca sql'.
sql default
host localhost:/tmp/mysql.sock
database savane
@@ -12,8 +42,12 @@ sql default
password guessme
end
-umask 022
-tar-program /bin/tar
+
+#############################################################################
+# Configure access methods.
+# Run `info wydawca access', for the detailed description of these.
+# The provided ones use Savane database structure.
+#############################################################################
project-owner sql default SELECT user.email, user.realname \
FROM user,user_group,groups \
@@ -36,23 +70,37 @@ verify-user sql default SELECT user.user_name \
gpg-key sql default SELECT gpg_key FROM user WHERE user_name='%u'
+
+#############################################################################
+# Configure your directory pairs.
+# A directory pair defines where to look for input triplets, and where to
+# copy uploaded files.
+#
+# See `info wydawca directory', for a detailed explanation.
+#############################################################################
+
directory
source /home/ftp/incoming/ftp
destination /home/ftp/gnu
- archive directory .archive
- #archive directory .archive numbered
- #archive directory /var/spool/archive
- #archive tar /var/spool/archive.tar
+ archive directory /var/spool/archive numbered
end
+#############################################################################
+# Configure email notifications
+# See `info wydawca notification', for an explanation.
+#############################################################################
+
+# Include statement is described in `info wydawca include'.
include messages.rc
admin-address gray@localhost
from-address wydawca@localhost
+# See `info wydawca statreports'.
mail-admin-stat admin-stat all
+# See `info wydawca event'.
notify-event success user user-success
notify-event success owner owner-success
@@ -63,3 +111,5 @@ notify-event bad-directive-signature owner owner-bad-directive-signature
notify-event bad-detached-signature user user-bad-detached-signature
notify-event bad-detached-signature owner owner-bad-detached-signature
+
+# End of configuration file
diff --git a/src/config.c b/src/config.c
index ed0bafd..c21c14b 100644
--- a/src/config.c
+++ b/src/config.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free software; you can redistribute it and/or modify it
diff --git a/src/directive.c b/src/directive.c
index 680c2d9..924582c 100644
--- a/src/directive.c
+++ b/src/directive.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free software; you can redistribute it and/or modify it
diff --git a/src/diskio.c b/src/diskio.c
index e5c366e..bc12971 100644
--- a/src/diskio.c
+++ b/src/diskio.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free software; you can redistribute it and/or modify it
diff --git a/src/exec.c b/src/exec.c
index 8470146..269cb2b 100644
--- a/src/exec.c
+++ b/src/exec.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free software; you can redistribute it and/or modify it
diff --git a/src/gpg.c b/src/gpg.c
index 0a35942..df855c7 100644
--- a/src/gpg.c
+++ b/src/gpg.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free software; you can redistribute it and/or modify it
diff --git a/src/mail.c b/src/mail.c
index 0648280..d777a2e 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free software; you can redistribute it and/or modify it
diff --git a/src/mail.h b/src/mail.h
index 30f6649..5b2a86c 100644
--- a/src/mail.h
+++ b/src/mail.h
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
This program is free software; you can redistribute it and/or modify it
diff --git a/src/method.c b/src/method.c
index 6cd7724..3ef9d6d 100644
--- a/src/method.c
+++ b/src/method.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free software; you can redistribute it and/or modify it
diff --git a/src/process.c b/src/process.c
index 3c473b4..79f9f80 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free software; you can redistribute it and/or modify it
diff --git a/src/sql.c b/src/sql.c
index d8e9fc5..f74b25b 100644
--- a/src/sql.c
+++ b/src/sql.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free software; you can redistribute it and/or modify it
diff --git a/src/sql.h b/src/sql.h
index 2af0b97..4529ce9 100644
--- a/src/sql.h
+++ b/src/sql.h
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
This program is free software; you can redistribute it and/or modify it
diff --git a/src/triplet.c b/src/triplet.c
index ad7eb84..0385fd0 100644
--- a/src/triplet.c
+++ b/src/triplet.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free software; you can redistribute it and/or modify it
diff --git a/src/verify.c b/src/verify.c
index 7be0699..0f6f5ee 100644
--- a/src/verify.c
+++ b/src/verify.c
@@ -1,4 +1,4 @@
-/* wydawca - FTP release synchronization daemon
+/* wydawca - automatic release submission daemon
Copyright (C) 2007 Sergey Poznyakoff
Wydawca is free sof