2009-12-22  Sergey Poznyakoff  <gray@gnu.org.ua>

	Version 2.0
	* NEWS: Update.
	* configure.ac: Update.
	* doc/wydawca.texi: Minor change.

	Finish documentation
	* doc/Makefile.am (manual.tar.bz2)
	(man-tar): New rules.
	* doc/gendocs_template: Rewrite.
	* doc/wydawca.texi: Update.
	* doc/Config: New file.

	Fix documentation + minor changes.
	* bootstrap.conf: Unconditionally update submodules.
	* configure.ac: Fix wording of an error message.
	* doc/Makefile.am (check-config)
	(check-sub-config): Fix regexps.
	* doc/wydawca.texi: Update.

	* src/cmdline.opt (selected_spools): New function,
	* src/config.c (spool_kw): Move "archive-signatures" to
	wydawca_kw.
	* src/wydawca.c (main): selected_spools implies
	cron_option.
	* src/wydawca.h (selected_spools): New proto.

2009-12-21  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update grecs.

	Namespace cleanup.
	Rename "access method" to "dictionary".
	All sources affected.

	* src/method.c: renamed to...
	* src/dictionary.c: ... this.

2009-12-10  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update grecs.

2009-12-09  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve docs + bugfix.
	* doc/Makefile.am (check-options): Fix sed expression.
	* doc/wydawca.texi: Update.
	* src/job.c (job_start): Don't fork if single_process is set.

2009-12-08  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor changes.
	* doc/Makefile.am (check-config)
	(check-sub-config): New rules.
	(all-check-docs): Depend on check-config
	and check-sub-config.
	* doc/wydawca.texi: Fix configuration statement
	markers for use with check-config and check-sub-config
	rules.

	Implement GPG signing of the outgoing notifications.
	* src/config.c (mail_statistics_kw): New keyword gpg-sign.
	(notify_event_kw): Likewise.
	(wydawca_kw): New keyword gpg-homedir.
	* src/gpg.c (wydawca_gpg_homedir): Rename to
	create_gpg_homedir. Make static.
	All uses updated.
	* src/mail.c (admin_stat_sign_key): New global.
	(mu_stream_data_read_cb)
	(gpg_sign, sign_message): New functions.
	(mail_send_message): Take 3rd argument: ID of
	the PGP key to sign the message with.
	All callers updated.
	(do_notify): Rewrite.
	* src/wydawca.c (wydawca_gpg_homedir): New variable.
	* src/wydawca.h (struct notification): New member
	sign_keys.
	(admin_stat_sign_key): New extern.
	(wydawca_gpg_homedir): New extern.

2009-12-06  Sergey Poznyakoff  <gray@gnu.org.ua>

	Comment expansion.
	* src/triplet.c: New keyword "comment".

	Allow to specify arbitrary notification recipients.
	* src/wydawca.h (enum notification_target): New value notify_read,
	meaning "read recipient addresses from the message headers".
	* src/config.c (target_args): New values: "read" and "message".
	(target_types): New value 'notify_read'.
	* src/mail.c (mail_send_message): Handle NULL rcpt.
	(do_notify): Handle notify_read.

2009-12-02  Sergey Poznyakoff  <gray@gnu.org.ua>

	Initial implementation of mysql over SSL.
	* src/config.c (sql_kw): New keyword `ssl-ca'.
	* src/sql.c (sql_init_method): Initialize SSL, if
	required.
	* src/sql.h (struct sqlconn): New member `cacert'.

2009-12-01  Sergey Poznyakoff  <gray@gnu.org.ua>

	Vershion 1.9.92
	* Makefile.am (AUTOMAKE_OPTION): Remove.
	* configure.ac: Version 1.9.92
	(AM_INIT_AUTOMAKE): Specify parameters.
	Enable silent rules.
	* NEWS: Update.
	* THANKS: New file.
	* tests/mailstats.at: update
	* tests/notify-upl.at: update

	Fix locking. Improve mail formatting.
	* src/config.c (locking_kw): Remove retry-attempts and
	retry-interval.
	New keyword: timeout.
	* src/job.c (job_queue_runner): Use lock_timeout.
	* src/lock.c (lock_retry_attempts, lock_retry_interval): Remove.
	(lock_timeout): New variable.
	(wydawca_lock): Rewrite lock acquisition loop.
	* src/wydawca.h (lock_retry_attempts, lock_retry_interval):
	Remove.
	(lock_timeout): New extern.
	* src/process.c (scan_spool): Analyze return from wydawca_lock.
	* src/mail.c (mail_send_message): Set From header, unless
	it is already present.

	Minor fix.
	* src/job.c (wydawca_scanner): Close mailer after logstats.

