Wydawca NEWS -- history of user-visible changes. 2023-03-31 See the end of file for copying conditions. Please send Wydawca bug reports to . 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" * 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: