Fix some database backup dump issues * Backup/DumpSet.pm: + (_parse_file_name): The "(\d{8,6}-\d{4})" regexp for database dumps isn't actually working the way it ought to, so use "(\d{8}-\d{4})" since that's what we've actually got. * vacuum.pl: + (find_files_to_copy): Use "gt" instead of ">" for date comparison, because these strings are no longer guaranteed to be numeric, but the date strings from comparable backups are always the same length, so string comparison will give the same result.
Add MariaDB database backup file syntax * Backup/DumpSet.pm: + (_parse_file_name): Also accept file names of the form "pfx-######-####.dump.gz" as backups to be copied, so we can include database backups in the usual DB backup style.
Fix the find_list_qmail_file return value * email/qmail-deliver.pl: + (find_list_qmail_file): Bug fix: Don't return the result of warn! Nonzero was interpreted as a .qmail file by deliver_message, causing delivery failure (EX_TEMPFAIL) for lists without .qmail files when --verbose.
Fix a List-ID: wrapping bug in qmail-deliver.pl * email/qmail-deliver.pl: + (find_list_qmail_file): Bug fix: Canonicalize whitespace in the "List-ID:" header before trying to parse it. Otherwise, the greedy ".*" will fail when asked to match a newline. * email/test-qmail-deliver.pl: + (deliver_one): Interpret the arg to boolean options as a count. + Add a test case that is wrapped before the list ID. * email/mailing-list-2.text (added): + Test data for same.
Improve mbox-grep.pl This is from the update-mbox-grep branch. It adds the --from, --to, and --show-also options, adds makefile testing, and uses Getopt::Long for command-line parsing, plus general modernization. * mbox-grep.pl: + Use Getopt::Long for command-line parsing. + (usage): New sub so we can call it from two places. + Add --from and --to opts that bound the search to a message range. + Spool --show-also into @show_also_headers. + (search_one_file $print_line): New helper. + (search_one_file $do_hit): Ignore if $from is not met. + (search_one_file): Quit early if $to is exceeded. If we have @show_also_headers, use Mail::Header to emit the chosen headers. This spits them out after the hits are shown, and doesn't calculate the correct line number for the header. + Also "use warnings" instead of "-w", and punt $warn. + Update copyright in Pod. * email/test-mbox-grep.pl (added): + New test script for mbox-grep.pl. * email/suse-proj.vm (added): * email/test-mbox-grep-0.text (added): * email/test-mbox-grep-1.text (added): * email/test-mbox-grep-2.text (added): * email/test-mbox-grep-3.text (added): * email/test-mbox-grep-luna.text (added): + Test inputs and outputs. * makefile: + (test-mbox-grep): Run email/test-mbox-grep.pl. + (test-more-scripts): Add email/test-mbox-grep.pl. + (test-email): Add test-mbox-grep.
* email/qmail-deliver.pl: Add FILES to the documentation.
Document the List-ID: thing * email/qmail-deliver.pl: + Expand the message processing bullets to add the List-ID: thing. + Clarify the message processing intro paragraph. + Shorten DESCRIPTION to make it less redundant wrt the message processing intro.
* LICENCE.text: Make us GPLv3.
Add --verbose reporting for "List-ID:" delivery. * email/qmail-deliver.pl: + (find_list_qmail_file): Add some --verbose reporting.
* email/qmail-deliver.pl: + (find_list_qmail_file): New helper. + (deliver_message): After the spam, forgery, and extension checks, if there is a "List-ID:" header, and a corresponding .qmail file of the form ".qmail-list-<id>", then use that file for delivery. * email/test-qmail-deliver.pl: + Test "List-ID:" dispatch. * email/from-emacs-dev.msg (added): + Test case for same.
Fix some undef warnings in parse_bzr * vc-chrono-log.pl: + (parse_bzr): Fix some undef warnings.
Test "bzr log" parsing * makefile: + (test-bzr-chrono-log-1): Test case for "bzr log" parsing. + (test-chrono-log): Add test-bzr-chrono-log-1. * test/test-bzr-chrono-log-1-in.text (added): * test/test-bzr-chrono-log-1.text (added): + Test data for test-bzr-chrono-log-1.
Add "bzr log" output support to vc-chrono-log.pl * vc-chrono-log.pl: + (parse_bzr): Parse Bzr fields. + (parse): Dispatch to parse_bzr if we recognize its divider. + (ChronoLog::Entry): Add a branch slot. + (report): Also report the entry branch. (There are other bzr-specific fields we could include, but this is good for now).
Add --list-host to email/forged-local-address.pl Plus testing and qmail-deliver.pl support. * email/forged-local-address.pl: + Add a --list-host option, as a (possibly better) alternative to --sender-re for what look like forgeries from email lists. + (add_list_host): Command line parsing helper. + (list_host_p): Check whether a "Received:" header matches. + Use same to override a determination of nonlocal. + Add documentation for --list-host. + Also add a SYNOPSIS section, and drop the complaint about --network-prefix from BUGS. * email/qmail-deliver.pl: + Add a --list-host keyword, and pass it to forged-local-address.pl. * email/test-qmail-deliver.pl: + Add a --list-host test using mailing-list-1.text. * makefile: + (test-nonforged-addresses): Add a test case for --list-host. * email/mailing-list-1.text (added): + Test data.
* Backup/Partition.pm: + (clean_partition $delete_dump): Bug fix: Use file_stem instead of base_name when generating verbose info for a dump.
* Backup/Slice.pm: + (entry_cmp): Bug fix: Sort catalog slices after their dump slices, to match "ls" order, so the show-backups.pl --sort=dvd option does the right thing. Also, compare by prefix first, which makes more sense (though it doesn't matter to the current code). * Backup/Dump.pm: + (entry_cmp): Also compare by prefix first. * test/test-backup-classes.pl: + Expect the changed order.
Add a new --use-delivered-to option. From the delivered-to-1 branch. * email/qmail-deliver.pl: + (write_maildir_message): Show "Delivered-To:" headers if --verbose and we have two or more or double --verbose and we have any. Also add a verbose "already been delivered" warn if we've seen the ID. + (process_qmail_file): Add double verbose warnings for a /dev/null destinations and ignored pipes. + (find_extension): If --use-delivered-to was specified and we have two or more "Delivered-To:" headers, try to extract an extension from the difference between the two most recent localparts; the difference must start with "-", which is not included. + (address_forged_p): Pass one less --verbose options to forged-local-address.pl as we get. + (check_lists): Bug fix: Also check the envelope recipient for a dead address. * email/test-qmail-deliver.pl: + (deliver_one): Improve option processing. + Test that a message gets delivered according to the extension if --use-delivered-to is specified, and not otherwise. * email/relay-test.text (added): + New --use-delivered-to test case. * email/netatalk-devel.text (added): + Message for new --deadlist test case. * email/test-bounce.text (removed): + Rename this . . . * email/bounce-test.text (added): + . . . to eliminate "test-" from the front of the name.
* email/forged-local-address.pl: + (local_header_p): Bug fix: Recognize a locally-originated Postfix message, which is necessary for handling bounces properly. * email/test-qmail-deliver.pl: + Add a regression test. * email/test-bounce.text (added): + Test message for same.
* makefile: + (clean): Also clean email/post-deliver.log. * email/.gitignore: + Also ignore email/post-deliver.log.
* cd-dump.pl: + Oops; we didn't change all $cd_max_size to $media_max_size.