2009-11-30  Sergey Poznyakoff  <gray@gnu.org.ua>

	Do not require uploaders to be present in the system passwd
	database.
	* src/wydawca.h (access_method_id): Remove verify_method,
	gpg_key_method and user_data_method. Add project_uploader_method.
	(uploader_info): New structure.
	(struct file_triplet): Remove gid and user data fields.
	Add uploader_count, uploader_list and uploader.
	(TRIPLET_GID): Change definition.
	(verify_directive_signature): Change signature.
	(uploader_find_frp): New proto.

	* src/verify.c (extract_plaintext): New function.
	(fill_project_name): Rewrite. Parse directive file.
	(uploader_find_frp): New function.
	(check_access_rights): Remove.
	(verify_directive_file): Rewrite.

	* src/config.c (string_to_access_method_id): Reflect changes
	to the
	access method system.
	* src/builtin.c (default_ncol): Reflect changes to the
	access method system.
	* src/gpg.c (gpg_sig_ok_p): Remove.
	(gpg_verify_signature): New function, based on
	gpg_sig_ok_p.
	(verify_directive_signature): Remove `pubkey' argument.
	Register all public keys from the uploader list.
	Do not call directive_parse, as the directive file must
	already be parsed by the time the function is called.
	* src/mail.c (get_uploader_email): New function.
	(do_notify): Use get_uploader_email for notifying
	users.
	* src/triplet.c (hash_triplet_free): Reflect changes to
	the triplet structure.
	(format_file_data): Get user name from the system passwd database.
	(fill_user_data): Remove.
	(expand_user_real_name, expand_user_email): Reflect changes to
	struct file_triplet.

	* tests/etc/wydawca.rcin: Rewrite to reflect new access method
	system.
	* tests/mailstats.at, tests/notify-upl.at,
	tests/upload-dry.at, tests/upload.at: Update.

	Minor fixes.
	* tests/wsbatch.c: Fix diagnostics.

	Upgrade grecs

2009-10-27  Sergey Poznyakoff  <gray@gnu.org.ua>

	Switch to grecs master.
	* grecs: Switch to master.
	* src/config.c: Upgrade (rename GCONF_* to GRECS_*)

2009-04-21  Sergey Poznyakoff  <gray@gnu.org.ua>

	Switch to grecs master

	Switch to grecs master

	Merge branch 'master' of ssh://git.gnu.org.ua/gitroot/wydawca

2009-04-20  Sergey Poznyakoff  <gray@gnu.org.ua>

	Switch to the Grecs submodule.
	* gconf: Remove
	* Makefile.am (ACLOCAL_AMFLAGS): Add -I grecs/am.
	(SUBDIRS): Replace gconf with grecs
	(make-ChangeLog): Remove spurious rule.
	* bootstrap.conf: Init submodules.
	* configure.ac: Call GRECS_SETUP
	(AC_CONFIG_FILES): Add grecs/Makefile, grecs/src/Makefile.
	* src/wydawca.h: Include grecs.h
	* src/Makefile.am (LDADD,INCLUDES): Refer to grecs.
	* tests/Makefile.am: Likewise.
	* src/cmdline.opt, src/config.c,
	src/diskio.c, src/tcpwrap.c, src/wydawca.c: Use grecs.
	* README-hacking: Update

	Minor fix

2009-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>

	Bugfix
	* src/triplet.c (check_triplet_state): Verify the directive file
	only if
	it already exists.

2009-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fixes

	Start writing wordsplit.
	* doc/wydawca.texi: Update.

	* gconf/argcv.h, gconf/argcv.c: Remove.
	* gconf/wordsplit.c, gconf/wordsplit.h: New files.
	* gconf/Makefile.am (libgconf_a_SOURCES): Remove argcv, add
	wordsplit
	* gconf/gconf-lex.l, gconf/gconf-preproc.c: Use wordsplit,
	instead of
	argcv_get
	* src/directive.c, src/method.c: Likewise.
	* src/wydawca.h: Likewise.

	* tests/wordsplit.at: New file.
	* tests/wstest.c, tests/wsbatch.c: New files.
	* tests/Makefile.am (TESTSUITE_AT): Add wordsplit.at
	Build wstest and wsbatch.
	* tests/testsuite.at: Add wordsplit.at.

2009-03-05  Sergey Poznyakoff  <gray@gnu.org.ua>

	Merge branch 'master' of ssh://git.gnu.org.ua/gitroot/wydawca

	Improve locking.
	* gconf/gconf-gram.y (string_convert): Rename to
	gconf_string_convert, make
	extern. All uses updated.
	* gconf/gconf.h (gconf_string_convert): New proto.
	(wydawca_kw): `locking' block statement.
	* src/job.c: Introduce a delay before restarting a tempfailed job.
	Do not trigger error reporting on tempfail
	* src/lock.c: Retry locking attempts, according to configuration.
	* src/wydawca.h (lock_retry_attempts, lock_retry_interval):
	New declarations.

