summaryrefslogtreecommitdiffabout
AgeCommit message (Collapse)AuthorFiles
2019-07-24Use wordsplit to expand variables in strings.HEADmasterSergey Poznyakoff18
* NEWS: Raise version number. * configure.ac: Link wydawca.h to include/wydawca Raise version number * doc/wydawca.texi: Document changes. * etc/wydawca.rc: Fix the syntax. * grecs: Upgrace. * include/wydawca/wydawca.h (wy_vlog): New proto. (wy_log, wy_dbg): Format is const char *. (wy_triplet_t): Change typedef. (wy_metadef): Remove struct. (wy_vardef): New struct. (wy_triplet_expand_param) (wy_expand_copy): New protos. * modules/logstat/mod_logstat.c: Update. * modules/mailutils/Makefile.am (AM_CPPFLAGS): Modify, * modules/mailutils/mod_mailutils.c: Update. * src/Makefile.am (wydawca_SOURCES): Remove meta.c * src/dictionary.c: Fix comment. * src/directive.c (directive_get_value): Triplet pointer is const. * src/meta.c: Remove. * src/timer.c: (timer_fill_meta) (timer_free_meta): Remove. * src/triplet.c: Use wordsplit for expansions. * src/wydawca.c (wy_vlog): New function. (wy_stat_expansion): New function. * src/wydawca.h: Remove metadef protos. * tests/etc/notify.rcin: Update variable reference syntax.
2019-07-22Update copyright years in version output (better late, than never)Sergey Poznyakoff1
2019-07-22Verion 3.0release-3.0Sergey Poznyakoff5
2019-07-22Install default pp-setup file from grecsSergey Poznyakoff3
2019-07-22Document directory setup statements.Sergey Poznyakoff1
See commits f338532e, dd9d9c12, and af538cc2.
2019-07-22Finish mod_logstat implementation. Document it.Sergey Poznyakoff14
* doc/wydawca.texi: Document mod_logstat. * include/wydawca/wydawca.h (wy_ev_statistics): Rename to wy_ev_finish. All uses changed. (wydawca_stat): New enum (from src/wydawca.h) (WY_STAT_MASK,WY_STAT_MASK_NONE) (WY_STAT_MASK_ALL): New macros. All uses changed. * modules/logstat/mod_logstat.c (stat_mask): Default to WY_STAT_MASK_ALL. (wy_notify): Provide default output.
2019-07-22Document the module subsystemSergey Poznyakoff3
2019-07-20BugfixSergey Poznyakoff1
* src/diskio.c (dir_test_url): Allow for ENOENT.
2019-07-20Create backup storage directories.Sergey Poznyakoff7
Any spool directories are actually created only if create-directories yes; appears in the configuration file. The global directory-mode and directory-owner statements provide global defaults for the directory metadata. These two keywords can also appear within a spool.archive block. * src/backup.c (split_filename): Change to extern. * src/config.c: Global directory-mode and directory-owner statements. New global statement create-directories. spool.archive.directory-mode and directory-owner statements. (cb_user,cb_supp_groups): Set wydawca_runas. (create_spool_dir): Don't mkdir unless create-directories was set. Honor wy_dry_run. Don't bail out on EPERM wheb uid is not 0. (create_spool_dirs): Compute effective metadata. Create archive directories. * src/diskio.c (create_hierarchy): Fix stack overflow if baselen==0. * src/wydawca.c (wydawca_runas): New global. (main): Intitialize wydawca_uid and wydawca_gid to current values. Run wydawca_userprivs only if wydawca_runas is set. * src/wydawca.h (archive_descr) <metadata>: New member. (wydawca_runas): New extern. * tests/etc/wydawca.rcin: Add create-directories statement. * tests/upload-dry.at: Fix expected output.
2019-07-19Create destination directories if necessarySergey Poznyakoff4
* src/config.c (spool_kw): New statements: destination-mode and destination-owner. See the description of the similar source-* statements in the previous commit. * src/diskio.c (create_hierarchy): First argument is const. * src/vtab.c (wy_url) <local>: New member. (wy_url_is_local): New function. * src/wydawca.h (spool) <dest_metadata>: New member. (create_hierarchy): Change signature.
2019-07-19Create source directories if necessarySergey Poznyakoff2
Missing source directories are created if at least one of the source-mode or source-owner statements are present. If the directory already exists, wydawca makes sure its ownership and mode matches those requested by these statements. The syntax of the two new statements is: source-mode OCTAL; source-owner USER GROUP; USER and GROUP can be either symbolic user and group names or numeric UID and GID. In the latter case, the number can be preceded by a plus sign.
2019-07-18Fix unnecessary code duplicationSergey Poznyakoff10
Use grecs_txtacc.
2019-07-16BugfixSergey Poznyakoff1
* src/config.c: Case-insensitive comparison for syslog facility and priority names.
2019-07-16BugfixSergey Poznyakoff1
* src/config.c: Use GRECS_CONST with string types.
2019-07-16Upgrade grecsSergey Poznyakoff1
2019-07-16Fix testsuite when run as rootSergey Poznyakoff11
2019-07-16More fixes in testsuiteSergey Poznyakoff1
* tests/atlocal.in (wydawca_expandmeta): Use -e option.
2019-07-16Follow-up to the previous commitSergey Poznyakoff1
* tests/notify-upl.at: Replace a left-over usage of @USER@.
2019-07-16Testsuite fixesSergey Poznyakoff2
* tests/check-notify.at: Uploader name is fixed. Remove erroneous use of @USER@. * tests/notify-upl.at: Likewise.
2019-07-16BugfixSergey Poznyakoff1
* src/wydawca.c (main): logging to stderr does not depend on whether stdin is a tty or not.
2019-07-15Switch to grecs eb66a000Sergey Poznyakoff12
2019-07-15Fix version number in NEWSSergey Poznyakoff1
2019-07-15Version 2.99.92Sergey Poznyakoff81
2017-11-11Fix build with mailutils 3.4Sergey Poznyakoff15
* Makefile.am (ACLOCAL_AMFLAGS): Add am. * NEWS: Update. * am/mailutils.m4: New file. A fixed version of upstream mailutils.m4 * configure.ac: Require mailutils 3.3. Raise patchlevel. * tests/nullmail.c: New file. * tests/.gitignore: Add nullmail * tests/Makefile.am: Build nullmail * tests/etc/nullmail: Remove * tests/etc/Makefile.am: Remove nullmail script. * tests/atlocal.in (WY_TESTDIR): New variable. * tests/check-notify.at: Use new nullmail tool. Update expected output. * tests/mailstats.at: Likewise. * tests/notify-upl.at: Likewise. * tests/etc/mailstats.rcin: Fix mailer command line. * tests/etc/notify.rcin: Likewise.
2017-11-10Minor fixesSergey Poznyakoff2
2017-01-02Happy GNU YearSergey Poznyakoff77
2015-04-23Fix doc generation.Sergey Poznyakoff3
Default Config file applied to all output formats, which is wrong. Use a dedicated configuration file for html output formats, and defaults for the rest. * doc/Makefile.am (GENDOCS): Add html-specific configuration file. * doc/Config: Rename to doc/html.init (with changes). * doc/wydawca.texi: Fix cross-reference.
2015-03-01Switch to Texinfo 5.0Sergey Poznyakoff6
* doc/Config: Rewrite. * doc/Makefile.am: Use Makeinfo 5 instead of texi2htm * doc/gendocs_template: Ps is not built * grecs: Upgrade. * imprimatur: Upgrade.
2014-06-13Bugfixes.Sergey Poznyakoff4
* modules/mailutils/mod_mailutils.c (wy_config): Initialize allocated struct mailevt with 0s. * src/module.c (conf_notification_modules): Avoid coredump if np->modnode == NULL. * grecs: Upgrade. * tests/notify-upl.at: Add a unique keyword.
2014-06-13Bugfixes.Sergey Poznyakoff3
* configure.ac: Use subdir-objects Automake option. * doc/Config: Put search form into the menu. * doc/Makefile.am (check-sub-config): Fix sed expression.
2013-12-17Upgrade grecsSergey Poznyakoff2
2013-03-13Bugfixes. Add a stub for new module.Sergey Poznyakoff8
* include/wydawca/wydawca.h (WY_EXPORT): Add an internal prefix. That's a stupid lossage: having not found the composed name (modname_LTX_sym), libtool tries to look up sym itself, which makes it impossible to use names like "open", etc. * src/module.c (resolve_sym): Reflect the above. Take an extra argument specifying whether the symbol is mandatory. (modules_load): Configure modules used in default_notification list. * src/config (cb_load_path): New callback to ensure that multiple module-path* statements accumulate. * modules/logstat/mod_logstat.c: New file. * modules/logstat/Makefile: New file. * configure.ac: Build modules/logstat/Makefile. * modules/Makefile.am (SUBDIRS): Add logstat.
2013-03-12Namespace normalization (3)Sergey Poznyakoff14
Use WY_ prefix for configuration macros & variables.
2013-03-12Minor change.Sergey Poznyakoff3
* doc/wydawca.texi: Document the use of -d together with -t. * src/update-2.0.awk: Remove. * src/Makefile.am: Update.
2013-03-12Upgrade grecs.Sergey Poznyakoff1
2013-03-12New informative options.Sergey Poznyakoff5
* modules/mailutils/mod_mailutils.c (wy_help): Implement module help. * src/wydawca.c (main): Using -t and -d options together produces a print out of the configuration parse tree. Additional -d option includes source file locations. * src/module.c (module_help): New function. * src/module.h (module_help): New proto.
2013-03-12Raise version number to 2.99.90Sergey Poznyakoff3
2013-03-12Namespace normalization (2). Provide installable headers.Sergey Poznyakoff27
* Makefile.am (SUBDIRS): Add include. * configure.ac: Build include/*/Makefile Set-up grecs as a shared convenience library. Install its headers. * include/Makefile.am: New file. * include/wydawca/Makefile.am: New file. * include/wydawca/cfg.h: New file. * include/wydawca/wydawca.h: New file. * modules/mailutils/Makefile.am (AM_CPPFLAGS): Add include/ * src/Makefile.am (LDADD): Use @GRECS_LDADD@ (AM_CPPFLAGS): Add include/. * tests/Makefile.am: Likewise. * src/wydawca.h: Include wydawca/wydawca.h. (__cat2__, __cat3__): Move to installable header and rename. (struct wy_user): Move to installable header. (struct file_triplet): Rename to wy_triplet. All uses changed. (enum notification_event): Rename to wy_event and move to installable header. (struct metadef): Rename to wy_metadef and move to installable header. (dry_run_mode): Rename to wy_dry_run and move to installable header. (wydawca_gpg_homedir): Rename to wy_gpg_homedir and move to installable header. (wy_version, wy_debug_level, wy_log_to_stderr) (wy_log_facility, wy_syslog_tag) (wy_log,wy_dbg): Move to installable header. * modules/mailutils/mod_mailutils.c: Update. * src/cmdline.opt * src/config.c * src/directive.c * src/diskio.c * src/event.c * src/gpg.c * src/job.c * src/meta.c * src/module.c * src/null.c * src/timer.c * src/triplet.c * src/verify.c * src/vtab.c * src/watcher.c * src/wydawca.c
2013-03-12Improve triplet API.Sergey Poznyakoff5
* src/wydawca.h (uploader_info): Rename to wy_user. (file_triplet) <uploader_count>: Remove. <admin_list>: New member. (triplet_get_uploaders,triplet_get_uploader) (triplet_get_admins): New protos. * src/triplet.c (wy_user_create) (wy_userlist_free): New static functions. (hash_triplet_free): Use wy_userlist_free. (triplet_get_uploaders,triplet_get_uploader) (triplet_get_admins): New functions. * src/verify.c (verify_directive_file): Rewrite using triplet_get_uploaders. * src/gpg.c (verify_directive_signature): Call triplet_get_uploaders to initialize the uploaders list. * modules/mailutils/mod_mailutils.c (get_recipient): Remove. (get_owner_address): New function. All callers updated. Remove useless const qualifiers.
2013-03-12Enable notification tests conditionally.Sergey Poznyakoff8
The tests are enabled only if the mailutils module is built. * configure.ac (WD_MAILUTILS): New subst variable. * tests/atlocal.in (WD_MAILUTILS): New variable. * tests/testsuite.at (AT_MAILUTILS_PREREQ): New macro. * tests/check-notify.at: Skip the test if mailutils is not configured. * tests/mailstats.at: Likewise. * tests/notify-upl.at: Likewise. * modules/mailutils/mod_mailutils.c (get_uploader_email): Simplify the signature. (expand_email_admin,expand_email_owner): Make static. * src/wydawca.h (expand_email_admin,expand_email_owner): Remove protos.
2013-03-11Follow up to 87602f54.Sergey Poznyakoff13
Fix minor bugs. Update the testsuite. All tests pass now. * modules/mailutils/mod_mailutils.c (cb_statistics): Remove. Use wy_cb_statistics. (expand_email_admin, expand_email_owner): Add missing functions. * src/config.c (wy_cb_statistics): New function. (wydawca_kw): Restore "statistics" statement. * src/dictionary.c (dictionary_lookup): Fix debug levels. * src/wydawca.h (wy_cb_statistics): New proto. * tests/atlocal.in (wydawca_expandmeta): Expand @WD_MODDIR@ * tests/check-notify.at: Create notify.rc from notify.rcin * tests/notify-upl.at: Likewise. * tests/mailstats.at: Likewise. * tests/upload-dry.at: Fix the expected output. * tests/etc/mailstats.rc: Rename to tests/etc/mailstats.rcin. * tests/etc/notify.rc: Rename to tests/etc/notify.rcin. * tests/etc/Makefile.am: Update. * tests/etc/wydawca.rcin: Update to the new syntax.
2013-03-11Namespace normalization (1).Sergey Poznyakoff5
syslog_tag -> wy_syslog_tag log_facility -> wy_log_facility log_to_stderr -> wy_log_to_stderr
2013-03-10Put back admin and owner address expansions.Sergey Poznyakoff4
* src/meta.c (metadef_join): New function. * src/triplet.c (triplet_expand_param): Extra argument supplies an additional metadef to use together with triplet_meta. * src/wydawca.h (triplet_expand_param): Change signature. * modules/mailutils/mod_mailutils.c (t_notify): Provide extra metadef for admin and owner addresses.
2013-03-10Provide a convenient debugging macro.Sergey Poznyakoff21
Rename logmsg to wy_log.
2013-03-10Replace mail notification with module event notification framework.Sergey Poznyakoff28
The new framework is to be general-purpose; the mail notification is implemented as a module. Althoug the program is operational, the change is not completed yet. In particular, the docs are out of date and the tests will mostly fail. * .gitignore: Update. * Makefile.am (SUBDIRS): Add modules. * configure.ac: Mailutils is now optional (though highly recommended). (AC_CONFIG_FILES): Build modules/Makefile and modules/mailutils/Makefile. * modules/Makefile.am: New file. * modules/mailutils/Makefile.am: New file. * modules/mailutils/mod_mailutils.c: New file. * src/mail.c: Remove. * src/mail.h: Remove. * src/event.c: New file. * src/Makefile.am (wydawca_SOURCES): Update. (LDADD): Remove MAILUTILS_LIBS. * src/config.c: Remove mail-related configuration statements. Add module-related ones instead. * src/wydawca.h (notification_event) <ev_statistics>: New event. (notification_target): Remove. (notification) <tgt,sign_keys,msg>: Remove. <statmask>: New member. (register_message_template): Remove. (notify_stats,notify_flush): New protos. (notification_target_str): Remove. (format_fn): Remove. (module) <next,modinit,open> <flush,close>: New members. <notify>: Change signature. (modules_close, module_set_init) (module_flush): New protos. (debug_level): Rename to wy_debug_level. All uses changed. (wy_version): New extern. (admin_stat_message,admin_stat_sign_key): Remove. (default_notification): New global. (triplet_expand_param,triplet_expand_dictionary_query): The file_triplet argument is const pointer. (assert_string_arg): Rename to wy_assert_string_arg. * src/wydawca.c (debug_level): Rename to wy_debug_level. (wy_version): New global. (logstats): Call notify_stats. (main): Call modules_close. * src/module.c: Keep modules in a singly-linked list instead of a symtab. Provide new functions. * src/net.c: Update. * src/dictionary.c: Update. * src/directive.c: Update. * src/diskio.c: Update. * src/exec.c: Update. * src/gpg.c: Update. * src/job.c (wydawca_scanner): Call notify_flush. * src/null.c: Update. * src/process.c: Update. * src/sql.c: Update. * src/tcpwrap.c: Update. * src/triplet.c: Update. * src/verify.c: Update. * src/watcher.c: Update.
2013-03-06Replace mu_url_t with a custom URL.Sergey Poznyakoff9
2013-02-26Introduce loadable modules.Sergey Poznyakoff14
* .gitignore: Update. * configure.ac: Require libtool Require Grecs tree-api. * Makefile.am: Incorporate libtool * bootstrap: Create m4 if it does not exist. * doc/Makefile.am: Use texi2html * grecs: Upgrade * src/module.c: New file. * src/Makefile.am (wydawca_SOURCES): Add module.c * src/config.c: Switch callbacks to tree-api. Add statements for working with modules: module-load-path, module-prepend-load-path and module in the global scope and module and module-config in notify-event blocks. * src/mail.c (do_notify): Call module_notify if a module is configured. * src/tcpwrap.c: Switch callbacks to tree-api. * src/wydawca.c (main): Load modules. * src/wydawca.h (notification) <modname> <modcfg,modnode>: New members. (module): New struct. (cb_module,modules_load,module_notify): New functions. (module_load_path) (module_prepend_load_path): New globals.
2013-02-04Avoid reusing already freed data.Sergey Poznyakoff1
* src/job.c (procspool): Take a pointer to the triplet pointer as a closure data. Return immediately if it is NULL. (wydawca_scanner): Pass a pointer in the second argument in call to for_each_spool.
2013-01-01Avoid processing same triplet twice.release-2.2Sergey Poznyakoff6
* src/wydawca.h (file_triplet) <jq_prev,jq_next,job>: New members. (spool_commit_triplets,schedule_job): Update signature. (count_processable_triplets): Remove. (link_processable_triplets): New proto. (remove_triplet): New proto. (triplet_jq_unlink): New proto. * src/job.c (job) <triplet_list>: New member. (triplet_jq_unlink,jq_clear): New functions. (procspool): Create and stop spool timers. (wydawca_scanner): Call spool_create_timers. (schedule_job): Additional argument specifies triplets to process. Initialize job->triplet_list; (job_queue_runner): Call jq_clear. * src/net.c (handle_connection): Update call to schedule_job. * src/process.c (spool_cwd_add_new_file): Update call to spool_commit_triplets. * src/triplet.c (remove_triplet): Now extern. Takes two args. All uses updated. (spool_commit_triplets): Additional argument specifies triplets to process. (count_processable_triplets): Remove. (link_processable_triplets): New function. * src/watcher.c: Use link_processable_triplets to obtain a doubly-linked list of triplets to process. Pass it to schedule_job.
2013-01-01Version 2.2. Happy GNU Year.Sergey Poznyakoff3

Return to:

Send suggestions and report system problems to the System administrator.