2009-02-28  Sergey Poznyakoff  <gray@gnu.org.ua>

	Various fixes
	* doc/Makefile.am: Improve checking and final rules.
	* doc/fdl.texi, doc/rendition.texi: Use single-space sentence
	separators.
	* doc/wydawca.texi: Update.
	* src/config.c (cb_email_address): Accept a list of addresses.
	* src/meta.c (meta_expand_string): Take two additional
	arguments. Quote
	expansions if they are provided.
	* src/triplet.c (triplet_expand_method_query): New function.
	* src/mail.c, src/verify.c: Use triplet_expand_method_query
	* src/wydawca.h: Update.
	* src/meta.c (meta_escape): Remove.

2009-02-26  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fixes

	listen defaults to service "wydawca"

	Minor fixes

	Switch to non-privileged UID/GID before startup.
	* src/userprivs.c: New file.
	* src/Makefile.am (wydawca_SOURCES): Add userprivs.c
	* src/config.c (cb_access_method_params): Add missing
	gl_list_iterator_free.
	(cb_user, cb_supp_groups): New callbacks.
	(wydawca_kw): New keywords: user and group.

	* src/wydawca.c (wydawca_uid, wydawca_gid)
	(wydawca_supp_groupc, wydawca_supp_groups): New variables.
	(wydawca_set_uid, wydawca_set_gid, wydawca_set_privs)
	(wydawca_set_triplet_privs, wydawca_set_root_privs): Remove.
	(main): --dry-run implies --cron.
	Switch to non-privileged UID/GID before startup.
	* src/wydawca.h (wydawca_uid, wydawca_gid)
	(wydawca_supp_groupc, wydawca_supp_groups): New declarations.

	* src/mail.c (do_notify): Duplicate admin_address, it gets freed
	in do_notify.

	* src/directive.c, src/diskio.c, src/lock.c, src/triplet.c:
	Update.

2009-02-25  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix testsuite

	Fix privilege selection

	Check incoming connections using libwrap; various bugfixes.
	* configure.ac: Check for libwrap.
	* src/tcpwrap.c: New file.
	* src/Makefile.am (wydawca_SOURCES): Add tcpwrap.c
	* src/builtin.c, src/job.c, src/pidfile.c: Minor fixes.
	* src/config.c (assert_string_arg): Change to extern.
	(wydawca_kw): New block statement "tcp-wrapper"
	* src/net.c (wydawca_listener): Check fd using libwrap.
	* src/triplet.c (DECL_EXPAND_TIMER): Add missing return statement.

2009-02-24  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement locking
	* src/lock.c: New file.
	* gnulib.modules (sysexits, xgethostname): New modules.
	* src/lock.c: New file.
	* src/Makefile.am: Add lock.c
	* src/config.c: Locking keywords.
	* src/job.c: Requeue jobs if locking fails.
	* src/wydawca.c (wydawca_uid): Rename to wydawca_set_uid
	(main): Implement restart.
	* src/process.c (scan_spool, scan_all_spools): Use locking,
	if configured.
	* src/directive.c, src/diskio.c, src/triplet.c: Rename
	wydawca_uid
	* src/exec.c, src/getopt.m4, src/net.c,
	src/pidfile.c: Use standard error codes from sysexits.h
	* tests/etc/wydawca.rcin: Disable locking.

	Improve daemon mode.
	* gconf/gconf-gram.y: Provide created lists with appropriate
	equal tests.
	Special handling for lists of strings.
	* src/cmdline.opt: Minor fix.
	* src/config.c: New keyword all-spools.
	* src/job.c: Hanlde "all spools" requests.
	* src/net.c: Likewise.
	* src/process.c (spool_check_alias): Rewrite using gl_list_search
	(scan_directories): Rename to scan_all_spools.
	(spool_create_timers): New function.
	* src/wydawca.c (all_spool_aliases): New global.
	(initstats): New function.
	* src/wydawca.h: Add new declarations.

	Sync example config

	Initial implementation of daemon mode.
	* gconf/gconf-gram.y (string_to_sockaddr_: Take struct
	gconf_sockaddr as the
	first argument.
	* gconf/gconf.h (struct gconf_sockaddr): New data type.
	* src/job.c, src/net.c, src/pidfile.c: New files.
	* src/Makefile.am (wydawca_SOURCES): Add job.c, net.c, pidfile.c
	* src/cmdline.opt: New options: --cron (change semantics),
	--force,
	--foreground, --single-process, --spool
	* src/wydawca.c: New daemon mode.
	* src/config.c: New statements: spool.alias, daemon, foreground,
	single-process, wakeup-interval, pidfile, listen
	* src/directive.c, src/diskio.c, src/gpg.c, src/mail.c,
	src/null.c,
	src/process.c, src/triplet.c, src/verify.c, src/vtab.c,
	src/wydawca.h: use
	static struct spool wherever feasible.
	* src/triplet.c: New meta-variable "spool"
	* tests/etc/wydawca.rcin: Update.
	* tests/upload-dry.at: Update.

2009-02-23  Sergey Poznyakoff  <gray@gnu.org.ua>

	Add missing i18n markers

	Switch to user privileges while processing the triplet

2009-02-22  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fixes

	Remove sendfile support

	Allow to select spools from the command line

	Rename directory_pair to spool

	Allow to specify UIDs of the users whose uploads are to be
	processed.
	* src/process.c (scan_directory_pair): Ignore files with
	non-matching owner
	UIDs.
	* src/wydawca.c: Treat non-option arguments as a list of owner
	names or UIDs.
	* src/cmdline.opt: Update.

	Bugfix
	* etc/wydawca.rc: Fix syntax errors.
	* src/wydawca.c: Remove leftover function.

	Minor improvements
	* src/report.c: New file
	* src/Makefile.am (wydawca_SOURCES): Add report.c
	* src/cmdline.opt: Group options.
	New option -D (--define).
	* src/directive.c (process_directives): Call report_init before
	processing
	and report_finish afterwards.
	* src/triplet.c: New meta-variable `report'.
	* src/vtab.c (move_file, archive_file, symlink_file,
	rmsymlink_file): Update
	report stack.
	* src/wydawca.h: Include obstack.h
	(report_init, report_add, report_finish): New protos.
	(report_string): New declaration.
	* src/builtin.c, src/meta.c: Remove obstack inclusion.

2009-02-21  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement timers and destination URLs.
	* gconf/gconf-gram.y (stmt_end): Make sure end callback is called
	in the
	same environment as the begin one.
	* src/vtab.c, src/null.c, src/timer.c: New files.
	* src/Makefile.am (wydawca_SOURCES): Add new files.
	* src/config.c (cb_mailer): Remove useless check.
	(cb_destination_url): New function.
	(directory_kw): Change handling of the destination keyword.
	(cb_directory): Rewrite final checks.
	* src/directive.c, /src/process.c, src/triplet.c: Add timers.
	* src/diskio.c (move_file, archive_file, symlink_file,
	rmsymlink_file): Prefix
	with dir_.
	* src/mail.c (mail_stats): Add timer meta-variables.
	* src/wydawca.c (make_stat_expansion): Change definition.
	* src/wydawca.h (struct virt_tab): New data type.
	(struct directory_pair.dest_url): New member.
	* tests/upload-dry.at: Update expected output.

	Remove trailing whitespace

	Change definition of archive_file to match this of rmsymlink_file

	Implement per-directory notifications
	* src/config.c (default_notification): New static.
	(cb_notify_event): Explicitly link new notification to the chain.
	(directory_kw): New keyword "notify-event".
	(cb_directory): Use previously defined global notifications.
	* src/mail.c (register_notification): Remove.
	(notify): Tak a list of notifications to run as an argument.
	* src/directive.c, src/gpg.c, src/verify.c: Update calls to
	notify.
	* src/wydawca.h (struct directory_pair.notification): New member.
	* tests/notify-upl.at: Define notifications before the directory
	pair in
	the configuration file.

2009-02-19  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve testsuite
	* src/mail.c (mail_send_message): Fix diagnostics.
	(mail_stats): Bail out if admin_address is not defined.
	* tests/mailstats.at: New file.
	* tests/Makefile.am (TESTSUITE_AT): Add mailstats.at
	* tests/testsuite.at: Add mailstats.at
	* tests/etc/mailstats.rc: New file.
	* tests/etc/Makefile.am (EXTRA_DIST): Add missing files.
	* tests/etc/wydawca.rcin: Define admin-address, enforce newline
	at EOF.
	* tests/notify-upl.at, tests/upload-dry.at, tests/upload.at:
	Fix descriptions.

	Lots of bugfixes + new testsuite
	* configure.ac: Disable sendfile by default.
	* src/builtin.c (builtin_run): Fix value returned of failure.
	* src/config.c (target_args): Fix ordering
	* src/meta.c (meta_expand_string): Fix handling of unexpanded
	macros.
	* src/triplet.c (fill_user_data): Fix conditional.
	* src/verify.c (make_default_meta): Fix trailing null.

	* tests/.gitignore: Add source and dest
	* tests/Makefile.am (EXTRA_DIST): Add dist.
	(TESTSUITE_AT): Add new tests.
	* tests/atlocal.in: Update.
	* etc/.gitignore: Add wydawca.rc
	* tests/etc/Makefile.am: Add wydawca.rcin
	* tests/testsuite.at: Add new tests

	* tests/dist/file: New file.
	* tests/dist/file.directive.asc: New file.
	* tests/dist/file.sig: New file.
	* tests/etc/notify.rc: New file.
	* tests/etc/nullmail: New file.
	* tests/etc/wydawca.rcin: New file.
	* tests/notify-upl.at: New file.
	* tests/upload-dry.at: New file.
	* tests/upload.at: New file.

2009-02-18  Sergey Poznyakoff  <gray@gnu.org.ua>

	Various fixes

2009-02-17  Sergey Poznyakoff  <gray@gnu.org.ua>

	Begin rewriting method system
	* src/builtin.c, src/builtin.h: New files.
	* src/Makefile.am (wydawca_SOURCES): Add builtin.c and builtin.h
	* src/config.c: New keyword access-method.query
	* src/update-2.0.awk: Update.
	* src/meta.c: Remove quote_string (replaced by
	method_quote_string).
	(meta_escape): Add `handle' argument.
	* src/method.c (struct method_descr): New methods: open, close,
	quote.
	Updated methods: free, run, get. All callers updated.
	(method_quote_string): New function.
	* src/process.c (scan_directory_pair): Init all access methods
	at once.
	* src/sql.c: Take name of the SQL connection from
	method->parmv[0].
	Adapt to changes to the method subsystem.
	* src/sql.h: Likewise.
	* src/wydawca.h (struct access_method): New members id, parmc,
	parmv,
	storage.
	Remove union v.
	(meta_escape): Take 3 arguments.
	(method_new): Take 2 arguments.
	(method_open, method_close, method_quote_string): New proto.
	(method_run, method_result): Change signature.
	* src/mail.c, src/triplet.c, src/verify.c
	* etc/wydawca.rc: Update.

	Merge branch 'master' of ssh://git.gnu.org.ua/gitroot/wydawca

	Fix library autodetection

	Add missing options

2009-02-16  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve keyword (meta) expansion, add testsuite framework
	* src/meta.c: New file.
	* src/Makefile.am (wydawca_SOURCES): Add meta.c.
	* Makefile.am (SUBDIRS): Add tests.
	* configure.ac: Initialize testsuite.
	* src/cmdline.opt: Add preprocessor-related options:
	--[no-]preprocessor,
	-E

	* src/mail.c, src/triplet.c, src/verify.c, src/wydawca.c,
	src/wydawca.h: Use
	new expansion functions.
	* src/update-2.0.awk: Replace % markup with $.

	* etc/wydawca.rc: Switch to new meta-variable syntax.
	* gnulib.modules: Add c-ctype.

	* doc/Makefile.am (check-options): Rewrite.
	* doc/wydawca.texi: Mark unrevised/obsolete material.

	* tests/: New directory

	Update etc/wydawca.rc to the new format

	Improve argument parsing
	* src/cmdline.opt, src/getopt.m4: New files.
	* src/wydawca.c: Switch to new way of command line parsing.
	* src/wydawca.h (gettext): Define.
	* bootstrap.conf: Add formatting flags for gconf_warning and
	gconf_error
	* gconf-preproc.c (pp_list_find): Minor change.
	* gconf/gconf.h (gconf_warning,gconf_error): Mark as printflike.
	* src/.gitignore: Add cmdline.h
	* src/Makefile.am (wydawca_SOURCES): Add cmdline.h.
	(.opt.h): New rule.
	* src/config.c (cb_archive): Archive is now a block statement
	(unless type
	"none" is declared).
	(all functions): Tighten input checking
	* src/update-2.0.awk: Reflect the above change.
	* src/directive.c (process_directives): Minor change.
	* src/diskio.c (symlink_file): Minor change.

	Bugfixes

	Rewrite configuration parser, drop dependency on GSC
	* bootstrap: Replaced with a modified version from gnulib.
	* configure.ac: Bump version to 1.9.90
	(--without-preprocessor): New option
	Require Mailutils 2.0
	(AC_CONFIG_FILES): Remove lib, add gconf

	* gconf/: New directory. Contains general-purpose configuration
	file
	parser, distilled from Dico and Mailutils.

	* src/Makefile.am (wydawca_SOURCES): Add interval.c
	* src/pp-setup, src/update-2.0.awk: New files.
	* src/config.c: Full rewrite.
	* src/exec.c (start_prog): Use getdtablesize unconditionally.
	* src/mail.c: Keep templates in a hash table.
	Template references begin with a single @
	* src/process.c, src/triplet.c, src/verify.c: Reflect changes
	to struct
	directory_pair

	* src/wydawca.c: Change configuration parsing.
	* src/wydawca.h (enum access_method_id): New constants
	(struct directory_pair): Replace four access methods with
	an array.

	* Makefile.am (SUBDIRS): Remove lib, add gconf
	* .gitignore, NEWS, doc/.gitignore, src/.gitignore

2009-02-13  Sergey Poznyakoff  <gray@gnu.org.ua>

	Move to Git
	* COPYING, .gitignore, doc/.gitignore, src/.gitignore: New files.
	* ChangeLog: rename to ChangeLog.svn
	* Makefile.am: Add rules for creating ChangeLog.
	* bootstrap: Add gitlog-to-changelog

2009-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>

	* src/diskio.c (archive_single_file): Fix errno value (ENOENT
	instead of EACCESS).
	Do not update STAT_ARCHIVES.
	(make_signame): New function.
	(archive_file): Use make_signame.
	(do_rmsymlink_file): Take 2nd argument, specifying whether to
	emit warning on errno==ENOENT.
	Update STAT_RMSYMLINKS.
	(rmsymlink_file): Attempt to remove .sig as well, if
	archive_signatures is set.
	Do not update STAT_RMSYMLINKS.

2009-01-22  Sergey Poznyakoff  <gray@gnu.org.ua>

	* configure.ac, NEWS: Version 1.2
	* doc/wydawca.texi: Document new features.
	* src/wydawca.c (archive_signatures): New variable.
	* src/wydawca.h (SUF_SIG,SUF_SIG_LEN,SUF_DIR,SUF_DIR_LEN): New
	macros.
	(archive_signatures): New variable.
	* src/config.c: New configuration file statement
	archive-signatures.
	* src/process.c (SUF_SIG,SUF_DIR): Move to src/wydawca.
	* src/diskio.c (backup_file): Do not update statistics.
	(do_archive_file): Unlink the file after archivation.
	(archive_single_file): New function.
	(archive_file): Implicitly archive .sig file, if
	archive_signatures is set.
	* src/triplet.c (check_triplet_state): Call
	verify_directive_file.
	(triplet_processor): Remove call to verify_directive_file.

2009-01-17  Sergey Poznyakoff  <gray@gnu.org.ua>

	* src/config.c (_cfg_raw_read): Fix missing return value.

	* src/diskio.c (symlink_file): Silently remove existing symlink
	target.
	* NEWS: Update.

2008-09-03  Sergey Poznyakoff  <gray@gnu.org.ua>

	* configure.ac, NEWS: Version 1.0.90
	* doc/wydawca.texi: Mention changes in detailed statistics
	logging.
	* etc/wydawca.rc: Remove gray's email

	* src/wydawca.c (logstats): Log detailed statistics only if 
	at least one counter is not zero.

2008-08-23  Sergey Poznyakoff  <gray@gnu.org.ua>

	-= Release 1.0 =-

	* src/wydawca.c (enable_sendfile): New global.
	* src/wydawca.h: Likewise.
	* src/config.c (enable-sendfile): New statement.
	* src/diskio.c (copy_file): Use enable_sendfile to decide whether
	to use sendfile.
	* doc/wydawca.texi: Document enable-sendfile.

2008-07-15  Sergey Poznyakoff  <gray@gnu.org.ua>

	* src/wydawca.h (register_message_template): New prototype.
	* src/verify.c (fill_project_name): Fix return value.
	* src/config.c (_cfg_raw_read): Remove unused variables.
	* src/directive.c (directive_version_in_range_p): Version is unsigned.
	* src/mail.c (do_notify): Remove unused variable.
	* src/diskio.c (copy_file): Fall back to user-space copying if
	sendfile fails with EINVAL.  Always remove destination file on
	failure.
	* src/triplet.c (expand_triplet_upload): Initialize exp->value.

2007-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>

	* configure.ac: Use AM_GNU_MAILUTILS
	* README-hacking: Note mailutils.

2007-09-23  Sergey Poznyakoff  <gray@gnu.org.ua>

	* src/verify.c: Add a fixme comment
	* src/triplet.c (triplet_processor): First check the state of a
	triplet. Call verify_directive file only if it is
	triplet_directive or triplet_complete
	(expand_triplet_full,expand_triplet_upload): Fix coredump if one
	of components is missing. 

2007-09-07  Sergey Poznyakoff  <gray@gnu.org.ua>

	Prepared for the release.

2007-09-06  Sergey Poznyakoff  <gray@gnu.org.ua>

	* bootstrap: Update
	* doc/wydawca.texi: Update
	* src/wydawca.h (notify_project_owner): Remove
	(enum notification_target): New data type
	(find_message_template, register_notification)
	(notification_event_str, notification_target_str): New functions.
	* src/config.c: Redo message template statements
	* src/mail.c: Redo notifications
	* src/mail.h (admin_stat_message_template): Change data type
	(owner_notification_flags,user_message_template): Remove
	* src/wydawca.rc: Moved to ...
	* etc/wydawca.rc: ... here
	* etc/messages.rc: New file
	
2007-09-05  Sergey Poznyakoff  <gray@gnu.org.ua>

	* doc/wydawca.texi: Update.
	* src/wydawca.c, src/config.c: Take into account the latest
	changes to GSC.

2007-09-04  Sergey Poznyakoff  <gray@gnu.org.ua>

	* src/config.c: Implement include statements
	* src/wydawca.rc: Fix typo

	* doc/wydawca.texi, src/wydawca.c, src/wydawca.rc: Update.

2007-09-01  Sergey Poznyakoff  <gray@gnu.org.ua>

	Moved to a separate repository.

	
2007-08-26  Sergey Poznyakoff  <gray@gnu.org.ua>

	* src/wydawca.h (struct file_triplet): New member user
	(fill_project_name): New function
	* src/verify.c (get_project_name): Rename to
	fill_project_name, remove static qualifier.
	* src/wydawca.rc: Update
	* src/mail.c (notify_owner): Notify only the submitter on
	ev_success, ev_bad_directive_signature and
	ev_bad_detached_signature (should it be made configurable?)
	(notify): Call fill_project_name
	* src/triplet.c (hash_triplet_free): Free trp->user
	(expand_user_real_name, expand_user_email): Change data indices to
	match those of project_owner_method.
	
	Implement project owner notifications.
	
	* src/wydawca.c (syslog_printer): Reduce the number of memory
	reallocations
	(make_stat_expansion): Update
	* src/method.c: Implement a new framework: methods may return
	2-dimensional arrays of strings.
	* src/sql.c, src/sql.h: Implement the new method framework.
	* src/verify.c (expand_param): kw_expansion may provide
	expansion functions. An additional argument supplies user-defined
	data for expansions.
	(escape_kwexp): Extern
	(free_kwexp): Improve
	(get_project_name): New function
	(make_default_kwexp): New function
	(check_access_rights): Call get_project_name. Use
	make_default_kwexp to initialize expansions
	(verify_directive_file): Use make_default_kwexp to initialize
	expansions
	* src/wydawca.h (NITEMS): New macro
	(enum access_method_type): New members: ncol, nrow
	(struct directory_pair): New members url,project_owner_method,
	user_data_method
	(struct file_info): Replace mtime, uid with struct stat sb
	(struct file_triplet): New members project, dpair, user_data
	(TRIPLET_UID): Take into account the changes to struct file_info
	(enum notification_event): New data type
	(notify_project_owner, notify_admin, notify): New functions
	(struct kw_expansion): New members static_p, expand and data.
	(escape_kwexp,make_default_kwexp): New proto
	(expand_param): Change signature
	(triplet_expand_param): New function
	(method_result): Change prototype
	(method_num_rows,method_num_cols): New functions
	* src/config.c: New statements project-owner, user-data,
	admin-address, mail-user, user-message
	directory can take an optional argument specifying base URL for
	notification messages
	* src/gpg.c (verify_directive_signature): Expand directives
	even if the signature does not match. Useful for notifications.
	Add notifications.
	* src/process.c: Add notifications.
	* src/directive.c: Add notifications
	* src/wydawca.rc: Update
	* src/mail.c, src/mail.h: Implement project owner
	notifications 
	* src/triplet.c (triplet_expand_param): New function

2007-08-25  Sergey Poznyakoff  <gray@gnu.org.ua>

	* configure.ac: Require mailutils for wydawca
	* bootstrap: Require inttostr and strftime 
	* src/mail.h: New file
	* src/mail.c: New file
	* src/Makefile.am: Add mail.c and mail.h
	* src/wydawca.c: Include mail.h
	(stat_mask_p, make_stat_expansion): New functions
	(logstats): Call mail_stats
	(main): Call initialize mailer subsystem

	* src/sql.c, src/sql.h: Keep usage reference count. Do not
	deinitialize unless it falls to 0. Do not initialize if it is > 0.

	* src/verify.c (expand_param): Rewrite to allow long keywords
	All callers updated.
	* src/wydawca.h (struct access_method): Keep reference count
	(struct directory_pair): verify_method and gpg_key_method are
	pointers to structs.
	(struct kw_expansion): kw is char*
	(count_collected_triplets): New function
	(method_new): New function
	* src/config.c: reimplement  verify-user and gpg-key
	New keywords mailer, admin-address, from-address, mail-admin-stat
	and admin-stat-message
	* src/process.c: Close methods only when their reference count
	is 0.
	* src/method.c: Likewise.
	(method_new): New function
	* src/wydawca.rc: Update
	* src/diskio.c: Minor changes
	* src/triplet.c (count_collected_triplets): New function
	
	* src/wydawca.c, src/config.c, src/gpg.c: New stat
	types STAT_ACCESS_VIOLATIONS and STAT_BAD_SIGNATURES.
	* src/wydawca.h (expand_param): New function
	(struct kw_expansion): New data type
	* src/verify.c (expand_param): Rewrite.
	(verify_directive_file): Call check_access_rights.

2007-08-24  Sergey Poznyakoff  <gray@gnu.org.ua>

	* src/Makefile.am,
	lib/Makefile.am, jabberd/Makefile.am: Fix include dirs
	* src/wydawca.c: Use gsc_version to display
	program version.
	* doc/gsc.texi: Update
	* bootstrap: Add vasprintf

	Implement final statistics.
	
	* src/wydawca.c (log_to_stderr): Init to -1 (autodetect)
	(wydawca_stat,syslog_include_prio,print_stats): New variables
	(version): Update
	(main): New options --cron, --syslog
	Autodetect log_to_stderr value, unless set explicitly
	(syslog_printer): Output priority string if requested by
	syslog_include_prio
	Print final statistics
	(logmsg): Update statistics
	(logstats): New function
	* src/wydawca.h (enum wydawca_stat): New type
	(STAT_MASK, STAT_MASK_NONE, STAT_MASK_ALL, UPDATE_STATS): New defines
	(syslog_include_prio,wydawca_stat,print_stats): New globals
	* src/config.c: New statements "syslog-print-priority" and
	"statistics"
	(get_backup_version): Fix handling of ARGMATCH result.
	* src/directive.c: Update statistics
	* src/diskio.c: Likewise
	* src/triplet.c: Likewise
	* src/wydawca.rc: Update
	
2007-08-23  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve safety checks; implement symlink/rmsymlink/archive
	directives; Fix directive signature verification.

2007-08-22  Sergey Poznyakoff  <gray@gnu.org.ua>

	* src/exec.c: New file
	* src/diskio.c, src/directive.c: Implement all directives

2007-08-21  Sergey Poznyakoff  <gray@gnu.org.ua>

	* src/wydawca.c (usage): Update
	New option --lint
	(tar_command_name): New variable
	* src/wydawca.h: include backupfile.h
	(enum archive_type,struct archive_descr): New data types
	(struct directory_pair.archive): New member
	(safe_file_name): New function
	(move_file): Redo prototype
	(start_prog,log_output): New declarations
	* src/config.c: Include argmatch.h
	(safe_file_name): New function
	(archive,umask,tar-program): New configuration file statemenst
	* src/gpg.c (start_prog,log_output): Remove static qualifiers
	* src/directive.c (process_directives): Update
	* src/wydawca.rc: Update
	* src/diskio.c (move_file): Implement archiving and backups
	
2007-08-20  Sergey Poznyakoff  <gray@gnu.org.ua>

	* src/sql.c (trim_length): Move to verify.c
	* src/verify.c (trim_length, trim)
	(check_access_rights): New functions
	(expand_param): Export
	(verify_triplet): Call verify_directive_format and
	check_access_rights
	* src/wydawca.h (trim_length, trim, directive_parse)
	(directive_get_value, directive_pack_version)
	(directive_version_in_range_p, verify_directive_format)
	(directive_first, directive_next, process_directives)
	(create_directory, move_file): New functions
	(MIN_DIRECTIVE_VERSION,MAX_DIRECTIVE_VERSION)
	(MKDIR_PERMISSIONS,CREAT_PERMISSIONS): New defines
	* src/gpg.c (wydawca_gpg_homedir): Return a meaningful value
	(verify_directive_signature): Call directive_parse
	* src/process.c (parse_file_name): Return void
	* src/directive.c: New file
	* src/diskio.c: New file
	* src/triplet.c (triplet_processor): Call process_directives
	(enumerate_triplets): Arg is not const
	* src/Makefile.am: Add new sources

	* src/triplet.c (triplet_processor): Minor fix
	* src/verify.c (verify_triplet): Save owner gid in reg.
	Call verify_detached_signature
	* src/wydawca.h (struct file_register): New member gid.
	(verify_detached_signature): New function
	* src/gpg.c (verify_detached_signature): New function
	
2007-08-19  Sergey Poznyakoff  <gray@gnu.org.ua>

	* wydawca: New module
	

Local Variables:
mode: change-log
version-control: never
buffer-read-only: t
End:
